diff --git a/cmake/EigenTesting.cmake b/cmake/EigenTesting.cmake index 5f45b2be8..3850a1b11 100644 --- a/cmake/EigenTesting.cmake +++ b/cmake/EigenTesting.cmake @@ -107,6 +107,7 @@ endmacro(ei_add_test_internal) # # Again, ctest -R allows to run all matching tests. macro(ei_add_test testname) + set(cmake_tests_list "${cmake_tests_list}${testname}\n") file(READ "${testname}.cpp" test_source) set(parts 0) string(REGEX MATCHALL "CALL_SUBTEST_[0-9]+|EIGEN_TEST_PART_[0-9]+" diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 14c782e2e..5cea1a582 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -163,4 +163,4 @@ endif(CMAKE_COMPILER_IS_GNUCXX) ei_add_property(EIGEN_TESTING_SUMMARY "CXX_FLAGS: ${CMAKE_CXX_FLAGS}\n") ei_add_property(EIGEN_TESTING_SUMMARY "Sparse lib flags: ${SPARSE_LIBS}\n") - +configure_file(maketests.in ${CMAKE_BINARY_DIR}/maketests) diff --git a/test/maketests.in b/test/maketests.in new file mode 100755 index 000000000..cb288ae7d --- /dev/null +++ b/test/maketests.in @@ -0,0 +1,22 @@ +#!/bin/bash + +if [ $# == 0 -o $# -ge 3 ] +then + echo "usage: ./maketests regexp [jobs]" + echo " makes tests matching the regexp, with concurrent make jobs" + exit 0 +fi + +SRCDIR=${CMAKE_CURRENT_SOURCE_DIR} +TESTSLIST="${cmake_tests_list}" +targets_to_make=`echo "$TESTSLIST" | grep "$1" | sed s/^/test_/g | xargs` + +if [ $# == 1 ] +then + make $targets_to_make +fi + +if [ $# == 2 ] +then + make -j $2 $targets_to_make +fi diff --git a/test/runtest.sh b/test/runtest.sh index a9e1fd0e1..31d1ca654 100755 --- a/test/runtest.sh +++ b/test/runtest.sh @@ -9,7 +9,7 @@ magenta='\E[35m' cyan='\E[36m' white='\E[37m' -if ! ./test_$1 r20 > /dev/null 2> .runtest.log ; then +if ! ./test_$1 > /dev/null 2> .runtest.log ; then echo -e $red Test $1 failed: $black echo -e $blue cat .runtest.log