Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 14 Apr 2012 00:33:08 +0000 (UTC)
From:      Monthadar Al Jaberi <monthadar@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   svn commit: r234253 - projects/net80211_testsuite/wtap
Message-ID:  <201204140033.q3E0X8mi004881@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: monthadar
Date: Sat Apr 14 00:33:07 2012
New Revision: 234253
URL: http://svn.freebsd.org/changeset/base/234253

Log:
  * Modified so that the script dynamically finds and runs all test;
  * Modified so that the test script returns 0 on success otherwise failure,
  which is returned in teardown();
  * The script can be either run with 'all' flag or 'one XXX' flag which
  runs only the specified test;
  * Added -q which redirects output for each test to its own file, but still
  prints out some output for feedback and eventually how many and which tests
  failed;
  * Added -c which removes old logs, otherwise new logs are appended;
  
  Approved by: adrian (mentor)

Modified:
  projects/net80211_testsuite/wtap/run-all.sh

Modified: projects/net80211_testsuite/wtap/run-all.sh
==============================================================================
--- projects/net80211_testsuite/wtap/run-all.sh	Sat Apr 14 00:27:50 2012	(r234252)
+++ projects/net80211_testsuite/wtap/run-all.sh	Sat Apr 14 00:33:07 2012	(r234253)
@@ -1,10 +1,149 @@
 #!/bin/sh
 
-TEST_CASES="001 002 003 004 005"
+# This program requires:
+# + wtap - to create/destroy the wtap instances
+# + vis_map - to setup the visibility map between wtap instances
+# + vimage - to configure/destroy vtap nodes
 
-for i in ${TEST_CASES}; do
-	echo "=== Test ${i}"
-	${i}/test.sh setup
-	${i}/test.sh run
-	${i}/test.sh teardown
+# The name of the test that will be printed in the begining
+TEST_NAME="Net80211s test script"
+
+# Return value from this test, 0 success failure otherwise
+TEST_RESULT=127
+
+# Global flags
+FLAG_QUITE="0"
+CLEAR_LOGS=0
+
+RUN_ALL_TESTS=0
+RUN_TEST_NBR=0
+
+cmd()
+{
+	echo "*** " $*
+	$*
+}
+
+info()
+{
+	echo "*** " $*
+}
+
+descr()
+{
+	cat <<EOL
+
+This script runs either one specific or all tests.
+
+EOL
+}
+
+setup()
+{
+	info "SETTING UP TEST ENVIROMENT: ${TEST_NAME}"
+}
+
+run()
+{
+	NBR_TESTS=0 NBR_FAIL=0
+
+	ALL_TEST=`find * -type d | egrep '^[0-9]*$'`
+	info "Running tests: ${ALL_TEST}"
+
+	for i in ${ALL_TEST}; do
+		NBR_TESTS="`expr ${NBR_TESTS} + 1`"
+		info "Running test: ${i}"
+		cd ${i}
+		if [ ${CLEAR_LOGS} = 1 ]; then
+			rm out.log
+		fi
+		if [ ${FLAG_QUITE} = 1 ]; then
+			./test.sh setup run teardown >> out.log
+		else
+			./test.sh setup run teardown
+		fi
+		if [ "$?" != "0" ]; then
+			info "TEST ${i} FAILED !!!"
+			NBR_FAIL="`expr ${NBR_FAIL} + 1`"
+		fi
+		cd ..
+	done
+
+ 	if [ $NBR_FAIL = 0 ]; then
+ 		info "TESTS PASSED"
+ 		TEST_RESULT=0
+ 	else
+		info "FAILED ${NBR_FAIL} of ${NBR_TESTS} TESTS"
+ 	fi
+}
+
+run_one()
+{
+	NBR_FAIL=0
+
+	cd ${RUN_TEST_NBR}
+	if [ ${CLEAR_LOGS} = 1 ]; then
+		rm out
+	fi
+	if [ ${FLAG_QUITE} = 1 ]; then
+		./test.sh all >> out
+	else
+		./test.sh all
+	fi
+
+	if [ "$?" = "0" ]; then
+		info "TEST PASSED"
+	else
+		info "TEST FAILED"
+		NBR_FAIL="`expr ${NBR_FAIL} + 1`"
+	fi
+	cd ..
+}
+
+teardown()
+{
+	exit ${TEST_RESULT}
+}
+
+while [ "$#" -gt "0" ]
+do
+	case $1 in
+		-c)
+			CLEAR_LOGS=1
+		;;
+		-q)
+			FLAG_QUITE=1
+		;;
+		'all')
+			RUN_ALL_TESTS=1
+		;;
+		'one')
+			RUN_TEST_NBR=$2
+			shift
+		;;
+		'descr')
+			descr
+			exit 0
+		;;
+                *)
+			echo "$0 {all | one test_nbr | descr [-q -c]}"
+			exit 127
+		;;
+        esac
+        shift
 done
+
+if [ ${RUN_ALL_TESTS} -eq 1 ]; then
+	setup
+	run
+	teardown
+elif [ ${RUN_TEST_NBR} -gt 0 ]; then
+	setup
+	run_one
+	teardown
+else
+	echo "$0 {all | one test_nbr | descr [-q -c]}"
+	exit 127
+fi
+
+exit 0
\ No newline at end of file



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201204140033.q3E0X8mi004881>