Merge pull request #160 from JoakimSoderberg/cmake_memcheck_fix
Fix so that valgrind checks actually works with CMake.
This commit is contained in:
@@ -394,7 +394,7 @@ if (NOT JANSSON_WITHOUT_TESTS)
|
|||||||
# enable valgrind
|
# enable valgrind
|
||||||
set(CMAKE_MEMORYCHECK_COMMAND valgrind)
|
set(CMAKE_MEMORYCHECK_COMMAND valgrind)
|
||||||
set(CMAKE_MEMORYCHECK_COMMAND_OPTIONS
|
set(CMAKE_MEMORYCHECK_COMMAND_OPTIONS
|
||||||
"--leak-check=full --show-reachable=yes --track-origins=yes -q")
|
"--error-exitcode=1 --leak-check=full --show-reachable=yes --track-origins=yes -q")
|
||||||
|
|
||||||
set(MEMCHECK_COMMAND
|
set(MEMCHECK_COMMAND
|
||||||
"${CMAKE_MEMORYCHECK_COMMAND} ${CMAKE_MEMORYCHECK_COMMAND_OPTIONS}")
|
"${CMAKE_MEMORYCHECK_COMMAND} ${CMAKE_MEMORYCHECK_COMMAND_OPTIONS}")
|
||||||
@@ -438,11 +438,12 @@ if (NOT JANSSON_WITHOUT_TESTS)
|
|||||||
# Create executables and tests/valgrind tests for API tests.
|
# Create executables and tests/valgrind tests for API tests.
|
||||||
foreach (test ${api_tests})
|
foreach (test ${api_tests})
|
||||||
build_testprog(${test} ${PROJECT_SOURCE_DIR}/test/suites/api)
|
build_testprog(${test} ${PROJECT_SOURCE_DIR}/test/suites/api)
|
||||||
add_test(${test} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${test})
|
|
||||||
|
|
||||||
if (TEST_WITH_VALGRIND)
|
if (JANSSON_TEST_WITH_VALGRIND)
|
||||||
add_test(memcheck_${test} ${MEMCHECK_COMMAND}
|
add_test(memcheck__${test}
|
||||||
${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${test})
|
${MEMCHECK_COMMAND} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${test})
|
||||||
|
else()
|
||||||
|
add_test(${test} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${test})
|
||||||
endif ()
|
endif ()
|
||||||
endforeach ()
|
endforeach ()
|
||||||
|
|
||||||
@@ -452,14 +453,29 @@ if (NOT JANSSON_WITHOUT_TESTS)
|
|||||||
set(SUITES encoding-flags valid invalid invalid-unicode)
|
set(SUITES encoding-flags valid invalid invalid-unicode)
|
||||||
foreach (SUITE ${SUITES})
|
foreach (SUITE ${SUITES})
|
||||||
file(GLOB TESTDIRS ${jansson_SOURCE_DIR}/test/suites/${SUITE}/*)
|
file(GLOB TESTDIRS ${jansson_SOURCE_DIR}/test/suites/${SUITE}/*)
|
||||||
|
|
||||||
foreach (TESTDIR ${TESTDIRS})
|
foreach (TESTDIR ${TESTDIRS})
|
||||||
if (IS_DIRECTORY ${TESTDIR})
|
if (IS_DIRECTORY ${TESTDIR})
|
||||||
get_filename_component(TNAME ${TESTDIR} NAME)
|
get_filename_component(TNAME ${TESTDIR} NAME)
|
||||||
add_test(${SUITE}__${TNAME}
|
|
||||||
${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/json_process ${TESTDIR})
|
set(SUITE_TEST_CMD ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/json_process)
|
||||||
|
|
||||||
|
if (JANSSON_TEST_WITH_VALGRIND)
|
||||||
|
add_test(memcheck__${SUITE}__${TNAME}
|
||||||
|
${MEMCHECK_COMMAND} ${SUITE_TEST_CMD} ${TESTDIR})
|
||||||
|
else()
|
||||||
|
add_test(${SUITE}__${TNAME}
|
||||||
|
${SUITE_TEST_CMD} ${TESTDIR})
|
||||||
|
endif()
|
||||||
|
|
||||||
if ((${SUITE} STREQUAL "valid" OR ${SUITE} STREQUAL "invalid") AND NOT EXISTS ${TESTDIR}/nostrip)
|
if ((${SUITE} STREQUAL "valid" OR ${SUITE} STREQUAL "invalid") AND NOT EXISTS ${TESTDIR}/nostrip)
|
||||||
add_test(${SUITE}__${TNAME}__strip
|
if (JANSSON_TEST_WITH_VALGRIND)
|
||||||
${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/json_process --strip ${TESTDIR})
|
add_test(memcheck__${SUITE}__${TNAME}__strip
|
||||||
|
${MEMCHECK_COMMAND} ${SUITE_TEST_CMD} --strip ${TESTDIR})
|
||||||
|
else()
|
||||||
|
add_test(${SUITE}__${TNAME}__strip
|
||||||
|
${SUITE_TEST_CMD} --strip ${TESTDIR})
|
||||||
|
endif()
|
||||||
endif ()
|
endif ()
|
||||||
endif ()
|
endif ()
|
||||||
endforeach ()
|
endforeach ()
|
||||||
|
|||||||
Reference in New Issue
Block a user