From 917cc056f43bc451a944f711f95cf5531fa119f0 Mon Sep 17 00:00:00 2001 From: Sebastien Bourdeauducq Date: Sun, 19 Jun 2016 19:15:10 +0800 Subject: [PATCH] test: add test for seamless handover on exception termination --- artiq/test/coredevice/test_rtio.py | 31 ++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/artiq/test/coredevice/test_rtio.py b/artiq/test/coredevice/test_rtio.py index 07a1a78f1..415fa8a87 100644 --- a/artiq/test/coredevice/test_rtio.py +++ b/artiq/test/coredevice/test_rtio.py @@ -238,6 +238,31 @@ class Handover(EnvExperiment): self.k("t2") +class DummyException(Exception): + pass + + +class HandoverException(EnvExperiment): + def build(self): + self.setattr_device("core") + + @kernel + def k(self, var): + self.set_dataset(var, now_mu()) + delay_mu(1234) + raise DummyException() + + def run(self): + try: + self.k("t1") + except DummyException: + pass + try: + self.k("t2") + except DummyException: + pass + + class CoredeviceTest(ExperimentCase): def test_loopback(self): self.execute(Loopback) @@ -314,6 +339,12 @@ class CoredeviceTest(ExperimentCase): self.assertEqual(self.dataset_mgr.get("t1") + 1234, self.dataset_mgr.get("t2")) + def test_handover_exception(self): + self.execute(HandoverException) + self.assertEqual(self.dataset_mgr.get("t1") + 1234, + self.dataset_mgr.get("t2")) + + class RPCTiming(EnvExperiment): def build(self, repeats=100):