We are currently running code coverage for MySQL Cluster testing and have hit a few bumps along the road when it cam to collecting the "block" coverage for the NDBD.
I wanted to share them here for others that might run into similar frustrations when doing testing code coverage.
Gcov accumulates during each run information on which functions and lines of code are called and a total for the times called.
The problem comes from when gcov dumps this information out. The actual data is dumped on the "exit" of the program.
After much time tracking this issue down, it turns out that the NDBD code had been changed to use _exit() instead of just exit()
What is the difference?
Terminate the process after cleanup.
Terminate process immediately.
So by calling _exit(), gcov never had a …