Gathering Coverage Data During Multiprocessing

Question:

In our software we use multiprocessing. The software entry point is always the same main-function, which calls different tasks in dependence on the given arguments.

If we want to gather coverage information about the main-function we have multiple tasks writing to the same TESTINSS.DAT-file simultaneously. This does not only lead to disordered coverage information but it also might happen, that the different processes try to access the TESTINSS.DAT-file at the same moment.

How can we assure that the multiple access to the TESTINSS.DAT-file does not lead to errors in the coverage information?

Answer:
On Windows, set the define flag VCAST_APPEND_WIN32_PID when you compile your driver. On Posix systems (unix, linux, solaris), set the define flag VCAST_APPEND_POSIX_PID when you compile your driver. The process ID will be appended to the result filename in the form TESTINSS-<pid>.DAT.


Article ID: 1469
Last updated: 2019-10-24
Revision: 3
VectorCAST -> Troubleshooting -> Gathering Coverage Data During Multiprocessing
https://kb.vector.com/entry/1469/