From 80a898533ce2597f3f40da0fcddce16df50fdabd Mon Sep 17 00:00:00 2001 From: Felix Morgner Date: Thu, 23 Jul 2026 10:54:53 +0200 Subject: kernel/devices: add storage tests --- kernel/kernel/devices/storage.tests.cpp | 48 +++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 kernel/kernel/devices/storage.tests.cpp (limited to 'kernel') diff --git a/kernel/kernel/devices/storage.tests.cpp b/kernel/kernel/devices/storage.tests.cpp new file mode 100644 index 00000000..603321c2 --- /dev/null +++ b/kernel/kernel/devices/storage.tests.cpp @@ -0,0 +1,48 @@ +#include + +#include + +#include +#include +#include + +#include + +#include +#include + +TEST_CASE("Storage devices attached with init() are reachable from the root bus", "[devices][storage]") +{ + auto storage = std::vector{4096, std::byte{}}; + auto registry = kapi::boot_modules::boot_module_registry{}; + + registry.add_boot_module({ + .name = "test module", + .start_address = kapi::memory::linear_address{storage.data()}, + .size = storage.size(), + }); + + kapi::boot_modules::set_boot_module_registry(registry); + + kernel::devices::storage::init(); + + CHECK(kapi::devices::find_device("ram0")); + + auto root = kapi::devices::get_root_bus(); + auto ram_disk_controller_found = false; + + for (auto const & child : root->children()) + { + if (child->name() == "ram_disk") + { + ram_disk_controller_found = true; + } + } + CHECK(ram_disk_controller_found); + + auto boot_device = kernel::devices::storage::determine_boot_device(); + REQUIRE(boot_device); + CHECK(boot_device->name() == "ram0"); + + kernel::tests::boot_modules::deinit(); +} \ No newline at end of file -- cgit v1.2.3