Annotation of /trunk/mkinitrd-magellan/busybox/shell/ash_test/run-all
Parent Directory | Revision Log
Revision 816 -
(hide annotations)
(download)
Fri Apr 24 18:33:46 2009 UTC (15 years, 1 month ago) by niro
File size: 1860 byte(s)
Fri Apr 24 18:33:46 2009 UTC (15 years, 1 month ago) by niro
File size: 1860 byte(s)
-updated to busybox-1.13.4
1 | niro | 816 | #!/bin/sh |
2 | |||
3 | TOPDIR=$PWD | ||
4 | |||
5 | test -x ash || { | ||
6 | echo "No ./ash - creating a link to ../../busybox" | ||
7 | ln -s ../../busybox ash | ||
8 | } | ||
9 | test -x printenv || gcc -O2 -o printenv printenv.c || exit $? | ||
10 | test -x recho || gcc -O2 -o recho recho.c || exit $? | ||
11 | test -x zecho || gcc -O2 -o zecho zecho.c || exit $? | ||
12 | |||
13 | PATH="$PWD:$PATH" # for ash and recho/zecho/printenv | ||
14 | export PATH | ||
15 | |||
16 | THIS_SH="$PWD/ash" | ||
17 | export THIS_SH | ||
18 | |||
19 | do_test() | ||
20 | { | ||
21 | test -d "$1" || return 0 | ||
22 | echo do_test "$1" | ||
23 | # $1 but with / replaced by # so that it can be used as filename part | ||
24 | noslash=`echo "$1" | sed 's:/:#:g'` | ||
25 | ( | ||
26 | cd "$1" || { echo "cannot cd $1!"; exit 1; } | ||
27 | for x in run-*; do | ||
28 | test -f "$x" || continue | ||
29 | case "$x" in | ||
30 | "$0"|run-minimal|run-gprof) ;; | ||
31 | *.orig|*~) ;; | ||
32 | #*) echo $x ; sh $x ;; | ||
33 | *) | ||
34 | sh "$x" >"$TOPDIR/$noslash-$x.fail" 2>&1 && \ | ||
35 | { echo "$1/$x: ok"; rm "$TOPDIR/$noslash-$x.fail"; } || echo "$1/$x: fail"; | ||
36 | ;; | ||
37 | esac | ||
38 | done | ||
39 | # Many bash run-XXX scripts just do this, | ||
40 | # no point in duplication it all over the place | ||
41 | for x in *.tests; do | ||
42 | test -x "$x" || continue | ||
43 | name="${x%%.tests}" | ||
44 | test -f "$name.right" || continue | ||
45 | { | ||
46 | "$THIS_SH" "./$x" >"$name.xx" 2>&1 | ||
47 | diff -u "$name.xx" "$name.right" >"$TOPDIR/$noslash-$x.fail" \ | ||
48 | && rm -f "$name.xx" "$TOPDIR/$noslash-$x.fail" | ||
49 | } && echo "$1/$x: ok" || echo "$1/$x: fail" | ||
50 | done | ||
51 | ) | ||
52 | } | ||
53 | |||
54 | # main part of this script | ||
55 | # Usage: run-all [directories] | ||
56 | |||
57 | if [ $# -lt 1 ]; then | ||
58 | # All sub directories | ||
59 | modules=`ls -d ash-*` | ||
60 | # If you want to test ash against hush and msh testsuites | ||
61 | # (have to copy hush_test and msh_test dirs to current dir first): | ||
62 | #modules=`ls -d ash-* hush_test/hush-* msh_test/msh-*` | ||
63 | |||
64 | for module in $modules; do | ||
65 | do_test $module | ||
66 | done | ||
67 | else | ||
68 | while [ $# -ge 1 ]; do | ||
69 | if [ -d $1 ]; then | ||
70 | do_test $1 | ||
71 | fi | ||
72 | shift | ||
73 | done | ||
74 | fi |