[LTP] [PATCH] flock02: Add test for EWOULDBLOCK errno
Andrea Cervesato
andrea.cervesato@suse.com
Wed Jan 15 10:14:53 CET 2025
Hi Avinesh,
On 1/14/25 16:49, Avinesh Kumar wrote:
> Also fix a make check warning.
>
> Signed-off-by: Avinesh Kumar <akumar@suse.de>
> Signed-off-by: Yang Xu <xuyang2018.jy@fujitsu.com>
> ---
> Following up on https://lore.kernel.org/ltp/1934768.7Z3S40VBb9@localhost/
>
> testcases/kernel/syscalls/flock/flock02.c | 10 +++++++++-
> 1 file changed, 9 insertions(+), 1 deletion(-)
>
> diff --git a/testcases/kernel/syscalls/flock/flock02.c b/testcases/kernel/syscalls/flock/flock02.c
> index b8c7eee68..e2fe73a64 100644
> --- a/testcases/kernel/syscalls/flock/flock02.c
> +++ b/testcases/kernel/syscalls/flock/flock02.c
> @@ -13,6 +13,7 @@
> * - EBADF if the file descriptor is invalid
> * - EINVAL if the argument operation does not include LOCK_SH,LOCK_EX,LOCK_UN
> * - EINVAL if an invalid combination of locking modes is used i.e LOCK_SH with LOCK_EX
> + * - EWOULDBLOCK if the file is locked and the LOCK_NB flag was selected
> */
>
> #include <errno.h>
> @@ -31,13 +32,19 @@ static struct tcase {
> {&badfd, LOCK_SH, EBADF},
> {&fd, LOCK_NB, EINVAL},
> {&fd, LOCK_SH | LOCK_EX, EINVAL},
> + {&fd, LOCK_NB | LOCK_EX, EWOULDBLOCK}
> };
>
> -static void verify_flock(unsigned n)
> +static void verify_flock(unsigned int n)
> {
> struct tcase *tc = &tcases[n];
>
> fd = SAFE_OPEN("testfile", O_RDWR);
> + int fd2 = SAFE_OPEN("testfile", O_RDWR);
We can initialize fd2 at the beginning of verify_flock() with -1, open
it only when tc->exp_err is EWOULDBLOCK and close it only when it's not
-1. So we avoid to open one more testfile also for the other testcases.
> +
> + if (tc->exp_err == EWOULDBLOCK)
> + flock(fd2, LOCK_EX);
> +
> TEST(flock(*tc->fd, tc->operation));
> if (TST_RET == 0) {
> tst_res(TFAIL | TTERRNO, "flock() succeeded unexpectedly");
> @@ -53,6 +60,7 @@ static void verify_flock(unsigned n)
> }
>
> SAFE_CLOSE(fd);
> + SAFE_CLOSE(fd2);
> }
>
> static void setup(void)
With that small thing:
Reviewed-by: Andrea Cervesato <andrea.cervesato@suse.com>
Kind regards,
Andrea
More information about the ltp
mailing list