--- /dev/null
+# Test Description
+
+Test to demonstrate the port grouping and SGH distribution for small range
+overlaps and single points with the boundary values of UINT16.
+
+## PCAP
+
+None
+
+## Related issues
+
+https://redmine.openinfosecfoundation.org/issues/6896
--- /dev/null
+%YAML 1.1
+---
+
+engine-analysis:
+ rules-fast-pattern: yes
+ rules: yes
+
+detect:
+ profiling:
+ grouping:
+ dump-to-disk: yes
+ include-rules: yes
+ include-mpm-stats: yes
--- /dev/null
+alert tcp any any -> any 0:1000 (flow:to_server; content:"abc"; sid:1;)
+alert tcp any any -> any 0 (flow:to_server; content:"abc"; sid:2;)
+alert tcp any any -> any 35000:65535 (flow:to_server; content:"abc"; sid:3;)
+alert tcp any any -> any 65535 (flow:to_server; content:"abc"; sid:4;)
+
--- /dev/null
+requires:
+ min-version: 8
+
+pcap: false
+
+args:
+ - --engine-analysis
+
+checks:
+ - filter:
+ filename: rule_group.json
+ count: 1
+ match:
+ tcp.toserver.__len: 4
+ - filter:
+ filename: rule_group.json
+ count: 1
+ match:
+ tcp.toserver[0].port: 0
+ tcp.toserver[0].port2: 0
+ tcp.toserver[0].rulegroup.id: 0
+ tcp.toserver[0].rulegroup.rules[0].sig_id: 1
+ tcp.toserver[0].rulegroup.rules[1].sig_id: 2
+ - filter:
+ filename: rule_group.json
+ count: 1
+ match:
+ tcp.toserver[1].port: 65535
+ tcp.toserver[1].port2: 65535
+ tcp.toserver[1].rulegroup.id: 1
+ tcp.toserver[1].rulegroup.rules[0].sig_id: 3
+ tcp.toserver[1].rulegroup.rules[1].sig_id: 4
+ - filter:
+ filename: rule_group.json
+ count: 1
+ match:
+ tcp.toserver[2].port: 1
+ tcp.toserver[2].port2: 1000
+ tcp.toserver[2].rulegroup.id: 2
+ tcp.toserver[2].rulegroup.rules[0].sig_id: 1
+ - filter:
+ filename: rule_group.json
+ count: 1
+ match:
+ tcp.toserver[3].port: 35000
+ tcp.toserver[3].port2: 65534
+ tcp.toserver[3].rulegroup.id: 3
+ tcp.toserver[3].rulegroup.rules[0].sig_id: 3
+
--- /dev/null
+# Test Description
+
+Test to demonstrate the error in case port is out of bounds.
+
+## PCAP
+
+None
+
+## Related issues
+
+https://redmine.openinfosecfoundation.org/issues/6896
--- /dev/null
+%YAML 1.1
+---
+
+engine-analysis:
+ rules-fast-pattern: yes
+ rules: yes
+
+detect:
+ profiling:
+ grouping:
+ dump-to-disk: yes
+ include-rules: yes
+ include-mpm-stats: yes
--- /dev/null
+alert tcp any any -> any 65536 (flow:to_server; content:"abc"; sid:1;)
--- /dev/null
+requires:
+ min-version: 8
+
+pcap: false
+
+args:
+ - --engine-analysis
+
+exit-code: 1
--- /dev/null
+# Test Description
+
+Test to demonstrate the port grouping and SGH distribution for small range
+overlaps and single points with UINT16 boundary overlaps.
+
+## PCAP
+
+None
+
+## Related issues
+
+https://redmine.openinfosecfoundation.org/issues/6896
--- /dev/null
+%YAML 1.1
+---
+
+engine-analysis:
+ rules-fast-pattern: yes
+ rules: yes
+
+detect:
+ profiling:
+ grouping:
+ dump-to-disk: yes
+ include-rules: yes
+ include-mpm-stats: yes
--- /dev/null
+alert tcp any any -> any 0:65535 (flow:to_server; content:"abc"; sid:1;)
+alert tcp any 1024: -> any 0:120 (flow:to_server; content:"abc"; sid:2;)
+alert tcp any 1024: -> any 0 (flow:to_server; content:"abc"; sid:3;)
+
--- /dev/null
+requires:
+ min-version: 8
+
+pcap: false
+
+args:
+ - --engine-analysis
+
+checks:
+ - filter:
+ filename: rule_group.json
+ count: 1
+ match:
+ tcp.toserver.__len: 3
+ - filter:
+ filename: rule_group.json
+ count: 1
+ match:
+ tcp.toserver[0].port: 0
+ tcp.toserver[0].port2: 0
+ tcp.toserver[0].rulegroup.id: 0
+ tcp.toserver[0].rulegroup.rules[0].sig_id: 1
+ tcp.toserver[0].rulegroup.rules[1].sig_id: 2
+ tcp.toserver[0].rulegroup.rules[2].sig_id: 3
+ - filter:
+ filename: rule_group.json
+ count: 1
+ match:
+ tcp.toserver[1].port: 1
+ tcp.toserver[1].port2: 120
+ tcp.toserver[1].rulegroup.id: 1
+ tcp.toserver[1].rulegroup.rules[0].sig_id: 1
+ tcp.toserver[1].rulegroup.rules[1].sig_id: 2
+ - filter:
+ filename: rule_group.json
+ count: 1
+ match:
+ tcp.toserver[2].port: 121
+ tcp.toserver[2].port2: 65535
+ tcp.toserver[2].rulegroup.id: 2
+ tcp.toserver[2].rulegroup.rules[0].sig_id: 1
+