diff options
author | Marco Bubke <marco.bubke@qt.io> | 2019-07-25 18:51:18 +0200 |
---|---|---|
committer | Marco Bubke <marco.bubke@qt.io> | 2019-08-27 11:50:26 +0000 |
commit | f1be7793c43074d67d47429dd6ec2e4681667820 (patch) | |
tree | 1798478fa3de3001a0d4a6c9a1b95a93883dd847 /tests/unit | |
parent | d086bbdc9a271ab265326e268d0da2b1428cc2e8 (diff) | |
download | qt-creator-f1be7793c43074d67d47429dd6ec2e4681667820.tar.gz |
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/unit')
-rw-r--r-- | tests/unit/unittest/builddependenciesprovider-test.cpp | 69 | ||||
-rw-r--r-- | tests/unit/unittest/mockbuilddependenciesprovider.h | 11 |
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); + } }; |