def test_server_hello_with_malcolm_client(self): block2 = ClientController('hello', self.process2).block task = Task("task", self.process2) futures = task.when_matches(block2["state"], "Ready") task.wait_all(futures, timeout=1) ret = block2.say_hello("me2") self.assertEqual(ret, dict(greeting="Hello me2"))
def test_server_hello_with_malcolm_client(self): block2 = self.process2.make_client_block("hello") task = Task("task", self.process2) futures = task.when_matches_async(block2["state"], "Ready") task.wait_all(futures, timeout=1) ret = block2.greet("me2") self.assertEqual(ret, dict(greeting="Hello me2"))
def test_server_counter_with_malcolm_client(self): block2 = ClientController('counter', self.process2).block task = Task("task", self.process2) futures = task.when_matches(block2["state"], "Ready") task.wait_all(futures, timeout=1) self.assertEqual(block2.counter, 0) block2.increment() self.assertEqual(block2.counter, 1)
def test_server_counter_with_malcolm_client(self): block2 = self.process2.make_client_block("counter") task = Task("task", self.process2) futures = task.when_matches_async(block2["state"], "Ready") task.wait_all(futures, timeout=1) self.assertEqual(block2.counter, 0) block2.increment() self.assertEqual(block2.counter, 1)
def test_sever_all_inports(self): self.c1.block.inportConnector = 'Connector' self.c2.block.inportConnector = 'Connector' self.c3.block.inportConnector = 'Connector3' task = Task("Task1", self.p) self.p1.sever_all_inports(task) task.wait_all([], 5) self.assertEqual(self.c1.block.inportConnector, '') self.assertEqual(self.c2.block.inportConnector, 'Connector') self.assertEqual(self.c3.block.inportConnector, 'Connector3')
def test_sever_all_inports(self): self.c1.block.inportConnector = 'Connector' self.c2.block.inportConnector = 'Connector' self.c3.block.inportConnector = 'Connector3' task = Task("Task1" , self.p) self.p1.sever_all_inports(task) task.wait_all([],5) self.assertEqual(self.c1.block.inportConnector, '') self.assertEqual(self.c2.block.inportConnector, 'Connector') self.assertEqual(self.c3.block.inportConnector, 'Connector3')
def _call_do_run(self): try: self.do_run() except StopIteration: # Work out if it was an abort or pause with self.lock: state = self.state.value self.log_debug("Do run got StopIteration from %s", state) if state in (sm.REWINDING, sm.PAUSED): # Wait to be restarted self.log_debug("Waiting for PreRun") task = Task("StateWaiter", self.process) futures = task.when_matches( self.state, sm.PRERUN, [sm.DISABLING, sm.ABORTING, sm.FAULT]) task.wait_all(futures) # Restart it self.do_run() else: # just drop out self.log_debug("We were aborted") raise