diff options
Diffstat (limited to 'oslo_utils/tests/test_eventletutils.py')
-rw-r--r-- | oslo_utils/tests/test_eventletutils.py | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/oslo_utils/tests/test_eventletutils.py b/oslo_utils/tests/test_eventletutils.py index b6ce995..d96851c 100644 --- a/oslo_utils/tests/test_eventletutils.py +++ b/oslo_utils/tests/test_eventletutils.py @@ -201,6 +201,30 @@ class EventletUtilsTest(test_base.BaseTestCase): with eventlet.timeout.Timeout(0.7): b.wait() + def test_event_set_clear_timeout(self): + event = eventletutils.EventletEvent() + wakes = [] + + def thread_func(): + result = event.wait(0.2) + wakes.append(result) + if len(wakes) == 1: + self.assertTrue(result) + event.clear() + else: + self.assertFalse(result) + + a = greenthread.spawn(thread_func) + b = greenthread.spawn(thread_func) + eventlet.sleep(0) # start threads + event.set() + + with eventlet.timeout.Timeout(0.3): + a.wait() + b.wait() + self.assertFalse(event.is_set()) + self.assertEqual([True, False], wakes) + @mock.patch('oslo_utils.eventletutils._eventlet.event.Event') def test_event_clear_already_sent(self, mock_event): old_event = mock.Mock() |