diff mbox series

[v2] futex_waitv01: Add test verifies EINVAL for invalid nr_futexes

Message ID 20220408091733.15323-1-zhaogongyi@huawei.com
State Accepted
Headers show
Series [v2] futex_waitv01: Add test verifies EINVAL for invalid nr_futexes | expand

Commit Message

Zhao Gongyi April 8, 2022, 9:17 a.m. UTC
Add test verifies EINVAL for invalid nr_futexes according to
https://www.kernel.org/doc/html/latest/userspace-api/futex2.html.

Signed-off-by: Zhao Gongyi <zhaogongyi@huawei.com>
---
v1->v2: Check also lower bound that suggested by Andrea Cervesato

 testcases/kernel/syscalls/futex/futex_waitv01.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

--
2.17.1

Comments

Andrea Cervesato April 8, 2022, 12:46 p.m. UTC | #1
Hi!

It looks good, +1

Reviewed-by: Andrea Cervesato <andrea.cervesato@suse.de>


On 4/8/22 11:17, Zhao Gongyi via ltp wrote:
> Add test verifies EINVAL for invalid nr_futexes according to
> https://www.kernel.org/doc/html/latest/userspace-api/futex2.html.
>
> Signed-off-by: Zhao Gongyi<zhaogongyi@huawei.com>
> ---
> v1->v2: Check also lower bound that suggested by Andrea Cervesato
>
>   testcases/kernel/syscalls/futex/futex_waitv01.c | 14 ++++++++++++++
>   1 file changed, 14 insertions(+)
>
> diff --git a/testcases/kernel/syscalls/futex/futex_waitv01.c b/testcases/kernel/syscalls/futex/futex_waitv01.c
> index 601fee8df..721852750 100644
> --- a/testcases/kernel/syscalls/futex/futex_waitv01.c
> +++ b/testcases/kernel/syscalls/futex/futex_waitv01.c
> @@ -98,6 +98,19 @@ static void test_invalid_clockid(void)
>   		     "futex_waitv invalid clockid");
>   }
>
> +static void test_invalid_nr_futex(void)
> +{
> +	struct timespec to;
> +	init_waitv();
> +	init_timeout(&to);
> +
> +	/* Valid nr_futexes is [1, 128] */
> +	TST_EXP_FAIL(futex_waitv(waitv, 129, 0, &to, CLOCK_REALTIME), EINVAL,
> +		     "futex_waitv invalid nr_futexes");
> +	TST_EXP_FAIL(futex_waitv(waitv, 0, 0, &to, CLOCK_REALTIME), EINVAL,
> +		     "futex_waitv invalid nr_futexes");
> +}
> +
>   static void run(void)
>   {
>   	test_invalid_flags();
> @@ -105,6 +118,7 @@ static void run(void)
>   	test_null_address();
>   	test_null_waiters();
>   	test_invalid_clockid();
> +	test_invalid_nr_futex();
>   }
>
>   static struct tst_test test = {
> --
> 2.17.1
>
>
Richard Palethorpe April 12, 2022, 11:53 a.m. UTC | #2
Hello Zhao,

Zhao Gongyi via ltp <ltp@lists.linux.it> writes:

> Add test verifies EINVAL for invalid nr_futexes according to
> https://www.kernel.org/doc/html/latest/userspace-api/futex2.html.
>
> Signed-off-by: Zhao Gongyi <zhaogongyi@huawei.com>
> ---
> v1->v2: Check also lower bound that suggested by Andrea Cervesato
>
>  testcases/kernel/syscalls/futex/futex_waitv01.c | 14 ++++++++++++++
>  1 file changed, 14 insertions(+)
>
> diff --git a/testcases/kernel/syscalls/futex/futex_waitv01.c b/testcases/kernel/syscalls/futex/futex_waitv01.c
> index 601fee8df..721852750 100644
> --- a/testcases/kernel/syscalls/futex/futex_waitv01.c
> +++ b/testcases/kernel/syscalls/futex/futex_waitv01.c
> @@ -98,6 +98,19 @@ static void test_invalid_clockid(void)
>  		     "futex_waitv invalid clockid");
>  }
>
> +static void test_invalid_nr_futex(void)
> +{
> +	struct timespec to;

Space required here (run `make check-<test_name>`).

Pushed with correction, thanks!
diff mbox series

Patch

diff --git a/testcases/kernel/syscalls/futex/futex_waitv01.c b/testcases/kernel/syscalls/futex/futex_waitv01.c
index 601fee8df..721852750 100644
--- a/testcases/kernel/syscalls/futex/futex_waitv01.c
+++ b/testcases/kernel/syscalls/futex/futex_waitv01.c
@@ -98,6 +98,19 @@  static void test_invalid_clockid(void)
 		     "futex_waitv invalid clockid");
 }

+static void test_invalid_nr_futex(void)
+{
+	struct timespec to;
+	init_waitv();
+	init_timeout(&to);
+
+	/* Valid nr_futexes is [1, 128] */
+	TST_EXP_FAIL(futex_waitv(waitv, 129, 0, &to, CLOCK_REALTIME), EINVAL,
+		     "futex_waitv invalid nr_futexes");
+	TST_EXP_FAIL(futex_waitv(waitv, 0, 0, &to, CLOCK_REALTIME), EINVAL,
+		     "futex_waitv invalid nr_futexes");
+}
+
 static void run(void)
 {
 	test_invalid_flags();
@@ -105,6 +118,7 @@  static void run(void)
 	test_null_address();
 	test_null_waiters();
 	test_invalid_clockid();
+	test_invalid_nr_futex();
 }

 static struct tst_test test = {