summaryrefslogtreecommitdiffstats
path: root/tests/benchmarks/corelib/io/qdir/tree/bench_qdir_tree.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/benchmarks/corelib/io/qdir/tree/bench_qdir_tree.cpp')
-rw-r--r--tests/benchmarks/corelib/io/qdir/tree/bench_qdir_tree.cpp227
1 files changed, 0 insertions, 227 deletions
diff --git a/tests/benchmarks/corelib/io/qdir/tree/bench_qdir_tree.cpp b/tests/benchmarks/corelib/io/qdir/tree/bench_qdir_tree.cpp
deleted file mode 100644
index 0abf8769a6..0000000000
--- a/tests/benchmarks/corelib/io/qdir/tree/bench_qdir_tree.cpp
+++ /dev/null
@@ -1,227 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QtTest/QTest>
-
-#include <QDirIterator>
-#include <QFile>
-#include <QString>
-#include <QStack>
-
-#include "../../../../../shared/filesystem.h"
-
-class bench_QDir_tree
- : public QObject
-{
- Q_OBJECT
-
-public:
- bench_QDir_tree()
- : prefix("./test-tree/"),
- musicprefix(QLatin1String("music")),
- photoprefix(QLatin1String("photos")),
- sourceprefix(QLatin1String("source")),
- musicsize(0),
- photosize(0),
- sourcesize(0)
- {
- }
-
-private:
- QByteArray prefix;
- QString musicprefix;
- QString photoprefix;
- QString sourceprefix;
- qint64 musicsize;
- qint64 photosize;
- qint64 sourcesize;
-
-private slots:
- void initTestCase()
- {
- QFile list(":/4.6.0-list.txt");
- QVERIFY(list.open(QIODevice::ReadOnly | QIODevice::Text));
-
- QVERIFY(fs.createDirectory(prefix));
-
- QStack<QByteArray> stack;
- QByteArray line;
- Q_FOREVER {
- char ch;
- if (!list.getChar(&ch))
- break;
- if (ch != ' ') {
- line.append(ch);
- continue;
- }
-
- int pop = 1;
- if (!line.isEmpty())
- pop = line.toInt();
-
- while (pop) {
- stack.pop();
- --pop;
- }
-
- line = list.readLine();
- line.chop(1);
- stack.push(line);
-
- line = prefix;
- Q_FOREACH(const QByteArray &pathElement, stack)
- line += pathElement;
-
- if (line.endsWith('/'))
- QVERIFY(fs.createDirectory(line));
- else
- QVERIFY(fs.createFile(line));
-
- line.clear();
- }
-
- //Use case: music collection - 10 files in 100 directories (albums)
- QVERIFY(fs.createDirectory(musicprefix));
- for (int i=0;i<1000;i++) {
- if ((i % 10) == 0)
- QVERIFY(fs.createDirectory(QString("%1/directory%2").arg(musicprefix).arg(i/10)));
- qint64 size = fs.createFileWithContent(QString("%1/directory%2/file%3").arg(musicprefix).arg(i/10).arg(i));
- QVERIFY(size > 0);
- musicsize += size;
- }
- //Use case: photos - 1000 files in 1 directory
- QVERIFY(fs.createDirectory(photoprefix));
- for (int i=0;i<1000;i++) {
- qint64 size = fs.createFileWithContent(QString("%1/file%2").arg(photoprefix).arg(i));
- QVERIFY(size > 0);
- photosize += size;
- }
- //Use case: source - 10 files in 10 subdirectories in 10 directories (1000 total)
- QVERIFY(fs.createDirectory(sourceprefix));
- for (int i=0;i<1000;i++) {
- if ((i % 100) == 0)
- QVERIFY(fs.createDirectory(QString("%1/directory%2").arg(sourceprefix).arg(i/100)));
- if ((i % 10) == 0)
- QVERIFY(fs.createDirectory(QString("%1/directory%2/subdirectory%3").arg(sourceprefix).arg(i/100).arg(i/10)));
- qint64 size = fs.createFileWithContent(QString("%1/directory%2/subdirectory%3/file%4").arg(sourceprefix).arg(i/100).arg(i/10).arg(i));
- QVERIFY(size > 0);
- sourcesize += size;
- }
- }
-
- void fileSearch_data() const
- {
- QTest::addColumn<QStringList>("nameFilters");
- QTest::addColumn<int>("filter");
- QTest::addColumn<int>("entryCount");
-
- QTest::newRow("*.cpp") << QStringList("*.cpp")
- << int(QDir::Files)
- << 3813;
-
- QTest::newRow("executables") << QStringList("*")
- << int(QDir::Executable | QDir::Files | QDir::AllDirs | QDir::NoDotAndDotDot)
- << 543;
- }
-
- void fileSearch() const
- {
- QFETCH(QStringList, nameFilters);
- QFETCH(int, filter);
- QFETCH(int, entryCount);
-
- int count = 0;
- QBENCHMARK {
- // Recursive directory iteration
- QDirIterator iterator(prefix, nameFilters, QDir::Filter(filter),
- QDirIterator::Subdirectories | QDirIterator::FollowSymlinks);
-
- count = 0;
- while (iterator.hasNext()) {
- iterator.next();
- ++count;
- }
-
- QCOMPARE(count, entryCount);
- }
-
- QCOMPARE(count, entryCount);
- }
-
- void traverseDirectory() const
- {
- int count = 0;
- QBENCHMARK {
- QDirIterator iterator(prefix,
- QDir::AllEntries | QDir::NoDotAndDotDot | QDir::Hidden | QDir::System,
- QDirIterator::Subdirectories | QDirIterator::FollowSymlinks);
-
- count = 0;
- while (iterator.hasNext()) {
- iterator.next();
- ++count;
- }
-
- QCOMPARE(count, 11963);
- }
-
- QCOMPARE(count, 11963);
- }
-
- void thousandFiles_data() const
- {
- QTest::addColumn<QString>("dirName");
- QTest::addColumn<qint64>("expectedSize");
- QTest::newRow("music") << musicprefix << musicsize;
- QTest::newRow("photos") << photoprefix << photosize;
- QTest::newRow("src") << sourceprefix << sourcesize;
- }
-
- void thousandFiles() const
- {
- QFETCH(QString, dirName);
- QFETCH(qint64, expectedSize);
- QBENCHMARK {
- qint64 totalsize = 0;
- int count = 0;
- QDirIterator iter(dirName, QDir::Files, QDirIterator::Subdirectories);
- while(iter.hasNext()) {
- iter.next();
- count++;
- totalsize += iter.fileInfo().size();
- }
- QCOMPARE(count, 1000);
- QCOMPARE(totalsize, expectedSize);
- }
- }
-private:
- FileSystem fs;
-};
-
-QTEST_MAIN(bench_QDir_tree)
-#include "bench_qdir_tree.moc"