mirror of
https://github.com/wolfcw/libfaketime.git
synced 2026-05-17 08:36:28 +03:00
Merge pull request #289 from dkg/getrandom_test-cleanup
Ease build of getrandom_test
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -1,6 +1,7 @@
|
||||
*.o
|
||||
*.so.1
|
||||
timetest
|
||||
test/getrandom_test
|
||||
|
||||
src/libfaketime.dylib.1
|
||||
src/libfaketime.1.dylib
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
|
||||
29
test/randomtest.sh
Executable file
29
test/randomtest.sh
Executable file
@@ -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
|
||||
Reference in New Issue
Block a user