diff --git a/test/ganeti.daemon_unittest.py b/test/ganeti.daemon_unittest.py index e9f10bd2818cad37991c7311321c986c788b5790..7b0cfe50ad9f48c27b6a6fc58cb6692a52b83804 100755 --- a/test/ganeti.daemon_unittest.py +++ b/test/ganeti.daemon_unittest.py @@ -94,6 +94,24 @@ class TestMainloop(testutils.GanetiTestCase): self.assertEquals(self.sendsig_events, [signal.SIGCHLD, signal.SIGTERM]) self.assertEquals(self.onsignal_events, self.sendsig_events) + def testReRun(self): + self.mainloop.RegisterSignal(self) + self.mainloop.scheduler.enter(0.1, 1, self._SendSig, [signal.SIGCHLD]) + self.mainloop.scheduler.enter(0.2, 1, self._SendSig, [signal.SIGCHLD]) + self.mainloop.scheduler.enter(0.3, 1, self._SendSig, [signal.SIGTERM]) + self.mainloop.scheduler.enter(0.4, 1, self._SendSig, [signal.SIGCHLD]) + self.mainloop.scheduler.enter(0.5, 1, self._SendSig, [signal.SIGCHLD]) + self.mainloop.Run() + self.assertEquals(self.sendsig_events, + [signal.SIGCHLD, signal.SIGCHLD, signal.SIGTERM]) + self.assertEquals(self.onsignal_events, self.sendsig_events) + self.mainloop.scheduler.enter(0.3, 1, self._SendSig, [signal.SIGTERM]) + self.mainloop.Run() + self.assertEquals(self.sendsig_events, + [signal.SIGCHLD, signal.SIGCHLD, signal.SIGTERM, + signal.SIGCHLD, signal.SIGCHLD, signal.SIGTERM]) + self.assertEquals(self.onsignal_events, self.sendsig_events) + class _MyAsyncUDPSocket(daemon.AsyncUDPSocket):