aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcel Braun <marcel.braun@ost.ch>2026-05-11 18:52:59 +0200
committerMarcel Braun <marcel.braun@ost.ch>2026-05-11 18:52:59 +0200
commit7683d52861f05566a3b82e24484e367fcdc63ea8 (patch)
tree5fcee0c3e84a89eaf28d719a91fcacdfdb802786
parent7ea0aa798e3062dea20a317e2b19d7cf879611ca (diff)
downloadkernel-7683d52861f05566a3b82e24484e367fcdc63ea8.tar.xz
kernel-7683d52861f05566a3b82e24484e367fcdc63ea8.zip
Add test for dentry get_full_path
-rw-r--r--kernel/src/filesystem/dentry.tests.cpp24
1 files changed, 24 insertions, 0 deletions
diff --git a/kernel/src/filesystem/dentry.tests.cpp b/kernel/src/filesystem/dentry.tests.cpp
index 200262a..1a5a784 100644
--- a/kernel/src/filesystem/dentry.tests.cpp
+++ b/kernel/src/filesystem/dentry.tests.cpp
@@ -124,3 +124,27 @@ SCENARIO("Dentry Flag logic", "[filesystem][dentry]")
}
}
}
+
+SCENARIO("Dentry path resolution", "[filesystem][dentry]")
+{
+ GIVEN("A dentry with a parent hierarchy")
+ {
+ auto root_inode = kstd::make_shared<kernel::tests::filesystem::inode>();
+ auto root_dentry = kstd::make_shared<kernel::filesystem::dentry>(nullptr, root_inode, "/");
+
+ auto home_inode = kstd::make_shared<kernel::tests::filesystem::inode>();
+ auto home_dentry = kstd::make_shared<kernel::filesystem::dentry>(root_dentry, home_inode, "home");
+ root_dentry->add_child(home_dentry);
+
+ auto user_inode = kstd::make_shared<kernel::tests::filesystem::inode>();
+ auto user_dentry = kstd::make_shared<kernel::filesystem::dentry>(home_dentry, user_inode, "user");
+ home_dentry->add_child(user_dentry);
+
+ THEN("the full path is constructed correctly")
+ {
+ REQUIRE(root_dentry->get_full_path() == "/");
+ REQUIRE(home_dentry->get_full_path() == "/home");
+ REQUIRE(user_dentry->get_full_path() == "/home/user");
+ }
+ }
+} \ No newline at end of file