our ($test);
our ($action);
-parse_cmd_line ();
+parse_cmd_line qw (sm-create sm-full sm-seq-block sm-seq-random sm-random
-# Default set of tests.
-@TESTS = qw (sm-create sm-full sm-seq-block sm-seq-random sm-random
+ lg-create lg-full lg-seq-block lg-seq-random lg-random
- lg-create lg-full lg-seq-block lg-seq-random lg-random
+ grow-create grow-seq-sm grow-seq-lg grow-file-size grow-tell
+ grow-sparse grow-too-big grow-root-sm grow-root-lg
+ grow-dir-lg grow-two-files
- grow-create grow-seq-sm grow-seq-lg grow-file-size grow-tell
- grow-sparse grow-too-big grow-root-sm grow-root-lg grow-dir-lg
- grow-two-files
+ dir-mkdir dir-rmdir dir-mk-vine dir-rm-vine dir-mk-tree
+ dir-rm-tree dir-lsdir dir-rm-cwd dir-rm-cwd-cd
+ dir-rm-parent dir-rm-root dir-over-file dir-under-file
+ dir-empty-name dir-open
- dir-mkdir dir-rmdir dir-mk-vine dir-rm-vine dir-mk-tree
- dir-rm-tree dir-lsdir dir-rm-cwd dir-rm-cwd-cd
- dir-rm-parent dir-rm-root dir-over-file dir-under-file
- dir-empty-name dir-open
-
- syn-remove syn-read syn-write syn-rw
- ) unless @TESTS > 0;
+ syn-remove syn-read syn-write syn-rw);
clean_dir (), exit if $action eq 'clean';
exit if $action eq 'extract';
build ();
-exit if $action eq 'build';
+exit success () 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';
DIE => "failed to create swap disk");
# Format disk, install test.
- my ($pintos_base_cmd) =
- "pintos "
- . "--os-disk=pintos/src/$hw/build/os.dsk "
- . "--fs-disk=output/$test/fs.dsk "
- . "--swap-disk=output/$test/swap.dsk "
- . "-v";
- $result = run_pintos ("$pintos_base_cmd put -f $GRADES_DIR/$test $test",
+ my (@base_opts) = ("--os-disk=pintos/src/$hw/build/os.dsk",
+ "--fs-disk=output/$test/fs.dsk",
+ "--swap-disk=output/$test/swap.dsk",
+ "-v");
+ $result = run_pintos ([@base_opts,
+ "put", "-f", "$GRADES_DIR/$test", $test],
LOG => "$test/put", TIMEOUT => 60);
return $result if $result ne 'ok';
push (@extra_files, "child-syn-wrt") if $test eq 'syn-write';
push (@extra_files, "child-syn-rw") if $test eq 'syn-rw';
for my $fn (@extra_files) {
- $result = run_pintos ("$pintos_base_cmd put $GRADES_DIR/$fn $fn",
+ $result = run_pintos ([@base_opts, "put", "$GRADES_DIR/$fn", $fn],
LOG => "$test/put-$fn", TIMEOUT => 60);
return "Error running `put $fn': $result" if $result ne 'ok';
}
# Run.
- return run_pintos ("$pintos_base_cmd run -q -ex \"$test\"",
+ return run_pintos ([@base_opts, "run", "-q", "-ex", $test],
LOG => "$test/run", TIMEOUT => 120);
}