From 18fcb27ec91f27789270550a2a005cb773bf2fe0 Mon Sep 17 00:00:00 2001 From: Dirk Engling Date: Tue, 27 Oct 2026 22:53:25 +0100 Subject: The main event loop(s) now also catch an EINTR and return instead of blocking --- tests/integration/harness.py | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'tests/integration/harness.py') diff --git a/tests/integration/harness.py b/tests/integration/harness.py index 03a0561..122c36d 100644 --- a/tests/integration/harness.py +++ b/tests/integration/harness.py @@ -121,6 +121,7 @@ class Tracker: all: LeakSanitizer reports from an exit handler, so a killed tracker reports nothing and the suite passes over leaks it never looked for. """ + refused_to_exit = False if self.process is not None and self.process.poll() is None: self.process.send_signal(signal.SIGINT) try: @@ -128,11 +129,16 @@ class Tracker: except subprocess.TimeoutExpired: self.process.kill() self.process.wait() + refused_to_exit = True complaints = [ line for line in self.output().splitlines() if "Sanitizer" in line or "runtime error" in line or line.startswith("ERROR") ] + if refused_to_exit: + # Killing it throws away whatever the sanitizer had to say on the + # way out, so a test that ends this way has checked nothing. + complaints.append("the tracker did not exit within 5 s of SIGINT and had to be killed") self._cleanup() return complaints -- cgit v1.3