summaryrefslogtreecommitdiff
path: root/tools/testing/selftests/filesystems/openat2
AgeCommit message (Collapse)Author
2026-09-25selftests/filesystems/openat2: make /tmp a mountpoint inside private namespaceDisha Goel
In resolve_test.c, the test unshares the mount namespace and attempts to make /tmp private via: mount("", "/tmp", "", MS_PRIVATE, "") This fails with EINVAL on environments where /tmp is not already a separate mount point (e.g. if /tmp is just a standard directory on the root filesystem /). Furthermore, the resolve_no_xdev test relies on crossing into /tmp to verify RESOLVE_NO_XDEV and trigger an -EXDEV error. If /tmp is not a mount point, resolving /tmp never crosses a mount boundary, leading to a test failure. Fix this by: 1. Making the entire root directory recursively private (MS_PRIVATE | MS_REC) after unsharing the mount namespace. 2. Performing a self-bind-mount of /tmp on /tmp inside the isolated private mount namespace, which guarantees that /tmp is a separate mount point and that resolving /tmp will cross a mount boundary as expected by the test. Signed-off-by: Disha Goel <disgoel@linux.ibm.com> Link: https://patch.msgid.link/20260917095707.16986-2-disgoel@linux.ibm.com Tested-by: andy_gao <andy23320@yahoo.com> Signed-off-by: Christian Brauner (Amutable) <brauner@kernel.org>
2026-09-25selftests/filesystems/openat2: fix O_LARGEFILE definitions for non-arm64 ↵Disha Goel
architectures The openat2_test.c code previously hardcoded O_LARGEFILE to 0x8000 on all architectures other than arm64 (aarch64). However, on several architectures this value is different. For example, on PowerPC (including ppc64le), O_LARGEFILE is defined as 0x10000, whereas 0x8000 is actually O_NOFOLLOW. This mismatch caused the flag_validation test case to pass O_PATH | O_NOFOLLOW instead of O_PATH | O_LARGEFILE. Since O_PATH | O_NOFOLLOW is a valid and compatible flag combination, the kernel successfully opened the file instead of failing with -EINVAL, causing a false test failure on PowerPC. Fix this by introducing proper architecture-specific definitions for O_LARGEFILE matching their respective UAPI asm/fcntl.h values. Signed-off-by: Disha Goel <disgoel@linux.ibm.com> Link: https://patch.msgid.link/20260917095707.16986-1-disgoel@linux.ibm.com Signed-off-by: Christian Brauner (Amutable) <brauner@kernel.org>
2026-05-21selftests: openat2: port emptypath_test to kselftest harnessChristian Brauner
Convert the emptypath selftests to the FIXTURE_SETUP()/FIXTURE_TEARDOWN() and the two checks become TEST_F()s. No change in coverage. Link: https://patch.msgid.link/20260521-wettstreit-meinen-46271dede480@brauner Signed-off-by: Christian Brauner (Amutable) <brauner@kernel.org>
2026-05-21kselftest/openat2: test for OPENAT2_REGULAR flagDorjoy Chowdhury
Just a happy path test. Christian Brauner <brauner@kernel.org> says: Update OPENAT2_REGULAR fallback define to match upper-32-bit UAPI value. Port the test to the kselftest_harness TEST*/FIXTURE framework to match the migrated openat2_test.c, and add a regression test ensuring open()/openat() keep ignoring the internal __O_REGULAR carrier bit. Signed-off-by: Dorjoy Chowdhury <dorjoychy111@gmail.com> Link: https://patch.msgid.link/20260328172314.45807-3-dorjoychy111@gmail.com Reviewed-by: Aleksa Sarai <aleksa@amutable.com> Signed-off-by: Christian Brauner (Amutable) <brauner@kernel.org>
2026-05-21selftest: add tests for O_EMPTYPATHJori Koolstra
Add tests for the new O_EMPTYPATH flag of openat(2)/openat2(2). Also, the current openat2 tests include a helper header file that defines the necessary structs and constants to use openat2(2), such as struct open_how. This may result in conflicting definitions when the system header openat2.h is present as well. So add openat2.h generated by 'make headers' to the uapi header files in ./tools/include and remove the helper file definitions of the current openat2 selftests. Signed-off-by: Jori Koolstra <jkoolstra@xs4all.nl> Link: https://patch.msgid.link/20260424114611.1678641-3-jkoolstra@xs4all.nl Signed-off-by: Christian Brauner (Amutable) <brauner@kernel.org>
2026-05-21selftests: openat2: migrate to kselftest harnessAleksa Sarai
These tests were written in the early days of selftests' TAP support, the more modern kselftest harness is much easier to follow and maintain. The actual contents of the tests are unchanged by this change. Most of the diff involves switching from the E_* syscall wrappers we previously used to ASSERT_EQ(fn(...), 0) in tests and helper functions. The first pass of the migration was done using Claude, followed by a manual rework and review. Assisted-by: Claude:claude-4.6-opus Signed-off-by: Aleksa Sarai <aleksa@amutable.com> Link: https://patch.msgid.link/20260401-openat2-selftests-kunit-v2-4-ad153a07da0c@amutable.com Signed-off-by: Christian Brauner (Amutable) <brauner@kernel.org>
2026-05-21selftests: openat2: switch from custom ARRAY_LEN to ARRAY_SIZEAleksa Sarai
For whatever reason, the original version of the tests used a custom version of ARRAY_SIZE, but ARRAY_SIZE works just as well. Signed-off-by: Aleksa Sarai <aleksa@amutable.com> Link: https://patch.msgid.link/20260401-openat2-selftests-kunit-v2-3-ad153a07da0c@amutable.com Signed-off-by: Christian Brauner (Amutable) <brauner@kernel.org>
2026-05-21selftests: openat2: move helpers to headerAleksa Sarai
This is a bit ugly, but in the next patch we will move to using kselftest_harness.h -- which doesn't play well with being included in multiple compilation units due to duplicate function definitions. Not including kselftest_harness.h would let us avoid this patch, but the helpers will need include kselftest_harness.h in order to switch to TH_LOG. Signed-off-by: Aleksa Sarai <aleksa@amutable.com> Link: https://patch.msgid.link/20260401-openat2-selftests-kunit-v2-2-ad153a07da0c@amutable.com Signed-off-by: Christian Brauner (Amutable) <brauner@kernel.org>
2026-05-21selftests: move openat2 tests to selftests/filesystems/Aleksa Sarai
These tests really should've always belonged there, doubly so now that they include a lot of other generic filesystem-related tests. Suggested-by: Christian Brauner <brauner@kernel.org> Signed-off-by: Aleksa Sarai <aleksa@amutable.com> Link: https://patch.msgid.link/20260401-openat2-selftests-kunit-v2-1-ad153a07da0c@amutable.com Signed-off-by: Christian Brauner (Amutable) <brauner@kernel.org>