#
# (This is supposed to be a "prettier" replacement for runstdtest.)
#
+# Flags
+# ~~~~~
+# -accept-output replace output files with the ones actually generated by running
+# the program
+#
($Pgm = $0) =~ s|.*/||;
$Verbose = 0;
+$SaveTmpFile = 0;
$Status = 0;
@PgmArgs = ();
$PgmExitStatus = 0;
push(@PgmArgs, @ARGV);
last arg; };
- /^-v$/ && do { $Verbose = 1; next arg; };
+ /^-v$/ && do { $Verbose = 1; next arg; };
+ /^-accept-output$/ && do { $SaveTmpFile = 1; next arg; };
+
/^-O(.*)/ && do { push(@PgmArgs, &grab_arg_arg('-O',$1)); next arg; };
/^-i(.*)/ && do { $PgmStdinFile = &grab_arg_arg('-i',$1);
$Status++,
}
foreach $out_file ( @PgmStdoutFile ) {
- $Status++ ,
- print STDERR "$Pgm: bogus -o1 expected-output file: $out_file\n"
- if ! -f $out_file;
+ if ( ! -f $out_file ) {
+ #$Status++;
+ print STDERR "$Pgm: warning: expected-stdout file missing: $out_file\n";
+ pop(@PgmStdoutFile);
+ }
}
foreach $out_file ( @PgmStderrFile ) {
- $Status++,
- print STDERR "$Pgm: bogus -o2 expected-stderr file: $out_file\n"
- if ! -f $out_file;
+ if ( ! -f $out_file ) {
+ #$Status++;
+ pop(@PgmStderrFile);
+ if ( $SaveTmpFile ) {
+ system("touch $out_file");
+ } else {
+ print STDERR "$Pgm: warning: expected-stderr file missing: $out_file\n";
+ }
+ }
}
exit 1 if $Status;
progexit=\$?
if [ \$progexit -ne $PgmExitStatus ]; then
echo $ToRun @PgmArgs \\< $PgmStdinFile
- echo expected exit status $PgmExitStatus not seen \\; got \$progexit
+ echo "****" expected exit status $PgmExitStatus not seen \\; got \$progexit
myexit=1
else
$PostScriptLines
myexit=1
diffsShown=1
fi
+ if [ $SaveTmpFile = 1 ] && [ \$progexit = $PgmExitStatus ] ; then
+ rm -f $PgmStdoutFile[0].bak
+ echo Saving away stdout output in $PgmStdoutFile[0] ...
+ cp $PgmStdoutFile[0] $PgmStdoutFile[0].bak
+ cp $TmpPrefix/runtest$$.1 $PgmStdoutFile[0]
+ fi
fi
egrep -v '^ld\.so:.*has older revision than expected' < $TmpPrefix/runtest$$.2 > $TmpPrefix/runtest$$.2b
mv -f $TmpPrefix/runtest$$.2b $TmpPrefix/runtest$$.2
myexit=1
diffsShown=1
fi
+if [ $SaveTmpFile = 1 ] && [ \$progexit = $PgmExitStatus ] ; then
+ rm -f $PgmStderrFile[0].bak
+ echo Saving away stderr output in $PgmStderrFile[0] ...
+ cp $PgmStderrFile[0] $PgmStderrFile[0].bak
+ cp $TmpPrefix/runtest$$.2 $PgmStderrFile[0]
+fi
$SpixstatsLine1
if [ $SpixTiming = 'yes' -a \$myexit = 0 ] ; then