File: tests.sh

package info (click to toggle)
javatools 0.48%2Bdeb8u1
  • links: PTS, VCS
  • area: main
  • in suites: jessie
  • size: 416 kB
  • ctags: 72
  • sloc: sh: 1,515; perl: 930; makefile: 35
file content (115 lines) | stat: -rwxr-xr-x 3,585 bytes parent folder | download | duplicates (7)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
#!/bin/bash --


set -e
_DIR=`pwd`
. ../jh_lib.sh.in

[ "$JAVA_HOME" ] || JAVA_HOME="/usr/lib/jvm/default-java"

JAR="$JAVA_HOME/bin/jar"
if [ ! -x "$JAR" -a -x "/usr/bin/jar" ] ; then
    JAR="/usr/bin/jar"
fi

if readlink "$JAR" | grep -q "fastjar$" ; then
    echo "fastjar produces different results than we expect." >&2
    echo "Skipping test" >&2
    exit 0
fi

run_jh_manifest()
{
    cd ..
    echo "Running: perl -I./lib ./jh_manifest \"$@\""
    perl -I./lib ./jh_manifest "$@"
    cd "$_DIR"
}

# checkmanifest <source> <correct result> [parameters...]
checkmanifest()
{
	error=0
	source=$1
	verify=$2
	shift
	shift
	touch foo
	"$JAR" cfm test.jar $source foo
	run_jh_manifest "$@" "$_DIR/test.jar"
	"$JAR" xf test.jar META-INF/MANIFEST.MF
	if ! diff -u $verify META-INF/MANIFEST.MF > test.diff; then
		error=1
		echo "ERROR: difference detected:"
		cat test.diff
		echo
		echo "Source:"
		cat $source
		echo
		echo "Parameters:"
		echo "$@"
		echo
		echo "Desired:"
		cat $verify
		echo
		echo "Actual:"
		cat META-INF/MANIFEST.MF
	fi
	rm -rf META-INF
	rm test.jar test.diff foo
	return $error
}

#checkextract <source> <key> <value>
checkextract()
{
	LINE="`extractline "$1" "$2"`"

	if [ "$LINE" != "$3" ]; then
		echo "Failed to extract $2 from $1"
		echo "Desired: $3"
		echo "Actual: $LINE"
	fi
}

#checkarch input output
checkarch()
{
	OUT="`../java-arch.sh "$1"`"
	if ! [ "$OUT" = "$2" ]; then
		echo "Failed converting arch $1"
		echo "Desired $2"
		echo "Actual $OUT"
		return 1
	fi
	return 0
}

# checkarches inputfile output file
checkarches ()
{
	i=1
	RET=0
	for a in `cat "$1"`; do
		if ! checkarch "$a" "`head -n$i "$2" | tail -n1`" ; then
			RET=1
		fi
		i=$(( $i + 1 ))
	done
	if [ "$RET" != "0" ] ; then
		echo "TEST FAILED"
	fi
	exit $RET
}

checkmanifest sample sample
checkmanifest long-in long-out
checkmanifest onelong-in onelong-out
checkmanifest sample long-out2 --classpath="/usr/share/java/hexdump.jar /usr/share/java/hexdump.jar /usr/share/java/hexdump.jar /usr/share/java/hexdump.jar /usr/share/java/hexdump.jar /usr/share/java/hexdump.jar /usr/share/java/hexdump.jar /usr/share/java/hexdump.jar /usr/share/java/hexdump.jar /usr/share/java/hexdump.jar /usr/share/java/hexdump.jar /usr/share/java/hexdump.jar /usr/share/java/hexdump.jar /usr/share/java/hexdump.jar /usr/share/java/hexdump.jar /usr/share/java/hexdump.jar /usr/share/java/hexdump.jar"
checkmanifest sample onelong-out2 --classpath=/usr/share/java/usr/share/java/usr/share/java/usr/share/java/usr/share/java/usr/share/java/usr/share/java/usr/share/java/usr/share/java/usr/share/java/usr/share/java/usr/share/java/usr/share/java/usr/share/java/usr/share/java/usr/share/java/usr/share/java/usr/share/java/hexdump.jar

checkextract onelong-out2 Class-Path /usr/share/java/usr/share/java/usr/share/java/usr/share/java/usr/share/java/usr/share/java/usr/share/java/usr/share/java/usr/share/java/usr/share/java/usr/share/java/usr/share/java/usr/share/java/usr/share/java/usr/share/java/usr/share/java/usr/share/java/usr/share/java/hexdump.jar
checkextract long-out2 Class-Path "/usr/share/java/hexdump.jar /usr/share/java/hexdump.jar /usr/share/java/hexdump.jar /usr/share/java/hexdump.jar /usr/share/java/hexdump.jar /usr/share/java/hexdump.jar /usr/share/java/hexdump.jar /usr/share/java/hexdump.jar /usr/share/java/hexdump.jar /usr/share/java/hexdump.jar /usr/share/java/hexdump.jar /usr/share/java/hexdump.jar /usr/share/java/hexdump.jar /usr/share/java/hexdump.jar /usr/share/java/hexdump.jar /usr/share/java/hexdump.jar /usr/share/java/hexdump.jar"

checkarches archs-in archs-out