diff --git a/scripts/monitor_dbus_signals.py b/scripts/monitor_dbus_signals.py index c2d3a75..289fad8 100755 --- a/scripts/monitor_dbus_signals.py +++ b/scripts/monitor_dbus_signals.py @@ -685,10 +685,6 @@ def _check(): if _PROPERTIES is None: return [] - assert isinstance(_CALLBACK_ERRORS, list) - if _CALLBACK_ERRORS: - return _CALLBACK_ERRORS - if _MO is None: return [] @@ -730,7 +726,16 @@ def _check(): return diffs - result = _check() + assert isinstance(_CALLBACK_ERRORS, list) + if _CALLBACK_ERRORS: + print(os.linesep.join(_CALLBACK_ERRORS)) + sys.exit(3) + + try: + result = _check() + except Exception as exco: # pylint: disable=broad-except + print(f"{exco}") + sys.exit(4) assert isinstance(result, list) if not result: diff --git a/testlib/infra.py b/testlib/infra.py index 139e304..812653e 100644 --- a/testlib/infra.py +++ b/testlib/infra.py @@ -464,6 +464,21 @@ def run_check(self, stop_time): time.sleep(sleep_time(stop_time, 16)) self.trace.send_signal(signal.SIGINT) (stdoutdata, stderrdata) = self.trace.communicate() + + if self.trace.returncode == 3: + raise RuntimeError( + "Failure while processing D-Bus signals: " + f'stderr: {stderrdata.decode("utf-8")}, ' + f'stdout: {stdoutdata.decode("utf-8")}' + ) + + if self.trace.returncode == 4: + raise RuntimeError( + "Failure while comparing D-Bus states: " + f'stderr: {stderrdata.decode("utf-8")}, ' + f'stdout: {stdoutdata.decode("utf-8")}' + ) + msg = stdoutdata.decode("utf-8") self.assertEqual( self.trace.returncode,