Fix runaway bochs, pintos processes on time-outs.
[pintos-anon] / grading / vm / run-tests
index c04faea87af0753035e93351e8fc0dd6681de766..fea0bfb9ccf12500642b0bc10cf888d12c6d2a47 100755 (executable)
@@ -19,14 +19,10 @@ our (@TESTS);               # Tests to run.
 our ($test);
 our ($action);
 
-parse_cmd_line ();
-
-# Default set of tests.
-@TESTS = qw (pt-grow-stack pt-big-stk-obj pt-bad-addr pt-write-code
-            page-linear page-parallel page-merge-seq page-merge-par
-            page-shuffle mmap-read mmap-close mmap-unmap mmap-overlap
-            mmap-twice mmap-write mmap-exit mmap-shuffle
-           ) unless @TESTS > 0;
+parse_cmd_line qw (pt-grow-stack pt-big-stk-obj pt-bad-addr pt-write-code
+                  page-linear page-parallel page-merge-seq page-merge-par
+                  page-shuffle mmap-read mmap-close mmap-unmap mmap-overlap
+                  mmap-twice mmap-write mmap-exit mmap-shuffle);
 
 clean_dir (), exit if $action eq 'clean';
 
@@ -39,10 +35,10 @@ exit if $action eq 'build';
 run_and_grade_tests (); 
 write_grades (); 
 write_details ();
-exit if $action eq 'test';
+exit success () if $action eq 'test';
 
 assemble_final_grade ();
-exit if $action eq 'assemble';
+exit success () if $action eq 'assemble';
 
 die "Don't know how to '$action'";
 
@@ -56,11 +52,10 @@ sub run_test {
             DIE => "failed to create swap disk");
 
     # Run.
-    return run_pintos ("pintos "
-                      . "--os-disk=pintos/src/vm/build/os.dsk "
-                      . "--fs-disk=output/$test/fs.dsk "
-                      . "--swap-disk=output/$test/swap.dsk "
-                      . "-v run -q -ex \"$test\"",
+    return run_pintos (["--os-disk=pintos/src/vm/build/os.dsk",
+                       "--fs-disk=output/$test/fs.dsk",
+                       "--swap-disk=output/$test/swap.dsk",
+                       "-v", "run", "-q", "-ex", "$test"],
                       LOG => "$test/run",
                       TIMEOUT => 600);
 }