4 if($#ARGV!=1){die "Usage: perl tesh.pl <directory> <teshfile.tesh>\n";}
\r
5 my($directory)=$ARGV[0];
\r
11 chdir("$directory");
\r
12 print "Change directory to \"$directory\"\n";
\r
13 open SH_LIGNE, $file or die "Unable to open $file. $!\n";
\r
15 while(defined($line1=<SH_LIGNE>))
\r
17 if($line1 =~ /^\$/){ #command line
\r
19 $line1 =~ s/\$\{srcdir\:\=\.\}/./g;
\r
20 $line1 =~ s/\$SG_TEST_EXENV//g;
\r
21 $line1 =~ s/\$SG_EXENV_TEST//g;
\r
22 $line1 =~ s/\$EXEEXT/.exe/g;
\r
23 $line1 =~ s/\${EXEEXT:=}//g;
\r
24 $line1 =~ s/^\$\ *//g;
\r
25 $line1 =~ s/^.\/lua/lua/g;
\r
26 $line1 =~ s/^.\/ruby/ruby/g;
\r
29 print "$execline\n";
\r
30 system "$execline 1>output_tesh.txt 2>output_tesh_err.txt";
\r
33 open (FILE, "output_tesh.txt");
\r
34 open (FILE_ERR, "output_tesh_err.txt");}
\r
36 if($line1 =~ /^\>/){ #expected result line
\r
37 if($ok == 0){die "No command line$!";}
\r
38 $line1 =~ s/^\> //g;
\r
42 if($line1 =~ /^.*\[.*\].*\[.*\/INFO\].*$/){if(!defined($line2=<FILE_ERR>)){die;}}elsif($line1 =~ /^.*\[.*\].*\[.*\/WARNING\].*$/){if(!defined($line2=<FILE_ERR>)){die;}}
\r
43 elsif($line1 =~ /^.*\[.*\].*\[.*\/CRITICAL\].*$/){if(!defined($line2=<FILE_ERR>)){die;}}
\r
44 elsif($line1 =~ /^.*\[.*\].*\[.*\/DEBUG\].*$/){if(!defined($line2=<FILE_ERR>)){die;}}
\r
45 else{if(!defined($line2=<FILE>)){die;}}
\r
50 if($line2 eq $line1){}
\r
52 { print "- $line1\n";
\r
57 print "Test of \"$file\" OK\n";
\r