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):