#! /bin/sh usage () { cat <<'EOF' 1>&2 usage: test_bench [options] or: test_bench [options] testname ... Performs all or the enumerated tests and compares the result of the tests with the expected results. -init: Initializes the file containing the expected result with the actual result. -help: Print this message EOF } run_test () { if [ -f specs/$1.sh ]; then echo -n "Running test $1..." rm -f client.out rm -f server.out touch client.out touch server.out h=`sh specs/$1.sh` if [ -f specs/$1.out ]; then g=`cat specs/$1.out` if [ "x$h" = "x$g" ]; then echo " successful" else echo " failure" exitcode=1 fi else if [ -n "$INIT" ]; then echo "$h" >specs/$1.out echo " initialized" else echo " no result to check against" echo "Result: $h" fi fi mkdir -p log cp server.out log/$1.server cp client.out log/$1.client echo "$h" >log/$1.out else echo "Test $1 does not exist" fi } x=1 while [ -n "$x" ]; do case "$1" in -init) INIT=1 shift ;; -h|-help) usage exit 0 ;; -*) usage exit 2 ;; *) x="" ;; esac done exitcode=0 export SHELLOPTS if [ "$#" = "0" ]; then # Run all tests... INIT="" run_test simple run_test simple-nocr run_test simple-ci run_test simple-extra-sp run_test simple-extra-tab run_test simple-cont-sp run_test simple-cont-tab run_test simple-cont-2sp run_test simple-cont-2tab run_test simple-cont-sptab run_test simple-cont-early run_test simple-multi run_test simple-phantasy run_test framed run_test framed-big run_test framed-8bitclean run_test chunked run_test chunked-ci run_test chunked-ext run_test chunked-big run_test chunked-footer run_test error-404 run_test unframed-is-unframed run_test unframed-request run_test framed-basicauth run_test framed-basicauth-fails #run_test framed-digestauth # cnonce cannot be predicted! run_test framed-proxyauth run_test framed-proxy+basicauth run_test three-messages run_test three-messages-incl-simple run_test continue run_test continue-extra run_test continue-handshake run_test continue-handshake-timeout run_test continue+error-404 run_test three-continued-messages run_test three-very-continued-messages run_test three-big-messages run_test early-error run_test pipeline-phantasy run_test nopersistency-1.0 run_test nopersistency-close run_test reconnect-1 run_test framed-brokenpipe run_test pe-get11 run_test pe-put11 run_test pe-multiput11 run_test pe-trashput11 run_test pe-put10 run_test illegal-status run_test too-many-errors run_test limited-drift run_test unix-error run_test framed-no-persistency run_test timeout run_test bad-request run_test head run_test head-extra run_test proxypersistency-1.0 else while [ "$#" -gt 0 ]; do run_test "$1" shift done fi # Exit with 1 only if a specified test fails. exit $exitcode