From: Jason Ish Date: Fri, 15 May 2020 16:20:19 +0000 (-0600) Subject: runner: add less-than version requirements X-Git-Tag: suricata-6.0.4~293 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=87406f313a5064afe3ebd551ff9d9029a7e98fec;p=thirdparty%2Fsuricata-verify.git runner: add less-than version requirements lt-version can be used to specify that the Suricata version must be less than a certain value. This is similar to what a max-version might look like but be more predictable. For example, to run a test on all versions less than 6: lt-version: 6 --- diff --git a/README.md b/README.md index 26632dbf7..5ad0cfaee 100644 --- a/README.md +++ b/README.md @@ -48,6 +48,9 @@ requires: # Require a minimum version of Suricata. min-version: 4.1.0 + # Require that the Suricata version be less than a version. + lt-version: 6 + # Test is only for this version. For example, 4.0 would match any 4.0 # release, but 4.0.3 would only match 4.0.3. version: 4.0 diff --git a/run.py b/run.py index 32f651e64..15d9dce58 100755 --- a/run.py +++ b/run.py @@ -181,6 +181,15 @@ class Version: return True + def is_lt(self, v1, v2): + """Return True if v1 is less than v2.""" + if v1.major < v2.major: + return True + elif v1.minor < v2.minor: + return True + elif v1.patch < v2.patch: + return True + return False class SuricataConfig: @@ -453,6 +462,12 @@ class TestRunner: suri_version=suri_version, expr="gte"): raise UnsatisfiedRequirementError( "requires at least version {}".format(min_version)) + elif key == "lt-version": + lt_version = requires["lt-version"] + if not is_version_compatible(version=lt_version, + suri_version=suri_version, expr="lt"): + raise UnsatisfiedRequirementError( + "for version less than {}".format(lt_version)) elif key == "version": req_version = requires["version"] if not is_version_compatible(version=req_version,