summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xcpp/tests/run-unit-tests29
1 files changed, 20 insertions, 9 deletions
diff --git a/cpp/tests/run-unit-tests b/cpp/tests/run-unit-tests
index 40ecf5f528..f066a38205 100755
--- a/cpp/tests/run-unit-tests
+++ b/cpp/tests/run-unit-tests
@@ -1,26 +1,37 @@
#!/bin/sh
#
-# Test library names (without .so) can be specified on the command
-# line and/or in env var UNIT_TESTS.
+# Library names (without path or .so) and CppUnit test paths can be
+# specified on the command line or in env var UNIT_TESTS. For example:
#
+# Selected test classes:
+# ./run-unit-tests ValueTest ClientChannelTest
+#
+# Individual test method
+# ./run-unit-tests ValueTest :ValueTest::testStringValueEquals
+#
+# Build and run selected tests:
+# make check TESTS=run-unit-tests UNIT_TESTS=ClientChannelTest
+#
-# Default VALGRIND from the path unless we were called by make.
+# Default VALGRIND from the path and $srcdir to . but
+# don't override values set by make.
test -z "$VALGRIND" -a -z "$MAKEFLAGS" && VALGRIND=`which valgrind` 2>/dev/null
-
test -z "$srcdir" && srcdir=.
+
rm -f valgrind.out
vg_log=--log-file-exactly=valgrind.out
source $srcdir/setup
for u in $* $UNIT_TESTS ; do
case $u in
- :*) TEST="$u" ;; # A test path.
- *) TEST="$pwd/.libs/$u.so" # A test library.
+ :*) TEST_ARGS="$TEST_ARGS $u" ;; # A test path.
+ *) TEST_ARGS="$TEST_ARGS $pwd/.libs/$u.so" ;; # A test library.
esac
- TESTS="$TESTS $TEST" ;
done
-test -z "$TESTS" && TESTS="$pwd/.libs/*Test.so"
+# If none specified, run all tests in .libs
+test -z "$TEST_ARGS" && TEST_ARGS="$pwd/.libs/*Test.so"
fail=0
-$vg DllPlugInTester -c -b $TESTS || fail=1
+
+$vg DllPlugInTester -c -b $TEST_ARGS || fail=1
vg_check valgrind.out || fail=1
exit $fail