From 463c9999bb7840633cd36e756671d645f7a8e051 Mon Sep 17 00:00:00 2001
From: Christian Kamm <christian.d.kamm@nokia.com>
Date: Mon, 14 Nov 2011 15:28:39 +0100
Subject: [PATCH] Plugin tests: Fix '-test all'.

Change-Id: I97554a61d5f42bf46df30d003135d212fa353fb9
Reviewed-by: Bill King <bill.king@nokia.com>
Reviewed-by: Eike Ziller <eike.ziller@nokia.com>
---
 src/libs/extensionsystem/pluginmanager.cpp | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/src/libs/extensionsystem/pluginmanager.cpp b/src/libs/extensionsystem/pluginmanager.cpp
index 349c36694b9..46e6587c528 100644
--- a/src/libs/extensionsystem/pluginmanager.cpp
+++ b/src/libs/extensionsystem/pluginmanager.cpp
@@ -648,6 +648,8 @@ void PluginManager::startTests()
 {
 #ifdef WITH_TESTS
     foreach (PluginSpec *pluginSpec, d->testSpecs) {
+        if (!pluginSpec->plugin())
+            continue;
         const QMetaObject *mo = pluginSpec->plugin()->metaObject();
         QStringList methods;
         methods.append("arg0");
@@ -659,7 +661,10 @@ void PluginManager::startTests()
                 methods.append(method.left(method.size()-2));
             }
         }
-        QTest::qExec(pluginSpec->plugin(), methods);
+        // Don't run QTest::qExec with only one argument, that'd run
+        // *all* slots as tests.
+        if (methods.size() > 1)
+            QTest::qExec(pluginSpec->plugin(), methods);
     }
     if (!d->testSpecs.isEmpty())
         QTimer::singleShot(1, QCoreApplication::instance(), SLOT(quit()));
-- 
GitLab