])
dnl Build the code coverage flags
- CODE_COVERAGE_CPPFLAGS="-DNDEBUG"
+ CODE_COVERAGE_CPPFLAGS="-DENABLE_COVERAGE_GCOV -DNDEBUG"
CODE_COVERAGE_CFLAGS="-O0 -g -fprofile-arcs -ftest-coverage"
CODE_COVERAGE_CXXFLAGS="-O0 -g -fprofile-arcs -ftest-coverage"
CODE_COVERAGE_LDFLAGS="-lgcov"
return true;
}
+#ifdef ENABLE_COVERAGE_GCOV
+extern void __gcov_flush();
+#endif
+
int
main(int argc, char *argv[])
{
/* Child was killed by a signal, mimic that. */
exit_code &= 0xff;
signal(exit_code, SIG_DFL);
+#ifdef ENABLE_COVERAGE_GCOV
+ __gcov_flush();
+#endif
raise(exit_code);
/* Unblock the signal. */
sigset_t mask;
sigemptyset(&mask);
sigaddset(&mask, exit_code);
+#ifdef ENABLE_COVERAGE_GCOV
+ __gcov_flush();
+#endif
sigprocmask(SIG_UNBLOCK, &mask, NULL);
/* Paranoia - what if this signal is not fatal?