From 8416dd4d498c2402a1f557697dcdf81ee742890c Mon Sep 17 00:00:00 2001 From: Aaron Culliney Date: Sat, 22 Nov 2014 11:30:53 -0800 Subject: [PATCH] adds PRNG tests --- disks/testvm1.dsk.gz | Bin 9931 -> 10034 bytes src/test/testvm.c | 81 ++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 77 insertions(+), 4 deletions(-) diff --git a/disks/testvm1.dsk.gz b/disks/testvm1.dsk.gz index adad0f6a60aa5b259a8554b181e257abcb601ffe..714484dafde2968325a28b9636003ac1d05136c7 100644 GIT binary patch literal 10034 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 e_ooVq*-(T literal 9931 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