]> git.ipfire.org Git - thirdparty/suricata-verify.git/commitdiff
framework: adds a timeout of 5 minutes per test
authorPhilippe Antoine <contact@catenacyber.fr>
Thu, 15 Sep 2022 08:59:50 +0000 (10:59 +0200)
committerCatena cyber <35799796+catenacyber@users.noreply.github.com>
Mon, 21 Nov 2022 19:50:10 +0000 (20:50 +0100)
run.py

diff --git a/run.py b/run.py
index 523095bc0a71e288ae767070eabfcbee2c67aed1..af4ecc71dd7b1eef6e3a3c44d62a57bbc526e230 100755 (executable)
--- a/run.py
+++ b/run.py
@@ -51,6 +51,8 @@ LINUX = sys.platform.startswith("linux")
 suricata_bin = "src\suricata.exe" if WIN32 else "./src/suricata"
 suricata_yaml = "suricata.yaml" if WIN32 else "./suricata.yaml"
 
+PROC_TIMEOUT=300
+
 if LINUX:
     manager = mp.Manager()
     lock = mp.Lock()
@@ -678,11 +680,20 @@ class TestRunner:
 
             self.start_reader(p.stdout, stdout)
             self.start_reader(p.stderr, stderr)
-
             for r in self.readers:
-                r.join()
+                try:
+                    r.join(timeout=PROC_TIMEOUT)
+                except:
+                    print("stdout/stderr reader timed out, terminating")
+                    r.terminate()
 
-            r = p.wait()
+            try:
+                r = p.wait(timeout=PROC_TIMEOUT)
+            except:
+                print("Suricata timed out, terminating")
+                p.terminate()
+                raise TestError("timed out when expected exit code %d" % (
+                    expected_exit_code));
 
             if r != expected_exit_code:
                 raise TestError("got exit code %d, expected %d" % (