aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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