From ad64687e8bc3e208797ce1d5b16936f51d6cf632 Mon Sep 17 00:00:00 2001 From: Dave Barach Date: Mon, 6 May 2019 10:49:41 -0400 Subject: gcov / test framework: sigterm not sigkill Otherwise, gcov data vanishes without a trace. Add a __gcov_flush() call to the unix signal handler, under #ifdef CLIB_GCOV. Add -DCLIB_GCOV to vpp_gcov_TAG_CFLAGS. Change-Id: I2726e671b26dfbe7fae88f46a8207bb2b5106884 Signed-off-by: Dave Barach --- src/vlib/unix/main.c | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'src/vlib/unix/main.c') diff --git a/src/vlib/unix/main.c b/src/vlib/unix/main.c index ed909b65feb..82de8ec7632 100755 --- a/src/vlib/unix/main.c +++ b/src/vlib/unix/main.c @@ -139,6 +139,17 @@ unix_signal_handler (int signum, siginfo_t * si, ucontext_t * uc) break; } +#ifdef CLIB_GCOV + /* + * Test framework sends SIGTERM, so we need to flush the + * code coverage stats here. + */ + { + void __gcov_flush (void); + __gcov_flush (); + } +#endif + /* Null terminate. */ vec_add1 (syslog_msg, 0); -- cgit 1.2.3-korg