linux-kselftest.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/3] selftests: openat2: Print also errno in failure messages
@ 2021-12-02 16:26 Cristian Marussi
  2021-12-02 16:26 ` [PATCH 2/3] selftests: openat2: Add missing dependency in Makefile Cristian Marussi
  2021-12-02 16:26 ` [PATCH 3/3] selftests: openat2: Skip testcases that fail with EOPNOTSUPP Cristian Marussi
  0 siblings, 2 replies; 3+ messages in thread
From: Cristian Marussi @ 2021-12-02 16:26 UTC (permalink / raw)
  To: linux-kselftest, linux-kernel; +Cc: cyphar, shuah, Cristian Marussi

In E_func() macro, on error, print also errno in order to aid debugging.

Signed-off-by: Cristian Marussi <cristian.marussi@arm.com>
---
 tools/testing/selftests/openat2/helpers.h | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/tools/testing/selftests/openat2/helpers.h b/tools/testing/selftests/openat2/helpers.h
index a6ea27344db2..ad5d0ba5b6ce 100644
--- a/tools/testing/selftests/openat2/helpers.h
+++ b/tools/testing/selftests/openat2/helpers.h
@@ -62,11 +62,12 @@ bool needs_openat2(const struct open_how *how);
 					(similar to chroot(2)). */
 #endif /* RESOLVE_IN_ROOT */
 
-#define E_func(func, ...)						\
-	do {								\
-		if (func(__VA_ARGS__) < 0)				\
-			ksft_exit_fail_msg("%s:%d %s failed\n", \
-					   __FILE__, __LINE__, #func);\
+#define E_func(func, ...)						      \
+	do {								      \
+		errno = 0;						      \
+		if (func(__VA_ARGS__) < 0)				      \
+			ksft_exit_fail_msg("%s:%d %s failed - errno:%d\n",    \
+					   __FILE__, __LINE__, #func, errno); \
 	} while (0)
 
 #define E_asprintf(...)		E_func(asprintf,	__VA_ARGS__)
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [PATCH 2/3] selftests: openat2: Add missing dependency in Makefile
  2021-12-02 16:26 [PATCH 1/3] selftests: openat2: Print also errno in failure messages Cristian Marussi
@ 2021-12-02 16:26 ` Cristian Marussi
  2021-12-02 16:26 ` [PATCH 3/3] selftests: openat2: Skip testcases that fail with EOPNOTSUPP Cristian Marussi
  1 sibling, 0 replies; 3+ messages in thread
From: Cristian Marussi @ 2021-12-02 16:26 UTC (permalink / raw)
  To: linux-kselftest, linux-kernel; +Cc: cyphar, shuah, Cristian Marussi

Add a dependency on header helpers.h to the main target; while at that add
to helpers.h also a missing include for bool types.

Signed-off-by: Cristian Marussi <cristian.marussi@arm.com>
---
 tools/testing/selftests/openat2/Makefile  | 2 +-
 tools/testing/selftests/openat2/helpers.h | 1 +
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/tools/testing/selftests/openat2/Makefile b/tools/testing/selftests/openat2/Makefile
index 4b93b1417b86..843ba56d8e49 100644
--- a/tools/testing/selftests/openat2/Makefile
+++ b/tools/testing/selftests/openat2/Makefile
@@ -5,4 +5,4 @@ TEST_GEN_PROGS := openat2_test resolve_test rename_attack_test
 
 include ../lib.mk
 
-$(TEST_GEN_PROGS): helpers.c
+$(TEST_GEN_PROGS): helpers.c helpers.h
diff --git a/tools/testing/selftests/openat2/helpers.h b/tools/testing/selftests/openat2/helpers.h
index ad5d0ba5b6ce..7056340b9339 100644
--- a/tools/testing/selftests/openat2/helpers.h
+++ b/tools/testing/selftests/openat2/helpers.h
@@ -9,6 +9,7 @@
 
 #define _GNU_SOURCE
 #include <stdint.h>
+#include <stdbool.h>
 #include <errno.h>
 #include <linux/types.h>
 #include "../kselftest.h"
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [PATCH 3/3] selftests: openat2: Skip testcases that fail with EOPNOTSUPP
  2021-12-02 16:26 [PATCH 1/3] selftests: openat2: Print also errno in failure messages Cristian Marussi
  2021-12-02 16:26 ` [PATCH 2/3] selftests: openat2: Add missing dependency in Makefile Cristian Marussi
@ 2021-12-02 16:26 ` Cristian Marussi
  1 sibling, 0 replies; 3+ messages in thread
From: Cristian Marussi @ 2021-12-02 16:26 UTC (permalink / raw)
  To: linux-kselftest, linux-kernel; +Cc: cyphar, shuah, Cristian Marussi

Skip testcases that fail since the requested valid flags combination is not
supported by the underlying filesystem.

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);
 	}
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2021-12-02 16:28 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-12-02 16:26 [PATCH 1/3] selftests: openat2: Print also errno in failure messages Cristian Marussi
2021-12-02 16:26 ` [PATCH 2/3] selftests: openat2: Add missing dependency in Makefile Cristian Marussi
2021-12-02 16:26 ` [PATCH 3/3] selftests: openat2: Skip testcases that fail with EOPNOTSUPP Cristian Marussi

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).