aboutsummaryrefslogtreecommitdiff
path: root/kernel/tests/kapi
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/tests/kapi
parent0369fb7c4baa543dfb36ebb39ab53ac7560994ba (diff)
downloadteachos-1f652b8b5ca5dbea588975466801cb1479f3dda8.tar.xz
teachos-1f652b8b5ca5dbea588975466801cb1479f3dda8.zip
kernel/tests: dissolve tests into source tree
Diffstat (limited to 'kernel/tests/kapi')
-rw-r--r--kernel/tests/kapi/cio.cpp38
-rw-r--r--kernel/tests/kapi/cpu.cpp29
-rw-r--r--kernel/tests/kapi/interrupts.cpp11
-rw-r--r--kernel/tests/kapi/memory.cpp86
4 files changed, 0 insertions, 164 deletions
diff --git a/kernel/tests/kapi/cio.cpp b/kernel/tests/kapi/cio.cpp
deleted file mode 100644
index 6359fa8..0000000
--- a/kernel/tests/kapi/cio.cpp
+++ /dev/null
@@ -1,38 +0,0 @@
-#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
diff --git a/kernel/tests/kapi/cpu.cpp b/kernel/tests/kapi/cpu.cpp
deleted file mode 100644
index 3ecaadc..0000000
--- a/kernel/tests/kapi/cpu.cpp
+++ /dev/null
@@ -1,29 +0,0 @@
-#include "kernel/tests/cpu.hpp"
-
-#include <kapi/cpu.hpp>
-
-#include <atomic>
-#include <stdexcept>
-
-namespace kapi::cpu
-{
-
- auto init() -> void
- {
- auto static initialized = std::atomic_flag{};
- if (initialized.test_and_set())
- {
- throw std::logic_error("kapi::cpu::init() called more than once");
- }
-
- // TODO: make sure that simulated interrupt can run.
-
- return;
- }
-
- auto halt() -> void
- {
- throw kernel::tests::cpu::halt{};
- }
-
-} // namespace kapi::cpu \ No newline at end of file
diff --git a/kernel/tests/kapi/interrupts.cpp b/kernel/tests/kapi/interrupts.cpp
deleted file mode 100644
index 0077266..0000000
--- a/kernel/tests/kapi/interrupts.cpp
+++ /dev/null
@@ -1,11 +0,0 @@
-#include <kapi/interrupts.hpp>
-
-namespace kapi::interrupts
-{
-
- auto enable() -> void
- {
- // TODO: enable simulated interrupts.
- }
-
-} // namespace kapi::interrupts \ No newline at end of file
diff --git a/kernel/tests/kapi/memory.cpp b/kernel/tests/kapi/memory.cpp
deleted file mode 100644
index 6de2f60..0000000
--- a/kernel/tests/kapi/memory.cpp
+++ /dev/null
@@ -1,86 +0,0 @@
-#include "kapi/memory.hpp"
-
-#include <kapi/memory.hpp>
-
-#include "kernel/tests/simulated_memory.hpp"
-
-#include <kstd/print>
-#include <kstd/units>
-
-#include <cstddef>
-#include <cstdint>
-#include <optional>
-#include <utility>
-
-namespace kapi::memory
-{
-
- namespace
- {
- //! The size of the simulated RAM.
- constexpr auto simulate_memory_size = kstd::units::MiB(32);
-
- struct test_boostrap_frame_allocator : frame_allocator
- {
- auto mark_used(frame) -> void override {}
-
- auto allocate_many(std::size_t count) noexcept -> std::optional<std::pair<frame, std::size_t>> override
- {
- auto start = next_free_frame;
- next_free_frame += count;
- return std::pair{frame{start}, count};
- }
-
- auto release_many(std::pair<frame, std::size_t>) -> void override {}
-
- std::size_t next_free_frame{};
- } boostrap_allocator;
-
- struct test_page_mapper : page_mapper
- {
- auto map(page page, frame frame, flags flags) -> std::byte * override
- {
- kstd::println("mapping page {} onto frame {} with flags {}", page.number(), frame.number(),
- static_cast<std::uint64_t>(flags));
-
- if ((page.start_address() & pmm_metadata_base.raw()) == pmm_metadata_base.raw())
- {
- auto offset = page.start_address() & ~pmm_metadata_base.raw();
- return kernel::tests::simulated_memory::pmm_metadata_base() + offset;
- }
-
- return nullptr;
- }
-
- auto unmap(page page) -> void override
- {
- kstd::println("unmapping page {}", page.number());
- }
-
- auto try_unmap(page page) noexcept -> bool override
- {
- kstd::println("trying to unmap page {}", page.number());
- return false;
- }
- } test_mapper;
-
- auto handoff_to_kernel_pmm(frame_allocator & new_allocator) -> void
- {
- for (auto i = 0uz; i < boostrap_allocator.next_free_frame; ++i)
- {
- new_allocator.mark_used(frame{i});
- }
- }
-
- } // namespace
-
- auto init() -> void
- {
- kernel::tests::simulated_memory::init(simulate_memory_size);
- set_frame_allocator(boostrap_allocator);
- set_page_mapper(test_mapper);
-
- init_pmm(simulate_memory_size / frame::size, handoff_to_kernel_pmm);
- }
-
-} // namespace kapi::memory \ No newline at end of file