From 23dc97f8c2543cf67881dd6d4a351e95318637db Mon Sep 17 00:00:00 2001 From: Brent Cook Date: Mon, 21 Jul 2014 18:25:54 -0500 Subject: rename local tests to end in test.c ok beck@ guenther@ --- tests/fork_rand.c | 81 -------------------------------------------------- tests/pidwraptest.c | 81 ++++++++++++++++++++++++++++++++++++++++++++++++++ tests/pidwraptest.sh | 11 +++++++ tests/run_fork_rand.sh | 11 ------- 4 files changed, 92 insertions(+), 92 deletions(-) delete mode 100644 tests/fork_rand.c create mode 100644 tests/pidwraptest.c create mode 100755 tests/pidwraptest.sh delete mode 100755 tests/run_fork_rand.sh diff --git a/tests/fork_rand.c b/tests/fork_rand.c deleted file mode 100644 index 75f2cc2..0000000 --- a/tests/fork_rand.c +++ /dev/null @@ -1,81 +0,0 @@ -/* - * Checks if LibreSSL's PRNG is fork-safe on Linux. - * From https://www.agwa.name/blog/post/libressls_prng_is_unsafe_on_linux - */ - -#include -#include -#include -#include -#include - -static void random_bytes (unsigned char* p, size_t len) -{ - if (RAND_bytes(p, len) != 1) { - fprintf(stderr, "RAND_bytes failed\n"); - abort(); - } -} - -static void random_stir (void) -{ - if (RAND_poll() != 1) { - fprintf(stderr, "RAND_poll failed\n"); - abort(); - } -} - -static void print_buffer (unsigned char* p, size_t len) -{ - while (len--) { - printf("%02x", (unsigned int)*p++); - } -} - -int main () -{ - char c = 0; - int pipefd[2]; - pipe(pipefd); - setbuf(stdout, NULL); - - if (fork() == 0) { - unsigned char buffer[32]; - pid_t grandparent_pid = getpid(); - - random_bytes(buffer, sizeof(buffer)); - - if (fork() == 0) { - random_stir(); - setsid(); - while (1) { - pid_t grandchild_pid = fork(); - if (grandchild_pid == 0) { - random_stir(); - if (getpid() == grandparent_pid) { - random_bytes(buffer, sizeof(buffer)); - print_buffer(buffer, sizeof(buffer)); - printf("\n"); - } - _exit(0); - } - wait(NULL); - if (grandchild_pid == grandparent_pid) { - break; - } - } - write(pipefd[1], &c, 1); - _exit(0); - } - - random_bytes(buffer, sizeof(buffer)); - print_buffer(buffer, sizeof(buffer)); - printf(" "); - _exit(0); - } - wait(NULL); - close(pipefd[1]); - read(pipefd[0], &c, 1); - return 0; -} - diff --git a/tests/pidwraptest.c b/tests/pidwraptest.c new file mode 100644 index 0000000..75f2cc2 --- /dev/null +++ b/tests/pidwraptest.c @@ -0,0 +1,81 @@ +/* + * Checks if LibreSSL's PRNG is fork-safe on Linux. + * From https://www.agwa.name/blog/post/libressls_prng_is_unsafe_on_linux + */ + +#include +#include +#include +#include +#include + +static void random_bytes (unsigned char* p, size_t len) +{ + if (RAND_bytes(p, len) != 1) { + fprintf(stderr, "RAND_bytes failed\n"); + abort(); + } +} + +static void random_stir (void) +{ + if (RAND_poll() != 1) { + fprintf(stderr, "RAND_poll failed\n"); + abort(); + } +} + +static void print_buffer (unsigned char* p, size_t len) +{ + while (len--) { + printf("%02x", (unsigned int)*p++); + } +} + +int main () +{ + char c = 0; + int pipefd[2]; + pipe(pipefd); + setbuf(stdout, NULL); + + if (fork() == 0) { + unsigned char buffer[32]; + pid_t grandparent_pid = getpid(); + + random_bytes(buffer, sizeof(buffer)); + + if (fork() == 0) { + random_stir(); + setsid(); + while (1) { + pid_t grandchild_pid = fork(); + if (grandchild_pid == 0) { + random_stir(); + if (getpid() == grandparent_pid) { + random_bytes(buffer, sizeof(buffer)); + print_buffer(buffer, sizeof(buffer)); + printf("\n"); + } + _exit(0); + } + wait(NULL); + if (grandchild_pid == grandparent_pid) { + break; + } + } + write(pipefd[1], &c, 1); + _exit(0); + } + + random_bytes(buffer, sizeof(buffer)); + print_buffer(buffer, sizeof(buffer)); + printf(" "); + _exit(0); + } + wait(NULL); + close(pipefd[1]); + read(pipefd[0], &c, 1); + return 0; +} + diff --git a/tests/pidwraptest.sh b/tests/pidwraptest.sh new file mode 100755 index 0000000..d1e2685 --- /dev/null +++ b/tests/pidwraptest.sh @@ -0,0 +1,11 @@ +#!/usr/bin/env bash +./fork_rand > fork_rand.txt +while read -r a b; +do + if [ "$a" = "$b" ]; then + echo "FAIL: $a = $b" + return 2 + else + echo "PASS: $a != $b" + fi +done < fork_rand.txt diff --git a/tests/run_fork_rand.sh b/tests/run_fork_rand.sh deleted file mode 100755 index d1e2685..0000000 --- a/tests/run_fork_rand.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/usr/bin/env bash -./fork_rand > fork_rand.txt -while read -r a b; -do - if [ "$a" = "$b" ]; then - echo "FAIL: $a = $b" - return 2 - else - echo "PASS: $a != $b" - fi -done < fork_rand.txt -- cgit v1.2.3-55-g6feb