<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div style="color: rgb(0, 0, 0); font-family: Calibri,Helvetica,sans-serif; font-size: 12pt;">
Hi everybody,</div>
<div style="color: rgb(0, 0, 0); font-family: Calibri,Helvetica,sans-serif; font-size: 12pt;">
<br>
</div>
<div style="color: rgb(0, 0, 0); font-family: Calibri,Helvetica,sans-serif; font-size: 12pt;">
Our team added application layer protocol detection & parser for several protocols, such FTP, TELNT, IMAP, POP3 & SMB. How to test them effectively? Thanks.</div>
<div style="color: rgb(0, 0, 0); font-family: Calibri,Helvetica,sans-serif; font-size: 12pt;">
<br>
</div>
<div style="color: rgb(0, 0, 0); font-family: Calibri,Helvetica,sans-serif; font-size: 12pt;">
We've already tried cppcheck, valgrind and <span>traffic replay testing (multi-gigabit). Meanwhile, I also enable debug-validation in configuration as follows:</span></div>
<div style="color: rgb(0, 0, 0); font-family: Calibri,Helvetica,sans-serif; font-size: 12pt;">
<span>./configure --prefix=/home/mazh/projects/test_performance --localstatedir=/home/mazh/projects/test_performance --enable-unix-socket --with-libnss-libraries=/usr/lib64 --with-libnss-includes=/usr/include/nss3 --with-libnspr-libraries=/usr/lib64 --with-libnspr-includes=/usr/include/nspr4
  --enable-non-bundled-htp --with-libhtp-includes=/usr/local/include/htp --with-libhtp-libraries=/usr/local/lib --enable-debug
</span><span style="color: rgb(200, 38, 19);">--enable-debug-validation</span><span> --enable-netmap</span></div>
<div style="color: rgb(0, 0, 0); font-family: Calibri,Helvetica,sans-serif; font-size: 12pt;">
<span><br>
</span></div>
<div style="color: rgb(0, 0, 0); font-family: Calibri,Helvetica,sans-serif; font-size: 12pt;">
<span>What are the recommended ways to test the newly added features? Any suggestion will be appreciated. Thanks in advance.</span></div>
<div style="color: rgb(0, 0, 0); font-family: Calibri,Helvetica,sans-serif; font-size: 12pt;">
<span><br>
</span></div>
<div style="color: rgb(0, 0, 0); font-family: Calibri,Helvetica,sans-serif; font-size: 12pt;">
<span>Besides, I refer to Suricata's QA steps as mentioned in README but there's no detailed instructions.</span></div>
<div style="color: rgb(0, 0, 0); font-family: Calibri,Helvetica,sans-serif; font-size: 12pt;">
<span><br>
</span></div>
<div style="color: rgb(0, 0, 0); font-family: Calibri,Helvetica,sans-serif; font-size: 12pt;">
<span><span>Overview of Suricata's QA steps<br>
</span>
<div>Trusted devs and core team members are able to submit builds to our (semi) public Buildbot instance. It will run a series of build tests and a regression suite to confirm no existing features break.​</div>
<div>​</div>
<div>The final QA run takes a few hours minimally, and is started by Victor. It currently runs:​</div>
<div>​</div>
<div>extensive build tests on different OS', compilers, optimization levels, configure features​</div>
<div>static code analysis using cppcheck, scan-build​</div>
<div>runtime code analysis using valgrind, DrMemory, AddressSanitizer, LeakSanitizer​</div>
<div>regression tests for past bugs​</div>
<div>output validation of logging​</div>
<div>unix socket testing​</div>
<div>pcap based fuzz testing using ASAN and LSAN​</div>
<div>Next to these tests, based on the type of code change further tests can be run manually:​</div>
<div>​</div>
<div>traffic replay testing (multi-gigabit)​</div>
<div>large pcap collection processing (multi-terabytes)​</div>
<div>AFL based fuzz testing (might take multiple days or even weeks)​</div>
<div>pcap based performance testing​</div>
<div>live performance testing​</div>
<div>various other manual tests based on evaluation of the proposed changes​</div>
<div><br>
</div>
<div>Best Regards,</div>
<div>Allen Ma</div>
<span></span><br>
</span></div>
<div>
<div dir="ltr">
<div>
<div dir="ltr"></div>
</div>
</div>
</div>
</body>
</html>