Wait for QEMU input releases (#546)

This commit is contained in:
Noah
2026-09-11 11:15:02 -06:00
parent 55660b7c01
commit 2efe36f582
2 changed files with 45 additions and 35 deletions
+11 -6
View File
@@ -48,7 +48,8 @@ class FakeCtl:
if cmd == "stats":
self.stats_calls += 1
return ("page: Demo/Rows\ncpu: 12%\nfps: 10\nrender: 3.20 ms/frame\n"
f"rga: 0%\nidle: 0\npresses: {self.stats_calls}\ntermbusy: 1\n"
f"rga: 0%\nidle: 0\npresses: {self.stats_calls}\n"
f"releases: {self.stats_calls}\ntermbusy: 1\n"
"termintr: 2\ntermfg: -1\ntermsig: 3")
if cmd == "wake":
return "wake: ok"
@@ -241,7 +242,9 @@ class PureHelpers(unittest.TestCase):
def send(self, cmd):
self.calls += 1
return f"presses: {0 if self.calls < 3 else 1}"
presses = 0 if self.calls < 3 else 1
releases = 0 if self.calls < 4 else 1
return f"presses: {presses}\nreleases: {releases}"
saved_send, saved_sleep = qmp.send_events, qmp.time.sleep
qmp.send_events = lambda _s, _f, events: calls.append(events)
@@ -264,7 +267,7 @@ class PureHelpers(unittest.TestCase):
class UnobservingCtl:
def send(self, cmd):
return "presses: 0"
return "presses: 0\nreleases: 0"
saved_send, saved_sleep, saved_monotonic = (
qmp.send_events, qmp.time.sleep, qmp.time.monotonic)
@@ -291,7 +294,9 @@ class PureHelpers(unittest.TestCase):
def send(self, cmd):
self.calls += 1
return f"presses: {0 if self.calls < 3 else 1}"
presses = 0 if self.calls < 3 else 1
releases = 0 if self.calls < 4 else 1
return f"presses: {presses}\nreleases: {releases}"
saved_send, saved_sleep = qmp.send_events, qmp.time.sleep
qmp.send_events = lambda _s, _f, events: calls.append(events)
@@ -314,7 +319,7 @@ class PureHelpers(unittest.TestCase):
class UnobservingCtl:
def send(self, cmd):
return "presses: 0"
return "presses: 0\nreleases: 0"
saved_send, saved_sleep, saved_monotonic = (
qmp.send_events, qmp.time.sleep, qmp.time.monotonic)
@@ -378,7 +383,7 @@ class PureHelpers(unittest.TestCase):
def test_parse_stats(self):
got = qmp.parse_stats(FakeCtl("x").send("stats"))
self.assertEqual(got, {"cpu": 12.0, "fps": 10.0, "render": 3.2,
"idle": 0.0, "presses": 1.0,
"idle": 0.0, "presses": 1.0, "releases": 1.0,
"termbusy": 1.0, "termintr": 2.0,
"termfg": -1.0, "termsig": 3.0})