[V2,2/2] doc/*: Add ASan test user guide

Message ID 20220125083836.2354-3-junx.dong@intel.com (mailing list archive)
State Superseded
Headers
Series Add function to support ASan test |

Checks

Context Check Description
ci/Intel-dts-doc-test fail Testing issues
ci/Intel-dts-suite-test success Testing OK

Commit Message

Jun Dong Jan. 25, 2022, 8:38 a.m. UTC
  Signed-off-by: DongJunX <junx.dong@intel.com>
---
 doc/dts_gsg/usr_guide/asan_test.rst | 67 +++++++++++++++++++++++++++++
 1 file changed, 67 insertions(+)
 create mode 100644 doc/dts_gsg/usr_guide/asan_test.rst
  

Patch

diff --git a/doc/dts_gsg/usr_guide/asan_test.rst b/doc/dts_gsg/usr_guide/asan_test.rst
new file mode 100644
index 00000000..8852ac6a
--- /dev/null
+++ b/doc/dts_gsg/usr_guide/asan_test.rst
@@ -0,0 +1,67 @@ 
+About ASan
+===========
+
+AddressSanitizer a.k.a. ASan is a widely-used debugging tool to detect memory access errors.
+It helps to detect issues like use-after-free, various kinds of buffer overruns in C/C++
+programs, and other similar errors, as well as printing out detailed debug information whenever
+an error is detected.
+
+ASan is integrated with gcc and clang and can be enabled via a meson option: -Db_sanitize=address,
+See the documentation for details (especially regarding clang).
+
+About ASan test
+===============
+
+DTS adds one parameter named asan to control ASan test, support through added asan parameter,
+otherwise not support. It contains three steps on the whole:
+
+ - Append ASan build parameters to meson build options. this may open the function of ASan detect
+   memory access errors. if occuring memory access errors, the stack info will recorded in DTS log
+
+ - After all cases tested finish, analyze DTS log and redefine case test result according to whether
+   case log contain memory access error info. modify the result to failed if contain otherwise inherit
+   the original result.
+
+ - Generate ASan report to distinguish it from the original report.
+
+The detail of ASan test way as follow.
+
+Check ASan test config
+----------------------
+
+ASan config file is placed in conf/asan.cfg
+
+Firstly, check the log filter bounds pairs, customer can modify the pairs if need, and use colon split
+bounds, use comma split pairs, there are two pairs key word default as follow:
+
+ - filter_bounds=LeakSanitizer:SUMMARY,AddressSanitizer:SUMMARY
+
+Secondly, check the meson build parameter options pair, there is a list of parameters default as follow:
+
+ - build_param=-Dbuildtype=debug -Db_lundef=false -Db_sanitize=address
+
+Launch DTS
+----------
+
+ ./dts --asan
+
+When launch DTS, there are two parameters need attention:
+ - provide --asan parameter, means support ASan test.
+ - Don't provide -s parameter to skip build DPDK package. ASan test need rebuild DPDK package.
+
+Obtain the ASan test report
+---------------------------
+
+ASan report located at DTS output directory also, and provided three format as follow:
+ - Json format named asan_test_results.json
+ - Excel format named asan_test_results.xls
+ - Statistics information of txt format named asan_statistics.txt
+
+(optional scene) Manual generate ASan report
+--------------------------------------------
+
+In some scene, we need analyze special filter bounds and generate new report after DTS execute finished.
+
+ - Modify ASan config file as above.
+ - Run asan_test module in DTS root path: python3 ./framework/asan_test.py
+ - Obtain ASan test report as above.
\ No newline at end of file