aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorMarco Bubke <marco.bubke@qt.io>2019-07-25 18:51:18 +0200
committerMarco Bubke <marco.bubke@qt.io>2019-08-27 11:50:26 +0000
commitf1be7793c43074d67d47429dd6ec2e4681667820 (patch)
tree1798478fa3de3001a0d4a6c9a1b95a93883dd847 /tests
parentd086bbdc9a271ab265326e268d0da2b1428cc2e8 (diff)
ClangPchManager: Expose more internals from BuildDependenciesProvider
We will need it later. Change-Id: Ic2c85780bf965be8e4c8603fed365d806576fdc6 Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Diffstat (limited to 'tests')
-rw-r--r--tests/unit/unittest/builddependenciesprovider-test.cpp69
-rw-r--r--tests/unit/unittest/mockbuilddependenciesprovider.h11
2 files changed, 69 insertions, 11 deletions
diff --git a/tests/unit/unittest/builddependenciesprovider-test.cpp b/tests/unit/unittest/builddependenciesprovider-test.cpp
index 9983e42d8d..69bc966c08 100644
--- a/tests/unit/unittest/builddependenciesprovider-test.cpp
+++ b/tests/unit/unittest/builddependenciesprovider-test.cpp
@@ -176,13 +176,30 @@ TEST_F(BuildDependenciesProvider, CreateCallsFetchDependSourcesFromGeneratorIfTi
provider.create(projectPart1);
}
+TEST_F(BuildDependenciesProvider,
+ CreateCallsFetchDependSourcesFromGeneratorIfProvidedTimeStampsAreNotUpToDate)
+{
+ InSequence s;
+
+ EXPECT_CALL(mockModifiedTimeChecker, isUpToDate(firstSources)).WillRepeatedly(Return(false));
+ EXPECT_CALL(mockBuildDependenciesGenerator, create(projectPart1)).WillOnce(Return(buildDependency));
+ EXPECT_CALL(mockSqliteTransactionBackend, immediateBegin());
+ EXPECT_CALL(mockBuildDependenciesStorage, insertOrUpdateSources(Eq(secondSources), {1}));
+ EXPECT_CALL(mockBuildDependenciesStorage, insertOrUpdateFileStatuses(Eq(fileStatuses)));
+ EXPECT_CALL(mockBuildDependenciesStorage,
+ insertOrUpdateSourceDependencies(Eq(sourceDependencies)));
+ EXPECT_CALL(mockBuildDependenciesStorage, insertOrUpdateUsedMacros(Eq(secondUsedMacros)));
+ EXPECT_CALL(mockSqliteTransactionBackend, commit());
+
+ provider.create(projectPart1, std::move(firstSources));
+}
+
TEST_F(BuildDependenciesProvider, FetchDependSourcesFromGenerator)
{
- ON_CALL(mockBuildDependenciesStorage, fetchDependSources({2}, {1})).WillByDefault(Return(firstSources));
ON_CALL(mockModifiedTimeChecker, isUpToDate(_)).WillByDefault(Return(false));
ON_CALL(mockBuildDependenciesGenerator, create(projectPart1)).WillByDefault(Return(buildDependency));
- auto buildDependency = provider.create(projectPart1);
+ auto buildDependency = provider.create(projectPart1, std::move(firstSources));
ASSERT_THAT(buildDependency.sources, ElementsAre(HasSourceId(1), HasSourceId(3), HasSourceId(8)));
}
@@ -191,10 +208,6 @@ TEST_F(BuildDependenciesProvider, CreateCallsFetchUsedMacrosFromStorageIfTimeSta
{
InSequence s;
- EXPECT_CALL(mockSqliteTransactionBackend, deferredBegin());
- EXPECT_CALL(mockBuildDependenciesStorage, fetchDependSources({2}, {1}))
- .WillRepeatedly(Return(firstSources));
- EXPECT_CALL(mockSqliteTransactionBackend, commit());
EXPECT_CALL(mockModifiedTimeChecker, isUpToDate(firstSources)).WillRepeatedly(Return(true));
EXPECT_CALL(mockSqliteTransactionBackend, deferredBegin());
EXPECT_CALL(mockBuildDependenciesStorage, fetchUsedMacros({1}));
@@ -202,26 +215,60 @@ TEST_F(BuildDependenciesProvider, CreateCallsFetchUsedMacrosFromStorageIfTimeSta
EXPECT_CALL(mockBuildDependenciesStorage, fetchUsedMacros({10}));
EXPECT_CALL(mockSqliteTransactionBackend, commit());
- provider.create(projectPart1);
+ provider.create(projectPart1, std::move(firstSources));
}
TEST_F(BuildDependenciesProvider, FetchUsedMacrosFromStorageIfDependSourcesAreUpToDate)
{
- ON_CALL(mockBuildDependenciesStorage, fetchDependSources({2}, {1})).WillByDefault(Return(firstSources));
ON_CALL(mockModifiedTimeChecker, isUpToDate(firstSources)).WillByDefault(Return(true));
ON_CALL(mockBuildDependenciesStorage, fetchUsedMacros({1})).WillByDefault(Return(firstUsedMacros));
ON_CALL(mockBuildDependenciesStorage, fetchUsedMacros({2})).WillByDefault(Return(secondUsedMacros));
ON_CALL(mockBuildDependenciesStorage, fetchUsedMacros({10})).WillByDefault(Return(thirdUsedMacros));
- auto buildDependency = provider.create(projectPart1);
+ auto buildDependency = provider.create(projectPart1, std::move(firstSources));
- ASSERT_THAT(buildDependency.usedMacros, ElementsAre(UsedMacro{"YI", 1}, UsedMacro{"ER", 2}, UsedMacro{"LIANG", 2}, UsedMacro{"SAN", 10}));
+ ASSERT_THAT(buildDependency.usedMacros,
+ ElementsAre(UsedMacro{"YI", 1},
+ UsedMacro{"ER", 2},
+ UsedMacro{"LIANG", 2},
+ UsedMacro{"SAN", 10}));
}
TEST_F(BuildDependenciesProvider, CallEnsureAliveMessageIsSentCallback)
{
EXPECT_CALL(mockEnsureAliveMessageIsSentCallback, Call());
- provider.create(projectPart1);
+ provider.create(projectPart1, std::move(firstSources));
}
+
+TEST_F(BuildDependenciesProvider, CreateSourceEntriesFromStorage)
+{
+ ON_CALL(mockBuildDependenciesStorage, fetchDependSources({2}, {2})).WillByDefault(Return(firstSources));
+ ON_CALL(mockBuildDependenciesStorage, fetchDependSources({3}, {2}))
+ .WillByDefault(Return(secondSources));
+ ON_CALL(mockBuildDependenciesStorage, fetchDependSources({4}, {2})).WillByDefault(Return(thirdSources));
+ ON_CALL(mockModifiedTimeChecker, isUpToDate(_)).WillByDefault(Return(true));
+
+ auto sources = provider.createSourceEntriesFromStorage(projectPart2.sourcePathIds,
+ projectPart2.projectPartId);
+
+ ASSERT_THAT(sources,
+ ElementsAre(HasSourceId(1),
+ HasSourceId(2),
+ HasSourceId(3),
+ HasSourceId(4),
+ HasSourceId(8),
+ HasSourceId(10)));
+}
+
+TEST_F(BuildDependenciesProvider, CreateSourceEntriesFromStorageCalls)
+{
+ EXPECT_CALL(mockSqliteTransactionBackend, deferredBegin());
+ EXPECT_CALL(mockBuildDependenciesStorage, fetchDependSources({2}, {1}))
+ .WillRepeatedly(Return(firstSources));
+ EXPECT_CALL(mockSqliteTransactionBackend, commit());
+
+ auto sources = provider.createSourceEntriesFromStorage(projectPart1.sourcePathIds,
+ projectPart1.projectPartId);
}
+} // namespace
diff --git a/tests/unit/unittest/mockbuilddependenciesprovider.h b/tests/unit/unittest/mockbuilddependenciesprovider.h
index a4a57db33b..65dd7c5313 100644
--- a/tests/unit/unittest/mockbuilddependenciesprovider.h
+++ b/tests/unit/unittest/mockbuilddependenciesprovider.h
@@ -35,4 +35,15 @@ public:
MOCK_METHOD1(
create,
ClangBackEnd::BuildDependency(const ClangBackEnd::ProjectPartContainer &projectPart));
+ MOCK_METHOD2(create,
+ ClangBackEnd::BuildDependency(const ClangBackEnd::ProjectPartContainer &projectPart,
+ const ClangBackEnd::SourceEntries &sourceEntries));
+ MOCK_CONST_METHOD2(createSourceEntriesFromStorage,
+ ClangBackEnd::SourceEntries(const ClangBackEnd::FilePathIds &sourcePathIds,
+ ClangBackEnd::ProjectPartId projectPartId));
+ ClangBackEnd::BuildDependency create(const ClangBackEnd::ProjectPartContainer &projectPart,
+ ClangBackEnd::SourceEntries &&sourceEntries) override
+ {
+ return create(projectPart, sourceEntries);
+ }
};