mbox

[V3,0/2] Add function to support ASan test

Message ID 20220210024952.2876-1-junx.dong@intel.com (mailing list archive)
Headers

Message

Jun Dong Feb. 10, 2022, 2:49 a.m. UTC
  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, It contains three steps:
 - 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.

V3:
  framework/*: Add function to support ASan test
  doc/*: Add ASan test user guide

 conf/asan.cfg                       |   6 +
 doc/dts_gsg/usr_guide/asan_test.rst |  59 +++++
 doc/dts_gsg/usr_guide/index.rst     |   1 +
 framework/asan_test.py              | 385 ++++++++++++++++++++++++++++
 framework/dts.py                    |  14 +-
 main.py                             |   6 +-
 6 files changed, 466 insertions(+), 5 deletions(-)
 create mode 100644 conf/asan.cfg
 create mode 100644 doc/dts_gsg/usr_guide/asan_test.rst
 create mode 100644 framework/asan_test.py