/* Creates a 128 kB file and repeatedly shuffles data in it through a memory mapping. */ #include #include #include #include "tests/arc4.h" #include "tests/cksum.h" #include "tests/lib.h" #include "tests/main.h" #define SIZE (128 * 1024) static char *buf = (char *) 0x10000000; void test_main (void) { size_t i; int handle; /* Create file, mmap. */ CHECK (create ("buffer", SIZE), "create \"buffer\""); CHECK ((handle = open ("buffer")) > 1, "open \"buffer\""); CHECK (mmap (handle, buf) != MAP_FAILED, "mmap \"buffer\""); /* Initialize. */ for (i = 0; i < SIZE; i++) buf[i] = i * 257; msg ("init: cksum=%lu", cksum (buf, SIZE)); /* Shuffle repeatedly. */ for (i = 0; i < 10; i++) { shuffle (buf, SIZE, 1); msg ("shuffle %zu: cksum=%lu", i, cksum (buf, SIZE)); } }