|
@@ -859,17 +859,34 @@ TEST_P(CoverageMappingTest, load_coverage_for_expanded_file) {
|
|
|
TEST_P(CoverageMappingTest, skip_duplicate_function_record) {
|
|
|
ProfileWriter.addRecord({"func", 0x1234, {1}}, Err);
|
|
|
|
|
|
+ // This record should be loaded.
|
|
|
startFunction("func", 0x1234);
|
|
|
addCMR(Counter::getCounter(0), "file1", 1, 1, 9, 9);
|
|
|
|
|
|
+ // This record should be loaded.
|
|
|
startFunction("func", 0x1234);
|
|
|
addCMR(Counter::getCounter(0), "file1", 1, 1, 9, 9);
|
|
|
+ addCMR(Counter::getCounter(0), "file2", 1, 1, 9, 9);
|
|
|
+
|
|
|
+ // This record should be skipped.
|
|
|
+ startFunction("func", 0x1234);
|
|
|
+ addCMR(Counter::getCounter(0), "file1", 1, 1, 9, 9);
|
|
|
+
|
|
|
+ // This record should be loaded.
|
|
|
+ startFunction("func", 0x1234);
|
|
|
+ addCMR(Counter::getCounter(0), "file2", 1, 1, 9, 9);
|
|
|
+ addCMR(Counter::getCounter(0), "file1", 1, 1, 9, 9);
|
|
|
+
|
|
|
+ // This record should be skipped.
|
|
|
+ startFunction("func", 0x1234);
|
|
|
+ addCMR(Counter::getCounter(0), "file1", 1, 1, 9, 9);
|
|
|
+ addCMR(Counter::getCounter(0), "file2", 1, 1, 9, 9);
|
|
|
|
|
|
EXPECT_THAT_ERROR(loadCoverageMapping(), Succeeded());
|
|
|
|
|
|
auto Funcs = LoadedCoverage->getCoveredFunctions();
|
|
|
unsigned NumFuncs = std::distance(Funcs.begin(), Funcs.end());
|
|
|
- ASSERT_EQ(1U, NumFuncs);
|
|
|
+ ASSERT_EQ(3U, NumFuncs);
|
|
|
}
|
|
|
|
|
|
// FIXME: Use ::testing::Combine() when llvm updates its copy of googletest.
|