浏览代码

Avoid sending pause/resume signals if the future does not support it.

Sascha Zelzer 12 年之前
父节点
当前提交
113268d8ee
共有 1 个文件被更改,包括 14 次插入7 次删除
  1. 14 7
      Libs/CommandLineModules/Testing/Cpp/ctkCmdLineModuleFutureTest.cpp

+ 14 - 7
Libs/CommandLineModules/Testing/Cpp/ctkCmdLineModuleFutureTest.cpp

@@ -257,23 +257,30 @@ void ctkCmdLineModuleFutureTester::testPauseAndCancel()
 
   QTest::qWait(100);
 
-  future.pause();
-  QTest::qWait(100);
-
-  QVERIFY(future.isRunning());
   if (future.canPause())
   {
+    future.pause();
+    QTest::qWait(100);
     QVERIFY(future.isPaused());
   }
 
-  future.togglePaused();
+  QVERIFY(future.isRunning());
 
-  QTest::qWait(100);
+  if (future.canPause())
+  {
+    future.togglePaused();
+    QTest::qWait(100);
+  }
 
   QVERIFY(!future.isPaused());
   QVERIFY(future.isRunning());
 
-  future.cancel();
+  if (future.canCancel())
+  {
+    // give event processing a chance before killing the process
+    QTest::qWait(200);
+    future.cancel();
+  }
   future.waitForFinished();
 
   // process pending events