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)