summaryrefslogtreecommitdiffstats
path: root/llvm/unittests/ProfileData/CoverageMappingTest.cpp
diff options
context:
space:
mode:
authorVedant Kumar <vsk@apple.com>2017-12-07 00:01:15 +0000
committerVedant Kumar <vsk@apple.com>2017-12-07 00:01:15 +0000
commit337b0db1003578810d0d0cf345293b65e74886b7 (patch)
tree5cea9cbfe4d107e48a914bb8e61745e6e4b93811 /llvm/unittests/ProfileData/CoverageMappingTest.cpp
parent96d22e12a2ef934283286e2ed1e19a0420476be4 (diff)
downloadbcm5719-llvm-337b0db1003578810d0d0cf345293b65e74886b7.tar.gz
bcm5719-llvm-337b0db1003578810d0d0cf345293b65e74886b7.zip
[Coverage] Scan ahead for the most-recent completed count (PR35495)
This extends r319391. It teaches the segment builder to emit the right completed segment when more than one region ends at the same location. Fixes PR35495. llvm-svn: 319990
Diffstat (limited to 'llvm/unittests/ProfileData/CoverageMappingTest.cpp')
-rw-r--r--llvm/unittests/ProfileData/CoverageMappingTest.cpp16
1 files changed, 9 insertions, 7 deletions
diff --git a/llvm/unittests/ProfileData/CoverageMappingTest.cpp b/llvm/unittests/ProfileData/CoverageMappingTest.cpp
index 26a8e511b4f..4d0f852da98 100644
--- a/llvm/unittests/ProfileData/CoverageMappingTest.cpp
+++ b/llvm/unittests/ProfileData/CoverageMappingTest.cpp
@@ -470,8 +470,9 @@ TEST_P(CoverageMappingTest, multiple_completed_segments_at_same_loc) {
ProfileWriter.addRecord({"func1", 0x1234, {0, 1, 2}}, Err);
startFunction("func1", 0x1234);
- // PR35437
+ // PR35495
addCMR(Counter::getCounter(1), "file1", 2, 1, 18, 2);
+ addCMR(Counter::getCounter(0), "file1", 8, 10, 14, 6);
addCMR(Counter::getCounter(0), "file1", 8, 12, 14, 6);
addCMR(Counter::getCounter(1), "file1", 9, 1, 14, 6);
addCMR(Counter::getCounter(2), "file1", 11, 13, 11, 14);
@@ -482,14 +483,15 @@ TEST_P(CoverageMappingTest, multiple_completed_segments_at_same_loc) {
CoverageData Data = LoadedCoverage->getCoverageForFunction(FunctionRecord);
std::vector<CoverageSegment> Segments(Data.begin(), Data.end());
- ASSERT_EQ(6U, Segments.size());
+ ASSERT_EQ(7U, Segments.size());
EXPECT_EQ(CoverageSegment(2, 1, 1, true), Segments[0]);
- EXPECT_EQ(CoverageSegment(8, 12, 0, true), Segments[1]);
- EXPECT_EQ(CoverageSegment(9, 1, 1, true), Segments[2]);
- EXPECT_EQ(CoverageSegment(11, 13, 2, true), Segments[3]);
+ EXPECT_EQ(CoverageSegment(8, 10, 0, true), Segments[1]);
+ EXPECT_EQ(CoverageSegment(8, 12, 0, true), Segments[2]);
+ EXPECT_EQ(CoverageSegment(9, 1, 1, true), Segments[3]);
+ EXPECT_EQ(CoverageSegment(11, 13, 2, true), Segments[4]);
// Use count=1 (from 9:1 -> 14:6), not count=0 (from 8:12 -> 14:6).
- EXPECT_EQ(CoverageSegment(11, 14, 1, false), Segments[4]);
- EXPECT_EQ(CoverageSegment(18, 2, false), Segments[5]);
+ EXPECT_EQ(CoverageSegment(11, 14, 1, false), Segments[5]);
+ EXPECT_EQ(CoverageSegment(18, 2, false), Segments[6]);
}
TEST_P(CoverageMappingTest, dont_emit_redundant_segments) {
OpenPOWER on IntegriCloud