summaryrefslogtreecommitdiffstats
path: root/tests/vm/page-shuffle.ck
diff options
context:
space:
mode:
Diffstat (limited to 'tests/vm/page-shuffle.ck')
-rw-r--r--tests/vm/page-shuffle.ck44
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 -*-
2use strict;
3use warnings;
4use tests::tests;
5use tests::cksum;
6use tests::lib;
7
8my ($init, @shuffle);
9if (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
29check_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
43EOF
44pass;