aboutsummaryrefslogtreecommitdiff
path: root/kernel/src/test_support/filesystem
diff options
context:
space:
mode:
authorLukas Oesch <lukasoesch20@gmail.com>2026-04-09 09:13:09 +0200
committerLukas Oesch <lukasoesch20@gmail.com>2026-04-11 08:05:52 +0200
commit97e83ad1466d5962a1e5f5f83fa4c951bfeafb2c (patch)
treeadff9c20d5d171a21b5b8e8dd8c909dcf03c3b57 /kernel/src/test_support/filesystem
parent3c9ad45492d7417c65594fa7fa2fb9a8d5439276 (diff)
downloadteachos-97e83ad1466d5962a1e5f5f83fa4c951bfeafb2c.tar.xz
teachos-97e83ad1466d5962a1e5f5f83fa4c951bfeafb2c.zip
add devfs filesystem tests, and storage_boot_module_fixture to mock real boot modules
Diffstat (limited to 'kernel/src/test_support/filesystem')
-rw-r--r--kernel/src/test_support/filesystem/storage_boot_module_fixture.cpp43
1 files changed, 43 insertions, 0 deletions
diff --git a/kernel/src/test_support/filesystem/storage_boot_module_fixture.cpp b/kernel/src/test_support/filesystem/storage_boot_module_fixture.cpp
new file mode 100644
index 0000000..8bbf194
--- /dev/null
+++ b/kernel/src/test_support/filesystem/storage_boot_module_fixture.cpp
@@ -0,0 +1,43 @@
+#include "kernel/test_support/filesystem/storage_boot_module_fixture.hpp"
+
+#include "kapi/boot_module/boot_module.hpp"
+#include "kapi/boot_modules.hpp"
+#include "kapi/memory.hpp"
+
+#include "kernel/devices/storage/management.hpp"
+#include "kernel/test_support/boot_modules.hpp"
+#include "kernel/test_support/devices/storage/management.hpp"
+
+#include <cstddef>
+#include <string>
+
+namespace kernel::tests::filesystem
+{
+ auto storage_boot_module_fixture::setup_modules(std::size_t module_count, std::size_t module_size) -> void
+ {
+ kernel::tests::devices::storage::management::deinit();
+ kernel::tests::boot_modules::deinit();
+
+ module_names.clear();
+ module_data.clear();
+ registry = {};
+
+ module_names.reserve(module_count);
+ module_data.reserve(module_count);
+
+ for (std::size_t i = 0; i < module_count; ++i)
+ {
+ module_names.push_back("test_mod" + std::to_string(i));
+ module_data.emplace_back(module_size, std::byte{static_cast<unsigned char>(0x40 + (i % 16))});
+ }
+
+ for (std::size_t i = 0; i < module_count; ++i)
+ {
+ registry.add_boot_module(kapi::boot_modules::boot_module{
+ module_names[i], kapi::memory::linear_address{module_data[i].data()}, module_data[i].size()});
+ }
+
+ kapi::boot_modules::set_boot_module_registry(registry);
+ kernel::devices::storage::management::init();
+ }
+} // namespace kernel::tests::filesystem \ No newline at end of file