X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/685d49b0d313553e4685c98b896b06f9a8f97f5c..d41f59b57dbce6d6baed56b99dd89f2d160702ad:/buildtools/Cmake/tesh.pl diff --git a/buildtools/Cmake/tesh.pl b/buildtools/Cmake/tesh.pl old mode 100644 new mode 100755 index 85ccacc6f9..a1ec8afc8f --- a/buildtools/Cmake/tesh.pl +++ b/buildtools/Cmake/tesh.pl @@ -1,106 +1,97 @@ -#!perl -w -use strict; -use IPC::Open3; - -if($#ARGV!=1) { - die "Usage: perl tesh.pl \n"; -} - -my($directory)=$ARGV[0]; -my($file)=$ARGV[1]; - -chdir("$directory"); -print "Change directory to \"$directory\"\n"; - -open SH_LIGNE, $file or die "Unable to open $file. $!\n"; - -my($line1); -my($line2); -my($execline); -my($ok)=0; -my(@result)=(); - -while(defined($line1=)) -{ - if($line1 =~ /^\$(.*)$/) #command line - { - $ok = 1; - @result = (); - $line1 =~ s/\$\{srcdir\:\=\.\}/./g; - $line1 =~ s/\$SG_TEST_EXENV//g; - $line1 =~ s/\$EXEEXT//g; - $line1 =~ s/\${EXEEXT:=}//g; - $line1 =~ s/^\$\ */.\//g; - $line1 =~ s/^.\/lua/lua/g; - $line1 =~ s/^.\/ruby/ruby/g; - chomp $line1; - $execline = $line1; - close(FILE_ERR); - close(FILE); - open3("&STDIN",\*FILE,\*FILE_ERR,"$execline") or die "cannot run $execline:\n$!"; - print "$execline"; - - } - elsif($line1 =~ /^\>(.*)$/) #expected result line - { - if($ok == 0){die "No command line$!";} - $line1 =~ s/^\> //g; - chomp $line1; - - if($line1 =~ /^.*\[.*\].*\[.*\/INFO\]/) - { - if(!defined($line2=)){die "Don't have FILE_ERR$!";} - } - else - { - if(!defined($line2=)){die "Don't have FILE$!";} - } - - if($line2 =~ /^.*$/) #command result line - { - $line2 =~ s/\r//g; - chomp $line2; - - if($line2 eq $line1) - { - push @result, "$line1 \n"; - } - else - { - print @result; - print "- $line1\n"; - print "+ $line2\n"; - print " NOK"; - die; - } - } - else - { - print @result; - print "- $line1\n"; - print "+ $line2\n"; - print " NOK"; - die; - } - } - else - { - if($ok == 1) - { - print " OK\n"; - $ok = 0; - } - else - { - print " erreur\n"; - } - } -} -if($ok == 1) -{ - print " OK\n"; - $ok = 0; -} -close(SH_LIGNE); -close(FILE_ERR); +#! /usr/bin/perl -w + +use strict; + +if($#ARGV!=2){die "Usage: tesh.pl --cd \n";} +my($line1); +my($line2); +my($execline); +my($ok)=0; +my($nb_arg)=0; + +do{ + if($ARGV[$nb_arg] =~ /^--cd$/) + { + $nb_arg++; + my($directory)=$ARGV[$nb_arg]; + chdir("$directory"); + print "Change directory to \"$directory\"\n"; + } + $nb_arg++; +}while(($nb_arg-1)!=$#ARGV); + +my($file)=$ARGV[$nb_arg-1]; +open SH_LIGNE, $file or die "Unable to open $file. $!\n"; + +while(defined($line1=)) +{ + if($line1 =~ /^\$/){ #command line + $ok = 1; + $line1 =~ s/\$\{srcdir\:\=\.\}/./g; + $line1 =~ s/\$SG_TEST_EXENV//g; + $line1 =~ s/\$SG_EXENV_TEST//g; + $line1 =~ s/\$EXEEXT//g; + $line1 =~ s/\${EXEEXT:=}//g; + $line1 =~ s/^\$\ *//g; + $line1 =~ s/^.\/lua/lua/g; + $line1 =~ s/^.\/ruby/ruby/g; + + $line1 =~ s/\(%i:%P@%h\)/\\\(%i:%P@%h\\\)/g; + chomp $line1; + $execline = $line1; + print "$execline\n"; + system "$execline 1>output_tesh.txt 2>output_tesh_err.txt"; + close(FILE_ERR); + close(FILE); + open (FILE, "output_tesh.txt"); + open (FILE_ERR, "output_tesh_err.txt");} + + if($line1 =~ /^\>/){ #expected result line + if($ok == 0){die "No command line$!";} + $line1 =~ s/^\> //g; + $line1 =~ s/\r//g; + chomp $line1; + + if($line1 =~ /^.*\[.*\].*\[.*\/INFO\].*$/) + {if(!defined($line2=)) + { print "- $line1\n"; + die;}} + elsif($line1 =~ /^.*\[.*\].*\[.*\/WARNING\].*$/) + {if(!defined($line2=)) + { print "- $line1\n"; + die;}} + elsif($line1 =~ /^.*\[.*\].*\[.*\/CRITICAL\].*$/) + {if(!defined($line2=)) + { print "- $line1\n"; + die;}} + elsif($line1 =~ /^.*\[.*\].*\[.*\/DEBUG\].*$/) + {if(!defined($line2=)) + { print "- $line1\n"; + die;}} + elsif($line1 =~ /^.*\[.*\].*\[0\:\@\].*$/) + {if(!defined($line2=)) + { print "- $line1\n"; + die;}} + elsif($line1 =~ /^.*\[.*\].*\(0\:\@\).*$/) + {if(!defined($line2=)) + { print "- $line1\n"; + die;}} + else{if(!defined($line2=)) + { print "- $line1\n"; + die;}} + $line2 =~ s/\r//g; + chomp $line2; + + if($line2 eq $line1){} + else + { print "- $line1\n"; + print "+ $line2\n"; + die;}} +} +if($ok == 1){ + print "Test of \"$file\" OK\n"; + $ok = 0;} + +close(SH_LIGNE); +close(FILE_ERR); close(FILE); \ No newline at end of file