Add file system persistence tests:
[pintos-anon] / src / tests / threads / priority-fifo.ck
1 # -*- perl -*-
2
3 # The expected output looks like this:
4 #
5 # (priority-fifo) iteration: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
6 # (priority-fifo) iteration: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
7 # (priority-fifo) iteration: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
8 # (priority-fifo) iteration: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
9 # (priority-fifo) iteration: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
10 # (priority-fifo) iteration: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
11 # (priority-fifo) iteration: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
12 # (priority-fifo) iteration: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
13 # (priority-fifo) iteration: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
14 # (priority-fifo) iteration: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
15 # (priority-fifo) iteration: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
16 # (priority-fifo) iteration: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
17 # (priority-fifo) iteration: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
18 # (priority-fifo) iteration: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
19 # (priority-fifo) iteration: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
20 # (priority-fifo) iteration: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
21 #
22 # A different permutation of 0...15 is acceptable, but every line must
23 # be in the same order.
24
25 use strict;
26 use warnings;
27 use tests::tests;
28
29 our ($test);
30 my (@output) = read_text_file ("$test.output");
31
32 common_checks ("run", @output);
33
34 my ($thread_cnt) = 16;
35 my ($iter_cnt) = 16;
36 my (@order);
37 my (@t) = (-1) x $thread_cnt;
38
39 my (@iterations) = grep (/iteration:/, @output);
40 fail "No iterations found in output.\n" if !@iterations;
41
42 my (@numbering) = $iterations[0] =~ /(\d+)/g;
43 fail "First iteration does not list exactly $thread_cnt threads.\n"
44   if @numbering != $thread_cnt;
45
46 my (@sorted_numbering) = sort { $a <=> $b } @numbering;
47 for my $i (0...$#sorted_numbering) {
48     if ($sorted_numbering[$i] != $i) {
49         fail "First iteration does not list all threads "
50           . "0...$#sorted_numbering\n";
51     }
52 }
53
54 for my $i (1...$#iterations) {
55     if ($iterations[$i] ne $iterations[0]) {
56         fail "Iteration $i differs from iteration 0\n";
57     }
58 }
59
60 fail "$iter_cnt iterations expected but " . scalar (@iterations)  . " found\n"
61   if $iter_cnt != @iterations;
62
63 pass;