From: navarrop Date: Wed, 15 Dec 2010 15:53:14 +0000 (+0000) Subject: Redo a simple tesh.pl X-Git-Tag: v3.6_beta2~670 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/2d98a6a519abb6a9799c26bb4a87225936944c42 Redo a simple tesh.pl git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@9253 48e7efb5-ca39-0410-a469-dd3cf9ba447f --- diff --git a/buildtools/Cmake/tesh.pl b/buildtools/Cmake/tesh.pl index a1ec8afc8f..3b185ba80c 100755 --- a/buildtools/Cmake/tesh.pl +++ b/buildtools/Cmake/tesh.pl @@ -1,97 +1,124 @@ -#! /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 +#! /usr/bin/perl -w + +use strict; + +if($#ARGV<0){die "Usage: tesh.pl \n";} +my($line1); +my($line2); +my($execline); +my($ok)=0; +my($ok1)=0; +my($nb_arg)=0; +my($result); +my(@list1)=(); +my(@list2)=(); + +#options +do{ + if($ARGV[$nb_arg] =~ /^--cd$/) + { + $nb_arg++; + if(!$ARGV[$nb_arg] or $ARGV[$nb_arg] =~ /^--/){die "Usage: tesh.pl --cd \n";} + my($directory)=$ARGV[$nb_arg]; + if( -e $directory) + { + chdir("$directory"); + print "-- Tesh options : Change directory to \"$directory\"\n"; + } + else + { + die "Directory not found : \"$directory\"\n"; + } + $nb_arg++; + } + elsif($ARGV[$nb_arg] =~ /^--setenv$/) + { + $nb_arg++; + if(!$ARGV[$nb_arg] or $ARGV[$nb_arg] =~ /^--/){die "Usage: tesh.pl --setenv environment_variable\n";} + if(!$ARGV[$nb_arg+1] or $ARGV[$nb_arg+1] =~ /^--/){die "Usage: tesh.pl --setenv environment_variable\n";} + $ENV{$ARGV[$nb_arg]} = "$ENV{$ARGV[$nb_arg]}:$ARGV[$nb_arg+1]"; + print "-- Tesh options : export $ARGV[$nb_arg]=\"$ENV{$ARGV[$nb_arg]}\"\n"; + $nb_arg++; + $nb_arg++; + } + else + { + print "-- Tesh options : Unrecognized option : $ARGV[$nb_arg]\n"; + $nb_arg++; + } +}while(($nb_arg) < $#ARGV); + +#Add current directory to path +$ENV{PATH} = "$ENV{PATH}:."; + +#tesh file +if(!$ARGV[$nb_arg]){die "tesh.pl \n";} +print "-- Tesh load file : $ARGV[$nb_arg]\n"; +my($file)=$ARGV[$nb_arg]; +open SH_LIGNE, $file or die "Unable to open $file. $!\n"; +print "\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/^.\///g; + $line1 =~ s/\(%i:%P@%h\)/\\\(%i:%P@%h\\\)/g; + chomp $line1; + $execline = $line1; + print "-- Tesh exec_line : $execline\n"; + $result=`$execline 2>&1`; + @list1 = split(/\n/,$result); + + } + elsif($line1 =~ /^\>/){ #expected result line + if($ok == 0){die "No command line$!";} + $ok1 = 1; + $line1 =~ s/^\> //g; + $line1 =~ s/\r//g; + chomp $line1; + push @list2, $line1; + } + elsif($ok == 1 and $ok1 == 1) + { + while(@list1 or @list2) + { + $line1 = shift (@list1); + $line2 = shift (@list2); + if($line1 eq $line2){} + else + { print "- $line1\n"; + print "+ $line2\n"; + die;} + } + $ok = 0; + $ok1= 0; + @list1=(); + @list2=(); + } +} + +if($ok == 1 and $ok1 == 1) +{ + while(@list1 or @list2) + { + $line1 = shift (@list1); + $line2 = shift (@list2); + if($line1 eq $line2){} + else + { print "- $line1\n"; + print "+ $line2\n"; + die;} + } + $ok = 0; + $ok1= 0; + @list1=(); + @list2=(); +} \ No newline at end of file