diff mbox series

[5/5] selftests: openat2: Skip testcases that fail with EOPNOTSUPP

Message ID 20220126102723.23300-6-cristian.marussi@arm.com
State Accepted
Commit ac9e0a250bb155078601a5b999aab05f2a04d1ab
Headers show
Series Miscellaneous trivial fixes | expand

Commit Message

Cristian Marussi Jan. 26, 2022, 10:27 a.m. UTC
Skip testcases that fail since the requested valid flags combination is not
supported by the underlying filesystem.

Cc: Aleksa Sarai <cyphar@cyphar.com>
Signed-off-by: Cristian Marussi <cristian.marussi@arm.com>
---
 tools/testing/selftests/openat2/openat2_test.c | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

Comments

Shuah Khan Jan. 27, 2022, 11:13 p.m. UTC | #1
On 1/26/22 3:27 AM, Cristian Marussi wrote:
> Skip testcases that fail since the requested valid flags combination is not
> supported by the underlying filesystem.
> 
> Cc: Aleksa Sarai <cyphar@cyphar.com>
> Signed-off-by: Cristian Marussi <cristian.marussi@arm.com>
> ---
>   tools/testing/selftests/openat2/openat2_test.c | 12 +++++++++++-
>   1 file changed, 11 insertions(+), 1 deletion(-)
> 
> diff --git a/tools/testing/selftests/openat2/openat2_test.c b/tools/testing/selftests/openat2/openat2_test.c
> index 1bddbe934204..7fb902099de4 100644
> --- a/tools/testing/selftests/openat2/openat2_test.c
> +++ b/tools/testing/selftests/openat2/openat2_test.c
> @@ -259,6 +259,16 @@ void test_openat2_flags(void)
>   		unlink(path);
>   
>   		fd = sys_openat2(AT_FDCWD, path, &test->how);
> +		if (fd < 0 && fd == -EOPNOTSUPP) {
> +			/*
> +			 * Skip the testcase if it failed because not supported
> +			 * by FS. (e.g. a valid O_TMPFILE combination on NFS)
> +			 */
> +			ksft_test_result_skip("openat2 with %s fails with %d (%s)\n",
> +					      test->name, fd, strerror(-fd));
> +			goto next;
> +		}
> +
>   		if (test->err >= 0)
>   			failed = (fd < 0);
>   		else
> @@ -303,7 +313,7 @@ void test_openat2_flags(void)
>   		else
>   			resultfn("openat2 with %s fails with %d (%s)\n",
>   				 test->name, test->err, strerror(-test->err));
> -
> +next:
>   		free(fdpath);
>   		fflush(stdout);
>   	}
> 

Thanks for the patch. Will apply to linux-kselftest fixes branc for rc3

thanks,
-- Shuah
diff mbox series

Patch

diff --git a/tools/testing/selftests/openat2/openat2_test.c b/tools/testing/selftests/openat2/openat2_test.c
index 1bddbe934204..7fb902099de4 100644
--- a/tools/testing/selftests/openat2/openat2_test.c
+++ b/tools/testing/selftests/openat2/openat2_test.c
@@ -259,6 +259,16 @@  void test_openat2_flags(void)
 		unlink(path);
 
 		fd = sys_openat2(AT_FDCWD, path, &test->how);
+		if (fd < 0 && fd == -EOPNOTSUPP) {
+			/*
+			 * Skip the testcase if it failed because not supported
+			 * by FS. (e.g. a valid O_TMPFILE combination on NFS)
+			 */
+			ksft_test_result_skip("openat2 with %s fails with %d (%s)\n",
+					      test->name, fd, strerror(-fd));
+			goto next;
+		}
+
 		if (test->err >= 0)
 			failed = (fd < 0);
 		else
@@ -303,7 +313,7 @@  void test_openat2_flags(void)
 		else
 			resultfn("openat2 with %s fails with %d (%s)\n",
 				 test->name, test->err, strerror(-test->err));
-
+next:
 		free(fdpath);
 		fflush(stdout);
 	}