* [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).