From e456b156f221230314439d013a01bb05a691ddbf Mon Sep 17 00:00:00 2001 From: Jason Ish Date: Tue, 13 Mar 2018 12:41:38 -0600 Subject: [PATCH] make config requires a skip, not a requires oops, reverse the logic on the previous commit. --- run.py | 100 ++++++++++-------- tests/dns-tcp-ts-gap/test.yaml | 9 +- .../test.yaml | 8 +- tests/dns-udp-eve-log-txt/test.yaml | 8 +- 4 files changed, 70 insertions(+), 55 deletions(-) diff --git a/run.py b/run.py index 407c6402e..23429c4df 100755 --- 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. diff --git a/tests/dns-tcp-ts-gap/test.yaml b/tests/dns-tcp-ts-gap/test.yaml index 544265bf3..bcf978036 100644 --- a/tests/dns-tcp-ts-gap/test.yaml +++ b/tests/dns-tcp-ts-gap/test.yaml @@ -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 diff --git a/tests/dns-udp-dig-a-www-suricata-ids-org/test.yaml b/tests/dns-udp-dig-a-www-suricata-ids-org/test.yaml index 43ff38d8e..a3efcb3f6 100644 --- a/tests/dns-udp-dig-a-www-suricata-ids-org/test.yaml +++ b/tests/dns-udp-dig-a-www-suricata-ids-org/test.yaml @@ -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: diff --git a/tests/dns-udp-eve-log-txt/test.yaml b/tests/dns-udp-eve-log-txt/test.yaml index b491dab1c..6f5121f57 100644 --- a/tests/dns-udp-eve-log-txt/test.yaml +++ b/tests/dns-udp-eve-log-txt/test.yaml @@ -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 -- 2.47.2