diff options
author | Wolfgang Hommel <wolfcw@users.noreply.github.com> | 2021-02-23 06:24:57 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-02-23 06:24:57 +0100 |
commit | b4a822cd6a7f65e9300c998c689270375f2dd0d1 (patch) | |
tree | 502df7c4e314162fd819df4a41343579759bdd37 /test | |
parent | 3c0b101a84de6eb9b05f8181c3f40731575e9ebc (diff) | |
parent | 54994ceb0dd6735fb38acd7292e89cc05a8b520d (diff) | |
download | libfaketime-b4a822cd6a7f65e9300c998c689270375f2dd0d1.tar.gz |
Merge pull request #294 from dkg/improve-FAKE_RANDOM-tests
Improve tests for FAKE_RANDOM
Diffstat (limited to 'test')
-rw-r--r-- | test/getrandom_test.c | 6 | ||||
-rwxr-xr-x | test/randomtest.sh | 18 |
2 files changed, 18 insertions, 6 deletions
diff --git a/test/getrandom_test.c b/test/getrandom_test.c index 59e13a5..8b134e3 100644 --- a/test/getrandom_test.c +++ b/test/getrandom_test.c @@ -2,7 +2,7 @@ #include <sys/random.h> #include <stdlib.h> -int main() { +int base() { char *buf = calloc(100, 1); size_t buflen = 100; unsigned flags = GRND_NONBLOCK; @@ -23,3 +23,7 @@ int main() { free(buf); return 0; } + +int main() { + return base() + base(); +} diff --git a/test/randomtest.sh b/test/randomtest.sh index 0792417..66e5b7a 100755 --- a/test/randomtest.sh +++ b/test/randomtest.sh @@ -2,27 +2,35 @@ FTPL="${FAKETIME_TESTLIB:-../src/libfaketime.so.1}" +set -e + error=0 -./getrandom_test > run0 +./getrandom_test > run-base +LD_PRELOAD="$FTPL" ./getrandom_test > run0 FAKERANDOM_SEED=0x12345678DEADBEEF LD_PRELOAD="$FTPL" ./getrandom_test > run1 FAKERANDOM_SEED=0x12345678DEADBEEF LD_PRELOAD="$FTPL" ./getrandom_test > run2 FAKERANDOM_SEED=0x0000000000000000 LD_PRELOAD="$FTPL" ./getrandom_test > run3 -if diff -u run0 run1 > /dev/null; then +if diff -u run-base run0 > /dev/null; then error=1 + printf >&2 'test run without the LD_PRELOAD matches a run without LD_PRELOAD' +fi + +if diff -u run0 run1 > /dev/null; then + error=2 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 + error=3 printf >&2 'test runs with identical seeds differed!\n' fi if diff -u run2 run3 >/dev/null; then - error=3 + error=4 printf >&2 'test runs with different seeds produced the same data!\n' fi -rm -f run0 run1 run2 run3 +rm -f run-base run0 run1 run2 run3 if [ 0 = $error ]; then printf 'getrandom interception test successful.\n' |