X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=inline;f=grading%2Fuserprog%2Frun-tests;h=b09bc5e200a589f2031f60494a7afbad10b6e875;hb=6070611faac84bdf95c4405b3970c6928202f26b;hp=3019d30c5d4a7dcacbcc5698f443a7dbb715c956;hpb=fbea5921d53e698fee2014995cdb13ddb67a982f;p=pintos-anon diff --git a/grading/userprog/run-tests b/grading/userprog/run-tests index 3019d30..b09bc5e 100755 --- a/grading/userprog/run-tests +++ b/grading/userprog/run-tests @@ -20,6 +20,14 @@ our ($test); our (%extra); our ($action); +if ($#ARGV == 0 && $ARGV[0] eq 'null') { + @TESTS = ('null'); + extract_sources (); + build (); + run_and_grade_tests (); + exit success (); +} + parse_cmd_line qw (args-argc args-argv0 args-argvn args-single args-multiple args-dbl-space sc-bad-sp sc-bad-arg sc-boundary @@ -38,9 +46,6 @@ parse_cmd_line qw (args-argc args-argv0 args-argvn args-single args-multiple join-simple join-twice join-killed join-bad-pid multi-recurse multi-oom multi-child-fd); -# Default set of tests. -@TESTS = unless @TESTS > 0; - clean_dir (), exit if $action eq 'clean'; extract_sources (); @@ -52,10 +57,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'"; @@ -77,10 +82,9 @@ sub run_test { # Run. my ($timeout) = $test !~ /^multi-/ ? 10 : 600; - my ($result) = run_pintos ("pintos " - . "--os-disk=pintos/src/userprog/build/os.dsk " - . "--fs-disk=output/$test/fs.dsk " - . "-v run -q -ex \"$test$args\"", + my ($result) = run_pintos (["--os-disk=pintos/src/userprog/build/os.dsk", + "--fs-disk=output/$test/fs.dsk", + "-v", "run", "-q", "-ex", "$test$args"], LOG => "$test/run", TIMEOUT => $timeout); rename "output/$test/fs.dsk", "output/$test/fs.dsk.keep" @@ -159,13 +163,11 @@ sub grade_multi_oom { sub get_file { my ($guest_fn, $host_fn) = @_; - my ($result) = run_pintos ("pintos " - . "--os-disk=pintos/src/userprog/build/os.dsk " - . "--fs-disk=output/$test/fs.dsk.keep " - . "-v get $guest_fn $host_fn", + my ($result) = run_pintos (["--os-disk=pintos/src/userprog/build/os.dsk", + "--fs-disk=output/$test/fs.dsk.keep", + "-v", "get", "$guest_fn", "$host_fn"], LOG => "$test/get-$guest_fn", - TIMEOUT => 10, - EXPECT => 0); + TIMEOUT => 10); die "`pintos get $guest_fn' failed - $result\n" if $result ne 'ok'; }