]> git.ipfire.org Git - thirdparty/suricata-verify.git/commitdiff
make config requires a skip, not a requires
authorJason Ish <ish@unx.ca>
Tue, 13 Mar 2018 18:41:38 +0000 (12:41 -0600)
committerJason Ish <ish@unx.ca>
Tue, 13 Mar 2018 18:41:38 +0000 (12:41 -0600)
oops, reverse the logic on the previous commit.

run.py
tests/dns-tcp-ts-gap/test.yaml
tests/dns-udp-dig-a-www-suricata-ids-org/test.yaml
tests/dns-udp-eve-log-txt/test.yaml

diff --git a/run.py b/run.py
index 407c6402e55de13de967482571ca49fb3a81d958..23429c4df99c24763a1cc22026b51d7d82c8c1d6 100755 (executable)
--- a/run.py
+++ b/run.py
@@ -357,6 +357,15 @@ class TestRunner:
                         msg = "not for feature %s" % (skip["feature"])
                     raise UnsatisfiedRequirementError(msg)
 
+            if "config" in skip:
+                for pattern, need_val in skip["config"].items():
+                    for key, val in self.suricata_config.config.items():
+                        if re.match(pattern, key):
+                            if need_val != val:
+                                raise UnsatisfiedRequirementError(
+                                    "requires %s = %s" % (
+                                        key, need_val))
+
     def check_requires(self):
         if "requires" in self.config:
             requires = self.config["requires"]
@@ -365,55 +374,56 @@ class TestRunner:
         else:
             requires = {}
 
-        if "config" in requires:
-            for key_pattern, need_val in requires["config"].items():
-                for key, val in self.suricata_config.config.items():
-                    if re.match(key_pattern, key):
-                        if need_val != val:
-                            raise UnsatisfiedRequirementError(
-                                "requires %s = %s" % (
-                                    key, need_val))
-
-        if "min-version" in requires:
-            min_version = parse_suricata_version(requires["min-version"])
-            suri_version = self.suricata_config.version
-            if not version_gte(suri_version, min_version):
-                raise UnsatisfiedRequirementError(
-                    "requires at least version %s" % (requires["min-version"]))
-
-        if "version" in requires:
-            requires_version = parse_suricata_version(requires["version"])
-            if not version_equal(
-                    self.suricata_config.version,
-                    requires_version):
-                raise UnsatisfiedRequirementError(
-                    "only for version %s" % (requires["version"]))
-
-        if "features" in requires:
-            for feature in requires["features"]:
-                if not self.suricata_config.has_feature(feature):
-                    raise UnsatisfiedRequirementError(
-                        "requires feature %s" % (feature))
+        for key in requires:
 
-        if "env" in requires:
-            for env in requires["env"]:
-                if not env in os.environ:
+            if key == "min-version":
+                min_version = parse_suricata_version(requires["min-version"])
+                suri_version = self.suricata_config.version
+                if not version_gte(suri_version, min_version):
                     raise UnsatisfiedRequirementError(
-                        "requires env var %s" % (env))
-
-        if "files" in requires:
-            for filename in requires["files"]:
-                if not os.path.exists(filename):
+                        "requires at least version %s" % (
+                            requires["min-version"]))
+
+            elif key == "version":
+                requires_version = parse_suricata_version(requires["version"])
+                if not version_equal(
+                        self.suricata_config.version,
+                        requires_version):
                     raise UnsatisfiedRequirementError(
-                        "requires file %s" % (filename))
+                        "only for version %s" % (requires["version"]))
+
+            elif key == "features":
+                for feature in requires["features"]:
+                    if not self.suricata_config.has_feature(feature):
+                        raise UnsatisfiedRequirementError(
+                            "requires feature %s" % (feature))
+
+            elif key == "env":
+                for env in requires["env"]:
+                    if not env in os.environ:
+                        raise UnsatisfiedRequirementError(
+                            "requires env var %s" % (env))
+
+            elif key == "files":
+                for filename in requires["files"]:
+                    if not os.path.exists(filename):
+                        raise UnsatisfiedRequirementError(
+                            "requires file %s" % (filename))
+
+            elif key == "script":
+                for script in requires["script"]:
+                    try:
+                        subprocess.check_call("%s" % script, shell=True)
+                    except:
+                        raise UnsatisfiedRequirementError(
+                            "requires script returned false")
+
+            elif key == "pcap":
+                # Handle below...
+                pass
 
-        if "script" in requires:
-            for script in requires["script"]:
-                try:
-                    subprocess.check_call("%s" % script, shell=True)
-                except:
-                    raise UnsatisfiedRequirementError(
-                        "requires script returned false")
+            else:
+                raise Exception("unknown requires types: %s" % (key))
 
         # Check if a pcap is required or not. By default a pcap is
         # required unless a "command" has been provided.
index 544265bf3589b2381b636eb4eef36b0cee84d01e..bcf978036d0d8fb869c019541f46f414de662fed 100644 (file)
@@ -3,7 +3,8 @@ requires:
   min-version: 4.0.0
   features:
     - HAVE_LIBJANSSON
-  config:
-    # Requires eve dns version 2.
-    outputs.\d.eve-log.types.\d.dns.version: 2
-    
+
+skip:
+  - config:
+      # Skip if using eve.dns version 2.
+      outputs.\d.eve-log.types.\d.dns.version: 2
index 43ff38d8e9eb80ad0b0574bb4e1b64049a6340c0..a3efcb3f65f2511932538a56cde6d39b8c6f4ba6 100644 (file)
@@ -1,9 +1,11 @@
 requires:
   features:
     - HAVE_LIBJANSSON
-  config:
-    # Requires eve dns version 2.
-    outputs.\d.eve-log.types.\d.dns.version: 2
+
+skip:
+  - config:
+      # Skip if using eve.dns version 2.
+      outputs.\d.eve-log.types.\d.dns.version: 2
 
 checks:
 
index b491dab1c09c335ef46b8350ec321df838cb7efd..6f5121f57ac42ccf23f065b16c8daecb5b7e36ac 100644 (file)
@@ -1,6 +1,8 @@
 requires:
   features:
     - HAVE_LIBJANSSON
-  config:
-    # Requires eve dns version 2.
-    outputs.\d.eve-log.types.\d.dns.version: 2
+
+skip:
+  - config:
+      # Skip if using eve.dns version 2.
+      outputs.\d.eve-log.types.\d.dns.version: 2