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 src/openocd -s ../tcl -f /path/to/openocd.cfg
@endcode @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 Please consider performing these additonal checks where appropriate
(especially Clang Static Analyzer for big portions of new code) and (especially Clang Static Analyzer for big portions of new code) and
mention the results (e.g. "Valgrind-clean, no new Clang analyzer mention the results (e.g. "Valgrind-clean, no new Clang analyzer