Add -stdout-binary and -stderr-binary flags to bypass dos2unix
authorSimon Marlow <simonmar@microsoft.com>
Tue, 23 Jan 2007 12:38:43 +0000 (12:38 +0000)
committerSimon Marlow <simonmar@microsoft.com>
Tue, 23 Jan 2007 12:38:43 +0000 (12:38 +0000)
Apparently some versions of dos2unix can detect a binary file and
ignore it, but others can't, so provide a way to tell runstdtest that
the output is in binary.

utils/runstdtest/runstdtest.prl

index 0a9bd98..7dc9744 100644 (file)
@@ -43,6 +43,8 @@
 $Verbose = 0;
 $SaveStderr = 0;
 $SaveStdout = 0;
+$StdoutBinary = 0;
+$StderrBinary = 0;
 $Status = 0;
 @PgmArgs = ();
 $PgmFail=0;
@@ -91,6 +93,9 @@ arg: while ($_ = $ARGV[0]) {
     /^-accept-output-stdout$/ && do { $SaveStdout = 1; next arg; };
     /^-accept-output$/        && do { $SaveStdout = 1; $SaveStderr = 1; next arg; };
 
+    /^-stdout-binary/ && do { $StdoutBinary=1; next arg; };
+    /^-stdout-binary/ && do { $StderrBinary=1; next arg; };
+
     /^-O(.*)/  && do { push(@PgmArgs, &grab_arg_arg('-O',$1)); next arg; };
     /^-i(.*)/  && do { $PgmStdinFile = &grab_arg_arg('-i',$1);
                        $Status++,
@@ -208,8 +213,16 @@ cat /dev/null > $DefaultStderrFile
 $PreScriptLines
 $SpixifyLine1
 $TimeCmd /bin/sh -c \'$CachegrindPrefix $ToRun $TimingMagic @PgmArgs < $PgmStdinFile 1> $TmpPrefix/runtest$$.1.raw 2> $TmpPrefix/runtest$$.2.raw 3> $TmpPrefix/runtest$$.3.raw\'
-dos2unix < $TmpPrefix/runtest$$.1.raw > $TmpPrefix/runtest$$.1
-dos2unix < $TmpPrefix/runtest$$.2.raw > $TmpPrefix/runtest$$.2
+if [ "$StdoutBinary" = "0" ]; then
+    dos2unix < $TmpPrefix/runtest$$.1.raw > $TmpPrefix/runtest$$.1
+else
+    cp $TmpPrefix/runtest$$.1.raw $TmpPrefix/runtest$$.1
+fi
+if [ "$StderrBinary" = "0" ]; then
+    dos2unix < $TmpPrefix/runtest$$.2.raw > $TmpPrefix/runtest$$.2
+else
+    cp $TmpPrefix/runtest$$.2.raw $TmpPrefix/runtest$$.2
+fi
 dos2unix < $TmpPrefix/runtest$$.3.raw > $TmpPrefix/runtest$$.3
 progexit=\$?
 if [ \$progexit -eq 0 ] && [ $PgmFail -ne 0 ]; then