aboutsummaryrefslogtreecommitdiff
path: root/kernel/src/test_support/kapi/cio.cpp
diff options
context:
space:
mode:
authorFelix Morgner <felix.morgner@ost.ch>2026-04-01 12:15:25 +0200
committerFelix Morgner <felix.morgner@ost.ch>2026-04-01 12:15:25 +0200
commit1f652b8b5ca5dbea588975466801cb1479f3dda8 (patch)
tree2852f1d7cc6d33d0cb06c66fcfcf8c03dac2a112 /kernel/src/test_support/kapi/cio.cpp
parent0369fb7c4baa543dfb36ebb39ab53ac7560994ba (diff)
downloadteachos-1f652b8b5ca5dbea588975466801cb1479f3dda8.tar.xz
teachos-1f652b8b5ca5dbea588975466801cb1479f3dda8.zip
kernel/tests: dissolve tests into source tree
Diffstat (limited to 'kernel/src/test_support/kapi/cio.cpp')
-rw-r--r--kernel/src/test_support/kapi/cio.cpp38
1 files changed, 38 insertions, 0 deletions
diff --git a/kernel/src/test_support/kapi/cio.cpp b/kernel/src/test_support/kapi/cio.cpp
new file mode 100644
index 0000000..6359fa8
--- /dev/null
+++ b/kernel/src/test_support/kapi/cio.cpp
@@ -0,0 +1,38 @@
+#include <kapi/cio.hpp>
+
+#include "kernel/tests/log_buffer.hpp"
+
+#include <iostream>
+#include <string>
+#include <string_view>
+
+namespace kapi::cio
+{
+
+ namespace
+ {
+
+ class test_output_device : public output_device
+ {
+ public:
+ test_output_device() = default;
+
+ auto write(output_stream stream, std::string_view text) -> void override
+ {
+ auto & standard_stream = stream == output_stream::stdout ? std::cout : std::cerr;
+ standard_stream << text;
+ if (text != "\n")
+ {
+ kernel::tests::log_buffer::append(std::string{text});
+ }
+ }
+ } device{};
+
+ } // namespace
+
+ auto init() -> void
+ {
+ set_output_device(device);
+ }
+
+} // namespace kapi::cio \ No newline at end of file