Add tests for the FTP keyword ftp.reply_received that alert on both
values for reply_received -- "yes" and "no".
Also validate that only yes, no, on, off are accepted.
Issue: 7506
--- /dev/null
+alert ftp any any -> any any (msg: "Match on FTP reply received: yes"; flow:established; ftp.reply_received: yes; sid:1;)
+alert ftp any any -> any any (msg: "Match on FTP reply received: yes"; flow:established; ftp.reply_received: on; sid:2;)
--- /dev/null
+requires:
+ version: 8
+
+pcap: ../../bug-3519/input.pcap
+
+checks:
+
+ - filter:
+ count: 7
+ match:
+ event_type: alert
+ ftp.reply_received: "yes"
+ alert.signature_id: 1
+
+ - filter:
+ count: 7
+ match:
+ event_type: alert
+ ftp.reply_received: "yes"
+ alert.signature_id: 2
--- /dev/null
+alert ftp any any -> any any (msg: "Match on FTP reply-received NO"; ftp.reply_received: no; sid:1;)
+alert ftp any any -> any any (msg: "Match on FTP reply-received NO"; ftp.reply_received: off; sid:2;)
--- /dev/null
+requires:
+ version: 8
+
+pcap: ../../ftp/ftp-too-long-response/ftp-too-long-response.pcap
+
+checks:
+
+ - filter:
+ count: 1
+ match:
+ event_type: alert
+ ftp.reply_received: "no"
+ alert.signature_id: 1
+
+ - filter:
+ count: 1
+ match:
+ event_type: alert
+ ftp.reply_received: "no"
+ alert.signature_id: 2
--- /dev/null
+alert ftp any any -> any any (msg: "Match on FTP reply received: yes"; flow:established; ftp.reply_received: yes yes; sid:1;)
+alert ftp any any -> any any (msg: "Match on FTP reply received: yes"; flow:established; ftp.reply_received: no no; sid:2;)
+alert ftp any any -> any any (msg: "Match on FTP reply received: yes"; flow:established; ftp.reply_received: suricata; sid:3;)
--- /dev/null
+requires:
+ version: 8
+ pcap: false
+
+exit-code: 1
+
+args:
+ - --engine-analysis
+checks:
+
+ - shell:
+ args: grep "error parsing signature" suricata.log | wc -l | xargs
+ expect: 3