diff options
| author | Marcel Braun <marcel.braun@ost.ch> | 2026-05-11 18:52:59 +0200 |
|---|---|---|
| committer | Marcel Braun <marcel.braun@ost.ch> | 2026-05-11 18:52:59 +0200 |
| commit | 7683d52861f05566a3b82e24484e367fcdc63ea8 (patch) | |
| tree | 5fcee0c3e84a89eaf28d719a91fcacdfdb802786 /kernel/src/filesystem/dentry.tests.cpp | |
| parent | 7ea0aa798e3062dea20a317e2b19d7cf879611ca (diff) | |
| download | kernel-7683d52861f05566a3b82e24484e367fcdc63ea8.tar.xz kernel-7683d52861f05566a3b82e24484e367fcdc63ea8.zip | |
Add test for dentry get_full_path
Diffstat (limited to 'kernel/src/filesystem/dentry.tests.cpp')
| -rw-r--r-- | kernel/src/filesystem/dentry.tests.cpp | 24 |
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 |
