aboutsummaryrefslogtreecommitdiff
path: root/kernel/src/test_support/output_device.cpp
diff options
context:
space:
mode:
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