Message ID | 20240723-fchmodat2-v2-0-e658a98b113e@suse.com |
---|---|
Headers | show |
Series | Add fchmodat2 testing suite | expand |
Hi, I just noticed an error in the patch. fchmodat2.h can be merged with the first test. I will send v3, please ignore this v2. Thanks, Andrea On 7/23/24 17:41, Andrea Cervesato wrote: > This is a patch-set that implements fchmodat2() syscall coverage. > fchmodat2() has been added in kernel 6.6 in order to support > AT_SYMLINK_NOFOLLOW and AT_EMPTY_PATH in fchmodat(). > There's no man pages yet, so please take the following links as > main documentation along with kernel source code: > > https://www.phoronix.com/news/fchmodat2-For-Linux-6.6 > https://lore.kernel.org/lkml/20230824-frohlocken-vorabend-725f6fdaad50@brauner/ > > *********** > * WARNING * > *********** > > fchmodat2_02 fails with EOPNOTSUPP because of missing feature. > According to documentation, the feature has been implemented in > kernel 6.6, but __in reality__ AT_SYMLINK_NOFOLLOW is not working > on symbolic files. Also kselftests, which are meant to test the > functionality, are not working and they are treating fchmodat2() > syscall failure as SKIP. Please take a look at the following code > before reviewing: > > https://github.com/torvalds/linux/blob/8f6a15f095a63a83b096d9b29aaff4f0fbe6f6e6/tools/testing/selftests/fchmodat2/fchmodat2_test.c#L123 > > Signed-off-by: Andrea Cervesato <andrea.cervesato@suse.com> > --- > Changes in v2: > - merge first 3 tests into a unique one > - move fchmodat2 in lapi/stat.h > - add test for error checking > - Link to v1: https://lore.kernel.org/r/20240521-fchmodat2-v1-0-191b4a986202@suse.com > > --- > Andrea Cervesato (5): > Add SAFE_SYMLINKAT macro > Add fchmodat2 syscalls definitions > Add fchmodat2 fallback definition > Add fchmodat2_01 test > Add fchmodat2_02 test > > include/lapi/stat.h | 13 +++ > include/lapi/syscalls/aarch64.in | 1 + > include/lapi/syscalls/arc.in | 1 + > include/lapi/syscalls/arm.in | 1 + > include/lapi/syscalls/hppa.in | 1 + > include/lapi/syscalls/i386.in | 1 + > include/lapi/syscalls/ia64.in | 1 + > include/lapi/syscalls/loongarch.in | 1 + > include/lapi/syscalls/mips_n32.in | 1 + > include/lapi/syscalls/mips_n64.in | 1 + > include/lapi/syscalls/mips_o32.in | 1 + > include/lapi/syscalls/powerpc.in | 1 + > include/lapi/syscalls/powerpc64.in | 1 + > include/lapi/syscalls/s390.in | 1 + > include/lapi/syscalls/s390x.in | 1 + > include/lapi/syscalls/sh.in | 1 + > include/lapi/syscalls/sparc.in | 1 + > include/lapi/syscalls/sparc64.in | 1 + > include/lapi/syscalls/x86_64.in | 1 + > include/safe_macros_fn.h | 4 + > include/tst_safe_macros.h | 3 + > lib/safe_macros.c | 20 ++++ > runtest/syscalls | 3 + > testcases/kernel/syscalls/fchmodat2/.gitignore | 2 + > testcases/kernel/syscalls/fchmodat2/Makefile | 7 ++ > testcases/kernel/syscalls/fchmodat2/fchmodat2.h | 20 ++++ > testcases/kernel/syscalls/fchmodat2/fchmodat2_01.c | 105 +++++++++++++++++++++ > testcases/kernel/syscalls/fchmodat2/fchmodat2_02.c | 68 +++++++++++++ > 28 files changed, 263 insertions(+) > --- > base-commit: c5d95b6d34e2356bd19e6b646da06f1bce66a024 > change-id: 20240517-fchmodat2-5b82867d71fc > > Best regards,
This is a patch-set that implements fchmodat2() syscall coverage. fchmodat2() has been added in kernel 6.6 in order to support AT_SYMLINK_NOFOLLOW and AT_EMPTY_PATH in fchmodat(). There's no man pages yet, so please take the following links as main documentation along with kernel source code: https://www.phoronix.com/news/fchmodat2-For-Linux-6.6 https://lore.kernel.org/lkml/20230824-frohlocken-vorabend-725f6fdaad50@brauner/ *********** * WARNING * *********** fchmodat2_02 fails with EOPNOTSUPP because of missing feature. According to documentation, the feature has been implemented in kernel 6.6, but __in reality__ AT_SYMLINK_NOFOLLOW is not working on symbolic files. Also kselftests, which are meant to test the functionality, are not working and they are treating fchmodat2() syscall failure as SKIP. Please take a look at the following code before reviewing: https://github.com/torvalds/linux/blob/8f6a15f095a63a83b096d9b29aaff4f0fbe6f6e6/tools/testing/selftests/fchmodat2/fchmodat2_test.c#L123 Signed-off-by: Andrea Cervesato <andrea.cervesato@suse.com> --- Changes in v2: - merge first 3 tests into a unique one - move fchmodat2 in lapi/stat.h - add test for error checking - Link to v1: https://lore.kernel.org/r/20240521-fchmodat2-v1-0-191b4a986202@suse.com --- Andrea Cervesato (5): Add SAFE_SYMLINKAT macro Add fchmodat2 syscalls definitions Add fchmodat2 fallback definition Add fchmodat2_01 test Add fchmodat2_02 test include/lapi/stat.h | 13 +++ include/lapi/syscalls/aarch64.in | 1 + include/lapi/syscalls/arc.in | 1 + include/lapi/syscalls/arm.in | 1 + include/lapi/syscalls/hppa.in | 1 + include/lapi/syscalls/i386.in | 1 + include/lapi/syscalls/ia64.in | 1 + include/lapi/syscalls/loongarch.in | 1 + include/lapi/syscalls/mips_n32.in | 1 + include/lapi/syscalls/mips_n64.in | 1 + include/lapi/syscalls/mips_o32.in | 1 + include/lapi/syscalls/powerpc.in | 1 + include/lapi/syscalls/powerpc64.in | 1 + include/lapi/syscalls/s390.in | 1 + include/lapi/syscalls/s390x.in | 1 + include/lapi/syscalls/sh.in | 1 + include/lapi/syscalls/sparc.in | 1 + include/lapi/syscalls/sparc64.in | 1 + include/lapi/syscalls/x86_64.in | 1 + include/safe_macros_fn.h | 4 + include/tst_safe_macros.h | 3 + lib/safe_macros.c | 20 ++++ runtest/syscalls | 3 + testcases/kernel/syscalls/fchmodat2/.gitignore | 2 + testcases/kernel/syscalls/fchmodat2/Makefile | 7 ++ testcases/kernel/syscalls/fchmodat2/fchmodat2.h | 20 ++++ testcases/kernel/syscalls/fchmodat2/fchmodat2_01.c | 105 +++++++++++++++++++++ testcases/kernel/syscalls/fchmodat2/fchmodat2_02.c | 68 +++++++++++++ 28 files changed, 263 insertions(+) --- base-commit: c5d95b6d34e2356bd19e6b646da06f1bce66a024 change-id: 20240517-fchmodat2-5b82867d71fc Best regards,