From d150fe27eda4c011257bb692aa459b59640ef93e Mon Sep 17 00:00:00 2001 From: Stephen Morris Date: Wed, 20 Dec 2017 15:50:03 +0000 Subject: [PATCH] [rt46602] Error messages before start of test are output to stderr Error messages concerning the invocation of run.sh are output to stderr. Messages after the test has started are output to stdout. (cherry picked from commit 244d1c30e20c927ffdbc2ca305e04675cbd3ac4d) --- bin/tests/system/run.sh | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/bin/tests/system/run.sh b/bin/tests/system/run.sh index 2f8f1ee5ac..c18f3cc48e 100644 --- a/bin/tests/system/run.sh +++ b/bin/tests/system/run.sh @@ -30,12 +30,18 @@ while getopts "rnp:d:" flag; do done shift `expr $OPTIND - 1` -test $# -gt 0 || { echo "usage: $0 [-k|-n|-p ] test-directory" >&2; exit 1; } +if [ $# -eq 0 ]; then + echofail "Usage: $0 [-k] [-n] [-p ] [-r] test-directory [test-options]" >&2; + exit 1 +fi test=$1 shift -test -d $test || { echofail "$0: $test: no such test" >&2; exit 1; } +if [ ! -d test ]; then + echofail "$0: $test: no such test" >&2 + exit 1 +fi # Define the number of ports allocated for each test, and the lowest and # highest valid values for the "-p" option. @@ -52,10 +58,10 @@ maxvalid=`expr 65535 - $numport + 1` test "$baseport" -eq "$baseport" > /dev/null 2>&1 if [ $? -ne 0 ]; then - echofail "Must specify a numeric value for the port" + echofail "$0: $test: must specify a numeric value for the port" >&2 exit 1 elif [ $baseport -lt $minvalid -o $baseport -gt $maxvalid ]; then - echofail "The specified port must be in the range $minvalid to $maxvalid" >&2 + echofail "$0: $test: the specified port must be in the range $minvalid to $maxvalid" >&2 exit 1 fi @@ -108,7 +114,7 @@ if [ $result -eq 0 ]; then else echowarn "I:$test:Prerequisites missing, skipping test." [ $result -eq 255 ] && echowarn "R:$test:SKIPPED" || echowarn "R:$test:UNTESTED" - echoend "E:$test:`date $dateargs`" >&2 + echoend "E:$test:`date $dateargs`" exit 0 fi @@ -150,11 +156,11 @@ $PERL stop.pl $test status=`expr $status + $?` if [ $status != 0 ]; then - echofail "R:$test:FAIL" - # Don't clean up - we need the evidence. - find . -name core -exec chmod 0644 '{}' \; + echofail "R:$test:FAIL" + # Do not clean up - we need the evidence. + find . -name core -exec chmod 0644 '{}' \; else - echopass "R:$test:PASS" + echopass "R:$test:PASS" if $clean then rm -f $SYSTEMTESTTOP/random.data