From e3e143ea423b479d642785fb29f0597a70769ecd Mon Sep 17 00:00:00 2001 From: Axel Karjalainen Date: Tue, 5 Aug 2025 01:27:56 +0300 Subject: [PATCH] test: fix false fail by actually looking for unbound capability mask The previous implementation of `test_seat_bind_invalid_caps_expect_disconnection` didn't follow the protocol specification and assumed that `0x1` was invalid. Part-of: --- test/test_protocol.py | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/test/test_protocol.py b/test/test_protocol.py index 2e956b9..98d2f14 100644 --- a/test/test_protocol.py +++ b/test/test_protocol.py @@ -215,15 +215,15 @@ class Ei: """ def seat_cap(seat, mask, intf_name): - seat._interface_masks[intf_name] = mask + seat.interface_masks[intf_name] = mask - seat._interface_masks = {} + seat.interface_masks = {} seat.connect("Capability", seat_cap) def bind_mask(interfaces: list[InterfaceName]) -> int: return reduce( lambda mask, v: mask | v, - [seat._interface_masks[i] for i in interfaces], + [seat.interface_masks[i] for i in interfaces], 0, ) @@ -684,7 +684,21 @@ class TestEiProtocol: connection = ei.connection assert connection is not None seat = ei.seats[0] - ei.send(seat.Bind(0x1)) # binding to invalid caps should get us disconnected + + first_invalid_mask = None + for i in range(64): + mask = 1 << i + if mask not in seat.interface_masks.values(): + first_invalid_mask = mask + break + else: + assert False, ( + "EIS implementation has bound all 64 bits, cannot find unused bitmask" + ) + + ei.send( + seat.Bind(first_invalid_mask) + ) # binding to invalid caps should get us disconnected try: ei.dispatch() time.sleep(0.1)