diff options
| author | Marcel Braun <marcel.braun@ost.ch> | 2026-05-04 23:25:16 +0200 |
|---|---|---|
| committer | Lukas Oesch <lukasoesch20@gmail.com> | 2026-05-05 14:38:53 +0200 |
| commit | 9aaabb2cf73f20cc4d4c68588e7bf4592837626f (patch) | |
| tree | ccad57939b19fc161a8fdd1ab87835eb41e471f1 | |
| parent | bddee0f0cb77eb247eceea18005dc575b433bb69 (diff) | |
| download | kernel-9aaabb2cf73f20cc4d4c68588e7bf4592837626f.tar.xz kernel-9aaabb2cf73f20cc4d4c68588e7bf4592837626f.zip | |
Add simple symlink tests
| -rw-r--r-- | arch/x86_64/support/modules/README.md | 5 | ||||
| -rw-r--r-- | arch/x86_64/support/modules/ext2_1KB_fs.img | 2 | ||||
| -rw-r--r-- | kernel/src/filesystem/vfs.tests.cpp | 20 | ||||
| -rw-r--r-- | kernel/src/test_support/filesystem/test_assets/ext2_1KB_fs.img | 2 |
4 files changed, 26 insertions, 3 deletions
diff --git a/arch/x86_64/support/modules/README.md b/arch/x86_64/support/modules/README.md index a04b9af..fac5daf 100644 --- a/arch/x86_64/support/modules/README.md +++ b/arch/x86_64/support/modules/README.md @@ -8,10 +8,13 @@ The ext2_4KB_fs image is intentionally fragmented, as some files were created an ./archiv ./archiv/2024.img ./archiv/2025.img +./closed.txt ./information ./information/info_1.txt ./information/info_2.txt -./closed.txt +./symlinks +./symlinks/info_1_absolute -> /information/info_1.txt +./symlinks/info_1_relative -> ../information/info_1.txt ### 2024.img (ext2 filesystem with 2KB Block size) diff --git a/arch/x86_64/support/modules/ext2_1KB_fs.img b/arch/x86_64/support/modules/ext2_1KB_fs.img index 5bbb76d..0312727 100644 --- a/arch/x86_64/support/modules/ext2_1KB_fs.img +++ b/arch/x86_64/support/modules/ext2_1KB_fs.img @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c2ef9536a439825520d9e230eedaa9ae327f9763350eddbc0f24bf5b9b5d2bf2 +oid sha256:7cf40c3cf3d8e3be614cadf2da1c76138c492734c3730eadbca645f50ed99a50 size 10485760 diff --git a/kernel/src/filesystem/vfs.tests.cpp b/kernel/src/filesystem/vfs.tests.cpp index 109ee89..829c9d2 100644 --- a/kernel/src/filesystem/vfs.tests.cpp +++ b/kernel/src/filesystem/vfs.tests.cpp @@ -283,4 +283,24 @@ SCENARIO_METHOD(kernel::tests::filesystem::storage_boot_module_vfs_fixture, "VFS REQUIRE(unmounted_sheep_1 == nullptr); } } + + GIVEN("one real image files, containing symbolic links") + { + REQUIRE(std::filesystem::exists(image_path_1)); + REQUIRE_NOTHROW(setup_modules_from_img_and_init_vfs({"test_img_module_1"}, {image_path_1})); + + THEN("file can be opened through absolute symbolic link") + { + auto & vfs = kernel::filesystem::vfs::get(); + auto info_1 = vfs.open("/symlinks/info_1_absolute"); + REQUIRE(info_1 != nullptr); + } + + THEN("file can be opened through relative symbolic link") + { + auto & vfs = kernel::filesystem::vfs::get(); + auto info_1 = vfs.open("/symlinks/info_1_relative"); + REQUIRE(info_1 != nullptr); + } + } } diff --git a/kernel/src/test_support/filesystem/test_assets/ext2_1KB_fs.img b/kernel/src/test_support/filesystem/test_assets/ext2_1KB_fs.img index 5bbb76d..0312727 100644 --- a/kernel/src/test_support/filesystem/test_assets/ext2_1KB_fs.img +++ b/kernel/src/test_support/filesystem/test_assets/ext2_1KB_fs.img @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c2ef9536a439825520d9e230eedaa9ae327f9763350eddbc0f24bf5b9b5d2bf2 +oid sha256:7cf40c3cf3d8e3be614cadf2da1c76138c492734c3730eadbca645f50ed99a50 size 10485760 |
