Chrysalis - CLO3D Extensions Test Coverage


integrations/clo3d/
File: integrations/clo3d/src/TaskExecutor.cpp
Date: 2026-08-27 18:36:08
Lines:
21/21
100.0%
Functions:
5/5
100.0%
Branches:
12/20
60.0%
Decisions:
2/2
100.0%
Calls:
92/105
87.6%

Line Branch Decision Call Exec Source
1 #include "TaskExecutor.h"
2
3 #include <shared_mutex>
4
5 #include <QFuture>
6 #include <QFutureWatcher>
7
8 using namespace CLO3D;
9
10 17 void TaskExecutor::wait(const QString& taskName) {
11 17 BaseTask* task = nullptr;
12 {
13
1/2
✓ Branch 4 taken 17 times.
✗ Branch 5 not taken.
4/4
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
✓ Call 3 invoked.
17 std::shared_lock lock(mutex_);
14
2/4
✓ Branch 6 taken 17 times.
✗ Branch 7 not taken.
✓ Branch 10 taken 17 times.
✗ Branch 11 not taken.
10/12
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
✓ Call 3 invoked.
✓ Call 4 invoked.
✓ Call 5 invoked.
✓ Call 8 invoked.
✓ Call 9 invoked.
✓ Call 12 invoked.
✓ Call 13 invoked.
✗ Call 14 not invoked.
✗ Call 15 not invoked.
17 const auto it = tasks_.find(taskName.toStdString());
15
2/2
✓ Branch 8 taken 1 times.
✓ Branch 9 taken 16 times.
2/2
✓ Decision 'true' taken 1 times.
✓ Decision 'false' taken 16 times.
8/8
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
✓ Call 3 invoked.
✓ Call 4 invoked.
✓ Call 5 invoked.
✓ Call 6 invoked.
✓ Call 7 invoked.
17 if (it == tasks_.end()) return;
16
5/5
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
✓ Call 3 invoked.
✓ Call 4 invoked.
16 task = it->second.get();
17
2/2
✓ Branch 1 taken 16 times.
✓ Branch 2 taken 1 times.
1/2
✓ Call 0 invoked.
✗ Call 3 not invoked.
17 }
18
7/7
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
✓ Call 3 invoked.
✓ Call 4 invoked.
✓ Call 5 invoked.
✓ Call 6 invoked.
16 task->wait();
19 }
20
21 13 void TaskExecutor::submit(std::unique_ptr<BaseTask> task) {
22
1/1
✓ Call 0 invoked.
13 BaseTask* t = task.get();
23
1/2
✓ Branch 14 taken 13 times.
✗ Branch 15 not taken.
22/30
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
✓ Call 3 invoked.
✓ Call 4 invoked.
✓ Call 5 invoked.
✓ Call 6 invoked.
✓ Call 7 invoked.
✓ Call 8 invoked.
✓ Call 9 invoked.
✓ Call 10 invoked.
✓ Call 11 invoked.
✓ Call 12 invoked.
✓ Call 13 invoked.
✓ Call 16 invoked.
✓ Call 17 invoked.
✓ Call 18 invoked.
✓ Call 19 invoked.
✓ Call 20 invoked.
✓ Call 21 invoked.
✓ Call 22 invoked.
✓ Call 23 invoked.
✗ Call 24 not invoked.
✗ Call 25 not invoked.
✗ Call 26 not invoked.
✗ Call 27 not invoked.
✗ Call 28 not invoked.
✗ Call 29 not invoked.
✗ Call 30 not invoked.
✗ Call 31 not invoked.
39 submit(std::move(task), [] -> void {}, [](const BaseTaskException&) -> void {});
24
7/7
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
✓ Call 3 invoked.
✓ Call 4 invoked.
✓ Call 5 invoked.
✓ Call 6 invoked.
13 t->wait();
25 11 }
26
27 22 void TaskExecutor::submit(std::unique_ptr<BaseTask> task, const std::function<void()>& onSuccess, const std::function<void(const BaseTaskException&)>& onException) {
28
1/1
✓ Call 0 invoked.
22 BaseTask* t = task.get();
29 {
30
1/2
✓ Branch 4 taken 22 times.
✗ Branch 5 not taken.
4/4
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
✓ Call 3 invoked.
22 std::unique_lock lock(mutex_);
31
2/4
✓ Branch 6 taken 22 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 22 times.
✗ Branch 10 not taken.
7/7
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
✓ Call 3 invoked.
✓ Call 4 invoked.
✓ Call 5 invoked.
✓ Call 8 invoked.
22 const auto name = task->name().toStdString();
32
1/2
✓ Branch 6 taken 22 times.
✗ Branch 7 not taken.
6/6
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
✓ Call 3 invoked.
✓ Call 4 invoked.
✓ Call 5 invoked.
22 tasks_.emplace(name, std::move(task));
33
2/4
✓ Call 0 invoked.
✓ Call 1 invoked.
✗ Call 2 not invoked.
✗ Call 3 not invoked.
22 }
34
7/7
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
✓ Call 3 invoked.
✓ Call 4 invoked.
✓ Call 5 invoked.
✓ Call 6 invoked.
22 t->run(onSuccess, onException);
35 22 }
36