From 620666cb593cbba6f9de6921982ad017f2cb7939 Mon Sep 17 00:00:00 2001 From: navarrop Date: Tue, 11 Jan 2011 11:27:29 +0000 Subject: [PATCH] Update perl script for generate memcheck test with new tesh. git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@9392 48e7efb5-ca39-0410-a469-dd3cf9ba447f --- buildtools/Cmake/generate_memcheck_tests.pl | 203 ++++++++++++++------ 1 file changed, 140 insertions(+), 63 deletions(-) diff --git a/buildtools/Cmake/generate_memcheck_tests.pl b/buildtools/Cmake/generate_memcheck_tests.pl index bba73157c4..5a199bf89e 100755 --- a/buildtools/Cmake/generate_memcheck_tests.pl +++ b/buildtools/Cmake/generate_memcheck_tests.pl @@ -11,78 +11,155 @@ my($proj_dir)=$ARGV[0]; open MAKETEST, $ARGV[1] or die "Unable to open $ARGV[1]. $!\n"; my(@test_list)=(); - +my($nb_test)=0; my($line); +my($path); my($dump)=0; -while(defined($line=)) { +my($srcdir); +my($bindir); +my($tesh_file); +my($config_var); +my($name_test); + +while(defined($line=)) +{ chomp $line; if($line =~ /BEGIN TESH TESTS/) { - $dump = 1; - next; - } + $dump = 1; + next; + } if($line =~ /END TESH TESTS/) { - $dump = 0; - last; - } - if($dump) { - if($line =~ /ADD_TEST/) - { - if($line =~ /ADD_TEST\(([\S]+)\s+.*\$\{CMAKE_BINARY_DIR\}\/bin\/tesh\s*--cd\s*(\S+)\s+(.*)\)$/) - { - my($name_test,$path,$tesh_file)=($1,$2,$3); - $path=~ s/\"//g; - my($complete_tesh_file)=$path."/".$tesh_file; - my($count)=0; - my($count_first)=0; - my($count_second)=0; - $complete_tesh_file =~ s/\$\{CMAKE_BINARY_DIR\}/$proj_dir/g; - $complete_tesh_file =~ s/\$\{CMAKE_HOME_DIRECTORY\}/$proj_dir/g; - open TESH_FILE, $complete_tesh_file or die "Unable to open $complete_tesh_file $!\n"; - my($l); - while(defined($l=)) + $dump = 0; + last; + } + if($dump) + { + if($line =~ /ADD_TEST/) + { $srcdir = ""; + $bindir = ""; + $config_var = ""; + $path = ""; + $nb_test++; + $tesh_file = ""; + $name_test = ""; + + if($line =~ /ADD_TEST\(([\S]+)/) + { + $name_test =($1); + } + if($line =~ /--cfg\s*\t*(\S*)/) + { + $config_var = "--cfg $1 $config_var"; + } + if($line =~ /--cd\s*(\S+)/) + { + $path=($1); + $path=~ s/\"//g; + $path =~ s/\$\{CMAKE_BINARY_DIR\}/$proj_dir/g; + $path =~ s/\$\{CMAKE_HOME_DIRECTORY\}/$proj_dir/g; + } + if($line =~ /--setenv\s*\t*(\S*)\=(\S*)/) + { + my($env_var,$value_var)=($1,$2); + $value_var =~ s/\$\{CMAKE_BINARY_DIR\}/$proj_dir/g; + $value_var =~ s/\$\{CMAKE_HOME_DIRECTORY\}/$proj_dir/g; + if($env_var =~ /srcdir/) + { + $srcdir = $value_var; + } + if($env_var =~ /bindir/) + { + $bindir = $value_var; + } + } + if($line =~ /([\S]+)[)]$/) + { + $tesh_file =($1); + $tesh_file =~ s/\$\{CMAKE_BINARY_DIR\}/$proj_dir/g; + $tesh_file =~ s/\$\{CMAKE_HOME_DIRECTORY\}/$proj_dir/g; + if ( -e "$tesh_file") + { + + } + elsif( -e "$path/$tesh_file") + { + $tesh_file = "$path\/$tesh_file"; + + } + else + { + die; + } + + } + +# print "test_name = $name_test\n"; +# print "$config_var\n"; +# print "path = $path\n"; +# print "srcdir=$srcdir\n"; +# print "bindir=$bindir\n"; +# print "tesh_file = $tesh_file\n"; +# print "\n\n"; + + my($count)=0; + my($count_first)=0; + my($count_second)=0; + open TESH_FILE, $tesh_file or die "Unable to open $tesh_file $!\n"; + my($l); + while(defined($l=)) + { + chomp $l; + if($l =~ /^\$ (.*)$/) + { + my($command) = $1; + $command =~ s/\${srcdir:=.}/$srcdir/g; + $command =~ s/\${bindir:=.}/$bindir/g; + $command =~ s/\${EXEEXT:=}//g; + $command =~ s/\$SG_TEST_EXENV //g; + $command =~ s/\$SG_TEST_ENV //g; + $command =~ s/\$SG_EXENV_TEST //g; + $command =~ s/\$EXEEXT//g; + $command =~ s/\${EXEEXT}//g; + $command =~ s/\${srcdir}/\${CMAKE_HOME_DIRECTORY}\/src/g; + $command =~ s/ \$ARGS//g; + $command =~ s/ \$@ //g; + $command =~ s/..\/..\/bin\/smpirun/\${CMAKE_BINARY_DIR\}\/bin\/smpirun/g; + if($command =~ /^[^\/\$\s]+\//) { + $command = $path."/".$command; + $command =~ s/\/(.?\/)+/\//g; + } + if ($config_var) + { + $command = "$command $config_var"; + } + print "ADD_TEST(memcheck-$name_test-$count $command --cd $path\/)\n"; + #push @test_list, "memcheck-$name_test-$count"; + $count++; + } + if($l =~ /^\& (.*)$/) + { + last; + } + } + close(TESH_FILE); + } + elsif($line =~ /set_tests_properties/) { - chomp $l; - if($l =~ /^\$ (.*)$/) - { - my($command) = $1; - $command =~ s/\${srcdir:=.}/./g; - $command =~ s/\${EXEEXT:=}//g; - $command =~ s/\$SG_TEST_EXENV //g; - $command =~ s/\$SG_TEST_ENV //g; - $command =~ s/\$SG_EXENV_TEST //g; - $command =~ s/\$EXEEXT//g; - $command =~ s/\${EXEEXT}//g; - $command =~ s/\${srcdir}/\${CMAKE_HOME_DIRECTORY}\/src/g; - $command =~ s/ \$ARGS//g; - $command =~ s/ \$@ //g; - $command =~ s/..\/..\/bin\/smpirun/\${CMAKE_BINARY_DIR\}\/bin\/smpirun/g; - if($command =~ /^[^\/\$\s]+\//) { - $command = $path."/".$command; - $command =~ s/\/(.?\/)+/\//g; - } - print "ADD_TEST(memcheck-$name_test-$count $command --cd $path\/)\n"; - #push @test_list, "memcheck-$name_test-$count"; - $count++; - } - if($l =~ /^\& (.*)$/) - { - last; - } + if($line =~ /set_tests_properties\(([\S]+)/) + { + my($name_temp)=($1); + $line =~ s/$name_temp/memcheck-$name_temp-0/g; + print $line."\n"; + } } - close(TESH_FILE); - } - else - { - next; - } - } - else - { - print $line."\n"; - } - } + else + { + print $line."\n"; + } + } } close(MAKETEST); +#print "nb_test = $nb_test\n"; #print "set(MEMCHECK_LIST\n"; #print (join("\n", @test_list)); #print ")\n"; -- 2.20.1