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)
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.")
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
ENDFOREACH()
ENDMACRO()
-IF(NOT enable_memcheck)
+#IF(NOT enable_memcheck)
### GENERIC ###
### MC ###
IF(HAVE_MC)
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()
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") {
#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;
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
}
# 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;