diff options
author | Wolfgang Hommel <wolfcw@users.noreply.github.com> | 2021-02-04 21:39:02 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-02-04 21:39:02 +0100 |
commit | 4359458c7c7a152d79363be8b1c5d9a12f66a137 (patch) | |
tree | a41d1d6ea8d841ed40807e1f2b138df4db9c44d2 /test | |
parent | 726c4657fc819348f2e8386f65811379e2e2d590 (diff) | |
parent | 206ae9ea80656b04e17a2469c26efc9c8bebf45c (diff) | |
download | libfaketime-4359458c7c7a152d79363be8b1c5d9a12f66a137.tar.gz |
Merge pull request #289 from dkg/getrandom_test-cleanup
Ease build of getrandom_test
Diffstat (limited to 'test')
-rw-r--r-- | test/Makefile | 8 | ||||
-rw-r--r-- | test/getrandom_test.c | 6 | ||||
-rwxr-xr-x | test/randomtest.sh | 29 |
3 files changed, 39 insertions, 4 deletions
diff --git a/test/Makefile b/test/Makefile index 3dd4517..8ee538c 100644 --- a/test/Makefile +++ b/test/Makefile @@ -22,8 +22,14 @@ test: timetest functest functest: ./testframe.sh functests +getrandom_test: getrandom_test.c + ${CC} -o $@ ${CFLAGS} $< + +randomtest: getrandom_test + ./randomtest.sh + clean: - @rm -f ${OBJ} timetest + @rm -f ${OBJ} timetest getrandom_test distclean: clean @echo diff --git a/test/getrandom_test.c b/test/getrandom_test.c index b47f10d..59e13a5 100644 --- a/test/getrandom_test.c +++ b/test/getrandom_test.c @@ -2,13 +2,13 @@ #include <sys/random.h> #include <stdlib.h> -int main(int argc, char **argv) { +int main() { char *buf = calloc(100, 1); size_t buflen = 100; unsigned flags = GRND_NONBLOCK; fprintf(stdout, "Before getrandom:\n"); - for (int i=0; i < buflen; i++) { fprintf(stdout, "%hhu ", buf[i]); } + for (size_t i=0; i < buflen; i++) { fprintf(stdout, "%hhu ", buf[i]); } fprintf(stdout, "\n"); int result = getrandom(buf, buflen, flags); @@ -17,7 +17,7 @@ int main(int argc, char **argv) { fprintf(stdout, "After getrandom:\n"); - for (int i=0; i < buflen; i++) { fprintf(stdout, "%hhu ", buf[i]); } + for (size_t i=0; i < buflen; i++) { fprintf(stdout, "%hhu ", buf[i]); } fprintf(stdout, "\n"); free(buf); diff --git a/test/randomtest.sh b/test/randomtest.sh new file mode 100755 index 0000000..0dee353 --- /dev/null +++ b/test/randomtest.sh @@ -0,0 +1,29 @@ +#!/bin/sh + +error=0 +./getrandom_test > run0 +FAKERANDOM_SEED=0x12345678DEADBEEF LD_PRELOAD=../src/libfaketime.so.1 ./getrandom_test > run1 +FAKERANDOM_SEED=0x12345678DEADBEEF LD_PRELOAD=../src/libfaketime.so.1 ./getrandom_test > run2 +FAKERANDOM_SEED=0x0000000000000000 LD_PRELOAD=../src/libfaketime.so.1 ./getrandom_test > run3 + + +if diff -u run0 run1 > /dev/null; then + error=1 + printf >&2 'test run without a seed produced the same data as a run with a seed!\n' +fi +if ! diff -u run1 run2; then + error=2 + printf >&2 'test runs with identical seeds differed!\n' +fi +if diff -u run2 run3 >/dev/null; then + error=3 + printf >&2 'test runs with different seeds produced the same data!\n' +fi + +rm -f run0 run1 run2 run3 + +if [ 0 = $error ]; then + printf 'getrandom interception test successful.\n' +fi + +exit $error |