@@ -28,8 +28,20 @@ class TestTask : public QgsTask
28
28
29
29
public:
30
30
31
- TestTask ( const QString &desc = QString() ) : QgsTask( desc ) {}
32
- TestTask ( const QString &desc, const QgsTask::Flags &flags ) : QgsTask( desc, flags ) {}
31
+ TestTask ( const QString &desc = QString() ) : QgsTask( desc )
32
+ {
33
+ qDebug () << " created task " << desc;
34
+ }
35
+
36
+ TestTask ( const QString &desc, const QgsTask::Flags &flags ) : QgsTask( desc, flags )
37
+ {
38
+ qDebug () << " created task " << desc;
39
+ }
40
+
41
+ ~TestTask () override
42
+ {
43
+ qDebug () << " deleting task " << description ();
44
+ }
33
45
34
46
void emitProgressChanged ( double progress ) { setProgress ( progress ); }
35
47
void emitTaskStopped () { }
@@ -53,7 +65,15 @@ class ProgressReportingTask : public QgsTask
53
65
54
66
public:
55
67
56
- ProgressReportingTask ( const QString &desc = QString() ) : QgsTask( desc ) {}
68
+ ProgressReportingTask ( const QString &desc = QString() ) : QgsTask( desc )
69
+ {
70
+ qDebug () << " created task " << desc;
71
+ }
72
+
73
+ ~ProgressReportingTask () override
74
+ {
75
+ qDebug () << " deleting task " << description ();
76
+ }
57
77
58
78
void emitProgressChanged ( double progress ) { setProgress ( progress ); }
59
79
@@ -80,6 +100,8 @@ class TestTerminationTask : public TestTask
80
100
81
101
public:
82
102
103
+ TestTerminationTask ( const QString &desc = QString() ) : TestTask( desc ) {}
104
+
83
105
~TestTerminationTask () override
84
106
{
85
107
// make sure task has been terminated by manager prior to deletion
@@ -102,11 +124,17 @@ class CancelableTask : public QgsTask
102
124
103
125
public:
104
126
127
+ CancelableTask ( const QString &desc = QString() ) : QgsTask( desc )
128
+ {
129
+ qDebug () << " created task " << desc;
130
+ }
131
+
105
132
~CancelableTask () override
106
133
{
134
+ qDebug () << " deleting task " << description ();
135
+
107
136
int i = 1 ;
108
137
i++;
109
-
110
138
}
111
139
112
140
protected:
@@ -123,6 +151,18 @@ class SuccessTask : public QgsTask
123
151
{
124
152
Q_OBJECT
125
153
154
+ public:
155
+
156
+ SuccessTask ( const QString &desc = QString() ) : QgsTask( desc )
157
+ {
158
+ qDebug () << " created task " << desc;
159
+ }
160
+
161
+ ~SuccessTask () override
162
+ {
163
+ qDebug () << " deleting task " << description ();
164
+ }
165
+
126
166
protected:
127
167
128
168
bool run () override
@@ -135,6 +175,18 @@ class FailTask : public QgsTask
135
175
{
136
176
Q_OBJECT
137
177
178
+ public:
179
+
180
+ FailTask ( const QString &desc = QString() ) : QgsTask( desc )
181
+ {
182
+ qDebug () << " created task " << desc;
183
+ }
184
+
185
+ ~FailTask () override
186
+ {
187
+ qDebug () << " deleting task " << description ();
188
+ }
189
+
138
190
protected:
139
191
140
192
bool run () override
@@ -150,10 +202,18 @@ class FinishTask : public QgsTask
150
202
151
203
public:
152
204
153
- FinishTask ( bool *result )
154
- : desiredResult( false )
205
+ FinishTask ( bool *result, const QString &desc )
206
+ : QgsTask( desc )
207
+ , desiredResult( false )
155
208
, resultObtained( result )
156
- {}
209
+ {
210
+ qDebug () << " created task " << desc;
211
+ }
212
+
213
+ ~FinishTask () override
214
+ {
215
+ qDebug () << " deleting task " << description ();
216
+ }
157
217
158
218
bool desiredResult;
159
219
bool *resultObtained = nullptr ;
@@ -235,9 +295,9 @@ void TestQgsTaskManager::cleanup()
235
295
236
296
void TestQgsTaskManager::task ()
237
297
{
238
- std::unique_ptr< TestTask > task ( new TestTask ( QStringLiteral ( " desc " ) ) );
298
+ std::unique_ptr< TestTask > task ( new TestTask ( QStringLiteral ( " test_task_desc " ) ) );
239
299
QCOMPARE ( task->status (), QgsTask::Queued );
240
- QCOMPARE ( task->description (), QString ( " desc " ) );
300
+ QCOMPARE ( task->description (), QStringLiteral ( " test_task_desc " ) );
241
301
QVERIFY ( !task->isActive () );
242
302
QVERIFY ( task->canCancel () );
243
303
QVERIFY ( task->flags () & QgsTask::CanCancel );
@@ -253,7 +313,7 @@ void TestQgsTaskManager::task()
253
313
QCOMPARE ( static_cast < QgsTask::TaskStatus >( statusSpy.at ( 1 ).at ( 0 ).toInt () ), QgsTask::Complete );
254
314
255
315
// test that calling stopped sets correct state
256
- std::unique_ptr< FailTask > failTask ( new FailTask () );
316
+ std::unique_ptr< FailTask > failTask ( new FailTask ( QStringLiteral ( " task_fail " ) ) );
257
317
QSignalSpy stoppedSpy ( failTask.get (), &QgsTask::taskTerminated );
258
318
QSignalSpy statusSpy2 ( failTask.get (), &QgsTask::statusChanged );
259
319
failTask->start ();
@@ -264,7 +324,7 @@ void TestQgsTaskManager::task()
264
324
QCOMPARE ( static_cast < QgsTask::TaskStatus >( statusSpy2.last ().at ( 0 ).toInt () ), QgsTask::Terminated );
265
325
266
326
// test that calling completed sets correct state
267
- task.reset ( new TestTask () );
327
+ task.reset ( new TestTask ( QStringLiteral ( " test_task_3 " ) ) );
268
328
QSignalSpy completeSpy ( task.get (), &QgsTask::taskCompleted );
269
329
QSignalSpy statusSpy3 ( task.get (), &QgsTask::statusChanged );
270
330
task->start ();
@@ -275,26 +335,26 @@ void TestQgsTaskManager::task()
275
335
QCOMPARE ( static_cast < QgsTask::TaskStatus >( statusSpy3.last ().at ( 0 ).toInt () ), QgsTask::Complete );
276
336
277
337
// test that canceling tasks which have not begin immediately ends them
278
- task.reset ( new TestTask () );
338
+ task.reset ( new TestTask ( QStringLiteral ( " test_task_4 " ) ) );
279
339
task->cancel (); // Queued task
280
340
QCOMPARE ( task->status (), QgsTask::Terminated );
281
- task.reset ( new TestTask () );
341
+ task.reset ( new TestTask ( QStringLiteral ( " test_task_5 " ) ) );
282
342
task->hold (); // OnHold task
283
343
task->cancel ();
284
344
QCOMPARE ( task->status (), QgsTask::Terminated );
285
345
286
346
// test flags
287
- task.reset ( new TestTask ( QStringLiteral ( " desc " ), nullptr ) );
347
+ task.reset ( new TestTask ( QStringLiteral ( " test_task_6 " ), nullptr ) );
288
348
QVERIFY ( !task->canCancel () );
289
349
QVERIFY ( !( task->flags () & QgsTask::CanCancel ) );
290
- task.reset ( new TestTask ( QStringLiteral ( " desc " ), QgsTask::CanCancel ) );
350
+ task.reset ( new TestTask ( QStringLiteral ( " test_task_7 " ), QgsTask::CanCancel ) );
291
351
QVERIFY ( task->canCancel () );
292
352
QVERIFY ( task->flags () & QgsTask::CanCancel );
293
353
}
294
354
295
355
void TestQgsTaskManager::taskResult ()
296
356
{
297
- std::unique_ptr< QgsTask > task ( new SuccessTask () );
357
+ std::unique_ptr< QgsTask > task ( new SuccessTask ( QStringLiteral ( " task_result_1 " ) ) );
298
358
QCOMPARE ( task->status (), QgsTask::Queued );
299
359
QSignalSpy statusSpy ( task.get (), &QgsTask::statusChanged );
300
360
@@ -304,7 +364,7 @@ void TestQgsTaskManager::taskResult()
304
364
QCOMPARE ( static_cast < QgsTask::TaskStatus >( statusSpy.at ( 1 ).at ( 0 ).toInt () ), QgsTask::Complete );
305
365
QCOMPARE ( task->status (), QgsTask::Complete );
306
366
307
- task.reset ( new FailTask () );
367
+ task.reset ( new FailTask ( QStringLiteral ( " task_result_2 " ) ) );
308
368
QCOMPARE ( task->status (), QgsTask::Queued );
309
369
QSignalSpy statusSpy2 ( task.get (), &QgsTask::statusChanged );
310
370
@@ -333,8 +393,9 @@ void TestQgsTaskManager::addTask()
333
393
QVERIFY ( !manager.addTask ( nullptr ) );
334
394
335
395
// add a task
336
- CancelableTask *task = new CancelableTask ();
396
+ CancelableTask *task = new CancelableTask ( QStringLiteral ( " add_task_1 " ) );
337
397
long id = manager.addTask ( task );
398
+
338
399
QCOMPARE ( id, 1L );
339
400
QCOMPARE ( manager.tasks ().count (), 1 );
340
401
QCOMPARE ( manager.count (), 1 );
@@ -353,7 +414,7 @@ void TestQgsTaskManager::addTask()
353
414
QCOMPARE ( manager.tasks ().at ( 0 ), task );
354
415
355
416
// add a second task
356
- CancelableTask *task2 = new CancelableTask ();
417
+ CancelableTask *task2 = new CancelableTask ( QStringLiteral ( " add_task_2 " ) );
357
418
id = manager.addTask ( task2 );
358
419
QCOMPARE ( id, 2L );
359
420
QCOMPARE ( manager.tasks ().count (), 2 );
@@ -388,7 +449,7 @@ void TestQgsTaskManager::taskTerminationBeforeDelete()
388
449
QgsTaskManager *manager = new QgsTaskManager ();
389
450
390
451
// TestTerminationTask will assert that it's been terminated prior to deletion
391
- TestTask *task = new TestTerminationTask ();
452
+ TestTask *task = new TestTerminationTask ( QStringLiteral ( " termination_task_1 " ) );
392
453
manager->addTask ( task );
393
454
394
455
// wait till task spins up
@@ -411,7 +472,7 @@ void TestQgsTaskManager::taskFinished()
411
472
QgsTaskManager manager;
412
473
413
474
bool resultObtained = false ;
414
- FinishTask *task = new FinishTask ( &resultObtained );
475
+ FinishTask *task = new FinishTask ( &resultObtained, QStringLiteral ( " finished_task_1 " ) );
415
476
task->desiredResult = true ;
416
477
manager.addTask ( task );
417
478
while ( task->status () == QgsTask::Running
@@ -426,7 +487,7 @@ void TestQgsTaskManager::taskFinished()
426
487
flushEvents ();
427
488
QCOMPARE ( resultObtained, true );
428
489
429
- task = new FinishTask ( &resultObtained );
490
+ task = new FinishTask ( &resultObtained, QStringLiteral ( " finished_task_2 " ) );
430
491
task->desiredResult = false ;
431
492
manager.addTask ( task );
432
493
@@ -448,8 +509,8 @@ void TestQgsTaskManager::subTask()
448
509
QgsTaskManager manager;
449
510
450
511
// parent with one subtask
451
- ProgressReportingTask *parent = new ProgressReportingTask ();
452
- QPointer<ProgressReportingTask> subTask ( new ProgressReportingTask () );
512
+ ProgressReportingTask *parent = new ProgressReportingTask ( QStringLiteral ( " sub_task_parent_task_1 " ) );
513
+ QPointer<ProgressReportingTask> subTask ( new ProgressReportingTask ( QStringLiteral ( " sub_task_sub_task_1 " ) ) );
453
514
454
515
parent->addSubTask ( subTask );
455
516
@@ -458,21 +519,20 @@ void TestQgsTaskManager::subTask()
458
519
QVERIFY ( !subTask.data () );
459
520
460
521
// parent with grand children
461
- parent = new ProgressReportingTask ();
462
- subTask = new ProgressReportingTask ();
463
- QPointer< ProgressReportingTask> subsubTask ( new ProgressReportingTask () );
522
+ parent = new ProgressReportingTask ( QStringLiteral ( " sub_task_parent_task_2 " ) );
523
+ subTask = new ProgressReportingTask ( QStringLiteral ( " sub_task_sub_task_2 " ) );
524
+ QPointer< ProgressReportingTask> subsubTask ( new ProgressReportingTask ( QStringLiteral ( " sub_task_subsub_task_2 " ) ) );
464
525
subTask->addSubTask ( subsubTask );
465
526
parent->addSubTask ( subTask );
466
527
467
528
delete parent;
468
529
QVERIFY ( !subTask.data () );
469
530
QVERIFY ( !subsubTask.data () );
470
531
471
-
472
532
// test parent task progress
473
- parent = new ProgressReportingTask ();
474
- subTask = new ProgressReportingTask ();
475
- QPointer< ProgressReportingTask > subTask2 ( new ProgressReportingTask () );
533
+ parent = new ProgressReportingTask ( QStringLiteral ( " sub_task_parent_task_3 " ) );
534
+ subTask = new ProgressReportingTask ( QStringLiteral ( " sub_task_sub_task_3 " ) );
535
+ QPointer< ProgressReportingTask > subTask2 ( new ProgressReportingTask ( QStringLiteral ( " sub_task_sub_task_3a " ) ) );
476
536
477
537
parent->addSubTask ( subTask );
478
538
parent->addSubTask ( subTask2 );
@@ -518,9 +578,9 @@ void TestQgsTaskManager::subTask()
518
578
subTask->terminate ();
519
579
520
580
// test canceling task with subtasks
521
- parent = new ProgressReportingTask ();
522
- subTask = new ProgressReportingTask ();
523
- subsubTask = new ProgressReportingTask ();
581
+ parent = new ProgressReportingTask ( QStringLiteral ( " sub_task_parent_task_4 " ) );
582
+ subTask = new ProgressReportingTask ( QStringLiteral ( " sub_task_sub_task_4 " ) );
583
+ subsubTask = new ProgressReportingTask ( QStringLiteral ( " sub_task_sub_sub_task_4 " ) );
524
584
subTask->addSubTask ( subsubTask );
525
585
parent->addSubTask ( subTask );
526
586
@@ -532,9 +592,9 @@ void TestQgsTaskManager::subTask()
532
592
delete parent;
533
593
534
594
// test that if a subtask terminates the parent task is canceled
535
- parent = new ProgressReportingTask ();
536
- subTask = new ProgressReportingTask ();
537
- subsubTask = new ProgressReportingTask ();
595
+ parent = new ProgressReportingTask ( QStringLiteral ( " sub_task_parent_task_5 " ) );
596
+ subTask = new ProgressReportingTask ( QStringLiteral ( " sub_task_sub_task_5 " ) );
597
+ subsubTask = new ProgressReportingTask ( QStringLiteral ( " sub_task_sub_sub_task_5 " ) );
538
598
subTask->addSubTask ( subsubTask );
539
599
parent->addSubTask ( subTask );
540
600
@@ -563,9 +623,9 @@ void TestQgsTaskManager::subTask()
563
623
QVERIFY ( subsubTerminated.count () > 0 );
564
624
565
625
// test that a task is not marked complete until all subtasks are complete
566
- parent = new ProgressReportingTask ();
567
- subTask = new ProgressReportingTask ();
568
- subsubTask = new ProgressReportingTask ();
626
+ parent = new ProgressReportingTask ( QStringLiteral ( " sub_task_parent_task_6 " ) );
627
+ subTask = new ProgressReportingTask ( QStringLiteral ( " sub_task_sub_task_6 " ) );
628
+ subsubTask = new ProgressReportingTask ( QStringLiteral ( " sub_task_sub_sub_task_6 " ) );
569
629
subTask->addSubTask ( subsubTask );
570
630
parent->addSubTask ( subTask );
571
631
manager.addTask ( parent );
0 commit comments