summaryrefslogtreecommitdiff
path: root/shell
diff options
context:
space:
mode:
Diffstat (limited to 'shell')
-rwxr-xr-xshell/ash_test/run-all21
-rwxr-xr-xshell/hush_test/run-all12
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