aboutsummaryrefslogtreecommitdiff
path: root/kernel/kapi
diff options
context:
space:
mode:
authorFelix Morgner <felix.morgner@ost.ch>2026-07-22 18:37:33 +0200
committerFelix Morgner <felix.morgner@ost.ch>2026-07-22 18:37:33 +0200
commit2152ce6a77e10823ba13d462af8da5a3b1f88ace (patch)
tree40eac0efc8e86fe99e05bfe30489842223bc7007 /kernel/kapi
parentdca8a58dc140481ea1b6cf88ab60f06b88db31ba (diff)
downloadkernel-2152ce6a77e10823ba13d462af8da5a3b1f88ace.tar.xz
kernel-2152ce6a77e10823ba13d462af8da5a3b1f88ace.zip
kapi: add test for resolving device node files
Diffstat (limited to 'kernel/kapi')
-rw-r--r--kernel/kapi/filesystem.tests.cpp21
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