Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
add enable_memcheck_xml flag, to output valgrind in xml format (necessary for jenkins).
authorAugustin Degomme <degomme@idpann.imag.fr>
Tue, 29 Apr 2014 13:39:43 +0000 (15:39 +0200)
committerAugustin Degomme <degomme@idpann.imag.fr>
Tue, 29 Apr 2014 13:54:26 +0000 (15:54 +0200)
This triggers enable_memcheck if not provided.

CMakeLists.txt
buildtools/Cmake/Modules/FindValgrind.cmake
buildtools/Cmake/Option.cmake

index edd9041..e90ed43 100644 (file)
@@ -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)
 
index 8fb2514..559f15e 100644 (file)
@@ -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)
index 1c56b6e..d8325ea 100644 (file)
@@ -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)