if(VALGRIND_EXE)
message(STATUS "Found valgrind: ${VALGRIND_EXE}")
- SET(VALGRIND_COMMAND "${CMAKE_HOME_DIRECTORY}/tools/cmake/scripts/my_valgrind.pl")
- SET(MEMORYCHECK_COMMAND "${CMAKE_HOME_DIRECTORY}/tools/cmake/scripts/my_valgrind.pl")
+ SET(ENV{VALGRIND_COMMAND} "${CMAKE_HOME_DIRECTORY}/tools/cmake/scripts/my_valgrind.pl")
endif()
if(enable_memcheck_xml)
if(NEW_VALGRIND_VERSION)
message(STATUS "Valgrind version: ${NEW_VALGRIND_VERSION}")
execute_process(COMMAND ${CMAKE_HOME_DIRECTORY}/tools/cmake/scripts/generate_memcheck_tests.pl ${CMAKE_HOME_DIRECTORY} ${CMAKE_HOME_DIRECTORY}/tools/cmake/Tests.cmake OUTPUT_FILE ${CMAKE_BINARY_DIR}/memcheck_tests.cmake)
- 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}")
+ set(ENV{VALGRIND_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: $ENV{VALGRIND_COMMAND_OPTIONS}")
else()
set(enable_memcheck false)
message(STATUS "Error: Command valgrind not found --> enable_memcheck autoset to false.")
-Denable_memcheck_xml=ON $WORKSPACE
ctest -D ExperimentalBuild -V
-ctest -D ExperimentalMemCheck || true
+ctest -D ExperimentalTest || true
+
+unset VALGRIND_COMMAND
+unset VALGRIND_COMMAND_OPTIONS
cd $WORKSPACE/build
if [ -f Testing/TAG ] ; then
###
# exec the command line
- my @cmdline = quotewords( '\s+', 0, $cmd{'cmd'} );
+ my @cmdline;
+ if(defined $ENV{VALGRIND_COMMAND}) {
+ push @cmdline, $ENV{VALGRIND_COMMAND};
+ push @cmdline, split(" ", $ENV{VALGRIND_COMMAND_OPTIONS});
+ if($cmd{'timeout'} ne 'no'){
+ $cmd{'timeout'}=$cmd{'timeout'}*20
+ }
+ }
+ push @cmdline, quotewords( '\s+', 0, $cmd{'cmd'} );
my $input = defined($cmd{'in'})? join("\n",@{$cmd{'in'}}) : "";
my $output = " " x 10240; $output = ""; # Preallocate 10kB, and reset length to 0
$cmd{'got'} = \$output;