1 |
frodo |
368 |
#!/bin/sh |
2 |
|
|
|
3 |
|
|
if [ "$#" = 0 ]; then |
4 |
|
|
getopt=./getopt |
5 |
|
|
elif [ "$#" = 1 ]; then |
6 |
|
|
getopt="$1" |
7 |
|
|
else |
8 |
|
|
echo "Syntax: $0 [ PATH_TO_GETOPT ]" 2>&1 |
9 |
|
|
exit 2 |
10 |
|
|
fi |
11 |
|
|
|
12 |
|
|
# Reset the environment |
13 |
|
|
LC_ALL="C" |
14 |
|
|
unset LANG |
15 |
|
|
unset LC_CTYPE |
16 |
|
|
unset LC_COLLATE |
17 |
|
|
unset LC_MESSAGES |
18 |
|
|
unset POSIXLY_CORRECT |
19 |
|
|
unset GETOPT_COMPATIBLE |
20 |
|
|
cd `dirname $0` |
21 |
|
|
|
22 |
|
|
for testcmd in tests/*.cmd; do |
23 |
|
|
test_failed=0 |
24 |
|
|
rm -f test-stdout test-stderr test-stdout-expected test-stderr-expected |
25 |
|
|
|
26 |
|
|
testfile=`basename "$testcmd" .cmd` |
27 |
|
|
|
28 |
|
|
echo "Next test: $testfile" |
29 |
|
|
"tests/${testfile}.cmd" "$getopt" > test-stdout 2>test-stderr |
30 |
|
|
exitcode="$?" |
31 |
|
|
|
32 |
|
|
if [ "$exitcode" != "`cat tests/${testfile}.exitcode`" ]; then |
33 |
|
|
echo "TEST FAILED: expected exit code `cat tests/${testfile}.exitcode`, got $exitcode" |
34 |
|
|
test_failed=1 |
35 |
|
|
else |
36 |
|
|
echo "Received expected exit code" |
37 |
|
|
fi |
38 |
|
|
|
39 |
|
|
cat tests/${testfile}.stdout | sed "s,\$0,$getopt,g" > test-stdout-expected |
40 |
|
|
if ! cmp -s test-stdout test-stdout-expected ; then |
41 |
|
|
echo "TEST FAILED: unexpected stdout output, diff follows:" |
42 |
|
|
diff test-stdout test-stdout-expected |
43 |
|
|
test_failed=1 |
44 |
|
|
else |
45 |
|
|
echo "Received expected stdout output" |
46 |
|
|
fi |
47 |
|
|
|
48 |
|
|
cat tests/${testfile}.stderr | sed "s,\$0,$getopt,g" > test-stderr-expected |
49 |
|
|
if ! cmp -s test-stderr test-stderr-expected ; then |
50 |
|
|
echo "TEST FAILED: unexpected stdout output, diff follows:" |
51 |
|
|
diff test-stderr test-stderr-expected |
52 |
|
|
test_failed=1 |
53 |
|
|
else |
54 |
|
|
echo "Received expected stderr output" |
55 |
|
|
fi |
56 |
|
|
echo |
57 |
|
|
|
58 |
|
|
if [ "$test_failed" = 1 ]; then |
59 |
|
|
failed_tests="$failed_tests $testfile" |
60 |
|
|
fi |
61 |
|
|
rm -f test-stdout test-stderr test-stdout-expected test-stderr-expected |
62 |
|
|
echo |
63 |
|
|
done |
64 |
|
|
|
65 |
|
|
if [ -z "$failed_tests" ]; then |
66 |
|
|
echo "ALL TESTS SUCCEEDED" |
67 |
|
|
exit 0 |
68 |
|
|
else |
69 |
|
|
echo "SOME TESTS FAILED: $failed_tests" |
70 |
|
|
exit 1 |
71 |
|
|
fi |