X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=grading%2Flib%2FPintos%2FGrading.pm;h=90d9ba311ce548636748097f9a7f7a32c7d5b1ee;hb=35692cf4733c0761f25dc17153eeaf8a64c1e0ee;hp=30ac7101493b473bf96a316f0268e986f64581fb;hpb=2969f4df6a95b37e05ad6aa562ae82206b646eb0;p=pintos-anon diff --git a/grading/lib/Pintos/Grading.pm b/grading/lib/Pintos/Grading.pm index 30ac710..90d9ba3 100644 --- a/grading/lib/Pintos/Grading.pm +++ b/grading/lib/Pintos/Grading.pm @@ -422,7 +422,14 @@ sub run_pintos { sub grade_test { # Read test output. my ($outfile) = "output/$test/run.out"; - die "$outfile: missing test output file (make failed?)" if ! -e $outfile; + if (! -e $outfile) { + if (-s "output/$test/make.err") { + # make failed. + $details{$test} = snarf ("output/$test/make.err"); + return "make failed. Error messages at end of file."; + } + return "preparation for test failed"; + } my (@output) = snarf ($outfile); # If there's a function "grade_$test", use it to evaluate the output. @@ -691,7 +698,7 @@ sub canonicalize_exit_codes { } sub strip_exit_codes { - return grep (!/^[-a-z0-9]+: exit\(-?\d+\)/, canonicalize_exit_codes (@_)); + return grep (!/^[-_a-z0-9]+: exit\(-?\d+\)/, canonicalize_exit_codes (@_)); } sub compare_output {