From 5f4cf600b5dcbb30c62cd6e5b804655161b32227 Mon Sep 17 00:00:00 2001 From: jaseg Date: Sat, 23 Apr 2022 23:05:38 +0200 Subject: Add event queue overflow handling --- tests/test_mpv.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'tests/test_mpv.py') diff --git a/tests/test_mpv.py b/tests/test_mpv.py index cf5e470..3fecfbd 100755 --- a/tests/test_mpv.py +++ b/tests/test_mpv.py @@ -659,6 +659,28 @@ class TestLifecycle(unittest.TestCase): m.terminate() self.disp.stop() + def test_wait_for_prooperty_event_overflow(self): + self.disp = Xvfb() + self.disp.start() + handler = mock.Mock() + m = mpv.MPV(vo=testvo) + m.play(TESTVID) + with self.assertRaises(mpv.EventOverflowError): + # level_sensitive=false needed to prevent get_property on dead + # handle + with m.prepare_and_wait_for_property('mute', cond=lambda val: time.sleep(0.001)): + for i in range(10000): + try: + # We really have to try hard to fill up the queue here. Simple async commands will not work, + # since then command_async will throw a memory error first. Property changes also do not work, + # since they are only processsed when the event loop is idle. This here works reliably. + m.command_async('script-message', 'foo', 'bar') + except: + pass + self.disp.stop() + + + def test_wait_for_event_shutdown(self): self.disp = Xvfb() self.disp.start() -- cgit