#include "kapi/cpu.hpp" #include "kapi/system.hpp" #include "kernel/tests/cpu.hpp" #include "kernel/tests/log_buffer.hpp" #include #include SCENARIO("Kernel test support infrastructure", "[support]") { GIVEN("the test support infrastructure is initialized") { WHEN("a CPU halt is requested") { THEN("the correct exception is thrown") { REQUIRE_THROWS_AS(kapi::cpu::halt(), kernel::tests::cpu::halt); } } WHEN("a the system panics") { kernel::tests::log_buffer::clear(); THEN("the correct exception is thrown") { REQUIRE_THROWS_AS(kapi::system::panic("[kernel:tests] Test Panic"), kernel::tests::cpu::halt); } THEN("the message is appended to the log buffer") { CHECK_THROWS(kapi::system::panic("[kernel:tests] Test Panic")); REQUIRE(kernel::tests::log_buffer::flat_messages().contains("[kernel:tests] Test Panic")); } } WHEN("a regular print is issued") { kernel::tests::log_buffer::clear(); kstd::println("[kernel:tests] Test Print"); THEN("the message is appended to the log buffer") { REQUIRE(kernel::tests::log_buffer::flat_messages().contains("[kernel:tests] Test Print")); } } } }