#include "kapi/interrupts.hpp" #include "kapi/memory.hpp" #include #include #include auto main(int argc, char ** argv) -> int { auto session = Catch::Session{}; if (auto result = session.applyCommandLine(argc, argv); result != 0) { return result; } auto const & config = session.configData(); auto skip_init = config.listTests || // config.listTags || // config.listReporters || // config.listListeners || // config.showHelp; if (!skip_init) { kapi::cio::init(); kapi::cpu::init(); kapi::interrupts::enable(); kapi::memory::init(); // note: no kernel heap is created, since we are in the test environment. Nonetheless, we still initialize the // memory subsystem, so that components that rely on it can be tested. No component must ever rely on the heap // allocator directly, rather they have to go through the new and delete. However, some components may use the frame // allocator and page mapper in order to perform their tasks. } return session.run(); }