diff options
Diffstat (limited to 'shell/hush_test')
-rwxr-xr-x | shell/hush_test/run-all | 51 |
1 files changed, 28 insertions, 23 deletions
diff --git a/shell/hush_test/run-all b/shell/hush_test/run-all index 837b3f7..1dd0edc 100755 --- a/shell/hush_test/run-all +++ b/shell/hush_test/run-all @@ -9,6 +9,8 @@ unset LC_NUMERIC unset LC_TIME unset LC_ALL +TOPDIR=`pwd` + if test ! -x hush; then if test ! -x ../../busybox; then echo "Can't run tests. Put hush binary into this directory (`pwd`)" @@ -38,6 +40,8 @@ do_test() test -d "$1" || return 0 d=${d%/} # echo Running tests in directory "$1" + # $1 but with / replaced by # so that it can be used as filename part + noslash=`echo "$1" | sed 's:/:#:g'` ( tret=0 cd "$1" || { echo "cannot cd $1!"; exit 1; } @@ -49,34 +53,35 @@ do_test() #*) echo $x ; sh $x ;; *) echo -n "$1/$x:" - sh "$x" >"../$1-$x.fail" 2>&1 && \ - { { echo " ok"; rm "../$1-$x.fail"; } || echo " fail"; } + sh "$x" >"$TOPDIR/$noslash-$x.fail" 2>&1 && \ + { { echo " ok"; rm "$TOPDIR/$noslash-$x.fail"; } || echo " fail"; } ;; esac done # Many bash run-XXX scripts just do this, # no point in duplication it all over the place for x in *.tests; do - test -x "$x" || continue - name="${x%%.tests}" - test -f "$name.right" || continue -# echo Running test: "$x" - echo -n "$1/$x:" - ( - "$THIS_SH" "./$x" >"$name.xx" 2>&1 - r=$? - # filter C library differences - sed -i \ - -e "/: invalid option /s:'::g" \ - "$name.xx" - test $r -eq 77 && rm -f "../$1-$x.fail" && exit 77 - diff -u "$name.xx" "$name.right" >"../$1-$x.fail" && rm -f "$name.xx" "../$1-$x.fail" - ) - case $? in - 0) echo " ok";; - 77) echo " skip (feature disabled)";; - *) echo " fail"; tret=1;; - esac + test -x "$x" || continue + name="${x%%.tests}" + test -f "$name.right" || continue +# echo Running test: "$x" + echo -n "$1/$x:" + ( + "$THIS_SH" "./$x" >"$name.xx" 2>&1 + r=$? + # filter C library differences + sed -i \ + -e "/: invalid option /s:'::g" \ + "$name.xx" + test $r -eq 77 && rm -f "$TOPDIR/$noslash-$x.fail" && exit 77 + diff -u "$name.xx" "$name.right" >"$TOPDIR/$noslash-$x.fail" \ + && rm -f "$name.xx" "$TOPDIR/$noslash-$x.fail" + ) + case $? in + 0) echo " ok";; + 77) echo " skip (feature disabled)";; + *) echo " fail"; tret=1;; + esac done exit ${tret} ) @@ -92,7 +97,7 @@ if [ $# -lt 1 ]; then modules=`ls -d hush-*` for module in $modules; do - do_test $module || ret=1 + do_test $module || ret=1 done else while [ $# -ge 1 ]; do |