From c3c76bfafa6612dc56b3914c9f93eb2a790ef87b Mon Sep 17 00:00:00 2001 From: Tim Newsome Date: Mon, 3 Dec 2018 12:51:32 -0800 Subject: [PATCH] Document how to get code coverage. (#339) * Document how to get code coverage. Change-Id: If7eae6008ad0394490885f88b6edb8436d9f54f3 * Remove (hopefully insignificant) whitespace. Change-Id: Ie4079dd2998c616ae5b6e5b031e29cea5f11d9f8 --- HACKING | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/HACKING b/HACKING index b7ef0705b0..eebd8ed2a1 100644 --- a/HACKING +++ b/HACKING @@ -77,6 +77,32 @@ patch: src/openocd -s ../tcl -f /path/to/openocd.cfg @endcode +- Runtime coverage testing + + Apply the following patch to prevent OpenOCD from killing itself: + @code +--- a/src/openocd.c ++++ b/src/openocd.c +@@ -372,8 +372,6 @@ int openocd_main(int argc, char *argv[]) + + if (ERROR_FAIL == ret) + return EXIT_FAILURE; +- else if (ERROR_OK != ret) +- exit_on_signal(ret); + + return ret; + } + @endcode + + Configure your OpenOCD binary with coverage support as follows: + @code + LDFLAGS="-fprofile-arcs -ftest-coverage" + CFLAGS="-fprofile-arcs -ftest-coverage" ./configure + @endcode + + Now every time OpenOCD is run, coverage info in your build directory is + updated. Running `gcov src/path/file.c` will generate a report. + Please consider performing these additonal checks where appropriate (especially Clang Static Analyzer for big portions of new code) and mention the results (e.g. "Valgrind-clean, no new Clang analyzer