aboutsummaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
authorFelix Morgner <felix.morgner@ost.ch>2026-07-24 08:49:50 +0200
committerFelix Morgner <felix.morgner@ost.ch>2026-07-24 08:49:50 +0200
commiteaee2798c45ea21e2d7f1b33b19c544b1083ee5a (patch)
tree3fe377aa45a76b0d3b139a9151d21632ed4e8943 /kernel
parentf8a65cbfd1c8d233a76caebcb64a231cb63e7ba9 (diff)
downloadkernel-eaee2798c45ea21e2d7f1b33b19c544b1083ee5a.tar.xz
kernel-eaee2798c45ea21e2d7f1b33b19c544b1083ee5a.zip
kernel: fix device inode tests
Diffstat (limited to 'kernel')
-rw-r--r--kernel/kernel/filesystem/device_inode.tests.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/kernel/kernel/filesystem/device_inode.tests.cpp b/kernel/kernel/filesystem/device_inode.tests.cpp
index 09979030..aa97f8ca 100644
--- a/kernel/kernel/filesystem/device_inode.tests.cpp
+++ b/kernel/kernel/filesystem/device_inode.tests.cpp
@@ -21,6 +21,7 @@
#include <cstddef>
#include <cstdint>
+#include <optional>
#include <utility>
using namespace kstd::units_literals;
@@ -35,6 +36,21 @@ namespace
}
};
+ struct test_driver final : kapi::devices::driver
+ {
+ [[nodiscard]] auto probe(kapi::devices::device &) -> kstd::result<void> override
+ {
+ return kstd::success();
+ }
+
+ auto unbind(kapi::devices::device &) -> void override {}
+
+ [[nodiscard]] auto claimed_major() const -> std::optional<std::uint8_t> override
+ {
+ return std::uint8_t{1};
+ }
+ };
+
struct mock_origin_inode : kernel::filesystem::inode
{
auto read(void *, kstd::units::bytes, kstd::units::bytes) const -> kstd::result<kstd::units::bytes> override
@@ -168,6 +184,10 @@ SCENARIO("Device inode raw_device()", "[filesystem][device-inode]")
GIVEN("A block device that has been published and numbered")
{
auto device = kstd::make_shared<kernel::tests::devices::block_device>("ram0", 512_B);
+ auto driver = kstd::make_shared<test_driver>();
+ device->bind_driver(driver);
+ device->set_state(kapi::devices::state::bound);
+
REQUIRE(kapi::devices::interface_registry::get().publish<kapi::devices::block_device>(device, "ram0"));
auto inode = kernel::filesystem::device_inode{device};