diff options
Diffstat (limited to 'shell')
-rwxr-xr-x | shell/ash_test/run-all | 21 | ||||
-rwxr-xr-x | shell/hush_test/run-all | 12 |
2 files changed, 25 insertions, 8 deletions
diff --git a/shell/ash_test/run-all b/shell/ash_test/run-all index 96703ef..066327d 100755 --- a/shell/ash_test/run-all +++ b/shell/ash_test/run-all @@ -47,6 +47,7 @@ do_test() # $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; } for x in run-*; do test -f "$x" || continue @@ -69,13 +70,25 @@ do_test() test -f "$name.right" || continue # echo Running test: "$x" echo -n "$1/$x:" - { + ( "$THIS_SH" "./$x" 2>&1 | \ - grep -va "^ash: using fallback suid method$" >"$name.xx" + grep -va "^ash: using fallback suid method$" >"$name.xx" + 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" - } && echo " ok" || echo " fail" + ) + case $? in + 0) echo " ok";; + 77) echo " skip (feature disabled)";; + *) echo " fail ($?)"; tret=1;; + esac done + exit $tret ) } @@ -103,4 +116,4 @@ else done fi -exit ${ret} +exit $ret diff --git a/shell/hush_test/run-all b/shell/hush_test/run-all index 3fbc7c5..7345fee 100755 --- a/shell/hush_test/run-all +++ b/shell/hush_test/run-all @@ -29,7 +29,7 @@ fi eval $(sed -e '/^#/d' -e '/^$/d' -e 's:^:export :' .config) -PATH="`pwd`:$PATH" # for hush and recho/zecho/printenv +PATH="`pwd`:$PATH" # for hush export PATH THIS_SH="`pwd`/hush" @@ -67,7 +67,8 @@ do_test() # echo Running test: "$x" echo -n "$1/$x:" ( - "$THIS_SH" "./$x" >"$name.xx" 2>&1 + "$THIS_SH" "./$x" 2>&1 | \ + grep -va "^hush: using fallback suid method$" >"$name.xx" r=$? # filter C library differences sed -i \ @@ -83,7 +84,7 @@ do_test() *) echo " fail ($?)"; tret=1;; esac done - exit ${tret} + exit $tret ) } @@ -95,6 +96,9 @@ ret=0 if [ $# -lt 1 ]; then # All sub directories modules=`ls -d hush-*` + # If you want to test hush against ash testsuite + # (have to copy ash_test dir to current dir first): + #modules=`ls -d hush-* ash_test/ash-*` for module in $modules; do do_test $module || ret=1 @@ -108,4 +112,4 @@ else done fi -exit ${ret} +exit $ret |