mirror of
https://github.com/torvalds/linux.git
synced 2024-12-05 18:41:23 +00:00
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>
This commit is contained in:
parent
bbb14546bd
commit
6861b1a339
@ -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+");
|
||||
|
Loading…
Reference in New Issue
Block a user