diff options
Diffstat (limited to 'tests/auto/corelib/io/qdir')
-rw-r--r-- | tests/auto/corelib/io/qdir/CMakeLists.txt | 16 | ||||
-rw-r--r-- | tests/auto/corelib/io/qdir/testdir/dir/CMakeLists.txt | 7 | ||||
-rw-r--r-- | tests/auto/corelib/io/qdir/testdir/dir/qdir.pro | 3 | ||||
-rw-r--r-- | tests/auto/corelib/io/qdir/testdir/dir/qrc_qdir.cpp | 29 | ||||
-rw-r--r-- | tests/auto/corelib/io/qdir/testdir/dir/tst_qdir.cpp | 29 | ||||
-rw-r--r-- | tests/auto/corelib/io/qdir/tst_qdir.cpp | 221 |
6 files changed, 128 insertions, 177 deletions
diff --git a/tests/auto/corelib/io/qdir/CMakeLists.txt b/tests/auto/corelib/io/qdir/CMakeLists.txt index ee24703bd3..4032d7ac19 100644 --- a/tests/auto/corelib/io/qdir/CMakeLists.txt +++ b/tests/auto/corelib/io/qdir/CMakeLists.txt @@ -1,9 +1,16 @@ -# Generated from qdir.pro. +# Copyright (C) 2022 The Qt Company Ltd. +# SPDX-License-Identifier: BSD-3-Clause ##################################################################### ## tst_qdir Test: ##################################################################### +if(NOT QT_BUILD_STANDALONE_TESTS AND NOT QT_BUILDING_QT) + cmake_minimum_required(VERSION 3.16) + project(tst_qdir LANGUAGES CXX) + find_package(Qt6BuildInternals REQUIRED COMPONENTS STANDALONE_TEST) +endif() + # Collect test data list(APPEND test_data "testdir") list(APPEND test_data "testData") @@ -16,8 +23,9 @@ list(APPEND test_data "tst_qdir.cpp") qt_internal_add_test(tst_qdir SOURCES tst_qdir.cpp - PUBLIC_LIBRARIES + LIBRARIES Qt::CorePrivate + Qt::TestPrivate TESTDATA ${test_data} ) @@ -33,13 +41,9 @@ qt_internal_add_resource(tst_qdir "qdir" ${qdir_resource_files} ) - ## Scopes: ##################################################################### -#### Keys ignored in scope 2:.:.:qdir.pro:IOS: -# QMAKE_INFO_PLIST = "Info.plist" - qt_internal_extend_target(tst_qdir CONDITION CONFIG___contains___builtin_testdata DEFINES BUILTIN_TESTDATA diff --git a/tests/auto/corelib/io/qdir/testdir/dir/CMakeLists.txt b/tests/auto/corelib/io/qdir/testdir/dir/CMakeLists.txt index 92ce7b4e89..d0ec6dee9a 100644 --- a/tests/auto/corelib/io/qdir/testdir/dir/CMakeLists.txt +++ b/tests/auto/corelib/io/qdir/testdir/dir/CMakeLists.txt @@ -1,4 +1,5 @@ -# Generated from qdir.pro. +# Copyright (C) 2022 The Qt Company Ltd. +# SPDX-License-Identifier: BSD-3-Clause ##################################################################### ## qdir Binary: @@ -6,8 +7,6 @@ qt_internal_add_executable(qdir GUI - DEFINES - QT_DISABLE_DEPRECATED_BEFORE=0 - PUBLIC_LIBRARIES + LIBRARIES Qt::Gui ) diff --git a/tests/auto/corelib/io/qdir/testdir/dir/qdir.pro b/tests/auto/corelib/io/qdir/testdir/dir/qdir.pro index 856d5ea2fb..e69de29bb2 100644 --- a/tests/auto/corelib/io/qdir/testdir/dir/qdir.pro +++ b/tests/auto/corelib/io/qdir/testdir/dir/qdir.pro @@ -1,3 +0,0 @@ - - -DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0 diff --git a/tests/auto/corelib/io/qdir/testdir/dir/qrc_qdir.cpp b/tests/auto/corelib/io/qdir/testdir/dir/qrc_qdir.cpp index a1d5c2c9ff..b9f84b6006 100644 --- a/tests/auto/corelib/io/qdir/testdir/dir/qrc_qdir.cpp +++ b/tests/auto/corelib/io/qdir/testdir/dir/qrc_qdir.cpp @@ -1,29 +1,4 @@ -/**************************************************************************** -** -** 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$ -** -****************************************************************************/ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only diff --git a/tests/auto/corelib/io/qdir/testdir/dir/tst_qdir.cpp b/tests/auto/corelib/io/qdir/testdir/dir/tst_qdir.cpp index a1d5c2c9ff..b9f84b6006 100644 --- a/tests/auto/corelib/io/qdir/testdir/dir/tst_qdir.cpp +++ b/tests/auto/corelib/io/qdir/testdir/dir/tst_qdir.cpp @@ -1,29 +1,4 @@ -/**************************************************************************** -** -** 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$ -** -****************************************************************************/ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only diff --git a/tests/auto/corelib/io/qdir/tst_qdir.cpp b/tests/auto/corelib/io/qdir/tst_qdir.cpp index d0d6588446..7b05a88e81 100644 --- a/tests/auto/corelib/io/qdir/tst_qdir.cpp +++ b/tests/auto/corelib/io/qdir/tst_qdir.cpp @@ -1,33 +1,9 @@ -/**************************************************************************** -** -** Copyright (C) 2021 The Qt Company Ltd. -** Copyright (C) 2017 Intel Corporation. -** 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$ -** -****************************************************************************/ +// Copyright (C) 2021 The Qt Company Ltd. +// Copyright (C) 2017 Intel Corporation. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only #include <QTest> +#include <QtTest/private/qcomparisontesthelper_p.h> #include <QTemporaryFile> #if QT_CONFIG(process) #include <QProcess> @@ -37,12 +13,10 @@ #include <qdebug.h> #include <qdir.h> #include <qfileinfo.h> -#include <qscopedvaluerollback.h> #include <qstringlist.h> #if defined(Q_OS_WIN) #include <QtCore/private/qfsfileengine_p.h> -#include "../../../network-settings.h" #endif #if defined(Q_OS_WIN) && !defined(_WIN32_WINNT) @@ -66,7 +40,6 @@ #ifdef Q_OS_WIN #define DRIVE "Q:" -extern Q_CORE_EXPORT int qt_ntfs_permission_lookup; #else #define DRIVE #endif @@ -75,6 +48,8 @@ extern Q_CORE_EXPORT int qt_ntfs_permission_lookup; #include "private/qdir_p.h" #endif +using namespace Qt::StringLiterals; + static QByteArray msgDoesNotExist(const QString &name) { return (QLatin1Char('"') + QDir::toNativeSeparators(name) @@ -152,6 +127,7 @@ private slots: void normalizePathSegments(); #endif + void compareCompiles(); void compare(); void QDir_default(); @@ -231,12 +207,18 @@ private slots: void stdfilesystem(); private: -#ifdef BUILTIN_TESTDATA - QString m_dataPath; QSharedPointer<QTemporaryDir> m_dataDir; -#else - const QString m_dataPath; -#endif + QString m_dataPath; + + constexpr static const std::array m_testDirs = { + "entrylist"_L1, + "resources"_L1, + "searchdir"_L1, + "testData"_L1, + "testdir"_L1, + "types"_L1, + "tst_qdir.cpp"_L1, + }; }; Q_DECLARE_METATYPE(tst_QDir::UncHandling) @@ -284,6 +266,20 @@ void tst_QDir::initTestCase() m_dataDir = QEXTRACTTESTDATA("/"); QVERIFY2(!m_dataDir.isNull(), qPrintable("Did not find testdata. Is this builtin?")); m_dataPath = m_dataDir->path(); +#elif QT_CONFIG(cxx17_filesystem) // This code doesn't work in QNX on the CI + m_dataDir.reset(new QTemporaryDir); + m_dataPath = m_dataDir->path(); + + QString sourceDir = QFileInfo(QFINDTESTDATA(m_testDirs[0])).absolutePath(); + namespace fs = std::filesystem; + for (const auto &entry : m_testDirs) { + auto l1 = QLatin1StringView(entry); + const auto src = fs::path(QString(sourceDir + u'/' + l1).toStdString()); + const auto dest = fs::path(QString(m_dataPath + u'/' + l1).toStdString()); + std::error_code ec; + fs::copy(src, dest, fs::copy_options::recursive, ec); + QCOMPARE(ec.value(), 0); + } #endif QVERIFY2(!m_dataPath.isEmpty(), "test data not found"); @@ -345,6 +341,7 @@ void tst_QDir::setPath() QFETCH(QString, dir1); QFETCH(QString, dir2); + QDir::setCurrent(m_dataPath + "/entrylist"_L1); QDir shared; QDir qDir1(dir1); QStringList entries1 = qDir1.entryList(); @@ -441,7 +438,7 @@ void tst_QDir::mkdirOnSymlink() // create our structure: dir.mkpath("two/three"); - ::symlink("two/three", "symlink"); + QCOMPARE(::symlink("two/three", "symlink"), 0); // try it: QString path = "symlink/../four/five"; @@ -477,8 +474,7 @@ void tst_QDir::mkdirWithPermissions() QFETCH(QFile::Permissions, permissions); #ifdef Q_OS_WIN - QScopedValueRollback<int> ntfsMode(qt_ntfs_permission_lookup); - ++qt_ntfs_permission_lookup; + QNtfsPermissionCheckGuard permissionGuard; #endif #ifdef Q_OS_UNIX auto restoreMask = qScopeGuard([oldMask = umask(0)] { umask(oldMask); }); @@ -490,7 +486,7 @@ void tst_QDir::mkdirWithPermissions() QFile::ReadOwner, QFile::WriteOwner, QFile::ExeOwner }; - const QString path = u"tmpdir"_qs; + const QString path = u"tmpdir"_s; QDir dir; auto deleteDirectory = qScopeGuard([&dir, &path] { dir.rmdir(path); }); @@ -524,7 +520,7 @@ void tst_QDir::makedirReturnCode() // Remove the directory and create a file with the same path QDir::current().rmdir(dirName); QVERIFY(!f.exists()); - f.open(QIODevice::WriteOnly); + QVERIFY(f.open(QIODevice::WriteOnly)); f.write("test"); f.close(); QVERIFY2(f.exists(), msgDoesNotExist(f.fileName()).constData()); @@ -545,12 +541,12 @@ void tst_QDir::removeRecursively_data() << tmpdir + "two/three" << "relative"; QDir dir; - for (int i = 0; i < dirs.count(); ++i) + for (int i = 0; i < dirs.size(); ++i) dir.mkpath(dirs.at(i)); QStringList files; files << tmpdir + "one/file"; files << tmpdir + "two/three/file"; - for (int i = 0; i < files.count(); ++i) { + for (int i = 0; i < files.size(); ++i) { QFile file(files.at(i)); QVERIFY(file.open(QIODevice::WriteOnly)); file.write("Hello"); @@ -618,7 +614,7 @@ void tst_QDir::removeRecursivelySymlink() QDir().mkpath(tmpdir); QDir currentDir; currentDir.mkdir("myDir"); - QFile("testfile").open(QIODevice::WriteOnly); + QVERIFY(QFile("testfile").open(QIODevice::WriteOnly)); const QString link = tmpdir + "linkToDir.lnk"; const QString linkToFile = tmpdir + "linkToFile.lnk"; #ifndef Q_NO_SYMLINKS_TO_DIRS @@ -650,7 +646,7 @@ void tst_QDir::exists_data() QTest::newRow("simple dir") << (m_dataPath + "/resources") << true; QTest::newRow("simple dir with slash") << (m_dataPath + "/resources/") << true; #if defined(Q_OS_WIN) - const QString uncRoot = QStringLiteral("//") + QtNetworkSettings::winServerName(); + const QString uncRoot = QStringLiteral("//") + QTest::uncServerName(); QTest::newRow("unc 1") << uncRoot << true; QTest::newRow("unc 2") << uncRoot + QLatin1Char('/') << true; QTest::newRow("unc 3") << uncRoot + "/testshare" << true; @@ -728,32 +724,29 @@ void tst_QDir::QDir_default() QCOMPARE(dir.absolutePath(), QDir::currentPath()); } -void tst_QDir::compare() +void tst_QDir::compareCompiles() { - // operator== - - // Not using QCOMPARE to test result of QDir::operator== + QTestPrivate::testEqualityOperatorsCompile<QDir>(); +} +void tst_QDir::compare() +{ QDir dir; dir.makeAbsolute(); - QVERIFY(dir == QDir::currentPath()); + QT_TEST_EQUALITY_OPS(dir, QDir::currentPath(), true); QCOMPARE(QDir(), QDir(QDir::currentPath())); - QVERIFY(QDir("../") == QDir(QDir::currentPath() + "/..")); + + QT_TEST_EQUALITY_OPS(QDir("../"), QDir(QDir::currentPath() + "/.."), true); } -static QStringList filterLinks(const QStringList &list) +static QStringList filterLinks(QStringList &&list) { -#ifndef Q_NO_SYMLINKS - return list; -#else - QStringList result; - foreach (QString str, list) { - if (!str.endsWith(QLatin1String(".lnk"))) - result.append(str); - } - return result; +#ifdef Q_NO_SYMLINKS + auto isDotLnk = [](const auto &s) { return s.endsWith(".lnk"_L1); }; + list.removeIf(isDotLnk); #endif + return std::move(list); } void tst_QDir::entryList_data() @@ -820,6 +813,12 @@ void tst_QDir::entryListWithTestFiles_data() QTest::newRow("QDir::AllEntries") << (m_dataPath + "/entrylist/") << QStringList("*") << int(QDir::AllEntries) << int(QDir::Name) << filterLinks(QString(".,..,directory,file,linktodirectory.lnk,linktofile.lnk,writable").split(',')); + // Tests an assert in QDirSortItemComparator, when QDir::LocaleAware is set + // a QCollator is used + QTest::newRow("QDir::AllEntries") + << (m_dataPath + "/entrylist/") << QStringList("*") + << int(QDir::AllEntries) << int(QDir::Name | QDir::LocaleAware) + << filterLinks(QString(".,..,directory,file,linktodirectory.lnk,linktofile.lnk,writable").split(',')); QTest::newRow("QDir::Files") << (m_dataPath + "/entrylist/") << QStringList("*") << int(QDir::Files) << int(QDir::Name) << filterLinks(QString("file,linktofile.lnk,writable").split(',')); @@ -1023,7 +1022,7 @@ void tst_QDir::entryListTimedSort() QFileInfo aFileInfo(aFile); QFileInfo bFileInfo(bFile); - QVERIFY(bFileInfo.lastModified().msecsTo(aFileInfo.lastModified()) < 0); + QVERIFY(bFileInfo.lastModified(QTimeZone::UTC).msecsTo(aFileInfo.lastModified(QTimeZone::UTC)) < 0); QCOMPARE(actual.size(), 2); QCOMPARE(actual.first(), bFileInfo.fileName()); @@ -1043,7 +1042,7 @@ void tst_QDir::entryListSimple_data() QTest::newRow("simple dir with slash") << (m_dataPath + "/resources/") << 2; #if defined(Q_OS_WIN) - const QString uncRoot = QStringLiteral("//") + QtNetworkSettings::winServerName(); + const QString uncRoot = QStringLiteral("//") + QTest::uncServerName(); QTest::newRow("unc 1") << uncRoot << 2; QTest::newRow("unc 2") << uncRoot + QLatin1Char('/') << 2; QTest::newRow("unc 3") << uncRoot + "/testshare" << 2; @@ -1069,7 +1068,7 @@ void tst_QDir::entryListSimple() QDir dir(dirName); QStringList actual = dir.entryList(); - QVERIFY2(actual.count() >= countMin, msgEntryListFailed(actual.count(), countMin, dirName).constData()); + QVERIFY2(actual.size() >= countMin, msgEntryListFailed(actual.size(), countMin, dirName).constData()); } void tst_QDir::entryListWithSymLinks() @@ -1082,7 +1081,7 @@ void tst_QDir::entryListWithSymLinks() QFile::remove("testfile.cpp"); QDir dir; dir.mkdir("myDir"); - QFile("testfile.cpp").open(QIODevice::WriteOnly); + QVERIFY(QFile("testfile.cpp").open(QIODevice::WriteOnly)); # ifndef Q_NO_SYMLINKS_TO_DIRS QVERIFY(QFile::link("myDir", "myLinkToDir.lnk")); # endif @@ -1278,11 +1277,11 @@ void tst_QDir::setNameFilters() dir.setNameFilters(nameFilters); QStringList actual = dir.entryList(); - int max = qMin(actual.count(), expected.count()); + int max = qMin(actual.size(), expected.size()); for (int i=0; i<max; ++i) QCOMPARE(actual[i], expected[i]); - QCOMPARE(actual.count(), expected.count()); + QCOMPARE(actual.size(), expected.size()); } void @@ -1332,19 +1331,19 @@ tst_QDir::cleanPath_data() QTest::newRow("unc-server-up") << "//server/path/.." << "//server"; QTest::newRow("unc-server-above-root") << "//server/.." << "//server/.."; - QTest::newRow("longpath") << uR"(\\?\d:\)"_qs << u"d:/"_qs; - QTest::newRow("longpath-slash") << u"//?/d:/"_qs << u"d:/"_qs; - QTest::newRow("longpath-mixed-slashes") << uR"(//?/d:\)"_qs << u"d:/"_qs; - QTest::newRow("longpath-mixed-slashes-2") << uR"(\\?\d:/)"_qs << u"d:/"_qs; - - QTest::newRow("unc-network-share") << uR"(\\?\UNC\localhost\c$\tmp.txt)"_qs - << u"//localhost/c$/tmp.txt"_qs; - QTest::newRow("unc-network-share-slash") << u"//?/UNC/localhost/c$/tmp.txt"_qs - << u"//localhost/c$/tmp.txt"_qs; - QTest::newRow("unc-network-share-mixed-slashes") << uR"(//?/UNC/localhost\c$\tmp.txt)"_qs - << u"//localhost/c$/tmp.txt"_qs; - QTest::newRow("unc-network-share-mixed-slashes-2") << uR"(\\?\UNC\localhost/c$/tmp.txt)"_qs - << u"//localhost/c$/tmp.txt"_qs; + QTest::newRow("longpath") << uR"(\\?\d:\)"_s << u"d:/"_s; + QTest::newRow("longpath-slash") << u"//?/d:/"_s << u"d:/"_s; + QTest::newRow("longpath-mixed-slashes") << uR"(//?/d:\)"_s << u"d:/"_s; + QTest::newRow("longpath-mixed-slashes-2") << uR"(\\?\d:/)"_s << u"d:/"_s; + + QTest::newRow("unc-network-share") << uR"(\\?\UNC\localhost\c$\tmp.txt)"_s + << u"//localhost/c$/tmp.txt"_s; + QTest::newRow("unc-network-share-slash") << u"//?/UNC/localhost/c$/tmp.txt"_s + << u"//localhost/c$/tmp.txt"_s; + QTest::newRow("unc-network-share-mixed-slashes") << uR"(//?/UNC/localhost\c$\tmp.txt)"_s + << u"//localhost/c$/tmp.txt"_s; + QTest::newRow("unc-network-share-mixed-slashes-2") << uR"(\\?\UNC\localhost/c$/tmp.txt)"_s + << u"//localhost/c$/tmp.txt"_s; #else QTest::newRow("data15") << "//c:/foo" << "/c:/foo"; #endif // non-windows @@ -1624,7 +1623,7 @@ void tst_QDir::filePath() void tst_QDir::remove() { QFile f("remove-test"); - f.open(QIODevice::WriteOnly); + QVERIFY(f.open(QIODevice::WriteOnly)); f.close(); QDir dir; QVERIFY(dir.remove("remove-test")); @@ -1637,12 +1636,12 @@ void tst_QDir::remove() void tst_QDir::rename() { QFile f("rename-test"); - f.open(QIODevice::WriteOnly); + QVERIFY(f.open(QIODevice::WriteOnly)); f.close(); QDir dir; QVERIFY(dir.rename("rename-test", "rename-test-renamed")); QVERIFY(dir.rename("rename-test-renamed", "rename-test")); -#if defined(Q_OS_MAC) +#if defined(Q_OS_DARWIN) QVERIFY(!dir.rename("rename-test", "/etc/rename-test-renamed")); #elif !defined(Q_OS_WIN) // on windows this is possible - maybe make the test a bit better @@ -1743,9 +1742,9 @@ void tst_QDir::dotAndDotDot() { QDir dir(QString((m_dataPath + "/testdir/"))); QStringList entryList = dir.entryList(QDir::Dirs); - QCOMPARE(entryList, QStringList({ u"."_qs, u".."_qs, u"dir"_qs, u"dir.lnk"_qs, u"spaces"_qs })); + QCOMPARE(entryList, QStringList({ u"."_s, u".."_s, u"dir"_s, u"dir.lnk"_s, u"spaces"_s })); entryList = dir.entryList(QDir::Dirs | QDir::NoDotAndDotDot); - QCOMPARE(entryList, QStringList({ u"dir"_qs, u"dir.lnk"_qs, u"spaces"_qs })); + QCOMPARE(entryList, QStringList({ u"dir"_s, u"dir.lnk"_s, u"spaces"_s })); } void tst_QDir::homePath() @@ -1758,7 +1757,7 @@ void tst_QDir::homePath() QVERIFY(QDir::isAbsolutePath(strHome)); #ifdef Q_OS_UNIX - if (strHome.length() > 1) // root dir = "/" + if (strHome.size() > 1) // root dir = "/" QVERIFY(!strHome.endsWith('/')); QByteArray envHome = qgetenv("HOME"); @@ -1772,7 +1771,7 @@ void tst_QDir::homePath() #endif QStringList entries = homeDir.entryList(); - for (int i = 0; i < entries.count(); ++i) { + for (int i = 0; i < entries.size(); ++i) { QFileInfo fi(QDir::homePath() + "/" + entries[i]); QCOMPARE(fi.exists(), true); } @@ -1788,7 +1787,7 @@ void tst_QDir::tempPath() QVERIFY(QDir::isAbsolutePath(path)); #ifdef Q_OS_UNIX - if (path.length() > 1) // root dir = "/" + if (path.size() > 1) // root dir = "/" QVERIFY(!path.endsWith('/')); #elif defined(Q_OS_WIN) if (path.length() > 3) // root dir = "c:/"; "//" is not really valid... @@ -1820,10 +1819,10 @@ void tst_QDir::nativeSeparators() QCOMPARE(QDir::fromNativeSeparators(QLatin1String("/")), QString("/")); QCOMPARE(QDir::fromNativeSeparators(QLatin1String("\\")), QString("/")); QCOMPARE(QDir::fromNativeSeparators(QLatin1String("\\\\?\\C:\\")), QString("C:/")); - QCOMPARE(QDir::fromNativeSeparators(uR"(\\?\UNC\localhost\c$\tmp.txt)"_qs), - u"//localhost/c$/tmp.txt"_qs); - QCOMPARE(QDir::fromNativeSeparators(uR"(//?/UNC/localhost\c$\tmp.txt)"_qs), - u"//localhost/c$/tmp.txt"_qs); + QCOMPARE(QDir::fromNativeSeparators(uR"(\\?\UNC\localhost\c$\tmp.txt)"_s), + u"//localhost/c$/tmp.txt"_s); + QCOMPARE(QDir::fromNativeSeparators(uR"(//?/UNC/localhost\c$\tmp.txt)"_s), + u"//localhost/c$/tmp.txt"_s); #else QCOMPARE(QDir::toNativeSeparators(QLatin1String("/")), QString("/")); QCOMPARE(QDir::toNativeSeparators(QLatin1String("\\")), QString("\\")); @@ -1869,10 +1868,10 @@ void tst_QDir::searchPaths() QFETCH(QString, expectedAbsolutePath); bool exists = !expectedAbsolutePath.isEmpty(); - for (int i = 0; i < searchPathPrefixList.count(); ++i) { + for (int i = 0; i < searchPathPrefixList.size(); ++i) { QDir::setSearchPaths(searchPathPrefixList.at(i), searchPathsList.at(i).split(",")); } - for (int i = 0; i < searchPathPrefixList.count(); ++i) { + for (int i = 0; i < searchPathPrefixList.size(); ++i) { QCOMPARE(QDir::searchPaths(searchPathPrefixList.at(i)), searchPathsList.at(i).split(",")); } @@ -1883,19 +1882,19 @@ void tst_QDir::searchPaths() QCOMPARE(QFileInfo(filename).absoluteFilePath(), expectedAbsolutePath); } - for (int i = 0; i < searchPathPrefixList.count(); ++i) { + for (int i = 0; i < searchPathPrefixList.size(); ++i) { QDir::setSearchPaths(searchPathPrefixList.at(i), QStringList()); } - for (int i = 0; i < searchPathPrefixList.count(); ++i) { + for (int i = 0; i < searchPathPrefixList.size(); ++i) { QVERIFY(QDir::searchPaths(searchPathPrefixList.at(i)).isEmpty()); } - for (int i = 0; i < searchPathPrefixList.count(); ++i) { - foreach (QString path, searchPathsList.at(i).split(",")) { + for (int i = 0; i < searchPathPrefixList.size(); ++i) { + const auto parts = searchPathsList.at(i).split(","); + for (const QString &path : parts) QDir::addSearchPath(searchPathPrefixList.at(i), path); - } } - for (int i = 0; i < searchPathPrefixList.count(); ++i) { + for (int i = 0; i < searchPathPrefixList.size(); ++i) { QCOMPARE(QDir::searchPaths(searchPathPrefixList.at(i)), searchPathsList.at(i).split(",")); } @@ -1906,10 +1905,10 @@ void tst_QDir::searchPaths() QCOMPARE(QFileInfo(filename).absoluteFilePath(), expectedAbsolutePath); } - for (int i = 0; i < searchPathPrefixList.count(); ++i) { + for (int i = 0; i < searchPathPrefixList.size(); ++i) { QDir::setSearchPaths(searchPathPrefixList.at(i), QStringList()); } - for (int i = 0; i < searchPathPrefixList.count(); ++i) { + for (int i = 0; i < searchPathPrefixList.size(); ++i) { QVERIFY(QDir::searchPaths(searchPathPrefixList.at(i)).isEmpty()); } } @@ -2219,7 +2218,7 @@ void tst_QDir::match() void tst_QDir::drives() { - QFileInfoList list(QDir::drives()); + const QFileInfoList list(QDir::drives()); #if defined(Q_OS_WIN) QVERIFY(list.count() >= 1); //system QLatin1Char systemdrive('c'); @@ -2227,7 +2226,7 @@ void tst_QDir::drives() #if defined(Q_OS_WIN) QVERIFY(list.count() <= 26); bool foundsystem = false; - foreach (QFileInfo fi, list) { + for (const QFileInfo &fi : list) { QCOMPARE(fi.absolutePath().size(), 3); //"x:/" QCOMPARE(fi.absolutePath().at(1), QChar(QLatin1Char(':'))); QCOMPARE(fi.absolutePath().at(2), QChar(QLatin1Char('/'))); @@ -2236,7 +2235,7 @@ void tst_QDir::drives() } QCOMPARE(foundsystem, true); #else - QCOMPARE(list.count(), 1); //root + QCOMPARE(list.size(), 1); //root QCOMPARE(list.at(0).absolutePath(), QLatin1String("/")); #endif } @@ -2248,7 +2247,7 @@ void tst_QDir::arrayOperator() QStringList entries(dir1.entryList()); int i = dir2.count(); - QCOMPARE(i, entries.count()); + QCOMPARE(i, entries.size()); --i; for (;i>=0;--i) { QCOMPARE(dir2[i], entries.at(i)); @@ -2286,6 +2285,8 @@ void tst_QDir::equalityOperator_data() QString pathinroot("/system/.."); #elif defined(Q_OS_HAIKU) QString pathinroot("/boot/.."); +#elif defined(Q_OS_VXWORKS) + QString pathinroot("/tmp/.."); #else QString pathinroot("/usr/.."); #endif @@ -2351,9 +2352,9 @@ void tst_QDir::isRelative_data() QTest::newRow("homepath") << QDir::homePath() << false; QTest::newRow("temppath") << QDir::tempPath() << false; QTest::newRow("rootpath") << QDir::rootPath() << false; - foreach (QFileInfo root, QDir::drives()) { + const auto drives = QDir::drives(); + for (const QFileInfo &root : drives) QTest::newRow(root.absolutePath().toLocal8Bit()) << root.absolutePath() << false; - } QTest::newRow("resource") << ":/prefix" << false; } @@ -2416,7 +2417,7 @@ void tst_QDir::cdBelowRoot_data() const QString systemRoot = QString::fromLocal8Bit(qgetenv("SystemRoot")); QTest::newRow("windows-drive") << systemDrive << systemRoot.mid(3) << QDir::cleanPath(systemRoot); - const QString uncRoot = QStringLiteral("//") + QtNetworkSettings::winServerName(); + const QString uncRoot = QStringLiteral("//") + QTest::uncServerName(); const QString testDirectory = QStringLiteral("testshare"); QTest::newRow("windows-share") << uncRoot << testDirectory << QDir::cleanPath(uncRoot + QLatin1Char('/') + testDirectory); @@ -2501,7 +2502,7 @@ void tst_QDir::stdfilesystem() QCOMPARE(entries, QStringList() << "subdir2" << "subdir1"); QCOMPARE(filteredDir.sorting(), QDir::SortFlag::Reversed); QCOMPARE(filteredDir.filter(), QDir::Filter::Dirs); - QCOMPARE(filteredDir.nameFilters().length(), 1); + QCOMPARE(filteredDir.nameFilters().size(), 1); QCOMPARE(filteredDir.nameFilters().first(), "subdir*"); } #else |