]> git.ipfire.org Git - thirdparty/suricata-verify.git/commitdiff
framework: ability to run rules based on a min suricata version
authorPhilippe Antoine <contact@catenacyber.fr>
Fri, 1 Jul 2022 12:04:17 +0000 (14:04 +0200)
committerJason Ish <jason.ish@oisf.net>
Mon, 11 Jul 2022 19:01:49 +0000 (13:01 -0600)
run.py

diff --git a/run.py b/run.py
index 763c07ec784ee5ca896dd72d4e0f4d3bf098f1d9..2126b03fb079ceb6e336c2e79374b03df6e69e5c 100755 (executable)
--- a/run.py
+++ b/run.py
@@ -362,6 +362,13 @@ def is_version_compatible(version, suri_version, expr):
         return False
     return True
 
+def rule_is_version_compatible(rulefile, suri_version):
+    if rulefile.startswith("min"):
+        # strip prefix min and suffix .rules
+        return is_version_compatible(rulefile[3:-6], suri_version, "gte")
+    # default is true
+    return True
+
 class FileCompareCheck:
 
     def __init__(self, config, directory):
@@ -806,7 +813,11 @@ class TestRunner:
         if not rules:
             args.append("--disable-detection")
         elif len(rules) == 1:
-            args += ["-S", rules[0]]
+            rulefile = rules[0]
+            if rule_is_version_compatible(os.path.basename(rulefile), self.suricata_config.version):
+                args += ["-S", rulefile]
+            else:
+                args.append("--disable-detection")
         else:
             raise TestError("More than 1 rule file found")