| // SPDX-License-Identifier: GPL-2.0-or-later |
| /* |
| * Copyright (C) 2015 Cedric Hnyda <[email protected]> |
| * |
| * Calls getrandom(2), check that the return value is equal to the |
| * number of bytes required and expects success. |
| */ |
| |
| #include "lapi/getrandom.h" |
| #include "lapi/syscalls.h" |
| #include "tst_test.h" |
| |
| #define MAX_SIZE 256 |
| |
| static unsigned int sizes[] = { |
| 1, |
| 2, |
| 3, |
| 7, |
| 8, |
| 15, |
| 22, |
| 64, |
| 127, |
| }; |
| |
| static void verify_getrandom(unsigned int n) |
| { |
| char buf[MAX_SIZE]; |
| |
| TEST(tst_syscall(__NR_getrandom, buf, sizes[n], 0)); |
| |
| if (TST_RET != sizes[n]) { |
| tst_res(TFAIL | TTERRNO, "getrandom returned %li, expected %u", |
| TST_RET, sizes[n]); |
| } else { |
| tst_res(TPASS, "getrandom returned %ld", TST_RET); |
| } |
| } |
| |
| static struct tst_test test = { |
| .tcnt = ARRAY_SIZE(sizes), |
| .test = verify_getrandom, |
| }; |