X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=grading%2Ffilesys%2Frun-tests;h=0f86dbf0e30fe80a791e699ef5751b09464bee82;hb=5db27be45b12cc35feb6f1de19861d180e5620fe;hp=7b7348752f65117f1a8c5994c2f7bb78ece5c2c8;hpb=ff076af15fa93292b8843e76bd6bab7ac5421095;p=pintos-anon diff --git a/grading/filesys/run-tests b/grading/filesys/run-tests index 7b73487..0f86dbf 100755 --- a/grading/filesys/run-tests +++ b/grading/filesys/run-tests @@ -48,8 +48,17 @@ sub usage { # Default set of tests. @TESTS = qw (sm-create sm-full sm-seq-block sm-seq-random sm-random + grow-create grow-seq-sm grow-seq-lg grow-file-size grow-tell - grow-sparse grow-root-sm grow-root-lg grow-dir-lg grow-two-files + 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 + + syn-remove syn-read syn-write syn-rw ) unless @TESTS > 0; our (%args); @@ -237,7 +246,7 @@ sub run_test { sub compile { print "Compiling...\n"; - xsystem ("cd pintos/src/vm && make", LOG => "make") + xsystem ("cd pintos/src/filesys && make", LOG => "make") or return "compile error"; } @@ -251,7 +260,8 @@ sub really_run_test { # Make output directory. mkdir "output/$test"; - xsystem ("pintos make-disk output/$test/fs.dsk 2 >/dev/null 2>&1", + my ($fs_size) = $test ne 'grow-too-big' ? 2 : .25; + xsystem ("pintos make-disk output/$test/fs.dsk $fs_size >/dev/null 2>&1", DIE => "failed to create file system disk"); xsystem ("pintos make-disk output/$test/swap.dsk 2 >/dev/null 2>&1", DIE => "failed to create swap disk"); @@ -259,7 +269,7 @@ sub really_run_test { # Format disk, install test. my ($pintos_base_cmd) = "pintos " - . "--os-disk=pintos/src/vm/build/os.dsk " + . "--os-disk=pintos/src/filesys/build/os.dsk " . "--fs-disk=output/$test/fs.dsk " . "--swap-disk=output/$test/swap.dsk " . "-v"; @@ -268,6 +278,16 @@ sub really_run_test { if !xsystem ("$pintos_base_cmd put -f $GRADES_DIR/$test $test", LOG => "$test/put", TIMEOUT => 60, EXPECT => 1); + my (@extra_files); + push (@extra_files, "child-syn-read") if $test eq 'syn-read'; + 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) { + return "format/put error" + if !xsystem ("$pintos_base_cmd put $GRADES_DIR/$fn $fn", + LOG => "$test/put-$fn", TIMEOUT => 60, EXPECT => 1); + } + # Run. my ($timeout) = 60; my ($testargs) = defined ($args{$test}) ? " $args{$test}" : ""; @@ -346,7 +366,7 @@ sub verify_common { } else { $A2L = "i386-elf-addr2line"; } - open (A2L, "$A2L -fe pintos/src/vm/build/kernel.o @addrs|"); + open (A2L, "$A2L -fe pintos/src/filesys/build/kernel.o @addrs|"); for (;;) { my ($function, $line); last unless defined ($function = ); @@ -370,6 +390,11 @@ EOF die "Kernel panic. Details at end of file.\n" } + my (@failure) = grep (/FAIL/, @output); + if (@failure != 0) { + die "Test failed: \"$failure[0]\"\n"; + } + if (grep (/Pintos booting/, @output) > 1) { my ($details);