]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/tests/kfileitemmodelbenchmark.cpp
Remove unnecessary semicolons after Q_UNUSED
[dolphin.git] / src / tests / kfileitemmodelbenchmark.cpp
index 66918b6eec50bd021da324f00a18a6004f0fe1a6..8dfb4f622f8a0a52b1a52caaf650f98d661ff24a 100644 (file)
  *   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA            *
  ***************************************************************************/
 
-#include <qtest_kde.h>
+#include <QTest>
+#include <QSignalSpy>
+
+#include <random>
 
 #include "kitemviews/kfileitemmodel.h"
 #include "kitemviews/private/kfileitemmodelsortalgorithm.h"
 
-#include "testdir.h"
-
-#include <KRandomSequence>
-
-void myMessageOutput(QtMsgType type, const char* msg)
+void myMessageOutput(QtMsgType type, const QMessageLogContext& context, const QString& msg)
 {
+    Q_UNUSED(context)
+
     switch (type) {
     case QtDebugMsg:
         break;
     case QtWarningMsg:
         break;
     case QtCriticalMsg:
-        fprintf(stderr, "Critical: %s\n", msg);
+        fprintf(stderr, "Critical: %s\n", msg.toLocal8Bit().data());
         break;
     case QtFatalMsg:
-        fprintf(stderr, "Fatal: %s\n", msg);
+        fprintf(stderr, "Fatal: %s\n", msg.toLocal8Bit().data());
         abort();
     default:
        break;
     }
 }
 
-namespace {
-    const int DefaultTimeout = 5000;
-};
-
 Q_DECLARE_METATYPE(KFileItemList)
 Q_DECLARE_METATYPE(KItemRangeList)
 
@@ -62,7 +59,6 @@ public:
 private slots:
     void insertAndRemoveManyItems_data();
     void insertAndRemoveManyItems();
-    void insertManyChildItems();
 
 private:
     static KFileItemList createFileItemList(const QStringList& fileNames, const QString& urlPrefix = QLatin1String("file:///"));
@@ -82,8 +78,7 @@ void KFileItemModelBenchmark::insertAndRemoveManyItems_data()
     QTest::addColumn<KItemRangeList>("expectedItemsRemoved");
 
     QList<int> sizes;
-    sizes << 1000 << 4000 << 16000 << 64000 << 256000;
-    //sizes << 50000 << 100000 << 150000 << 200000 << 250000;
+    sizes << 100000;
 
     foreach (int n, sizes) {
         QStringList allStrings;
@@ -167,10 +162,10 @@ void KFileItemModelBenchmark::insertAndRemoveManyItems()
     // Avoid overhead caused by natural sorting
     // and determining the isDir/isLink roles.
     model.m_naturalSorting = false;
-    model.setRoles(QSet<QByteArray>() << "text");
+    model.setRoles({"text"});
 
-    QSignalSpy spyItemsInserted(&model, SIGNAL(itemsInserted(KItemRangeList)));
-    QSignalSpy spyItemsRemoved(&model, SIGNAL(itemsRemoved(KItemRangeList)));
+    QSignalSpy spyItemsInserted(&model, &KFileItemModel::itemsInserted);
+    QSignalSpy spyItemsRemoved(&model, &KFileItemModel::itemsRemoved);
 
     QBENCHMARK {
         model.slotClear();
@@ -209,126 +204,19 @@ void KFileItemModelBenchmark::insertAndRemoveManyItems()
     }
 }
 
-void KFileItemModelBenchmark::insertManyChildItems()
-{
-    // TODO: this function needs to be adjusted to the changes in KFileItemModel
-    // (replacement of slotNewItems(KFileItemList) by slotItemsAdded(KUrl,KFileItemList))
-    // Currently, this function tries to insert child items of multiple
-    // directories by invoking the slot only once.
-#if 0
-    qInstallMsgHandler(myMessageOutput);
-
-    KFileItemModel model;
-
-    // Avoid overhead caused by natural sorting.
-    model.m_naturalSorting = false;
-
-    QSet<QByteArray> modelRoles = model.roles();
-    modelRoles << "isExpanded" << "isExpandable" << "expandedParentsCount";
-    model.setRoles(modelRoles);
-    model.setSortDirectoriesFirst(false);
-
-    // Create a test folder with a 3-level tree structure of folders.
-    TestDir testFolder;
-    int numberOfFolders = 0;
-
-    QStringList subFolderNames;
-    subFolderNames << "a/" << "b/" << "c/" << "d/";
-
-    foreach (const QString& s1, subFolderNames) {
-        ++numberOfFolders;
-        foreach (const QString& s2, subFolderNames) {
-            ++numberOfFolders;
-            foreach (const QString& s3, subFolderNames) {
-                testFolder.createDir("level-1-" + s1 + "level-2-" + s2 + "level-3-" + s3);
-                ++numberOfFolders;
-            }
-        }
-    }
-
-    // Open the folder in the model and expand all subfolders.
-    model.loadDirectory(testFolder.url());
-    QVERIFY(QTest::kWaitForSignal(&model, SIGNAL(itemsInserted(KItemRangeList)), DefaultTimeout));
-
-    int index = 0;
-    while (index < model.count()) {
-        if (model.isExpandable(index)) {
-            model.setExpanded(index, true);
-
-            if (!model.data(index).value("text").toString().startsWith("level-3")) {
-                // New subfolders will appear unless we are on the final level already.
-                QVERIFY(QTest::kWaitForSignal(&model, SIGNAL(itemsInserted(KItemRangeList)), DefaultTimeout));
-            }
-
-            QVERIFY(model.isExpanded(index));
-        }
-        ++index;
-    }
-
-    QCOMPARE(model.count(), numberOfFolders);
-
-    // Create a list of many file items, which will be added to each of the
-    // "level 1", "level 2", and "level 3" folders.
-    const int filesPerDirectory = 500;
-    QStringList allStrings;
-    for (int i = 0; i < filesPerDirectory; ++i) {
-        allStrings << QString::number(i);
-    }
-    allStrings.sort();
-
-    KFileItemList newItems;
-
-    // Also keep track of all expected items, including the existing
-    // folders, to verify the final state of the model.
-    KFileItemList allExpectedItems;
-
-    for (int i = 0; i < model.count(); ++i) {
-        const KFileItem folderItem = model.fileItem(i);
-        allExpectedItems << folderItem;
-
-        const KUrl folderUrl = folderItem.url();
-        KFileItemList itemsInFolder = createFileItemList(allStrings, folderUrl.url(KUrl::AddTrailingSlash));
-
-        newItems.append(itemsInFolder);
-        allExpectedItems.append(itemsInFolder);
-    }
-
-    // Bring the items into random order.
-    KRandomSequence randomSequence(0);
-    randomSequence.randomize(newItems);
-
-    // Measure how long it takes to insert and then remove all files.
-    QBENCHMARK {
-        model.slotNewItems(newItems);
-        model.slotCompleted();
-
-        QCOMPARE(model.count(), allExpectedItems.count());
-        QVERIFY(model.isConsistent());
-        for (int i = 0; i < model.count(); ++i) {
-            QCOMPARE(model.fileItem(i), allExpectedItems.at(i));
-        }
-
-        model.slotItemsDeleted(newItems);
-        QCOMPARE(model.count(), numberOfFolders);
-        QVERIFY(model.isConsistent());
-    }
-#endif
-}
-
 KFileItemList KFileItemModelBenchmark::createFileItemList(const QStringList& fileNames, const QString& prefix)
 {
     // Suppress 'file does not exist anymore' messages from KFileItemPrivate::init().
-    qInstallMsgHandler(myMessageOutput);
+    qInstallMessageHandler(myMessageOutput);
 
     KFileItemList result;
     foreach (const QString& name, fileNames) {
-        const KUrl url(prefix + name);
-        const KFileItem item(url, QString(), KFileItem::Unknown);
+        const KFileItem item(QUrl::fromLocalFile(prefix + name), QString(), KFileItem::Unknown);
         result << item;
     }
     return result;
 }
 
-QTEST_KDEMAIN(KFileItemModelBenchmark, NoGUI)
+QTEST_MAIN(KFileItemModelBenchmark)
 
 #include "kfileitemmodelbenchmark.moc"