From 85dbfd783ada12d2f2c140d854052e3216594fbf Mon Sep 17 00:00:00 2001 From: Guido Trotter <ultrotter@google.com> Date: Wed, 19 May 2010 22:54:34 +0100 Subject: [PATCH] TestMainloop: test scheduler priorities as well By using enterabs we can schedule events at the same time, which will then be sorted by priority. Signed-off-by: Guido Trotter <ultrotter@google.com> Reviewed-by: Michael Hanselmann <hansmi@google.com> --- test/ganeti.daemon_unittest.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/test/ganeti.daemon_unittest.py b/test/ganeti.daemon_unittest.py index 7bf9d813b..ad5a12852 100755 --- a/test/ganeti.daemon_unittest.py +++ b/test/ganeti.daemon_unittest.py @@ -117,6 +117,20 @@ class TestMainloop(testutils.GanetiTestCase): signal.SIGCHLD, signal.SIGCHLD, signal.SIGTERM]) self.assertEquals(self.onsignal_events, self.sendsig_events) + def testPriority(self): + # for events at the same time, the highest priority one executes first + now = time.time() + self.mainloop.scheduler.enterabs(now + 0.1, 2, self._SendSig, + [signal.SIGCHLD]) + self.mainloop.scheduler.enterabs(now + 0.1, 1, self._SendSig, + [signal.SIGTERM]) + self.mainloop.Run() + self.assertEquals(self.sendsig_events, [signal.SIGTERM]) + self.mainloop.scheduler.enter(0.2, 1, self._SendSig, [signal.SIGTERM]) + self.mainloop.Run() + self.assertEquals(self.sendsig_events, + [signal.SIGTERM, signal.SIGCHLD, signal.SIGTERM]) + class _MyAsyncUDPSocket(daemon.AsyncUDPSocket): -- GitLab