diff --git a/test/zdtm.py b/test/zdtm.py index 7a7cdfd3b6..983278813f 100755 --- a/test/zdtm.py +++ b/test/zdtm.py @@ -899,6 +899,10 @@ def run(action, return cr return cr.wait(timeout=timeout) + @staticmethod + def exit_signal(ret): + return ret < 0 + class criu_rpc_process: def wait(self): @@ -1018,8 +1022,11 @@ def run(action, else: raise test_fail_exc('RPC for %s required' % action) except crpc.CRIUExceptionExternal as e: - print("Fail", e) - ret = -1 + if e.typ != e.resp_typ: + ret = -2 + else: + print("Fail", e) + ret = -1 else: ret = 0 @@ -1032,6 +1039,10 @@ def run(action, return ret + @staticmethod + def exit_signal(ret): + return ret == -2 + class criu: def __init__(self, opts): @@ -1233,8 +1244,8 @@ def __criu_act(self, action, opts=[], log=None, nowait=False): return rst_succeeded = os.access( os.path.join(__ddir, "restore-succeeded"), os.F_OK) - if self.__test.blocking() or (self.__sat and action == 'restore' and - rst_succeeded): + if (self.__test.blocking() and not self.__criu.exit_signal(ret)) or \ + (self.__sat and action == 'restore' and rst_succeeded): raise test_fail_expected_exc(action) else: raise test_fail_exc("CRIU %s" % action) diff --git a/test/zdtm/criu_config.py b/test/zdtm/criu_config.py index 487becfb4b..f39418d7d5 100644 --- a/test/zdtm/criu_config.py +++ b/test/zdtm/criu_config.py @@ -40,3 +40,7 @@ def run(action, if nowait: return cr return cr.wait() + + @staticmethod + def exit_signal(ret): + return ret < 0