[LTP] [PATCH v1] Add epoll_create1_03 test

Avinesh Kumar akumar@suse.de
Mon Oct 10 08:23:17 CEST 2022


Hi Andrea,

On Friday, October 7, 2022 2:04:06 PM IST Andrea Cervesato via ltp wrote:
> The test verifies epoll_create1 will raises EMFILE when
> /proc/sys/fs/epoll/max_user_watches is reached.
> 
> Signed-off-by: Andrea Cervesato <andrea.cervesato@suse.com>
> ---
>  .../syscalls/epoll_create1/epoll_create1_03.c | 34 +++++++++++++++++++
>  1 file changed, 34 insertions(+)
>  create mode 100644 testcases/kernel/syscalls/epoll_create1/epoll_create1_03.c
> 
> diff --git a/testcases/kernel/syscalls/epoll_create1/epoll_create1_03.c b/testcases/kernel/syscalls/epoll_create1/epoll_create1_03.c
> new file mode 100644
> index 000000000..7f51edf7a
> --- /dev/null
> +++ b/testcases/kernel/syscalls/epoll_create1/epoll_create1_03.c
> @@ -0,0 +1,34 @@
> +// SPDX-License-Identifier: GPL-2.0-or-later
> +/*
> + * Copyright (C) 2022 SUSE LLC Andrea Cervesato <andrea.cervesato@suse.com>
> + */
> +
> +/*\
> + * [Description]
> + *
> + * Verify that epoll_create1 returns -1 and set errno to EMFILE when maximum
> + * number of epoll watchers is reached.
> + */
> +
> +#include <sys/epoll.h>
> +
> +#include "tst_test.h"
> +#include "lapi/epoll.h"
> +#include "lapi/syscalls.h"
> +
> +static void run(void)
> +{
> +	int i, max_inst;
> +
> +	SAFE_FILE_LINES_SCANF("/proc/sys/fs/epoll/max_user_watches", "%d", &max_inst);
> +
> +	for (i = 0; i < max_inst; i++)
> +		TST_EXP_PASS_SILENT(epoll_create1(0) == 0);
I don't think this is correct,
epoll_create1(0) will return a file descriptor (a nonnegative integer).
And IIUC, TST_EXP_PASS* macros take a function call only and not a compare statement.

> +
> +	TST_EXP_FAIL(epoll_create1(0), EMFILE);
> +}
> +
> +static struct tst_test test = {
> +	.min_kver = "2.6.27",
> +	.test_all = run,
> +};
> 
Also,
Test reports TBROK if run for more than one iteration -
$ ./epoll_create1_03 -i2
tst_test.c:1526: TINFO: Timeout per run is 0h 00m 30s
epoll_create1_03.c:28: TPASS: epoll_create1(0) : EMFILE (24)
epoll_create1_03.c:23: TBROK: Failed to open FILE '/proc/sys/fs/epoll/max_user_watches' for reading: EMFILE (24)


Kind Regards,
Avinesh






More information about the ltp mailing list