diff options
Diffstat (limited to 'tests/vm/page-shuffle.ck')
| -rw-r--r-- | tests/vm/page-shuffle.ck | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/tests/vm/page-shuffle.ck b/tests/vm/page-shuffle.ck new file mode 100644 index 0000000..6447d38 --- /dev/null +++ b/tests/vm/page-shuffle.ck | |||
| @@ -0,0 +1,44 @@ | |||
| 1 | # -*- perl -*- | ||
| 2 | use strict; | ||
| 3 | use warnings; | ||
| 4 | use tests::tests; | ||
| 5 | use tests::cksum; | ||
| 6 | use tests::lib; | ||
| 7 | |||
| 8 | my ($init, @shuffle); | ||
| 9 | if (1) { | ||
| 10 | # Use precalculated values. | ||
| 11 | $init = 3115322833; | ||
| 12 | @shuffle = (1691062564, 1973575879, 1647619479, 96566261, 3885786467, | ||
| 13 | 3022003332, 3614934266, 2704001777, 735775156, 1864109763); | ||
| 14 | } else { | ||
| 15 | # Recalculate values. | ||
| 16 | my ($buf) = ""; | ||
| 17 | for my $i (0...128 * 1024 - 1) { | ||
| 18 | $buf .= chr (($i * 257) & 0xff); | ||
| 19 | } | ||
| 20 | $init = cksum ($buf); | ||
| 21 | |||
| 22 | random_init (0); | ||
| 23 | for my $i (1...10) { | ||
| 24 | $buf = shuffle ($buf, length ($buf), 1); | ||
| 25 | push (@shuffle, cksum ($buf)); | ||
| 26 | } | ||
| 27 | } | ||
| 28 | |||
| 29 | check_expected (IGNORE_EXIT_CODES => 1, [<<EOF]); | ||
| 30 | (page-shuffle) begin | ||
| 31 | (page-shuffle) init: cksum=$init | ||
| 32 | (page-shuffle) shuffle 0: cksum=$shuffle[0] | ||
| 33 | (page-shuffle) shuffle 1: cksum=$shuffle[1] | ||
| 34 | (page-shuffle) shuffle 2: cksum=$shuffle[2] | ||
| 35 | (page-shuffle) shuffle 3: cksum=$shuffle[3] | ||
| 36 | (page-shuffle) shuffle 4: cksum=$shuffle[4] | ||
| 37 | (page-shuffle) shuffle 5: cksum=$shuffle[5] | ||
| 38 | (page-shuffle) shuffle 6: cksum=$shuffle[6] | ||
| 39 | (page-shuffle) shuffle 7: cksum=$shuffle[7] | ||
| 40 | (page-shuffle) shuffle 8: cksum=$shuffle[8] | ||
| 41 | (page-shuffle) shuffle 9: cksum=$shuffle[9] | ||
| 42 | (page-shuffle) end | ||
| 43 | EOF | ||
| 44 | pass; | ||
