X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Ftests%2Ftests.pm;h=4cec83d656cdd1da3aee01d04a85582e4e10816b;hb=780c0dca173dd7d3b7f1797c51405da5d9a27d4c;hp=2e3642c664a0449217d0ad7058537e7c389233f0;hpb=d2a8a6dce8c60a1a181f67a6d4af98d5ce57743f;p=pintos-anon diff --git a/src/tests/tests.pm b/src/tests/tests.pm index 2e3642c..4cec83d 100644 --- a/src/tests/tests.pm +++ b/src/tests/tests.pm @@ -1,6 +1,7 @@ use strict; use warnings; use tests::Algorithm::Diff; +use File::Temp 'tempfile'; sub fail; sub pass; @@ -9,9 +10,8 @@ die if @ARGV != 2; our ($test, $src_dir) = @ARGV; our ($src_stem) = "$src_dir/$test"; -our ($messages) = ""; -open (MESSAGES, '>', \$messages); -select (MESSAGES); +my ($msg_file) = tempfile (); +select ($msg_file); sub check_expected { my ($expected) = pop @_; @@ -169,6 +169,14 @@ sub pass { sub finish { my ($verdict, @rest) = @_; + my ($messages) = ""; + seek ($msg_file, 0, 0); + while (<$msg_file>) { + $messages .= $_; + print "'$_'"; + } + close ($msg_file); + my ($result_fn) = "$test.result"; open (RESULT, '>', $result_fn) or die "$result_fn: create: $!\n"; print RESULT "$verdict\n", $messages, @rest;