Skip to content

Commit

Permalink
Document how to get code coverage. (#339)
Browse files Browse the repository at this point in the history
* Document how to get code coverage.

Change-Id: If7eae6008ad0394490885f88b6edb8436d9f54f3

* Remove (hopefully insignificant) whitespace.

Change-Id: Ie4079dd2998c616ae5b6e5b031e29cea5f11d9f8
  • Loading branch information
timsifive authored Dec 3, 2018
1 parent 42be17a commit c3c76bf
Showing 1 changed file with 26 additions and 0 deletions.
26 changes: 26 additions & 0 deletions HACKING
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit c3c76bf

Please sign in to comment.