forked from qt-creator/qt-creator
Clang: Improve modified timer checker
Make the algorithm a little bit more clear. Change-Id: I71b04cdd947272edf9fade8f93b7300a945a2fc8 Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
This commit is contained in:
@@ -83,12 +83,12 @@ public:
|
||||
private:
|
||||
bool compareEntries(const SourceEntries &sourceEntries) const
|
||||
{
|
||||
return set_intersection_compare(
|
||||
return !set_intersection_compare(
|
||||
m_currentSourceTimeStamps.begin(),
|
||||
m_currentSourceTimeStamps.end(),
|
||||
sourceEntries.begin(),
|
||||
sourceEntries.end(),
|
||||
[](auto first, auto second) { return second.timeStamp > first.timeStamp; },
|
||||
[](auto first, auto second) { return first.timeStamp > second.timeStamp; },
|
||||
[](auto first, auto second) { return first.sourceId < second.sourceId; });
|
||||
}
|
||||
|
||||
|
@@ -89,13 +89,13 @@ bool set_intersection_compare(
|
||||
++first1;
|
||||
} else {
|
||||
if (!comp(*first2, *first1)) {
|
||||
if (call(*first2, *first1++))
|
||||
return false;
|
||||
if (call(*first1++, *first2))
|
||||
return true;
|
||||
}
|
||||
++first2;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
} // namespace ClangBackEnd
|
||||
|
@@ -50,13 +50,17 @@ protected:
|
||||
|
||||
NiceMock<MockFileSystem> mockFileSystem;
|
||||
ClangBackEnd::ModifiedTimeChecker<> checker{mockFileSystem};
|
||||
SourceEntries upToDateEntries = {{1, SourceType::UserInclude, 100},
|
||||
SourceEntries upToDateEntries = {{1, SourceType::UserInclude, 51},
|
||||
{2, SourceType::SystemInclude, 30},
|
||||
{3, SourceType::UserInclude, 100},
|
||||
{4, SourceType::SystemInclude, 30}};
|
||||
{3, SourceType::UserInclude, 50},
|
||||
{4, SourceType::SystemInclude, 31}};
|
||||
SourceEntries equalEntries = {{1, SourceType::UserInclude, 50},
|
||||
{2, SourceType::SystemInclude, 30},
|
||||
{3, SourceType::UserInclude, 50},
|
||||
{4, SourceType::SystemInclude, 30}};
|
||||
SourceEntries notUpToDateEntries = {{1, SourceType::UserInclude, 50},
|
||||
{2, SourceType::SystemInclude, 20},
|
||||
{3, SourceType::UserInclude, 100},
|
||||
{2, SourceType::SystemInclude, 29},
|
||||
{3, SourceType::UserInclude, 50},
|
||||
{4, SourceType::SystemInclude, 30}};
|
||||
};
|
||||
|
||||
@@ -67,6 +71,13 @@ TEST_F(ModifiedTimeChecker, IsUpToDate)
|
||||
ASSERT_TRUE(isUpToDate);
|
||||
}
|
||||
|
||||
TEST_F(ModifiedTimeChecker, EqualEntriesAreUpToDate)
|
||||
{
|
||||
auto isUpToDate = checker.isUpToDate(equalEntries);
|
||||
|
||||
ASSERT_TRUE(isUpToDate);
|
||||
}
|
||||
|
||||
TEST_F(ModifiedTimeChecker, IsUpToDateSecondRun)
|
||||
{
|
||||
checker.isUpToDate(upToDateEntries);
|
||||
|
Reference in New Issue
Block a user