diff options
Diffstat (limited to 'kernel/kapi/filesystem.tests.cpp')
| -rw-r--r-- | kernel/kapi/filesystem.tests.cpp | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/kernel/kapi/filesystem.tests.cpp b/kernel/kapi/filesystem.tests.cpp index 90609a6d..1cd2c610 100644 --- a/kernel/kapi/filesystem.tests.cpp +++ b/kernel/kapi/filesystem.tests.cpp @@ -276,6 +276,27 @@ SCENARIO_METHOD(kernel::tests::filesystem::storage_boot_module_vfs_fixture, "Kap REQUIRE(kapi::filesystem::umount("/information")); } } + + GIVEN("A real image file containing a device node") + { + auto image_path = std::filesystem::path{KERNEL_TEST_ASSETS_DIR} / "ext2_1KB_devnode_fs.img"; + REQUIRE(std::filesystem::exists(image_path)); + REQUIRE_NOTHROW(setup_modules_from_img_and_init_vfs({"test_img_module_devnode"}, {image_path})); + + CHECK(kapi::filesystem::mount("/dev/ram0", "/mnt")); + + THEN("the contained device node resolves to /dev/ram0") + { + auto resolved_node = kapi::filesystem::status("/devices/ram_disk_zero"); + REQUIRE(resolved_node); + + auto devfs_node = kapi::filesystem::status("/dev/ram0"); + REQUIRE(devfs_node); + + REQUIRE(resolved_node->raw_device == devfs_node->raw_device); + REQUIRE(resolved_node->inode_number != devfs_node->inode_number); + } + } } // NOLINTEND (readability-magic-numbers)
\ No newline at end of file |
