Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
new cleaner attempt, using TESH_OPTION
authordegomme <augustin.degomme@unibas.ch>
Sat, 16 Apr 2016 20:00:30 +0000 (22:00 +0200)
committerdegomme <augustin.degomme@unibas.ch>
Sat, 16 Apr 2016 20:00:30 +0000 (22:00 +0200)
tools/cmake/Modules/FindValgrind.cmake
tools/cmake/Tests.cmake
tools/cmake/scripts/my_valgrind.pl
tools/tesh/tesh.pl

index 09439dc..f4aee7a 100644 (file)
@@ -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.")
index 2ab3db5..352d2f0 100644 (file)
@@ -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()
index 3b273d5..1b9067c 100755 (executable)
@@ -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;
index cce9144..739b37e 100755 (executable)
@@ -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;