diff options
author | Zhangjin Wu <falcon@tinylab.org> | 2023-07-08 02:40:08 +0800 |
---|---|---|
committer | Willy Tarreau <w@1wt.eu> | 2023-08-23 04:38:02 +0200 |
commit | 6861b1a3398ec3f1b830d7d190a6ffbc3be8ab6b (patch) | |
tree | 5d49482d0094f2fe4978e9850a4174a265740a3b /tools/testing/selftests/nolibc | |
parent | bbb14546bd22b1c41af7182d085abe89ae21eecd (diff) | |
download | linux-stable-6861b1a3398ec3f1b830d7d190a6ffbc3be8ab6b.tar.gz linux-stable-6861b1a3398ec3f1b830d7d190a6ffbc3be8ab6b.tar.bz2 linux-stable-6861b1a3398ec3f1b830d7d190a6ffbc3be8ab6b.zip |
selftests/nolibc: vfprintf: remove MEMFD_CREATE dependency
The vfprintf test case require to open a temporary file to write, the
old memfd_create() method is perfect but has strong dependency on
MEMFD_CREATE and also TMPFS or HUGETLBFS (see fs/Kconfig):
config MEMFD_CREATE
def_bool TMPFS || HUGETLBFS
And from v6.2, MFD_NOEXEC_SEAL must be passed for the non-executable
memfd, otherwise, The kernel warning will be output to the test result
like this:
Running test 'vfprintf'
0 emptymemfd_create() without MFD_EXEC nor MFD_NOEXEC_SEAL, pid=1 'init'
"" = "" [OK]
To avoid such warning and also to remove the MEMFD_CREATE dependency,
let's open a file from tmpfs directly.
The /tmp directory is used to detect the existing of tmpfs, if not
there, skip instead of fail.
And further, for pid == 1, the initramfs is loaded as ramfs, which can
be used as tmpfs, so, it is able to further remove TMPFS dependency too.
Suggested-by: Thomas Weißschuh <linux@weissschuh.net>
Link: https://lore.kernel.org/lkml/9ad51430-b7c0-47dc-80af-20c86539498d@t-8ch.de
Reviewed-by: Thomas Weißschuh <linux@weissschuh.net>
Signed-off-by: Zhangjin Wu <falcon@tinylab.org>
Signed-off-by: Willy Tarreau <w@1wt.eu>
Diffstat (limited to 'tools/testing/selftests/nolibc')
-rw-r--r-- | tools/testing/selftests/nolibc/nolibc-test.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/tools/testing/selftests/nolibc/nolibc-test.c b/tools/testing/selftests/nolibc/nolibc-test.c index bc2f40c9cee6..ad1f6358b253 100644 --- a/tools/testing/selftests/nolibc/nolibc-test.c +++ b/tools/testing/selftests/nolibc/nolibc-test.c @@ -876,10 +876,10 @@ static int expect_vfprintf(int llen, size_t c, const char *expected, const char FILE *memfile; va_list args; - fd = memfd_create("vfprintf", 0); + fd = open("/tmp", O_TMPFILE | O_EXCL | O_RDWR, 0600); if (fd == -1) { - pad_spc(llen, 64, "[FAIL]\n"); - return 1; + pad_spc(llen, 64, "[SKIPPED]\n"); + return 0; } memfile = fdopen(fd, "w+"); |