diff options
author | Denis Vlasenko <vda.linux@googlemail.com> | 2007-05-10 23:06:55 +0000 |
---|---|---|
committer | Denis Vlasenko <vda.linux@googlemail.com> | 2007-05-10 23:06:55 +0000 |
commit | e0a336747c2061d0d555c4e15287b513831d2947 (patch) | |
tree | d51595efe1d14bc4f236d70a5ce7fac0a47e99cc /shell/hush_test/run-all | |
parent | 53079d494ef0c1fec481b062b3614c45e60eb057 (diff) | |
download | busybox-w32-e0a336747c2061d0d555c4e15287b513831d2947.tar.gz busybox-w32-e0a336747c2061d0d555c4e15287b513831d2947.tar.bz2 busybox-w32-e0a336747c2061d0d555c4e15287b513831d2947.zip |
hush: fix "unterminated last line loops forever" bug
hush: add testsuite infrastructure
Diffstat (limited to 'shell/hush_test/run-all')
-rw-r--r-- | shell/hush_test/run-all | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/shell/hush_test/run-all b/shell/hush_test/run-all new file mode 100644 index 000000000..2c2bac6d2 --- /dev/null +++ b/shell/hush_test/run-all | |||
@@ -0,0 +1,59 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | test -x hush || { echo "No ./hush?!"; exit; } | ||
4 | |||
5 | PATH="$PWD:$PATH" # for hush and recho/zecho/printenv | ||
6 | export PATH | ||
7 | |||
8 | THIS_SH="$PWD/hush" | ||
9 | export THIS_SH | ||
10 | |||
11 | do_test() | ||
12 | { | ||
13 | test -d "$1" || return 0 | ||
14 | ( | ||
15 | cd "$1" || { echo "cannot cd $1!"; exit 1; } | ||
16 | for x in run-*; do | ||
17 | test -f "$x" || continue | ||
18 | case "$x" in | ||
19 | "$0"|run-minimal|run-gprof) ;; | ||
20 | *.orig|*~) ;; | ||
21 | #*) echo $x ; sh $x ;; | ||
22 | *) | ||
23 | sh "$x" >"../$1-$x.fail" 2>&1 && \ | ||
24 | { echo "$1/$x: ok"; rm "../$1-$x.fail"; } || echo "$1/$x: fail"; | ||
25 | ;; | ||
26 | esac | ||
27 | done | ||
28 | # Many bash run-XXX scripts just do this, | ||
29 | # no point in duplication it all over the place | ||
30 | for x in *.tests; do | ||
31 | test -x "$x" || continue | ||
32 | name="${x%%.tests}" | ||
33 | test -f "$name.right" || continue | ||
34 | { | ||
35 | "$THIS_SH" "./$x" >"$name.xx" 2>&1 | ||
36 | diff -u "$name.xx" "$name.right" >"../$1-$x.fail" && rm -f "$name.xx" "../$1-$x.fail" | ||
37 | } && echo "$1/$x: ok" || echo "$1/$x: fail" | ||
38 | done | ||
39 | ) | ||
40 | } | ||
41 | |||
42 | # main part of this script | ||
43 | # Usage: run-all [directories] | ||
44 | |||
45 | if [ $# -lt 1 ]; then | ||
46 | # All sub directories | ||
47 | modules=`ls -d hush-*` | ||
48 | |||
49 | for module in $modules; do | ||
50 | do_test $module | ||
51 | done | ||
52 | else | ||
53 | while [ $# -ge 1 ]; do | ||
54 | if [ -d $1 ]; then | ||
55 | do_test $1 | ||
56 | fi | ||
57 | shift | ||
58 | done | ||
59 | fi | ||