All of lore.kernel.org
 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.