summaryrefslogtreecommitdiffstats
path: root/tests/benchmarks/corelib/io/qfileinfo
diff options
context:
space:
mode:
Diffstat (limited to 'tests/benchmarks/corelib/io/qfileinfo')
-rw-r--r--tests/benchmarks/corelib/io/qfileinfo/CMakeLists.txt10
-rw-r--r--tests/benchmarks/corelib/io/qfileinfo/main.cpp115
-rw-r--r--tests/benchmarks/corelib/io/qfileinfo/tst_bench_qfileinfo.cpp77
3 files changed, 81 insertions, 121 deletions
diff --git a/tests/benchmarks/corelib/io/qfileinfo/CMakeLists.txt b/tests/benchmarks/corelib/io/qfileinfo/CMakeLists.txt
index 1c088bf71a..84a667ca7d 100644
--- a/tests/benchmarks/corelib/io/qfileinfo/CMakeLists.txt
+++ b/tests/benchmarks/corelib/io/qfileinfo/CMakeLists.txt
@@ -1,4 +1,5 @@
-# Generated from qfileinfo.pro.
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
#####################################################################
## tst_bench_qfileinfo Binary:
@@ -6,11 +7,8 @@
qt_internal_add_benchmark(tst_bench_qfileinfo
SOURCES
- main.cpp
- PUBLIC_LIBRARIES
+ tst_bench_qfileinfo.cpp
+ LIBRARIES
Qt::CorePrivate
Qt::Test
)
-
-#### Keys ignored in scope 1:.:.:qfileinfo.pro:<TRUE>:
-# TEMPLATE = "app"
diff --git a/tests/benchmarks/corelib/io/qfileinfo/main.cpp b/tests/benchmarks/corelib/io/qfileinfo/main.cpp
deleted file mode 100644
index 3cf9709d09..0000000000
--- a/tests/benchmarks/corelib/io/qfileinfo/main.cpp
+++ /dev/null
@@ -1,115 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite 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 <QDebug>
-#include <qtest.h>
-#include <QTest>
-#include <QtCore/QCoreApplication>
-#include <QtCore/QFileInfo>
-#include <QtCore/QFile>
-
-#include "private/qfsfileengine_p.h"
-#include "../../../../shared/filesystem.h"
-
-class qfileinfo : public QObject
-{
- Q_OBJECT
-private slots:
- void existsTemporary();
- void existsStatic();
-#if defined(Q_OS_WIN)
- void symLinkTargetPerformanceLNK();
- void symLinkTargetPerformanceMounpoint();
-#endif
- void initTestCase();
- void cleanupTestCase();
-public:
- qfileinfo() : QObject() {};
-};
-
-void qfileinfo::initTestCase()
-{
-}
-
-void qfileinfo::cleanupTestCase()
-{
-}
-
-void qfileinfo::existsTemporary()
-{
- QString appPath = QCoreApplication::applicationFilePath();
- QBENCHMARK { QFileInfo(appPath).exists(); }
-}
-
-void qfileinfo::existsStatic()
-{
- QString appPath = QCoreApplication::applicationFilePath();
- QBENCHMARK { QFileInfo::exists(appPath); }
-}
-
-#if defined(Q_OS_WIN)
-void qfileinfo::symLinkTargetPerformanceLNK()
-{
- QVERIFY(QFile::link("file","link.lnk"));
- QFileInfo info("link.lnk");
- info.setCaching(false);
- QVERIFY(info.isSymLink());
- QString linkTarget;
- QBENCHMARK {
- for(int i=0; i<100; i++)
- linkTarget = info.symLinkTarget();
- }
- QVERIFY(QFile::remove("link.lnk"));
-}
-
-void qfileinfo::symLinkTargetPerformanceMounpoint()
-{
- wchar_t buffer[MAX_PATH];
- QString rootPath = QDir::toNativeSeparators(QDir::rootPath());
- QVERIFY(GetVolumeNameForVolumeMountPointW((LPCWSTR)rootPath.utf16(), buffer, MAX_PATH));
- QString rootVolume = QString::fromWCharArray(buffer);
- QString mountpoint = "mountpoint";
- rootVolume.replace("\\\\?\\","\\??\\");
- QString errorMessage;
- QVERIFY2(FileSystem::createNtfsJunction(rootVolume, mountpoint, &errorMessage) == ERROR_SUCCESS,
- qPrintable(errorMessage));
-
- QFileInfo info(mountpoint);
- info.setCaching(false);
- QVERIFY(info.isSymLink());
- QString linkTarget;
- QBENCHMARK {
- for(int i=0; i<100; i++)
- linkTarget = info.symLinkTarget();
- }
- QVERIFY(QDir().rmdir(mountpoint));
-}
-#endif
-
-QTEST_MAIN(qfileinfo)
-
-#include "main.moc"
diff --git a/tests/benchmarks/corelib/io/qfileinfo/tst_bench_qfileinfo.cpp b/tests/benchmarks/corelib/io/qfileinfo/tst_bench_qfileinfo.cpp
new file mode 100644
index 0000000000..2c626dde70
--- /dev/null
+++ b/tests/benchmarks/corelib/io/qfileinfo/tst_bench_qfileinfo.cpp
@@ -0,0 +1,77 @@
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
+#include <QDebug>
+#include <qtest.h>
+#include <QTest>
+#include <QtCore/QCoreApplication>
+#include <QtCore/QFileInfo>
+#include <QtCore/QFile>
+
+#include "private/qfsfileengine_p.h"
+#include "../../../../shared/filesystem.h"
+
+class tst_QFileInfo : public QObject
+{
+ Q_OBJECT
+private slots:
+ void existsTemporary();
+ void existsStatic();
+#if defined(Q_OS_WIN)
+ void symLinkTargetPerformanceLNK();
+ void junctionTargetPerformanceMountpoint();
+#endif
+};
+
+void tst_QFileInfo::existsTemporary()
+{
+ QString appPath = QCoreApplication::applicationFilePath();
+ QBENCHMARK { QFileInfo(appPath).exists(); }
+}
+
+void tst_QFileInfo::existsStatic()
+{
+ QString appPath = QCoreApplication::applicationFilePath();
+ QBENCHMARK { QFileInfo::exists(appPath); }
+}
+
+#if defined(Q_OS_WIN)
+void tst_QFileInfo::symLinkTargetPerformanceLNK()
+{
+ QVERIFY(QFile::link("file","link.lnk"));
+ QFileInfo info("link.lnk");
+ info.setCaching(false);
+ QVERIFY(info.isSymLink());
+ QString linkTarget;
+ QBENCHMARK {
+ for(int i=0; i<100; i++)
+ linkTarget = info.symLinkTarget();
+ }
+ QVERIFY(QFile::remove("link.lnk"));
+}
+
+void tst_QFileInfo::junctionTargetPerformanceMountpoint()
+{
+ wchar_t buffer[MAX_PATH];
+ QString rootPath = QDir::toNativeSeparators(QDir::rootPath());
+ QVERIFY(GetVolumeNameForVolumeMountPointW((LPCWSTR)rootPath.utf16(), buffer, MAX_PATH));
+ QString rootVolume = QString::fromWCharArray(buffer);
+ QString mountpoint = "mountpoint";
+ rootVolume.replace("\\\\?\\","\\??\\");
+ const auto result = FileSystem::createNtfsJunction(rootVolume, mountpoint);
+ QVERIFY2(result.dwErr == ERROR_SUCCESS, qPrintable(result.errorMessage));
+
+ QFileInfo info(mountpoint);
+ info.setCaching(false);
+ QVERIFY(info.isJunction());
+ QString junctionTarget;
+ QBENCHMARK {
+ for(int i=0; i<100; i++)
+ junctionTarget = info.junctionTarget();
+ }
+ QVERIFY(QDir().rmdir(mountpoint));
+}
+#endif
+
+QTEST_MAIN(tst_QFileInfo)
+
+#include "tst_bench_qfileinfo.moc"