X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=grading%2Fuserprog%2Frun-tests;h=b10cb973ebe8c2d59c1d9f0f91a73bd6952d63c5;hb=59bbbf9d74b6c6b430c51def30a9e1437f5e14a1;hp=afb9317ee357b30a389e4742753334fe8009fe85;hpb=aa611970d5cbcfd5b0170c03effd74c2cab05708;p=pintos-anon diff --git a/grading/userprog/run-tests b/grading/userprog/run-tests index afb9317..b10cb97 100755 --- a/grading/userprog/run-tests +++ b/grading/userprog/run-tests @@ -20,26 +20,31 @@ our ($test); our (%extra); our ($action); -parse_cmd_line (); - -# Default set of tests. -@TESTS = qw (args-argc args-argv0 args-argvn args-single args-multiple - args-dbl-space - sc-bad-sp sc-bad-arg sc-boundary - halt exit - create-normal create-empty create-null create-bad-ptr - create-long create-exists create-bound - open-normal open-missing open-boundary open-empty open-null - open-bad-ptr open-twice - close-normal close-twice close-stdin close-stdout close-bad-fd - read-normal read-bad-ptr read-boundary read-zero read-stdout - read-bad-fd - write-normal write-bad-ptr write-boundary write-zero write-stdin - write-bad-fd - exec-once exec-arg exec-multiple exec-missing exec-bad-ptr - join-simple join-twice join-killed join-bad-pid - multi-recurse multi-oom multi-child-fd - ) unless @TESTS > 0; +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 + halt exit + create-normal create-empty create-null create-bad-ptr + create-long create-exists create-bound + open-normal open-missing open-boundary open-empty open-null + open-bad-ptr open-twice + close-normal close-twice close-stdin close-stdout + close-bad-fd + read-normal read-bad-ptr read-boundary read-zero read-stdout + read-bad-fd + write-normal write-bad-ptr write-boundary write-zero + write-stdin write-bad-fd + exec-once exec-arg exec-multiple exec-missing exec-bad-ptr + join-simple join-twice join-killed join-bad-pid + multi-recurse multi-oom multi-child-fd); clean_dir (), exit if $action eq 'clean'; @@ -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'"; @@ -165,7 +170,7 @@ sub get_file { . "-v get $guest_fn $host_fn", LOG => "$test/get-$guest_fn", TIMEOUT => 10, - EXPECT => 0); + EXPECT => 1); die "`pintos get $guest_fn' failed - $result\n" if $result ne 'ok'; }