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: <https://gitlab.freedesktop.org/libinput/libei/-/merge_requests/354>
This commit is contained in:
Axel Karjalainen 2025-08-05 01:27:56 +03:00
parent 500ad0510f
commit e3e143ea42

View file

@ -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)