Always print output for failing test cases.
authorBen Pfaff <blp@cs.stanford.edu>
Mon, 20 Jun 2005 20:59:24 +0000 (20:59 +0000)
committerBen Pfaff <blp@cs.stanford.edu>
Mon, 20 Jun 2005 20:59:24 +0000 (20:59 +0000)
src/tests/make-grade
src/tests/tests.pm

index 20e0cd9e3d7bf58b4787edbe4aa2b072297e57e1..f8c1443148cd6e0b473fb14bb4d6658759823710 100755 (executable)
@@ -116,19 +116,22 @@ my (@divider) = ('', '- ' x 38, '');
 print map ("$_\n", @overall, @divider, @summary, @divider, @rubrics);
 
 for my $test (@failures) {
-    open (RESULT, '<', "$test.result") or next;
     print map ("$_\n", @divider);
     print "DETAILS OF $test FAILURE:\n\n";
-    my $first_line = <RESULT>;
-    my ($cnt) = 0;
-    while (<RESULT>) {
-       print;
-       $cnt++;
+
+    if (open (RESULT, '<', "$test.result")) {
+       my $first_line = <RESULT>;
+       my ($cnt) = 0;
+       while (<RESULT>) {
+           print;
+           $cnt++;
+       }
+       close (RESULT);
     }
-    close (RESULT);
 
-    if ($cnt == 0) {
-       open (OUTPUT, '<', "$test.output") or next;
+    if (open (OUTPUT, '<', "$test.output")) {
+       print "\nOUTPUT FROM $test:\n\n";
+    
        my ($panics) = 0;
        while (<OUTPUT>) {
            if (/PANIC/ && ++$panics > 2) {
@@ -140,4 +143,3 @@ for my $test (@failures) {
        close (OUTPUT);
     }
 }
-
index c2a5c64d8319ecd9b1314fcae1321802d1a8d409..3c5574122ea14014793b894930796dea353b95ef 100644 (file)
@@ -133,13 +133,13 @@ sub compare_output {
     }
     die "unknown option " . (keys (%options))[0] . "\n" if %options;
 
-    my ($msg) = "Actual output:\n" . join ('', map ("  $_\n", @output));
+    my ($msg);
 
     # Compare actual output against each allowed output.
     foreach my $exp_string (@$expected) {
        my (@expected) = split ("\n", $exp_string);
 
-       $msg .= "\nAcceptable output:\n";
+       $msg .= "Acceptable output:\n";
        $msg .= join ('', map ("  $_\n", @expected));
 
        # Check whether actual and expected match.