qtmobility/tests/auto/databasemanager/tst_databasemanager_s60.cpp
changeset 4 90517678cc4f
parent 1 2b40d63a9c3d
child 11 06b8e2af4411
--- a/qtmobility/tests/auto/databasemanager/tst_databasemanager_s60.cpp	Fri Apr 16 15:51:22 2010 +0300
+++ b/qtmobility/tests/auto/databasemanager/tst_databasemanager_s60.cpp	Mon May 03 13:18:40 2010 +0300
@@ -42,7 +42,7 @@
 #include <QtCore>
 #define private public
 #include <qserviceinterfacedescriptor.h>
-#include "../../../serviceframework/qserviceinterfacedescriptor_p.h"
+#include "qserviceinterfacedescriptor_p.h"
 #include <qservicefilter.h>
 #include "../qsfwtestutil.h"
 #include "servicemetadata_p.h"
@@ -89,7 +89,13 @@
 
 void tst_DatabaseManager::initTestCase()
 {
-#if defined(Q_OS_SYMBIAN) && !defined(__WINS__)
+    // Wait a millisecond so that QServiceManagers are destroyed and release
+    // the database file (otherwise QFile::remove will get a permission denied -->
+    // in next case, the isEmpty() check fails).
+    QTest::qWait(1);
+    QSfwTestUtil::removeTempUserDb();
+    QSfwTestUtil::removeTempSystemDb();
+#if !defined(__WINS__)
     QSfwTestUtil::removeDatabases();
 #endif
     m_dbm = new DatabaseManager;
@@ -116,7 +122,7 @@
         QVERIFY(m_dbm->registerService(parseResults, DatabaseManager::UserScope));
     }
     
-    QSKIP("There is no difference between user and system scope in symbian", SkipAll);   
+    QSKIP("There is no difference between user and system scope in symbian", SkipAll);
     
     QStringList systemServiceFiles;
     systemServiceFiles << "ServiceOmni.xml" << "ServiceWayneEnt.xml"
@@ -562,8 +568,8 @@
     QVERIFY(compareDescriptor(descriptors[0], "com.nokia.ILocation", "TestService", 1,0));
     QVERIFY(compareDescriptor(descriptors[1], "com.nokia.ILocation", "TestService1", 1,1));
     QVERIFY(compareDescriptor(descriptors[2], "com.nokia.ILocation", "TestService2", 1,2));
-   
-} 
+
+}
 
 void tst_DatabaseManager::modifyPermissionSet(QFile::Permissions &permsSet,
                                                     int perm)
@@ -613,7 +619,10 @@
 
 void tst_DatabaseManager::cleanupTestCase()
 {
-#if defined(Q_OS_SYMBIAN) && !defined(__WINS__)
+    QTest::qWait(100);
+    QSfwTestUtil::removeTempUserDb();
+    QSfwTestUtil::removeTempSystemDb();
+#if !defined(__WINS__)
     QSfwTestUtil::removeDatabases();
 #endif
 }