forked from qt-creator/qt-creator
Clang: Improve updating of PCHs
Instead of deleting the path and time stamp of the project PCH we always set the time stamp but delete only the path if PCH creation failed. A failed PCH will be no rebuilt if the files changed. We have to add that feature later. Change-Id: I1094271f9ead5d906e94b68ac91c0becd2371ca9 Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
This commit is contained in:
@@ -44,6 +44,8 @@ protected:
|
||||
Storage storage{database};
|
||||
MockSqliteWriteStatement &insertProjectPrecompiledHeaderStatement = storage.insertProjectPrecompiledHeaderStatement;
|
||||
MockSqliteWriteStatement &deleteProjectPrecompiledHeaderStatement = storage.deleteProjectPrecompiledHeaderStatement;
|
||||
MockSqliteWriteStatement &deleteProjectPrecompiledHeaderPathAndSetBuildTimeStatement
|
||||
= storage.deleteProjectPrecompiledHeaderPathAndSetBuildTimeStatement;
|
||||
MockSqliteWriteStatement &insertSystemPrecompiledHeaderStatement = storage.insertSystemPrecompiledHeaderStatement;
|
||||
MockSqliteWriteStatement &deleteSystemPrecompiledHeaderStatement = storage.deleteSystemPrecompiledHeaderStatement;
|
||||
MockSqliteReadStatement &fetchSystemPrecompiledHeaderPathStatement = storage.fetchSystemPrecompiledHeaderPathStatement;
|
||||
@@ -95,10 +97,11 @@ TEST_F(PrecompiledHeaderStorage, DeleteProjectPrecompiledHeader)
|
||||
InSequence s;
|
||||
|
||||
EXPECT_CALL(database, immediateBegin());
|
||||
EXPECT_CALL(deleteProjectPrecompiledHeaderStatement, write(TypedEq<int>(1)));
|
||||
EXPECT_CALL(deleteProjectPrecompiledHeaderPathAndSetBuildTimeStatement,
|
||||
write(TypedEq<int>(1), TypedEq<long long>(13)));
|
||||
EXPECT_CALL(database, commit());
|
||||
|
||||
storage.deleteProjectPrecompiledHeader(1);
|
||||
storage.deleteProjectPrecompiledHeader(1, 13);
|
||||
}
|
||||
|
||||
TEST_F(PrecompiledHeaderStorage, DeleteProjectPrecompiledHeaderStatementIsBusy)
|
||||
@@ -107,10 +110,11 @@ TEST_F(PrecompiledHeaderStorage, DeleteProjectPrecompiledHeaderStatementIsBusy)
|
||||
|
||||
EXPECT_CALL(database, immediateBegin()).WillOnce(Throw(Sqlite::StatementIsBusy("busy")));
|
||||
EXPECT_CALL(database, immediateBegin());
|
||||
EXPECT_CALL(deleteProjectPrecompiledHeaderStatement, write(TypedEq<int>(1)));
|
||||
EXPECT_CALL(deleteProjectPrecompiledHeaderPathAndSetBuildTimeStatement,
|
||||
write(TypedEq<int>(1), TypedEq<long long>(13)));
|
||||
EXPECT_CALL(database, commit());
|
||||
|
||||
storage.deleteProjectPrecompiledHeader(1);
|
||||
storage.deleteProjectPrecompiledHeader(1, 13);
|
||||
}
|
||||
|
||||
TEST_F(PrecompiledHeaderStorage, DeleteProjectPrecompiledHeaders)
|
||||
|
||||
Reference in New Issue
Block a user