Note - to clear up the terminology: path coverage is what is being recorded which uses a hash of the edge coverage.
To enable, the edgeCoverageModule option should be set to the name of the module's whose path coverage will be recorded. The view project webpage will show the number of covered paths.
Implementation notes:
Refactored the patch for drcov and added the option -target_module which enables edge coverage instrumentation and hashing
The edge coverage hash is parsed from the drcov output (only if the option is enabled) and is included in the TestResult and PutTestResultRequest messages
Added edge_coverage table which records hashes of edges and the number of executions
Added column to interesting_testcases that references an entry in the edge_coverage table
Every testcase result causes LMDatabaseManager::incrementEdgeCoverage() to be called
Modified signatures for LMDatabaseManager::addEntryToInterestingTestcasesTable(), TestExecutorDynRioSingle(), and TestExecutorDynRio::copyCoveredModulesToDebugExecutionOutput()
Note - to clear up the terminology: path coverage is what is being recorded which uses a hash of the edge coverage.
To enable, the
edgeCoverageModule
option should be set to the name of the module's whose path coverage will be recorded. The view project webpage will show the number of covered paths.Implementation notes:
drcov
and added the option-target_module
which enables edge coverage instrumentation and hashingdrcov
output (only if the option is enabled) and is included in theTestResult
andPutTestResultRequest
messagesedge_coverage
table which records hashes of edges and the number of executionsinteresting_testcases
that references an entry in theedge_coverage
tableLMDatabaseManager::incrementEdgeCoverage()
to be calledLMDatabaseManager::addEntryToInterestingTestcasesTable()
,TestExecutorDynRioSingle()
, andTestExecutorDynRio::copyCoveredModulesToDebugExecutionOutput()
Limitations:
Relies on #274.