From 1689075c992a45a4a50f1aaad8aaf1d2983060c8 Mon Sep 17 00:00:00 2001 From: Rob Landley Date: Fri, 2 Sep 2005 00:41:53 +0000 Subject: Working on a new test harness. Moved the sort tests into it. --- testsuite/testing.sh | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100755 testsuite/testing.sh (limited to 'testsuite/testing.sh') diff --git a/testsuite/testing.sh b/testsuite/testing.sh new file mode 100755 index 000000000..d516f722a --- /dev/null +++ b/testsuite/testing.sh @@ -0,0 +1,62 @@ +# Simple test harness infrastructurei for BusyBox +# +# Copyright 2005 by Rob Landley +# +# License is GPLv2, see LICENSE in the busybox tarball for full license text. + +# The "testing" function uses one environment variable: +# COMMAND = command to execute +# +# The function takes five arguments: +# $1) Description to display when running command +# $2) Command line arguments to command" +# $3) Expected result (on stdout)" +# $4) Data written to file "input" +# $5) Data written to stdin +# +# The exit value of testing is the exit value of the command it ran. +# +# The environment variable "FAILCOUNT" contains a cumulative total of the +# + +# The command line parsing is ugly and should be improved. + +if [ "$1" == "-v" ] +then + verbose=1 +fi + +export FAILCOUNT=0 + +# The testing function + +function testing() +{ + if [ $# -ne 5 ] + then + echo "Test $1 has the wrong number of arguments" >&2 + exit + fi + + f=$FAILCOUNT + echo -ne "$3" > expected + echo -ne "$4" > input + echo -n -e "$5" | eval "$COMMAND $2" > actual + RETVAL=$? + + cmp expected actual > /dev/null + if [ $? -ne 0 ] + then + FAILCOUNT=$[$FAILCOUNT+1] + echo FAIL:"$1" + if [ $verbose ] + then + diff -u expected actual + fi + else + echo PASS:"$1" + fi + rm -f input expected actual + + return $RETVAL +} -- cgit v1.2.3