From f38b49f1624e6dda02c7df121f0e129a83929908 Mon Sep 17 00:00:00 2001 From: Ingo Weinhold Date: Thu, 7 Feb 2008 02:22:48 +0000 Subject: [PATCH] Added small test program that opens and reads a few bytes from /dev/urandom. It verifies that Haiku's dev/urandom is performance-wise totally unusable -- it takes several seconds. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23904 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/tests/add-ons/kernel/drivers/Jamfile | 1 + .../add-ons/kernel/drivers/random/Jamfile | 3 ++ .../kernel/drivers/random/random_test.cpp | 38 +++++++++++++++++++ 3 files changed, 42 insertions(+) create mode 100644 src/tests/add-ons/kernel/drivers/random/Jamfile create mode 100644 src/tests/add-ons/kernel/drivers/random/random_test.cpp diff --git a/src/tests/add-ons/kernel/drivers/Jamfile b/src/tests/add-ons/kernel/drivers/Jamfile index 8dac0d1825..0918bb9a9f 100644 --- a/src/tests/add-ons/kernel/drivers/Jamfile +++ b/src/tests/add-ons/kernel/drivers/Jamfile @@ -1,3 +1,4 @@ SubDir HAIKU_TOP src tests add-ons kernel drivers ; +SubInclude HAIKU_TOP src tests add-ons kernel drivers random ; SubInclude HAIKU_TOP src tests add-ons kernel drivers tty ; diff --git a/src/tests/add-ons/kernel/drivers/random/Jamfile b/src/tests/add-ons/kernel/drivers/random/Jamfile new file mode 100644 index 0000000000..46041a18b8 --- /dev/null +++ b/src/tests/add-ons/kernel/drivers/random/Jamfile @@ -0,0 +1,3 @@ +SubDir HAIKU_TOP src tests add-ons kernel drivers random ; + +SimpleTest random_test : random_test.cpp ; diff --git a/src/tests/add-ons/kernel/drivers/random/random_test.cpp b/src/tests/add-ons/kernel/drivers/random/random_test.cpp new file mode 100644 index 0000000000..7bcb686c02 --- /dev/null +++ b/src/tests/add-ons/kernel/drivers/random/random_test.cpp @@ -0,0 +1,38 @@ +#include +#include +#include +#include +#include +#include +#include + + +static const char* kRandomDevice = "/dev/urandom"; + + +int +main() +{ + int fd = open(kRandomDevice, O_RDONLY); + if (fd < 0) { + fprintf(stderr, "Error: Failed to open \"%s\": %s", kRandomDevice, + strerror(errno)); + exit(1); + } + + uint8_t buffer[16]; + ssize_t bytesRead = read(fd, buffer, sizeof(buffer)); + if (bytesRead < 0) { + fprintf(stderr, "Error: Failed to read from random device: %s", + strerror(errno)); + exit(1); + } + + printf("Read %d bytes from random device: ", (int)bytesRead); + for (int i = 0; i < bytesRead; i++) + printf("%02x", buffer[i]); + printf("\n"); + + return 0; +} +