Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(261)

Unified Diff: third_party/xdg-utils/tests/include/testcontrol.sh

Issue 151098: Patch from mdm@google.com... (Closed) Base URL: svn://chrome-svn/chrome/trunk/deps/
Patch Set: Created 11 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/xdg-utils/tests/include/testcontrol.sh
===================================================================
--- third_party/xdg-utils/tests/include/testcontrol.sh (revision 0)
+++ third_party/xdg-utils/tests/include/testcontrol.sh (revision 0)
@@ -0,0 +1,121 @@
+
+if [ -z "$IC_NUM" ] ; then
+ declare -i IC_NUM=1
+fi
+
+run_test() {
+## USAGE:
+# run_test test_func
+
+# if tests are being run with TET or the test runner
+if [ ! -z "$USING_TET" -o ! -z "$USING_TEST_RUNNER" ]; then
+ ## The TET framework REQUIRES variables of the form $ic1 ... $icN
+ ## where each variable is a list of test functions. Here, there is only
+ ## one test function per $icN variable. Each $icN variable MUST be present
+ ## in the $iclist
+ export ic$IC_NUM="$1"
+ export iclist="$iclist ic$IC_NUM"
+
+ ## The standalone test runner executes each function in $TEST_LIST
+ export TEST_LIST="$TEST_LIST $1"
+
+else # test is being run directly.
+ test_setup
+
+ ## Subshell is necessary for containment
+ ( "$1" )
+ test_cleanup
+fi
+IC_NUM=$(($IC_NUM+1))
+
+}
+
+repeat_test() {
+## USAGE:
+# repeat_test test_func N var1 ... varN var1_value1 ... var1_valueM ... varN_valueM
+# where N is the number of values to substiute and M is the number of
+# values each varable takes
+#
+# EXAMPLE
+# repeat_test copy_file 2 INPUT OUTPUT infile1 infile2 outfile1 outfile2
+#
+# NOTE - all variables MUST have the same number of arguments
+
+if [ "$#" -lt 4 ] ; then
+ echo "TEST SYNTAX ERROR: repeat_test() requires at least 4 arguments!"
+ exit 255
+fi
+
+FUNC="$1"
+VARS="$2"
+shift 2
+
+## get list of variables
+declare -i I=1
+while [ "$I" -le "$VARS" ]; do
+ eval "v$I=$1"
+ shift 1
+
+ eval "out=\$v$I"
+ I=$(($I+1))
+done
+
+#echo "----"
+
+## $LENGTH is the number of values each variable takes
+declare -i LENGTH=$(( $# / $VARS ))
+#echo "list size: $LENGTH"
+
+## Main loop: create a test function for each set of values.
+declare -i J=1
+while [ "$J" -le "$LENGTH" ] ; do
+ declare -i I=1
+ ## Begin test function string
+
+ # it is only safe to use $IC_NUM since run_test is used later in this function.
+ str="$FUNC-$J-$IC_NUM() {"
+
+ while [ "$I" -le "$VARS" ] ; do
+ ## Assign each value to appropriate variable
+ eval "var=\$v$I"
+ eval "value=\$$(( ($I-1)*$LENGTH+$J ))"
+ #echo "$var: $value"
+ str="$str
+ $var=\"$value\""
+
+ I=$(($I+1))
+ done
+ ## Close the test function and load it
+ str="$str
+ $FUNC
+ }"
+ #echo "$str"
+ eval "$str"
+ run_test "$FUNC-$J-$IC_NUM"
+
+ J=$(($J+1))
+done
+
+}
+
+. "$XDG_TEST_DIR/include/tempfile.sh"
+
+test_setup() {
+ get_guid "xdgt"
+ export XDG_TEST_ID="$GUID"
+ get_tmpsubdir "$XDG_TEST_DIR/tmp"
+ export XDG_TEST_TMPDIR="$TMPSUBDIR"
+ cd "$XDG_TEST_TMPDIR"
+
+ get_shortid "$XDG_TEST_DIR/tmp/shortid"
+ export XDG_TEST_SHORTID="$SHORTID"
+}
+
+test_cleanup() {
+ if [ -z "$XDG_TEST_DONT_CLEANUP" ] ; then
+ cd "$XDG_TEST_DIR"
+ # ALWAYS check what you pass to 'rm -rf'
+ [ -d "$XDG_TEST_TMPDIR" ] && rm -rf "$XDG_TEST_TMPDIR"
+ fi
+}
+
« no previous file with comments | « third_party/xdg-utils/tests/include/testassertions.sh ('k') | third_party/xdg-utils/tests/include/testfuncs.sh » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698