forked from M-Labs/artiq
1
0
Fork 0

test/scheduler: test check_pause

This commit is contained in:
Sebastien Bourdeauducq 2016-06-29 11:44:42 +08:00
parent 43681b37ec
commit a1cc964c6c
1 changed files with 13 additions and 1 deletions

View File

@ -138,6 +138,7 @@ class SchedulerCase(unittest.TestCase):
expect = _get_basic_steps(1, expid) expect = _get_basic_steps(1, expid)
background_running = asyncio.Event() background_running = asyncio.Event()
empty_ready = asyncio.Event()
empty_completed = asyncio.Event() empty_completed = asyncio.Event()
background_completed = asyncio.Event() background_completed = asyncio.Event()
expect_idx = 0 expect_idx = 0
@ -151,8 +152,13 @@ class SchedulerCase(unittest.TestCase):
if mod == {"path": [0], if mod == {"path": [0],
"value": "deleting", "value": "deleting",
"key": "status", "key": "status",
"action": "setitem"}: "action": "setitem"}:
background_completed.set() background_completed.set()
if mod == {"path": [1],
"value": "prepare_done",
"key": "status",
"action": "setitem"}:
empty_ready.set()
if mod["path"] == [1] or (mod["path"] == [] and mod["key"] == 1): if mod["path"] == [1] or (mod["path"] == [] and mod["key"] == 1):
self.assertEqual(mod, expect[expect_idx]) self.assertEqual(mod, expect[expect_idx])
expect_idx += 1 expect_idx += 1
@ -163,11 +169,17 @@ class SchedulerCase(unittest.TestCase):
scheduler.start() scheduler.start()
scheduler.submit("main", expid_bg, -99, None, False) scheduler.submit("main", expid_bg, -99, None, False)
loop.run_until_complete(background_running.wait()) loop.run_until_complete(background_running.wait())
self.assertFalse(scheduler.check_pause(0))
scheduler.submit("main", expid, 0, None, False) scheduler.submit("main", expid, 0, None, False)
self.assertFalse(scheduler.check_pause(0))
loop.run_until_complete(empty_ready.wait())
self.assertTrue(scheduler.check_pause(0))
loop.run_until_complete(empty_completed.wait()) loop.run_until_complete(empty_completed.wait())
self.assertFalse(scheduler.check_pause(0))
self.assertFalse(termination_ok) self.assertFalse(termination_ok)
scheduler.request_termination(0) scheduler.request_termination(0)
self.assertTrue(scheduler.check_pause(0))
loop.run_until_complete(background_completed.wait()) loop.run_until_complete(background_completed.wait())
self.assertTrue(termination_ok) self.assertTrue(termination_ok)