From 88db123ae14fd2de55a9cd986dade018839cb4d4 Mon Sep 17 00:00:00 2001 From: Felix Morgner Date: Fri, 24 Jul 2026 15:21:41 +0200 Subject: kapi: fix interface registry tests --- kernel/kapi/devices/interface_registry.cpp | 3 +-- kernel/kapi/devices/interface_registry.tests.cpp | 16 ++++++++++++++-- 2 files changed, 15 insertions(+), 4 deletions(-) (limited to 'kernel') diff --git a/kernel/kapi/devices/interface_registry.cpp b/kernel/kapi/devices/interface_registry.cpp index 2ff42aa3..58364d0a 100644 --- a/kernel/kapi/devices/interface_registry.cpp +++ b/kernel/kapi/devices/interface_registry.cpp @@ -87,8 +87,7 @@ namespace kapi::devices auto interface_registry::resolve(interface interface, std::string_view name) -> void * { - auto found = std::ranges::find_if( - m_entries, [&](auto e) { return e.interface() == interface && e.name() == name && e.device(); }); + auto found = std::ranges::find_if(m_entries, [&](auto e) { return e.name() == name && e.device(); }); if (found == m_entries.cend()) { diff --git a/kernel/kapi/devices/interface_registry.tests.cpp b/kernel/kapi/devices/interface_registry.tests.cpp index f82e867e..1982edbf 100644 --- a/kernel/kapi/devices/interface_registry.tests.cpp +++ b/kernel/kapi/devices/interface_registry.tests.cpp @@ -27,6 +27,13 @@ namespace } }; + struct unimplemented_device + { + constexpr auto static id = kapi::devices::interface{"unimplemented"}; + + virtual ~unimplemented_device() = default; + }; + struct test_device final : kapi::devices::device, probe_device { explicit test_device(int value, const_device & const_device) @@ -136,9 +143,14 @@ SCENARIO("Publishing and finding a device", "[kapi][devices][interface_registry] REQUIRE(registry.resolve("probe0")); } - THEN("find for an unpublished capability does not find a device") + THEN("resolve finds a capability the device implements but never published") + { + REQUIRE(registry.resolve("probe0")); + } + + THEN("resolve for a capability the device implements nowhere at all does not find anything") { - REQUIRE_FALSE(registry.resolve("probe0")); + REQUIRE_FALSE(registry.resolve("probe0")); } THEN("find for an unpublished device does not find a device") -- cgit v1.2.3