aboutsummaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorRob Landley <rob@landley.net>2016-10-18 16:52:17 -0500
committerRob Landley <rob@landley.net>2016-10-18 16:52:17 -0500
commitee14fc396dff50a263b62670f5484efcd6316aeb (patch)
tree55d8f9643ec81b4151e346fc9fa8e68ad7aa6a7d /scripts
parent54e8313d6ac41fb822ce8f15e7cbffcff44f58e0 (diff)
downloadtoybox-ee14fc396dff50a263b62670f5484efcd6316aeb.tar.gz
Test infrastructure: collate make "test_single" and "make tests" into common
function, and add $C variable with an absolute path to the command being tested (you need to call things like printf by path to avoid shell builtins, might as well be consistent).
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/test.sh28
1 files changed, 19 insertions, 9 deletions
diff --git a/scripts/test.sh b/scripts/test.sh
index 1337c529..01f9ea34 100755
--- a/scripts/test.sh
+++ b/scripts/test.sh
@@ -26,25 +26,35 @@ export LC_COLLATE=C
. "$TOPDIR"/scripts/runtest.sh
[ -f "$TOPDIR/generated/config.h" ] && export OPTIONFLAGS=:$(echo $(sed -nr 's/^#define CFG_(.*) 1/\1/p' "$TOPDIR/generated/config.h") | sed 's/ /:/g')
+do_test()
+{
+ CMDNAME="${1##*/}"
+ CMDNAME="${CMDNAME%.test}"
+ [ -z "$2" ] && C="$(readlink -f ../$CMDNAME)" || C="$(which $CMDNAME)"
+ if [ ! -z "$C" ]
+ then
+ . "$1"
+ else
+ echo "$CMDNAME disabled"
+ fi
+}
+
if [ $# -ne 0 ]
then
for i in "$@"
do
- CMDNAME="${i##*/}"
- CMDNAME="${CMDNAME%.test}"
- . "$TOPDIR"/tests/$i.test
+ do_test "$TOPDIR"/tests/$i.test
done
else
for i in "$TOPDIR"/tests/*.test
do
- CMDNAME="${i##*/}"
- CMDNAME="${CMDNAME%.test}"
- if [ -h ../$CMDNAME ] || [ ! -z "$TEST_HOST" ]
+ if [ -z "$TEST_HOST" ]
then
- cd .. && rm -rf testdir && mkdir testdir && cd testdir || exit 1
- . $i
+ do_test "$i" 1
else
- echo "$CMDNAME disabled"
+ rm -rf testdir && mkdir testdir && cd testdir || exit 1
+ do_test "$i"
+ cd ..
fi
done
fi