diff options
Diffstat (limited to 'kernel/src/test_support')
| -rw-r--r-- | kernel/src/test_support/filesystem/storage_boot_module_fixture.cpp | 43 | ||||
| -rw-r--r-- | kernel/src/test_support/state_reset_listener.cpp | 2 |
2 files changed, 44 insertions, 1 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 diff --git a/kernel/src/test_support/state_reset_listener.cpp b/kernel/src/test_support/state_reset_listener.cpp index af1091c..9120c89 100644 --- a/kernel/src/test_support/state_reset_listener.cpp +++ b/kernel/src/test_support/state_reset_listener.cpp @@ -33,8 +33,8 @@ struct state_reset_listener : Catch::EventListenerBase { kernel::tests::filesystem::file_descriptor_table::deinit(); kernel::tests::filesystem::vfs::deinit(); - kernel::tests::devices::storage::deinit(); kernel::tests::boot_modules::deinit(); + kernel::tests::devices::storage::management::deinit(); kernel::tests::memory::deinit(); kernel::tests::cpu::deinit(); |
