diff options
Diffstat (limited to 'tests/benchmarks/corelib/io/qfileinfo')
-rw-r--r-- | tests/benchmarks/corelib/io/qfileinfo/CMakeLists.txt | 10 | ||||
-rw-r--r-- | tests/benchmarks/corelib/io/qfileinfo/main.cpp | 115 | ||||
-rw-r--r-- | tests/benchmarks/corelib/io/qfileinfo/tst_bench_qfileinfo.cpp | 77 |
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" |