From f464c4a2175c9ea1c806633e9988b9cfafff7bc3 Mon Sep 17 00:00:00 2001 From: Augustin Degomme Date: Tue, 29 Apr 2014 15:39:43 +0200 Subject: [PATCH] add enable_memcheck_xml flag, to output valgrind in xml format (necessary for jenkins). This triggers enable_memcheck if not provided. --- CMakeLists.txt | 4 ++++ buildtools/Cmake/Modules/FindValgrind.cmake | 6 +++++- buildtools/Cmake/Option.cmake | 2 ++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index edd9041069..e90ed43bbb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -231,6 +231,10 @@ endif() include(${CMAKE_HOME_DIRECTORY}/buildtools/Cmake/MakeExe.cmake) ### Make tests +if(enable_memcheck_xml) + set(enable_memcheck true) +endif() + include(${CMAKE_HOME_DIRECTORY}/buildtools/Cmake/AddTests.cmake) include(${CMAKE_HOME_DIRECTORY}/buildtools/Cmake/CTestConfig.cmake) diff --git a/buildtools/Cmake/Modules/FindValgrind.cmake b/buildtools/Cmake/Modules/FindValgrind.cmake index 8fb251427e..559f15ee94 100644 --- a/buildtools/Cmake/Modules/FindValgrind.cmake +++ b/buildtools/Cmake/Modules/FindValgrind.cmake @@ -15,13 +15,17 @@ if(VALGRIND_EXE) SET(MEMORYCHECK_COMMAND "${CMAKE_HOME_DIRECTORY}/buildtools/Cmake/Scripts/my_valgrind.pl") endif() +if(enable_memcheck_xml) + SET(VALGRIND_EXTRA_COMMAND_OPTIONS "--xml=yes --xml-file=memcheck_test_%p.memcheck --child-silent-after-fork=yes") +endif() + if(VALGRIND_EXE) exec_program("${VALGRIND_EXE} --version " OUTPUT_VARIABLE "VALGRIND_VERSION") string(REGEX MATCH "[0-9].[0-9].[0-9]" NEW_VALGRIND_VERSION "${VALGRIND_VERSION}") if(NEW_VALGRIND_VERSION) message(STATUS "Valgrind version: ${NEW_VALGRIND_VERSION}") exec_program("${CMAKE_HOME_DIRECTORY}/buildtools/Cmake/Scripts/generate_memcheck_tests.pl ${CMAKE_HOME_DIRECTORY} ${CMAKE_HOME_DIRECTORY}/buildtools/Cmake/AddTests.cmake > ${CMAKE_HOME_DIRECTORY}/buildtools/Cmake/memcheck_tests.cmake" OUTPUT_VARIABLE SHUTT) - set(MEMORYCHECK_COMMAND_OPTIONS "--trace-children=yes --trace-children-skip=/usr/bin/*,/bin/* --leak-check=full --show-reachable=yes --track-origins=no --read-var-info=no --num-callers=20 --suppressions=${CMAKE_HOME_DIRECTORY}/tools/simgrid.supp --xml=yes --xml-file=memcheck_test_%p.memcheck --child-silent-after-fork=yes") + set(MEMORYCHECK_COMMAND_OPTIONS "--trace-children=yes --trace-children-skip=/usr/bin/*,/bin/* --leak-check=full --show-reachable=yes --track-origins=no --read-var-info=no --num-callers=20 --suppressions=${CMAKE_HOME_DIRECTORY}/tools/simgrid.supp ${VALGRIND_EXTRA_COMMAND_OPTIONS} ") message(STATUS "Valgrind options: ${MEMORYCHECK_COMMAND_OPTIONS}") else() set(enable_memcheck false) diff --git a/buildtools/Cmake/Option.cmake b/buildtools/Cmake/Option.cmake index 1c56b6eba5..d8325ea17a 100644 --- a/buildtools/Cmake/Option.cmake +++ b/buildtools/Cmake/Option.cmake @@ -28,7 +28,9 @@ option(enable_latency_bound_tracking "" off) option(enable_coverage "Enable coverage." off) mark_as_advanced(enable_coverage) option(enable_memcheck "Enable memcheck." off) +option(enable_memcheck_xml "Enable memcheck with xml output." off) mark_as_advanced(enable_memcheck) +mark_as_advanced(enable_memcheck_xml) option(enable_mallocators "Enable mallocators (disable only for debugging purpose)." on) option(enable_print_message "Enable print message during config." off) mark_as_advanced(enable_print_message) -- 2.20.1