diff --git a/CMakeLists.txt b/CMakeLists.txt index 9734709..5cda168 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -248,6 +248,19 @@ if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR AND BUILD_TESTING) add_test(NAME conflict_set_blackbox_${hash} COMMAND driver ${TEST}) endforeach() + find_program(VALGRIND_EXE valgrind) + if(VALGRIND_EXE AND NOT CMAKE_CROSSCOMPILING) + list(LENGTH CORPUS_TESTS len) + math(EXPR last "${len} - 1") + set(partition_size 100) + foreach(i RANGE 0 ${last} ${partition_size}) + list(SUBLIST CORPUS_TESTS ${i} ${partition_size} partition) + add_test(NAME conflict_set_blackbox_valgrind_${i} + COMMAND ${VALGRIND_EXE} --error-exitcode=99 -- + $ ${partition}) + endforeach() + endif() + # scripted tests. Written manually to fill in anything libfuzzer couldn't # find. if(NOT CMAKE_CROSSCOMPILING) @@ -268,19 +281,14 @@ if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR AND BUILD_TESTING) ${Python3_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/test_conflict_set.py test ${TEST} --build-dir ${CMAKE_CURRENT_BINARY_DIR}) - endforeach() - endif() - - find_program(VALGRIND_EXE valgrind) - if(VALGRIND_EXE AND NOT CMAKE_CROSSCOMPILING) - list(LENGTH CORPUS_TESTS len) - math(EXPR last "${len} - 1") - set(partition_size 100) - foreach(i RANGE 0 ${last} ${partition_size}) - list(SUBLIST CORPUS_TESTS ${i} ${partition_size} partition) - add_test(NAME conflict_set_blackbox_valgrind_${i} - COMMAND ${VALGRIND_EXE} --error-exitcode=99 -- - $ ${partition}) + if(VALGRIND_EXE AND NOT CMAKE_CROSSCOMPILING) + add_test( + NAME script_test_${TEST}_valgrind + COMMAND + ${VALGRIND_EXE} ${Python3_EXECUTABLE} + ${CMAKE_CURRENT_SOURCE_DIR}/test_conflict_set.py test ${TEST} + --build-dir ${CMAKE_CURRENT_BINARY_DIR}) + endif() endforeach() endif()