X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?p=pintos-anon;a=blobdiff_plain;f=src%2Ftests%2Ftests.pm;h=4599cb98fe49d7627173d182f48ce2ef072f03ab;hp=822e7c9b807c6050f0c48c3dce77d2c03f468f64;hb=59f738d500f51ffc5f487344865b8bed69c26281;hpb=36beb03eba5009ca7054a9b32b966bf211e839b8 diff --git a/src/tests/tests.pm b/src/tests/tests.pm index 822e7c9..4599cb9 100644 --- a/src/tests/tests.pm +++ b/src/tests/tests.pm @@ -12,6 +12,16 @@ our ($test, $src_dir) = @ARGV; my ($msg_file) = tempfile (); select ($msg_file); + +our (@prereq_tests) = (); +if ($test =~ /^(.*)-persistence$/) { + push (@prereq_tests, $1); +} +for my $prereq_test (@prereq_tests) { + my (@result) = read_text_file ("$prereq_test.result"); + fail "Prerequisite test $prereq_test failed.\n" if $result[0] ne 'PASS'; +} + # Generic testing. @@ -235,7 +245,8 @@ sub compare_output { # recursively. sub check_archive { my ($expected_hier) = @_; - my (@output) = read_text_file ("$test.get-output"); + + my (@output) = read_text_file ("$test.output"); common_checks ("file system extraction run", @output); @output = get_core_output ("file system extraction run", @output); @@ -244,11 +255,12 @@ sub check_archive { my ($test_base_name) = $test; $test_base_name =~ s%.*/%%; - $expected_hier->{$test_base_name} = $test; + $test_base_name =~ s%-persistence$%%; + $expected_hier->{$test_base_name} = $prereq_tests[0]; $expected_hier->{'tar'} = 'tests/filesys/extended/tar'; my (%expected) = normalize_fs (flatten_hierarchy ($expected_hier, "")); - my (%actual) = read_tar ("$test.tar"); + my (%actual) = read_tar ("$prereq_tests[0].tar"); my ($errors) = 0; foreach my $name (sort keys %expected) { @@ -273,7 +285,7 @@ sub check_archive { my ($esc_name) = $name; $esc_name =~ s/[^[:print:]]/./g; print <