This repository has been archived on 2021-05-26. You can view files and clone it, but cannot push or open issues or pull requests.
OS/pintos-env/pintos/tests/vm/child-linear.c

37 lines
754 B
C
Raw Permalink Normal View History

/* Child process of page-parallel.
Encrypts 1 MB of zeros, then decrypts it, and ensures that
the zeros are back. */
#include <string.h>
#include "tests/arc4.h"
#include "tests/lib.h"
#include "tests/main.h"
const char *test_name = "child-linear";
#define SIZE (1024 * 1024)
static char buf[SIZE];
int
main (int argc, char *argv[])
{
const char *key = argv[argc - 1];
struct arc4 arc4;
size_t i;
/* Encrypt zeros. */
arc4_init (&arc4, key, strlen (key));
arc4_crypt (&arc4, buf, SIZE);
/* Decrypt back to zeros. */
arc4_init (&arc4, key, strlen (key));
arc4_crypt (&arc4, buf, SIZE);
/* Check that it's all zeros. */
for (i = 0; i < SIZE; i++)
if (buf[i] != '\0')
fail ("byte %zu != 0", i);
return 0x42;
}