diff options
Diffstat (limited to 'tools/testing/selftests/bpf/urandom_read.c')
-rw-r--r-- | tools/testing/selftests/bpf/urandom_read.c | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/tools/testing/selftests/bpf/urandom_read.c b/tools/testing/selftests/bpf/urandom_read.c new file mode 100644 index 000000000..db7810527 --- /dev/null +++ b/tools/testing/selftests/bpf/urandom_read.c @@ -0,0 +1,35 @@ +#include <stdio.h> +#include <unistd.h> +#include <sys/types.h> +#include <sys/stat.h> +#include <fcntl.h> +#include <stdlib.h> + +#define BUF_SIZE 256 + +static __attribute__((noinline)) +void urandom_read(int fd, int count) +{ + char buf[BUF_SIZE]; + int i; + + for (i = 0; i < count; ++i) + read(fd, buf, BUF_SIZE); +} + +int main(int argc, char *argv[]) +{ + int fd = open("/dev/urandom", O_RDONLY); + int count = 4; + + if (fd < 0) + return 1; + + if (argc == 2) + count = atoi(argv[1]); + + urandom_read(fd, count); + + close(fd); + return 0; +} |