aboutsummaryrefslogtreecommitdiff
path: root/kernel/src/filesystem/mount_table.tests.cpp
diff options
context:
space:
mode:
authorLukas Oesch <lukasoesch20@gmail.com>2026-05-05 21:18:48 +0200
committerLukas Oesch <lukasoesch20@gmail.com>2026-05-05 21:18:48 +0200
commit870039d48d28f479eea88c7548b8d2b2a28c09bc (patch)
tree8687150811703a2279c859b83363c780d8091270 /kernel/src/filesystem/mount_table.tests.cpp
parent7ccfa26a3dde4d4266f8c59f4e3de8bd6f760059 (diff)
downloadkernel-870039d48d28f479eea88c7548b8d2b2a28c09bc.tar.xz
kernel-870039d48d28f479eea88c7548b8d2b2a28c09bc.zip
add mount table find_exact_mount tests, remove todo
Diffstat (limited to 'kernel/src/filesystem/mount_table.tests.cpp')
-rw-r--r--kernel/src/filesystem/mount_table.tests.cpp21
1 files changed, 19 insertions, 2 deletions
diff --git a/kernel/src/filesystem/mount_table.tests.cpp b/kernel/src/filesystem/mount_table.tests.cpp
index e028ac8..efacdfe 100644
--- a/kernel/src/filesystem/mount_table.tests.cpp
+++ b/kernel/src/filesystem/mount_table.tests.cpp
@@ -58,7 +58,7 @@ SCENARIO("Adding, finding and removing mounts in the mount table", "[filesystem]
REQUIRE_FALSE(root_dentry2->has_flag(kernel::filesystem::dentry::dentry_flags::mounted));
}
- THEN("finding mounts by path returns the correct mount")
+ THEN("finding mounts by longest prefix returns the correct mount")
{
REQUIRE(table.find_longest_prefix_mount("/") == mount1);
REQUIRE(table.find_longest_prefix_mount("/file") == mount1);
@@ -67,6 +67,18 @@ SCENARIO("Adding, finding and removing mounts in the mount table", "[filesystem]
REQUIRE(table.find_longest_prefix_mount("/other") == mount1);
}
+ THEN("finding mounts by exact valid path returns the correct mount")
+ {
+ REQUIRE(table.find_exact_mount("/") == mount1);
+ REQUIRE(table.find_exact_mount("/mnt") == mount2);
+ }
+
+ THEN("finding mounts by exact invalid path returns null")
+ {
+ REQUIRE(table.find_exact_mount("/nonexistent") == nullptr);
+ REQUIRE(table.find_exact_mount("/mnt/file") == nullptr);
+ }
+
THEN("removing a mount that has no child mounts succeeds")
{
REQUIRE(table.remove_mount("/mnt") == kernel::filesystem::mount_table::operation_result::removed);
@@ -97,7 +109,7 @@ SCENARIO("Adding, finding and removing mounts in the mount table", "[filesystem]
table.add_mount(mount1);
table.add_mount(mount2);
- THEN("finding mounts by path returns the correct mount based on longest prefix")
+ THEN("finding mounts by longest prefix returns the correct mount")
{
REQUIRE(table.find_longest_prefix_mount("/") == mount2);
REQUIRE(table.find_longest_prefix_mount("/file") == mount2);
@@ -106,6 +118,11 @@ SCENARIO("Adding, finding and removing mounts in the mount table", "[filesystem]
REQUIRE(table.find_longest_prefix_mount("/other") == mount2);
}
+ THEN("finding mounts by exact valid path returns the correct mount")
+ {
+ REQUIRE(table.find_exact_mount("/") == mount2);
+ }
+
THEN("removing the topmost mount with the same path succeeds")
{
REQUIRE(table.remove_mount("/") == kernel::filesystem::mount_table::operation_result::removed);