aboutsummaryrefslogtreecommitdiff
path: root/kernel/src/test_support/output_device.cpp
diff options
context:
space:
mode:
authorFelix Morgner <felix.morgner@ost.ch>2026-04-02 09:51:44 +0200
committerFelix Morgner <felix.morgner@ost.ch>2026-04-02 09:52:13 +0200
commitf7ff847498d629c05bb206b41a172f6735e2afe6 (patch)
tree874d35673d59d0f1e4ebcf01d61d9160ba655f9c /kernel/src/test_support/output_device.cpp
parent0c01a95325b26151ff3c9a70142f5dc83ff7d53f (diff)
downloadteachos-f7ff847498d629c05bb206b41a172f6735e2afe6.tar.xz
teachos-f7ff847498d629c05bb206b41a172f6735e2afe6.zip
kernel/tests: clean up implementation structure
Diffstat (limited to 'kernel/src/test_support/output_device.cpp')
-rw-r--r--kernel/src/test_support/output_device.cpp28
1 files changed, 28 insertions, 0 deletions
diff --git a/kernel/src/test_support/output_device.cpp b/kernel/src/test_support/output_device.cpp
new file mode 100644
index 0000000..83dcbcc
--- /dev/null
+++ b/kernel/src/test_support/output_device.cpp
@@ -0,0 +1,28 @@
+#include "kapi/cio.hpp"
+
+#include "kernel/test_support/cio.hpp"
+#include "kernel/test_support/log_buffer.hpp"
+
+#include <iostream>
+#include <string>
+#include <string_view>
+
+namespace kernel::tests::cio
+{
+
+ auto output_device::write(kapi::cio::output_stream stream, std::string_view text) -> void
+ {
+ auto & standard_stream = stream == kapi::cio::output_stream::stdout ? std::cout : std::cerr;
+ standard_stream << text;
+ if (text != "\n")
+ {
+ m_log_buffer.append(std::string{text});
+ }
+ }
+
+ auto output_device::log_buffer() noexcept -> kernel::tests::log_buffer &
+ {
+ return m_log_buffer;
+ }
+
+} // namespace kernel::tests::cio \ No newline at end of file