5 if($#ARGV<0){die "Usage: tesh.pl <options> <teshfile.tesh>\n";}
21 if($ARGV[$nb_arg] =~ /^--cd$/)
24 if(!$ARGV[$nb_arg] or $ARGV[$nb_arg] =~ /^--/){die "Usage: tesh.pl --cd <directory>\n";}
25 my($directory)=$ARGV[$nb_arg];
29 print "-- Tesh options : Change directory to \"$directory\"\n";
33 die "Directory not found : \"$directory\"\n";
37 elsif($ARGV[$nb_arg] =~ /^--setenv$/)
40 if(!$ARGV[$nb_arg] or $ARGV[$nb_arg] =~ /^--/){die "Usage: tesh.pl --setenv environment_variable\n";}
41 if(!$ARGV[$nb_arg+1] or $ARGV[$nb_arg+1] =~ /^--/){die "Usage: tesh.pl --setenv environment_variable\n";}
42 $ENV{$ARGV[$nb_arg]} = "$ENV{$ARGV[$nb_arg]}:$ARGV[$nb_arg+1]";
43 print "-- Tesh options : export $ARGV[$nb_arg]=\"$ENV{$ARGV[$nb_arg]}\"\n";
49 print "-- Tesh options : Unrecognized option : $ARGV[$nb_arg]\n";
52 }while(($nb_arg) < $#ARGV);
54 #Add current directory to path
55 $ENV{PATH} = "$ENV{PATH}:.";
58 if(!$ARGV[$nb_arg]){die "tesh.pl <options> <teshfile.tesh>\n";}
59 print "-- Tesh load file : $ARGV[$nb_arg]\n";
60 my($file)=$ARGV[$nb_arg];
61 open SH_LIGNE, $file or die "Unable to open $file. $!\n";
63 while(defined($line1=<SH_LIGNE>))
65 if($line1 =~ /^\$ mkfile/){ #command line
68 print "-- Tesh exec_line : $line1\n";
69 $line1 =~ s/mkfile//g;
78 elsif($line1 =~ /^\$/){ #command line
80 $line1 =~ s/\$\{srcdir\:\=\.\}/./g;
81 $line1 =~ s/\$SG_TEST_EXENV//g;
82 $line1 =~ s/\$SG_EXENV_TEST//g;
83 $line1 =~ s/\$EXEEXT//g;
84 $line1 =~ s/\${EXEEXT:=}//g;
85 $line1 =~ s/^\$\ *//g;
86 $line1 =~ s/^.\/lua/lua/g;
87 $line1 =~ s/^.\/ruby/ruby/g;
89 $line1 =~ s/\(%i:%P@%h\)/\\\(%i:%P@%h\\\)/g;
92 print "-- Tesh exec_line : $execline\n";
93 $result=`$execline 2>&1`;
94 @list1 = split(/\n/,$result);
97 elsif($line1 =~ /^\>/){ #expected result line
98 if($ok == 0){die "No command line$!";}
105 elsif($line1 =~ /^\</){ #need to buffer
109 push @buffer, $line1;
111 elsif($line1 =~ /^p/){ #comment
115 print "-- Tesh comment_line :$line1\n";
117 elsif($line1 =~ /^! output sort/){ #output sort
120 elsif($line1 =~ /^! include/){ #output sort
121 die "-- Tesh need include\n";
123 elsif($ok == 1 and $ok1 == 1)
127 @list3 = sort @list1;
132 @list3 = sort @list2;
139 while(@list1 or @list2)
141 $line1 = shift (@list1);
142 $line2 = shift (@list2);
143 if($line1 eq $line2){}
145 { print "- $line2\n";
156 if($ok == 1 and $ok1 == 1)
158 while(@list1 or @list2)
160 $line1 = shift (@list1);
161 $line2 = shift (@list2);
162 if($line1 eq $line2){}
164 { print "- $line1\n";