[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE/kdelibs/solid
From:       Kevin Ottens <ervin () kde ! org>
Date:       2007-07-17 6:58:46
Message-ID: 1184655526.514115.30123.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 688893 by ervin:

Fix a bug where the HAL backend was wrongly creating backend objects
even for invalid devices. It's definitely not the intended behavior.

CCMAIL: kde-dev@emailgoeshere.com


 M  +5 -1      solid/backends/hal/halmanager.cpp  
 M  +9 -0      tests/halbasictest.cpp  
 M  +1 -0      tests/halbasictest.h  


--- trunk/KDE/kdelibs/solid/solid/backends/hal/halmanager.cpp #688892:688893
@@ -142,7 +142,11 @@
 
 QObject *HalManager::createDevice(const QString &udi)
 {
-    return new HalDevice(udi);
+    if (deviceExists(udi)) {
+        return new HalDevice(udi);
+    } else {
+        return 0;
+    }
 }
 
 QStringList HalManager::findDeviceStringMatch(const QString &key, const QString &value)
--- trunk/KDE/kdelibs/solid/tests/halbasictest.cpp #688892:688893
@@ -22,6 +22,7 @@
 #include <QtTest/QtTest>
 
 #include "solid/backends/hal/halmanager.h"
+#include <solid/device.h>
 #include <solid/ifaces/device.h>
 #include <solid/ifaces/deviceinterface.h>
 #include <solid/ifaces/processor.h>
@@ -72,6 +73,14 @@
     delete manager;
 }
 
+void HalBasicTest::testDeviceCreation()
+{
+    Solid::Device dev("/org/freedesktop/Hal/devices/computer");
+    QVERIFY(dev.isValid());
+    dev = Solid::Device("ddd/ff");
+    QVERIFY(!dev.isValid());
+}
+
 void HalBasicTest::testSignalHandling()
 {
     HalManager *manager = new HalManager(0);
--- trunk/KDE/kdelibs/solid/tests/halbasictest.h #688892:688893
@@ -31,6 +31,7 @@
     Q_OBJECT
 private slots:
     void testBasic();
+    void testDeviceCreation();
     void testSignalHandling();
 
     void slotPropertyChanged(const QMap<QString,int> &changes);
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic