aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLukas Oesch <lukasoesch20@gmail.com>2026-05-25 13:04:22 +0200
committerLukas Oesch <lukasoesch20@gmail.com>2026-05-25 13:04:22 +0200
commitd916ecfc94aab583d60bba94de257a675accab7a (patch)
tree9c71718a0fe01b0c4820c0e12e5569edb51a75b9
parent90d4163c336348cd21db8cbdb292994ddcfa3908 (diff)
downloadkernel-d916ecfc94aab583d60bba94de257a675accab7a.tar.xz
kernel-d916ecfc94aab583d60bba94de257a675accab7a.zip
add vfs tests
-rw-r--r--kernel/src/filesystem/vfs.tests.cpp31
1 files changed, 31 insertions, 0 deletions
diff --git a/kernel/src/filesystem/vfs.tests.cpp b/kernel/src/filesystem/vfs.tests.cpp
index 8ae206a..fc1ea0d 100644
--- a/kernel/src/filesystem/vfs.tests.cpp
+++ b/kernel/src/filesystem/vfs.tests.cpp
@@ -416,6 +416,37 @@ SCENARIO_METHOD(kernel::tests::filesystem::storage_boot_module_vfs_fixture, "VFS
}
}
+ GIVEN("two real image files where the second contains as filesystem formatted files")
+ {
+ REQUIRE(std::filesystem::exists(image_path_1));
+ REQUIRE(std::filesystem::exists(image_path_3));
+ REQUIRE_NOTHROW(
+ setup_modules_from_img_and_init_vfs({"test_img_module_3", "test_img_module_1"}, {image_path_3, image_path_1}));
+
+ auto & vfs = kernel::filesystem::vfs::get();
+
+ THEN("cannot unmount a filesystem if files are mounted")
+ {
+ REQUIRE(vfs.do_mount("/dev/ram16", "/entrance") == kernel::filesystem::vfs::operation_result::success);
+ REQUIRE(vfs.do_mount("/entrance/archiv/2024.img", "/enclosures") ==
+ kernel::filesystem::vfs::operation_result::success);
+
+ REQUIRE(vfs.unmount("/entrance") == kernel::filesystem::vfs::operation_result::unmount_failed);
+ REQUIRE(vfs.unmount("/enclosures") == kernel::filesystem::vfs::operation_result::success);
+ REQUIRE(vfs.unmount("/entrance") == kernel::filesystem::vfs::operation_result::success);
+ }
+
+ THEN("can mount filesystem ontop of the path where this is inside")
+ {
+ REQUIRE(vfs.do_mount("/dev/ram16", "/entrance") == kernel::filesystem::vfs::operation_result::success);
+ REQUIRE(vfs.do_mount("/entrance/archiv/2024.img", "/entrance") ==
+ kernel::filesystem::vfs::operation_result::success);
+
+ REQUIRE(vfs.unmount("/entrance") == kernel::filesystem::vfs::operation_result::success);
+ REQUIRE(vfs.unmount("/entrance") == kernel::filesystem::vfs::operation_result::success);
+ }
+ }
+
GIVEN("A real image files, containing symbolic links")
{
REQUIRE(std::filesystem::exists(image_path_1));