diff options
| author | Lukas Oesch <lukasoesch20@gmail.com> | 2026-04-09 09:13:09 +0200 |
|---|---|---|
| committer | Lukas Oesch <lukasoesch20@gmail.com> | 2026-04-11 08:05:52 +0200 |
| commit | 97e83ad1466d5962a1e5f5f83fa4c951bfeafb2c (patch) | |
| tree | adff9c20d5d171a21b5b8e8dd8c909dcf03c3b57 /kernel/src/test_support/filesystem | |
| parent | 3c9ad45492d7417c65594fa7fa2fb9a8d5439276 (diff) | |
| download | teachos-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.cpp | 43 |
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 |
