From 782233a39ecce8613613c4ebe4c5264475a9a5ed Mon Sep 17 00:00:00 2001 From: =?utf8?q?Paul=20B=C3=A9daride?= Date: Tue, 29 Apr 2014 16:52:31 +0200 Subject: [PATCH] Fix memcheck with new Add_test macros --- buildtools/Cmake/AddTests.cmake | 2 +- .../Cmake/Scripts/generate_memcheck_tests.pl | 24 +++++++++++++++---- 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/buildtools/Cmake/AddTests.cmake b/buildtools/Cmake/AddTests.cmake index 9b93dba99d..e357023a23 100644 --- a/buildtools/Cmake/AddTests.cmake +++ b/buildtools/Cmake/AddTests.cmake @@ -340,7 +340,7 @@ if(NOT enable_memcheck) ENDFOREACH() FOREACH (ALLREDUCE_COLL_LARGE ompi_ring_segmented) - ADD_TESH(smpi-allreduce-coll-${ALLREDUCE_COLL_LARGE} --cfg smpi/allreduce:${ALLREDUCE_COLL_LARGE} --setenv srcdir=${CMAKE_HOME_DIRECTORY}/teshsuite/smpi --cd ${CMAKE_BINARY_DIR}/teshsuite/smpi ${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/allreduce_coll_large.tesh) + ADD_TESH(smpi-allreduce-coll-large-${ALLREDUCE_COLL_LARGE} --cfg smpi/allreduce:${ALLREDUCE_COLL_LARGE} --setenv srcdir=${CMAKE_HOME_DIRECTORY}/teshsuite/smpi --cd ${CMAKE_BINARY_DIR}/teshsuite/smpi ${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/allreduce_coll_large.tesh) ENDFOREACH() FOREACH (ALLTOALL_COLL 2dmesh 3dmesh pair pair_one_barrier pair_light_barrier diff --git a/buildtools/Cmake/Scripts/generate_memcheck_tests.pl b/buildtools/Cmake/Scripts/generate_memcheck_tests.pl index 85dd3497e1..d6b1a32a14 100755 --- a/buildtools/Cmake/Scripts/generate_memcheck_tests.pl +++ b/buildtools/Cmake/Scripts/generate_memcheck_tests.pl @@ -38,6 +38,7 @@ my ($path); my ($dump) = 0; my (%environ); my ($tesh_file); +my ($factories); my ($config_var); my ($name_test); my ($indent); @@ -54,19 +55,24 @@ while ( defined( $line = ) ) { } if ($dump) { $line =~ s/^ //; - if ( $line =~ /^\s*ADD_TEST\(\S+\s+\S*TESH\_COMMAND\}\s/ ) { + if ( $line =~ /^\s*(?:ADD_TEST\(\S+\s+\S*TESH\_COMMAND\}\s|ADD_TESH\(|ADD_TESH_FACTORIES)/ ) { undef %environ; $config_var = ""; + $factories = ""; $path = ""; $nb_test++; $tesh_file = ""; $name_test = ""; $indent = ""; - - if ( $line =~ /^(\s*)ADD_TEST\((\S+)/ ) { + if ( $line =~ /^(\s*)ADD_(?:TEST|TESH)\((\S+)/ ) { $indent = ($1); $name_test = ($2); } + if ( $line =~ /^(\s*)ADD_TESH_FACTORIES\((\S+)\s+\"(\S+)\"/ ) { + $indent = ($1); + $name_test = ($2); + $factories = ($3); + } while ( $line =~ /--cfg\s+(\S+)/g ) { $config_var = "--cfg=$1 $config_var"; } @@ -142,7 +148,17 @@ while ( defined( $line = ) ) { $input =~ s/%/%%/g; $command = "sh -c \"printf '$input' > $file\""; } - print "${indent}ADD_TEST(memcheck-$name_test-$count $command --cd $path\/)\n"; + if ($factories) { + foreach my $factory (split(';', $factories)) { + print "${indent}ADD_TEST(NAME memcheck-$name_test-$factory-$count\n"; + print "${indent} WORKING_DIRECTORY $path\/\n"; + print "${indent} COMMAND $command --cfg=contexts/factory:$factory)\n"; + } + } else { + print "${indent}ADD_TEST(NAME memcheck-$name_test-$count\n"; + print "${indent} WORKING_DIRECTORY $path\/\n"; + print "${indent} COMMAND $command)\n"; + } $input = ""; #push @test_list, "memcheck-$name_test-$count"; $count++; -- 2.20.1