forked from qt-creator/qt-creator
PchManager: Split pch tasks in project and system pch tasks
Like you can see in the task numbers this patch is touching many different areas. So I will only touch the main parts. It is using a clang action instead of an extra process which will be enabling the handling of generated files in PCHs. The flags from the project part are now not anymore transformed in a command line but they are saved in the container semantically aware so that they can later be merged. Most of this patch is simply polishing of other patches. Task-number: QTCREATORBUG-21346 Task-number: QTCREATORBUG-21380 Task-number: QTCREATORBUG-21382 Task-number: QTCREATORBUG-21383 Task-number: QTCREATORBUG-21693 Task-number: QTCREATORBUG-21778 Change-Id: I9b0c02d8149b554254e819448fbc61eeaa5b7494 Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
This commit is contained in:
@@ -68,14 +68,16 @@ protected:
|
||||
NiceMock<MockFunction<void(int, int)>> mockSetProgressCallback;
|
||||
ClangBackEnd::ProgressCounter progressCounter{mockSetProgressCallback.AsStdFunction()};
|
||||
Scheduler scheduler{mockProcessorManager,
|
||||
mockSymbolIndexerTaskQueue,
|
||||
progressCounter,
|
||||
4};
|
||||
mockSymbolIndexerTaskQueue,
|
||||
progressCounter,
|
||||
4,
|
||||
ClangBackEnd::CallDoInMainThreadAfterFinished::Yes};
|
||||
Scheduler deferredScheduler{mockProcessorManager,
|
||||
mockSymbolIndexerTaskQueue,
|
||||
progressCounter,
|
||||
4,
|
||||
std::launch::deferred};
|
||||
mockSymbolIndexerTaskQueue,
|
||||
progressCounter,
|
||||
4,
|
||||
ClangBackEnd::CallDoInMainThreadAfterFinished::Yes,
|
||||
std::launch::deferred};
|
||||
};
|
||||
|
||||
TEST_F(TaskScheduler, AddTasks)
|
||||
@@ -146,6 +148,24 @@ TEST_F(TaskScheduler, FreeSlotsCallsCleanupMethodsAfterTheWorkIsDone)
|
||||
scheduler.slotUsage();
|
||||
}
|
||||
|
||||
TEST_F(TaskScheduler, FreeSlotsDoNotCallsDoInMainThreadAfterFinishedAfterTheWorkIsDoneIfForbidden)
|
||||
{
|
||||
Scheduler scheduler{mockProcessorManager,
|
||||
mockSymbolIndexerTaskQueue,
|
||||
progressCounter,
|
||||
4,
|
||||
ClangBackEnd::CallDoInMainThreadAfterFinished::No};
|
||||
scheduler.addTasks({nocall, nocall});
|
||||
scheduler.syncTasks();
|
||||
InSequence s;
|
||||
|
||||
EXPECT_CALL(mockSymbolsCollector, doInMainThreadAfterFinished()).Times(0);
|
||||
|
||||
scheduler.slotUsage();
|
||||
scheduler.syncTasks();
|
||||
QCoreApplication::processEvents();
|
||||
}
|
||||
|
||||
TEST_F(TaskScheduler, FreeSlotsCallsProgressMethodsAfterTheWorkIsDone)
|
||||
{
|
||||
scheduler.addTasks({nocall, nocall});
|
||||
|
||||
Reference in New Issue
Block a user