diff options
Diffstat (limited to 'kernel/tests')
| -rw-r--r-- | kernel/tests/kapi/cpu.cpp | 16 | ||||
| -rw-r--r-- | kernel/tests/src/main.cpp | 4 |
2 files changed, 19 insertions, 1 deletions
diff --git a/kernel/tests/kapi/cpu.cpp b/kernel/tests/kapi/cpu.cpp index f03fca0..3ecaadc 100644 --- a/kernel/tests/kapi/cpu.cpp +++ b/kernel/tests/kapi/cpu.cpp @@ -2,9 +2,25 @@ #include <kapi/cpu.hpp> +#include <atomic> +#include <stdexcept> + namespace kapi::cpu { + auto init() -> void + { + auto static initialized = std::atomic_flag{}; + if (initialized.test_and_set()) + { + throw std::logic_error("kapi::cpu::init() called more than once"); + } + + // TODO: make sure that simulated interrupt can run. + + return; + } + auto halt() -> void { throw kernel::tests::cpu::halt{}; diff --git a/kernel/tests/src/main.cpp b/kernel/tests/src/main.cpp index f1f9bb4..a21aa9d 100644 --- a/kernel/tests/src/main.cpp +++ b/kernel/tests/src/main.cpp @@ -1,10 +1,12 @@ #include <kapi/cio.hpp> +#include <kapi/cpu.hpp> #include <catch2/catch_session.hpp> auto main(int argc, char ** argv) -> int { kapi::cio::init(); + kapi::cpu::init(); return Catch::Session().run(argc, argv); -}
\ No newline at end of file +} |
