From: degomme Date: Sat, 16 Apr 2016 20:00:30 +0000 (+0200) Subject: new cleaner attempt, using TESH_OPTION X-Git-Tag: v3_13~94 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/4716eb134de74f09bda227c6f3bdea71924acc8c new cleaner attempt, using TESH_OPTION --- diff --git a/tools/cmake/Modules/FindValgrind.cmake b/tools/cmake/Modules/FindValgrind.cmake index 09439dc2a5..f4aee7adda 100644 --- a/tools/cmake/Modules/FindValgrind.cmake +++ b/tools/cmake/Modules/FindValgrind.cmake @@ -11,7 +11,7 @@ find_program(VALGRIND_EXE if(VALGRIND_EXE) message(STATUS "Found valgrind: ${VALGRIND_EXE}") - SET(ENV{VALGRIND_COMMAND} "${CMAKE_HOME_DIRECTORY}/tools/cmake/scripts/my_valgrind.pl") + set (TESH_OPTION ${TESH_OPTION} --setenv VALGRIND_COMMAND=${CMAKE_HOME_DIRECTORY}/tools/cmake/scripts/my_valgrind.pl) endif() if(enable_memcheck_xml) @@ -23,9 +23,9 @@ if(VALGRIND_EXE) 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}") - 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(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}") +# 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 (TESH_OPTION ${TESH_OPTION} --setenv VALGRIND_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 "Tesh options: ${TESH_OPTION}") else() set(enable_memcheck false) message(STATUS "Error: Command valgrind not found --> enable_memcheck autoset to false.") diff --git a/tools/cmake/Tests.cmake b/tools/cmake/Tests.cmake index 2ab3db5361..352d2f0cbc 100644 --- a/tools/cmake/Tests.cmake +++ b/tools/cmake/Tests.cmake @@ -8,7 +8,13 @@ ENDIF() SET(TESH_COMMAND ${PERL_EXECUTABLE} ${CMAKE_BINARY_DIR}/bin/tesh) IF(CMAKE_HOST_WIN32) - SET(TESH_OPTION $TESH_OPTION --timeout 50) + SET(TESH_OPTION ${TESH_OPTION} --timeout 50) +ENDIF() + + +IF(enable_memcheck) + INCLUDE(FindValgrind) + INCLUDE(${CMAKE_BINARY_DIR}/memcheck_tests.cmake) ENDIF() #some tests may take forever on non futexes systems, using busy_wait with n cores < n workers @@ -42,7 +48,7 @@ MACRO(ADD_TESH_FACTORIES NAME FACTORIES) ENDFOREACH() ENDMACRO() -IF(NOT enable_memcheck) +#IF(NOT enable_memcheck) ### GENERIC ### ### MC ### IF(HAVE_MC) @@ -114,12 +120,8 @@ IF(NOT enable_memcheck) SET(TESH_CLASSPATH "${CMAKE_BINARY_DIR}/examples/java/:${CMAKE_BINARY_DIR}/teshsuite/java/:${SIMGRID_JAR}") ENDIF() ENDIF() -ENDIF() +#ENDIF() ## OTHER ## ADD_TEST(testall ${CMAKE_BINARY_DIR}/testall) -IF(enable_memcheck) - INCLUDE(FindValgrind) - INCLUDE(${CMAKE_BINARY_DIR}/memcheck_tests.cmake) -ENDIF() diff --git a/tools/cmake/scripts/my_valgrind.pl b/tools/cmake/scripts/my_valgrind.pl index 3b273d5d61..1b9067c7bd 100755 --- a/tools/cmake/scripts/my_valgrind.pl +++ b/tools/cmake/scripts/my_valgrind.pl @@ -13,7 +13,7 @@ my @argv = ("valgrind"); my $count = 0; while (defined(my $arg = shift)) { - print "arg($count)$arg\n"; + #print "arg($count)$arg\n"; if ($arg =~ m!/smpirun$!) { @argv = ( $arg, "-wrapper", "@argv" ); } elsif ($arg eq "--cd") { @@ -30,5 +30,5 @@ while (defined(my $arg = shift)) { #print "COMMAND : $bin $option $cd $path\n"; #print "cd $path\n"; #print "valgrind --trace-children=yes --leak-check=full --show-reachable=yes --track-origins=yes --read-var-info=no $bin $option\n"; -print "@argv\n\n"; +#print "@argv\n\n"; system @argv; diff --git a/tools/tesh/tesh.pl b/tools/tesh/tesh.pl index cce9144a07..739b37ed35 100755 --- a/tools/tesh/tesh.pl +++ b/tools/tesh/tesh.pl @@ -373,7 +373,8 @@ sub exec_cmd { my @cmdline; if(defined $ENV{VALGRIND_COMMAND}) { push @cmdline, $ENV{VALGRIND_COMMAND}; - push @cmdline, split(" ", $ENV{VALGRIND_COMMAND_OPTIONS}); + my $noquotes = substr $ENV{VALGRIND_OPTIONS}, 1, -1; + push @cmdline, split(" ", $noquotes); if($cmd{'timeout'} ne 'no'){ $cmd{'timeout'}=$cmd{'timeout'}*20 } @@ -790,7 +791,7 @@ sub cd_cmd($) { # Command setenv. Gets "variable=content", and update the environment accordingly sub setenv_cmd($) { my $arg = shift; - if ( $arg =~ /^(.*)=(.*)$/ ) { + if ( $arg =~ /^(.*?)=(.*)$/ ) { my ( $var, $ctn ) = ( $1, $2 ); print "[Tesh/INFO] setenv $var=$ctn\n"; $environ{$var} = $ctn;