diff options
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/kernel/filesystem/device_inode.tests.cpp | 20 |
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}; |
