Improve unit test handling of pending/delayed keyboard actions

This commit is contained in:
xs5871 2023-02-16 06:02:06 +00:00 committed by xs5871
parent 6532497bb2
commit 301ce3c025

View File

@ -74,7 +74,14 @@ class KeyboardTest:
is_pressed = e[1] is_pressed = e[1]
self.pins[key_pos].value = is_pressed self.pins[key_pos].value = is_pressed
self.do_main_loop() self.do_main_loop()
self.keyboard._main_loop()
# wait up to 10s for delayed actions to resolve, if there are any
timeout = time.time_ns() + 10 * 1_000_000_000
while timeout > time.time_ns():
self.do_main_loop()
if not self.keyboard._timeouts and not self.keyboard._resume_buffer:
break
assert timeout > time.time_ns(), 'infinite loop detected'
matching = True matching = True
for i in range(max(len(hid_reports), len(assert_reports))): for i in range(max(len(hid_reports), len(assert_reports))):