aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Newsome <tim@sifive.com>2018-12-03 12:51:32 -0800
committerGitHub <noreply@github.com>2018-12-03 12:51:32 -0800
commitc3c76bfafa6612dc56b3914c9f93eb2a790ef87b (patch)
tree70806e09965ea065d992be7232780afa1280a6be
parent42be17aed602405a8a36aa06671ea7566ec3f2e4 (diff)
downloadriscv-openocd-2018.12.0.zip
riscv-openocd-2018.12.0.tar.gz
riscv-openocd-2018.12.0.tar.bz2
Document how to get code coverage. (#339)v2018.12.0
* Document how to get code coverage. Change-Id: If7eae6008ad0394490885f88b6edb8436d9f54f3 * Remove (hopefully insignificant) whitespace. Change-Id: Ie4079dd2998c616ae5b6e5b031e29cea5f11d9f8
-rw-r--r--HACKING26
1 files changed, 26 insertions, 0 deletions
diff --git a/HACKING b/HACKING
index b7ef070..eebd8ed 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