aboutsummaryrefslogtreecommitdiff
path: root/kernel/tests/src/test_support.tests.cpp
diff options
context:
space:
mode:
authorFelix Morgner <felix.morgner@ost.ch>2026-04-01 09:36:31 +0200
committerFelix Morgner <felix.morgner@ost.ch>2026-04-01 09:37:52 +0200
commitfa1ea53e6f3dd6b9b5f5f8160776b230184a30bf (patch)
tree483d7a4b48a879d535b80d20ae43dcebaec99079 /kernel/tests/src/test_support.tests.cpp
parent5ae03c52fe33882416aa6044993d8422ccb33ab4 (diff)
downloadteachos-fa1ea53e6f3dd6b9b5f5f8160776b230184a30bf.tar.xz
teachos-fa1ea53e6f3dd6b9b5f5f8160776b230184a30bf.zip
kernel/tests: implement platform CIO kapi
Diffstat (limited to 'kernel/tests/src/test_support.tests.cpp')
-rw-r--r--kernel/tests/src/test_support.tests.cpp51
1 files changed, 51 insertions, 0 deletions
diff --git a/kernel/tests/src/test_support.tests.cpp b/kernel/tests/src/test_support.tests.cpp
new file mode 100644
index 0000000..f835e65
--- /dev/null
+++ b/kernel/tests/src/test_support.tests.cpp
@@ -0,0 +1,51 @@
+#include "kapi/cpu.hpp"
+#include "kapi/system.hpp"
+
+#include "kernel/tests/cpu.hpp"
+#include "kernel/tests/log_buffer.hpp"
+
+#include <kstd/print>
+
+#include <catch2/catch_test_macros.hpp>
+
+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"));
+ }
+ }
+ }
+} \ No newline at end of file