From: Philippe Antoine Date: Tue, 17 Jun 2025 13:25:49 +0000 (+0200) Subject: framework: check for redundant check/test version requirement X-Git-Tag: suricata-7.0.11~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F2584%2Fhead;p=thirdparty%2Fsuricata-verify.git framework: check for redundant check/test version requirement --- diff --git a/run.py b/run.py index b587a75f9..b0cc6f0cf 100755 --- a/run.py +++ b/run.py @@ -140,6 +140,9 @@ class UnsatisfiedRequirementError(Exception): class ImpossibleRequirementError(Exception): pass +class UnnecessaryRequirementError(Exception): + pass + class TerminatePoolError(Exception): pass @@ -327,6 +330,11 @@ def check_filter_test_version_compat(requires, test_version): if not is_version_compatible(version=requires["lt-version"], suri_version=parse_suricata_version(test_version["min"]), expr="lt"): raise ImpossibleRequirementError( "test requires min {} check requires lt-version {}".format(test_version["min"], requires["lt-version"])) + elif key == "min-version": + if "min" in test_version: + if requires["min-version"] == test_version["min"]: + raise UnnecessaryRequirementError( + "test already requires min {} not needed for the check {}".format(test_version["min"], requires["min-version"])) def check_requires(requires, suricata_config: SuricataConfig): suri_version = suricata_config.version diff --git a/tests/datasets/datarep-datasets-mix/test.yaml b/tests/datasets/datarep-datasets-mix/test.yaml index 977046eff..0a2d3095c 100644 --- a/tests/datasets/datarep-datasets-mix/test.yaml +++ b/tests/datasets/datarep-datasets-mix/test.yaml @@ -10,7 +10,6 @@ exit-code: 1 checks: - filter: - min-version: 8 filename: suricata.json count: 1 match: diff --git a/tests/datasets/datasets-datarep-mix/test.yaml b/tests/datasets/datasets-datarep-mix/test.yaml index 3eac84653..76b3b25bb 100644 --- a/tests/datasets/datasets-datarep-mix/test.yaml +++ b/tests/datasets/datasets-datarep-mix/test.yaml @@ -10,7 +10,6 @@ exit-code: 1 checks: - filter: - min-version: 8 filename: suricata.json count: 1 match: diff --git a/tests/dns/dns-invalid-opcode/test.yaml b/tests/dns/dns-invalid-opcode/test.yaml index a9fe134c9..699724552 100644 --- a/tests/dns/dns-invalid-opcode/test.yaml +++ b/tests/dns/dns-invalid-opcode/test.yaml @@ -37,7 +37,6 @@ checks: # Generated checks below. - filter: - min-version: 8 count: 1 match: alert.action: allowed @@ -106,8 +105,6 @@ checks: src_ip: 1.1.1.1 src_port: 5333 - filter: - requires: - min-version: 8 count: 1 match: alert.action: allowed diff --git a/tests/dns/dns-rrtype/test.yaml b/tests/dns/dns-rrtype/test.yaml index ef75fdde1..79f6d18b2 100644 --- a/tests/dns/dns-rrtype/test.yaml +++ b/tests/dns/dns-rrtype/test.yaml @@ -5,8 +5,6 @@ pcap: ../dns-eve-empty-format/input.pcap checks: - filter: - requires: - min-version: 8 count: 1 match: alert.signature_id: 1 diff --git a/tests/dns/dns-z-bit/test.yaml b/tests/dns/dns-z-bit/test.yaml index ba3ac8741..7bd03ffe3 100644 --- a/tests/dns/dns-z-bit/test.yaml +++ b/tests/dns/dns-z-bit/test.yaml @@ -12,8 +12,6 @@ checks: dns.type: request dns.z: true - filter: - requires: - min-version: 8 count: 1 match: event_type: alert diff --git a/tests/eve-payload-07-http-gap/test.yaml b/tests/eve-payload-07-http-gap/test.yaml index e6fbb9077..6fcc83ed4 100644 --- a/tests/eve-payload-07-http-gap/test.yaml +++ b/tests/eve-payload-07-http-gap/test.yaml @@ -22,7 +22,6 @@ checks: payload_length: 40 - filter: count: 1 - min-version: 7.0.7 match: event_type: alert alert.signature_id: 1 @@ -37,7 +36,6 @@ checks: payload_length: 80 - filter: count: 1 - min-version: 7.0.7 match: event_type: alert alert.signature_id: 1 @@ -52,7 +50,6 @@ checks: payload_length: 120 - filter: count: 1 - min-version: 7.0.7 match: event_type: alert alert.signature_id: 1 @@ -67,7 +64,6 @@ checks: payload_length: 136 - filter: count: 1 - min-version: 7.0.7 match: event_type: alert alert.signature_id: 2 diff --git a/tests/exception-policy-applayer-03/test.yaml b/tests/exception-policy-applayer-03/test.yaml index 598e96404..62d916e01 100644 --- a/tests/exception-policy-applayer-03/test.yaml +++ b/tests/exception-policy-applayer-03/test.yaml @@ -72,7 +72,6 @@ checks: stats.exception_policy.app_layer.error.pass_packet: 1 stats.exception_policy.app_layer.error.drop_packet: 0 - filter: - min-version: 8 count: 1 match: event_type: flow diff --git a/tests/firewall/firewall-06-tls-sni-enforce/test.yaml b/tests/firewall/firewall-06-tls-sni-enforce/test.yaml index 82fbef86e..19a86e781 100644 --- a/tests/firewall/firewall-06-tls-sni-enforce/test.yaml +++ b/tests/firewall/firewall-06-tls-sni-enforce/test.yaml @@ -20,7 +20,6 @@ checks: event_type: alert - filter: # check for https://redmine.openinfosecfoundation.org/issues/7350 - min-version: 8 count: 4 match: event_type: alert diff --git a/tests/issue-5466-alert-then-pass-01/test.yaml b/tests/issue-5466-alert-then-pass-01/test.yaml index d01ec1c98..82f5f8369 100644 --- a/tests/issue-5466-alert-then-pass-01/test.yaml +++ b/tests/issue-5466-alert-then-pass-01/test.yaml @@ -26,7 +26,6 @@ checks: match: event_type: flow - filter: - min-version: 7 count: 1 match: event_type: flow diff --git a/tests/issue-5466-alert-then-pass-03-drop-pass/test.yaml b/tests/issue-5466-alert-then-pass-03-drop-pass/test.yaml index ab264ebf9..38e646c45 100644 --- a/tests/issue-5466-alert-then-pass-03-drop-pass/test.yaml +++ b/tests/issue-5466-alert-then-pass-03-drop-pass/test.yaml @@ -27,7 +27,6 @@ checks: match: event_type: flow - filter: - min-version: 7 count: 1 match: event_type: flow diff --git a/tests/issue-5466-alert-then-pass-04-drop-alert/test.yaml b/tests/issue-5466-alert-then-pass-04-drop-alert/test.yaml index 8ecad2eb3..41f68e0cc 100644 --- a/tests/issue-5466-alert-then-pass-04-drop-alert/test.yaml +++ b/tests/issue-5466-alert-then-pass-04-drop-alert/test.yaml @@ -27,7 +27,6 @@ checks: match: event_type: flow - filter: - min-version: 7 count: 1 match: event_type: flow diff --git a/tests/requires-ok/test.yaml b/tests/requires-ok/test.yaml index 206132ddf..1c852c254 100644 --- a/tests/requires-ok/test.yaml +++ b/tests/requires-ok/test.yaml @@ -23,21 +23,18 @@ checks: # sid 7 and the other is sid 9. - filter: requires: - min-version: 7 lt-version: 8 count: 2 match: event_type: alert - filter: requires: - min-version: 7 lt-version: 8 count: 1 match: alert.signature_id: 7 - filter: requires: - min-version: 7 lt-version: 8 count: 1 match: @@ -45,7 +42,6 @@ checks: - filter: requires: - min-version: 7 lt-version: 8 count: 1 match: diff --git a/tests/sip-tcp-body-frames/test.yaml b/tests/sip-tcp-body-frames/test.yaml index aeca4e9db..1d9afdf1e 100644 --- a/tests/sip-tcp-body-frames/test.yaml +++ b/tests/sip-tcp-body-frames/test.yaml @@ -8,31 +8,26 @@ pcap: ../sip-tcp-method/sip-tcp.pcap checks: - filter: - min-version: 8 count: 2 match: proto: TCP event_type: sip - filter: - min-version: 8 count: 1 match: event_type: alert alert.signature_id: 2 - filter: - min-version: 8 count: 1 match: event_type: alert alert.signature_id: 22 - filter: - min-version: 8 count: 1 match: event_type: alert alert.signature_id: 31 - filter: - min-version: 8 count: 1 match: event_type: alert @@ -42,19 +37,16 @@ checks: frame.length: 532 frame.direction: toserver - filter: - min-version: 8 count: 1 match: event_type: alert alert.signature_id: 41 - filter: - min-version: 8 count: 1 match: event_type: alert alert.signature_id: 42 - filter: - min-version: 8 count: 1 match: event_type: stats diff --git a/tests/smb2-07-frames/test.yaml b/tests/smb2-07-frames/test.yaml index 3f7d0180a..7b23aef43 100644 --- a/tests/smb2-07-frames/test.yaml +++ b/tests/smb2-07-frames/test.yaml @@ -10,12 +10,10 @@ args: checks: - filter: - min-version: 7 count: 60 match: event_type: smb - filter: - min-version: 7 count: 1 match: event_type: smb diff --git a/tests/test-bad-dsize-range-offset-rule-2/test.yaml b/tests/test-bad-dsize-range-offset-rule-2/test.yaml index f61e7810a..d8997dee7 100644 --- a/tests/test-bad-dsize-range-offset-rule-2/test.yaml +++ b/tests/test-bad-dsize-range-offset-rule-2/test.yaml @@ -14,7 +14,6 @@ checks: engine.message: "signature can't match as required content length 12 exceeds dsize value 10" - filter: - min-version: 7 count: 3 match: event_type: engine diff --git a/tests/test-bad-dsize-range-rule-2/test.yaml b/tests/test-bad-dsize-range-rule-2/test.yaml index 8e5c04950..f40f714b0 100644 --- a/tests/test-bad-dsize-range-rule-2/test.yaml +++ b/tests/test-bad-dsize-range-rule-2/test.yaml @@ -14,7 +14,6 @@ checks: engine.message: "signature can't match as required content length 30 exceeds dsize value 10" - filter: - min-version: 7 count: 3 match: event_type: engine