Make tests public. Rewrite most tests. Add tests.
[pintos-anon] / src / tests / filesys / extended / dir-lsdir.ck
1 # -*- perl -*-
2 use strict;
3 use warnings;
4 use tests::tests;
5
6 our ($test);
7 my (@output) = read_text_file ("$test.output");
8
9 common_checks (@output);
10 @output = get_core_output (@output);
11
12 my ($begin);
13 for my $i (0...$#output) {
14     $begin = $i, last if $output[$i] eq '(dir-lsdir) begin';
15 }
16 fail "\"(dir-lsdir) begin\" does not appear in output\n" if !defined $begin;
17
18 my ($end);
19 for my $i (0...$#output) {
20     $end = $i, last if $output[$i] eq '(dir-lsdir) end';
21 }
22 fail "\"(dir-lsdir) end\" does not appear in output\n" if !defined $end;
23 fail "\"begin\" follows \"end\" in output\n" if $begin > $end;
24
25 my (%count);
26 for my $fn (@output[$begin + 1...$end - 1]) {
27     $fn =~ s/\s+$//;
28     fail "Unexpected file \"$fn\" in lsdir output\n"
29       unless grep ($_ eq $fn, qw (. .. dir-lsdir));
30     fail "File \"$fn\" listed twice in lsdir output\n"
31       if $count{$fn};
32     $count{$fn}++;
33 }
34 fail "No files in lsdir output\n" if scalar (keys (%count)) == 0;
35 fail "File \"dir-lsdir\" missing from lsdir output\n"
36   if !$count{"dir-lsdir"};
37
38 pass;