summaryrefslogtreecommitdiff
path: root/userland/test
diff options
context:
space:
mode:
authorAnton Kling <anton@kling.gg>2023-11-23 17:01:55 +0100
committerAnton Kling <anton@kling.gg>2023-11-23 17:01:55 +0100
commit6757803629574fe46e9047be8567e0c7e0522973 (patch)
treecf31247efa27997b0b43bfed559ffbb42bfb8f3e /userland/test
parentb8da260dd01175529feb57d5a73570f469decb08 (diff)
Kernel/LibC: Add randomfill() syscall.
This syscall aims to fill the given buffer with cryptographically secure random data. If the syscall returns and does not cause a page fault it will **always** have filled the buffer with random data and never gives back any error value.
Diffstat (limited to 'userland/test')
-rw-r--r--userland/test/test.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/userland/test/test.c b/userland/test/test.c
index a8c20dc..940854c 100644
--- a/userland/test/test.c
+++ b/userland/test/test.c
@@ -735,6 +735,26 @@ void realpath_test(void) {
dbgln("realpath TEST PASSED");
}
+void randomfill_test(void) {
+ dbgln("randomfill TEST");
+ {
+ char buffer[4096];
+ memset(buffer, 0, 4096);
+ randomfill(buffer, 4096);
+ int i;
+ for (i = 0; i < 4096; i++) {
+ if (0 != buffer[i])
+ break;
+ }
+ assert(4096 != i);
+ char buffer2[4096];
+ memcpy(buffer2, buffer, 4096);
+ randomfill(buffer, 4096);
+ assert(0 != memcmp(buffer, buffer2, 4096));
+ }
+ dbgln("randomfill TEST PASSED");
+}
+
int main(void) {
dbgln("START");
malloc_test();
@@ -774,6 +794,7 @@ int main(void) {
dirname_test();
getline_test();
realpath_test();
+ randomfill_test();
// TODO: Add mkstemp
return 0;
}