aboutsummaryrefslogtreecommitdiff
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
parentdca8a58dc140481ea1b6cf88ab60f06b88db31ba (diff)
downloadkernel-2152ce6a77e10823ba13d462af8da5a3b1f88ace.tar.xz
kernel-2152ce6a77e10823ba13d462af8da5a3b1f88ace.zip
kapi: add test for resolving device node files
-rw-r--r--kernel/kapi/filesystem.tests.cpp21
-rw-r--r--kernel/kernel/test_support/filesystem/test_assets/ext2_1KB_devnode_fs.img3
2 files changed, 24 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
diff --git a/kernel/kernel/test_support/filesystem/test_assets/ext2_1KB_devnode_fs.img b/kernel/kernel/test_support/filesystem/test_assets/ext2_1KB_devnode_fs.img
new file mode 100644
index 00000000..09e59a4f
--- /dev/null
+++ b/kernel/kernel/test_support/filesystem/test_assets/ext2_1KB_devnode_fs.img
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:393dcda08e381c4c0f86f8c7c04fd73e2e0b14891cea90d5e9e507adfe438435
+size 61440