Document how to get code coverage. (#339)

* Document how to get code coverage.

Change-Id: If7eae6008ad0394490885f88b6edb8436d9f54f3

* Remove (hopefully insignificant) whitespace.

Change-Id: Ie4079dd2998c616ae5b6e5b031e29cea5f11d9f8
This commit is contained in:
Tim Newsome 2018-12-03 12:51:32 -08:00 committed by GitHub
parent 42be17aed6
commit c3c76bfafa
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 26 additions and 0 deletions

26
HACKING
View File

@ -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