summaryrefslogtreecommitdiffstats
path: root/pintos-progos/tests/vm/child-linear.c
diff options
context:
space:
mode:
Diffstat (limited to 'pintos-progos/tests/vm/child-linear.c')
-rw-r--r--pintos-progos/tests/vm/child-linear.c36
1 files changed, 36 insertions, 0 deletions
diff --git a/pintos-progos/tests/vm/child-linear.c b/pintos-progos/tests/vm/child-linear.c
new file mode 100644
index 0000000..eca3e3f
--- /dev/null
+++ b/pintos-progos/tests/vm/child-linear.c
@@ -0,0 +1,36 @@
1/* Child process of page-parallel.
2 Encrypts 1 MB of zeros, then decrypts it, and ensures that
3 the zeros are back. */
4
5#include <string.h>
6#include "tests/arc4.h"
7#include "tests/lib.h"
8#include "tests/main.h"
9
10const char *test_name = "child-linear";
11
12#define SIZE (1024 * 1024)
13static char buf[SIZE];
14
15int
16main (int argc, char *argv[])
17{
18 const char *key = argv[argc - 1];
19 struct arc4 arc4;
20 size_t i;
21
22 /* Encrypt zeros. */
23 arc4_init (&arc4, key, strlen (key));
24 arc4_crypt (&arc4, buf, SIZE);
25
26 /* Decrypt back to zeros. */
27 arc4_init (&arc4, key, strlen (key));
28 arc4_crypt (&arc4, buf, SIZE);
29
30 /* Check that it's all zeros. */
31 for (i = 0; i < SIZE; i++)
32 if (buf[i] != '\0')
33 fail ("byte %zu != 0", i);
34
35 return 0x42;
36}