1 |
#!/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 |