浏览代码

Properly shut down the plugin framework after running tests.

Sascha Zelzer 13 年之前
父节点
当前提交
1cdadca5f4
共有 1 个文件被更改,包括 9 次插入4 次删除
  1. 9 4
      Libs/PluginFramework/Testing/Cpp/ctkPluginFrameworkTestRunner.cpp

+ 9 - 4
Libs/PluginFramework/Testing/Cpp/ctkPluginFrameworkTestRunner.cpp

@@ -73,11 +73,16 @@ public:
       ++count;
     }
 
-    // stop the specified plugins
-    foreach(StartPluginPair pluginInfo, startPluginInfos)
+    // stop the framework
+    QSharedPointer<ctkPluginFramework> fw = qSharedPointerCast<ctkPluginFramework>(context->getPlugin(0));
+    fw->stop();
+    // wait for 30 secs
+    ctkPluginFrameworkEvent event = fw->waitForStop(30000);
+
+    if (result == 0 && event.getType() == ctkPluginFrameworkEvent::WAIT_TIMEDOUT)
     {
-      QSharedPointer<ctkPlugin> plugin = context->getPlugin(pluginInfo.first);
-      plugin->stop();
+      qWarning() << "Framework shutdown wait timed out";
+      result = 1;
     }
 
     qDebug() << "#########" << count << "out of" << refs.size() << "test suites passed #########";