Remove network dependency for tests with UNC paths
Windows VMs are provisioned with shared folders that are available as \\${COMPUTERNAME}\testshare(writable) so we don't need to access a remote SMB server over network anymore just to test whether our string-parsing code handles UNC paths correctly. Add a QTest::uncServerName() helper function to the shared filesystem.h header and use that instead of QtNetworkSettings::winServerName. The latter is now only used in tst_NetworkSelfTest::smbServer(). Pick-to: 6.4 Change-Id: Id0da66369ad0f4a980d612de2a31a391f1192253 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
This commit is contained in:
parent
1ee75e4740
commit
371214dea7
@ -17,7 +17,6 @@
|
|||||||
|
|
||||||
#if defined(Q_OS_WIN)
|
#if defined(Q_OS_WIN)
|
||||||
#include <QtCore/private/qfsfileengine_p.h>
|
#include <QtCore/private/qfsfileengine_p.h>
|
||||||
#include "../../../network-settings.h"
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(Q_OS_WIN) && !defined(_WIN32_WINNT)
|
#if defined(Q_OS_WIN) && !defined(_WIN32_WINNT)
|
||||||
@ -627,7 +626,7 @@ void tst_QDir::exists_data()
|
|||||||
QTest::newRow("simple dir") << (m_dataPath + "/resources") << true;
|
QTest::newRow("simple dir") << (m_dataPath + "/resources") << true;
|
||||||
QTest::newRow("simple dir with slash") << (m_dataPath + "/resources/") << true;
|
QTest::newRow("simple dir with slash") << (m_dataPath + "/resources/") << true;
|
||||||
#if defined(Q_OS_WIN)
|
#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 1") << uncRoot << true;
|
||||||
QTest::newRow("unc 2") << uncRoot + QLatin1Char('/') << true;
|
QTest::newRow("unc 2") << uncRoot + QLatin1Char('/') << true;
|
||||||
QTest::newRow("unc 3") << uncRoot + "/testshare" << true;
|
QTest::newRow("unc 3") << uncRoot + "/testshare" << true;
|
||||||
@ -1020,7 +1019,7 @@ void tst_QDir::entryListSimple_data()
|
|||||||
QTest::newRow("simple dir with slash") << (m_dataPath + "/resources/") << 2;
|
QTest::newRow("simple dir with slash") << (m_dataPath + "/resources/") << 2;
|
||||||
|
|
||||||
#if defined(Q_OS_WIN)
|
#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 1") << uncRoot << 2;
|
||||||
QTest::newRow("unc 2") << uncRoot + QLatin1Char('/') << 2;
|
QTest::newRow("unc 2") << uncRoot + QLatin1Char('/') << 2;
|
||||||
QTest::newRow("unc 3") << uncRoot + "/testshare" << 2;
|
QTest::newRow("unc 3") << uncRoot + "/testshare" << 2;
|
||||||
@ -2393,7 +2392,7 @@ void tst_QDir::cdBelowRoot_data()
|
|||||||
const QString systemRoot = QString::fromLocal8Bit(qgetenv("SystemRoot"));
|
const QString systemRoot = QString::fromLocal8Bit(qgetenv("SystemRoot"));
|
||||||
QTest::newRow("windows-drive")
|
QTest::newRow("windows-drive")
|
||||||
<< systemDrive << systemRoot.mid(3) << QDir::cleanPath(systemRoot);
|
<< systemDrive << systemRoot.mid(3) << QDir::cleanPath(systemRoot);
|
||||||
const QString uncRoot = QStringLiteral("//") + QtNetworkSettings::winServerName();
|
const QString uncRoot = QStringLiteral("//") + QTest::uncServerName();
|
||||||
const QString testDirectory = QStringLiteral("testshare");
|
const QString testDirectory = QStringLiteral("testshare");
|
||||||
QTest::newRow("windows-share")
|
QTest::newRow("windows-share")
|
||||||
<< uncRoot << testDirectory << QDir::cleanPath(uncRoot + QLatin1Char('/') + testDirectory);
|
<< uncRoot << testDirectory << QDir::cleanPath(uncRoot + QLatin1Char('/') + testDirectory);
|
||||||
|
@ -18,9 +18,7 @@
|
|||||||
#define Q_NO_SYMLINKS
|
#define Q_NO_SYMLINKS
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(Q_OS_WIN)
|
#include "../../../../shared/filesystem.h"
|
||||||
# include "../../../network-settings.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef Q_OS_ANDROID
|
#ifdef Q_OS_ANDROID
|
||||||
#include <QStandardPaths>
|
#include <QStandardPaths>
|
||||||
@ -563,11 +561,11 @@ void tst_QDirIterator::uncPaths_data()
|
|||||||
{
|
{
|
||||||
QTest::addColumn<QString>("dirName");
|
QTest::addColumn<QString>("dirName");
|
||||||
QTest::newRow("uncserver")
|
QTest::newRow("uncserver")
|
||||||
<<QString("//" + QtNetworkSettings::winServerName());
|
<<QString("//" + QTest::uncServerName());
|
||||||
QTest::newRow("uncserver/testshare")
|
QTest::newRow("uncserver/testshare")
|
||||||
<<QString("//" + QtNetworkSettings::winServerName() + "/testshare");
|
<<QString("//" + QTest::uncServerName() + "/testshare");
|
||||||
QTest::newRow("uncserver/testshare/tmp")
|
QTest::newRow("uncserver/testshare/tmp")
|
||||||
<<QString("//" + QtNetworkSettings::winServerName() + "/testshare/tmp");
|
<<QString("//" + QTest::uncServerName() + "/testshare/tmp");
|
||||||
}
|
}
|
||||||
void tst_QDirIterator::uncPaths()
|
void tst_QDirIterator::uncPaths()
|
||||||
{
|
{
|
||||||
|
@ -74,9 +74,7 @@ QT_END_NAMESPACE
|
|||||||
# undef fileno
|
# undef fileno
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(Q_OS_WIN)
|
#include "../../../../shared/filesystem.h"
|
||||||
#include "../../../network-settings.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef STDIN_FILENO
|
#ifndef STDIN_FILENO
|
||||||
#define STDIN_FILENO 0
|
#define STDIN_FILENO 0
|
||||||
@ -542,7 +540,7 @@ void tst_QFile::exists()
|
|||||||
QVERIFY(!file.exists());
|
QVERIFY(!file.exists());
|
||||||
|
|
||||||
#if defined(Q_OS_WIN)
|
#if defined(Q_OS_WIN)
|
||||||
const QString uncPath = "//" + QtNetworkSettings::winServerName() + "/testshare/readme.txt";
|
const QString uncPath = "//" + QTest::uncServerName() + "/testshare/readme.txt";
|
||||||
QFile unc(uncPath);
|
QFile unc(uncPath);
|
||||||
QVERIFY2(unc.exists(), msgFileDoesNotExist(uncPath).constData());
|
QVERIFY2(unc.exists(), msgFileDoesNotExist(uncPath).constData());
|
||||||
#endif
|
#endif
|
||||||
@ -608,7 +606,7 @@ void tst_QFile::open_data()
|
|||||||
QTest::newRow("//./PhysicalDrive0") << QString("//./PhysicalDrive0") << int(QIODevice::ReadOnly)
|
QTest::newRow("//./PhysicalDrive0") << QString("//./PhysicalDrive0") << int(QIODevice::ReadOnly)
|
||||||
<< false << QFile::OpenError;
|
<< false << QFile::OpenError;
|
||||||
}
|
}
|
||||||
QTest::newRow("uncFile") << "//" + QtNetworkSettings::winServerName() + "/testshare/test.pri" << int(QIODevice::ReadOnly)
|
QTest::newRow("uncFile") << "//" + QTest::uncServerName() + "/testshare/test.pri" << int(QIODevice::ReadOnly)
|
||||||
<< true << QFile::NoError;
|
<< true << QFile::NoError;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
@ -682,7 +680,7 @@ void tst_QFile::size_data()
|
|||||||
QTest::newRow( "exist01" ) << m_testFile << (qint64)245;
|
QTest::newRow( "exist01" ) << m_testFile << (qint64)245;
|
||||||
#if defined(Q_OS_WIN)
|
#if defined(Q_OS_WIN)
|
||||||
// Only test UNC on Windows./
|
// Only test UNC on Windows./
|
||||||
QTest::newRow("unc") << "//" + QString(QtNetworkSettings::winServerName() + "/testshare/test.pri") << (qint64)34;
|
QTest::newRow("unc") << "//" + QString(QTest::uncServerName() + "/testshare/test.pri") << (qint64)34;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1769,7 +1767,7 @@ void tst_QFile::largeUncFileSupport()
|
|||||||
qint64 size = Q_INT64_C(8589934592);
|
qint64 size = Q_INT64_C(8589934592);
|
||||||
qint64 dataOffset = Q_INT64_C(8589914592);
|
qint64 dataOffset = Q_INT64_C(8589914592);
|
||||||
QByteArray knownData("LargeFile content at offset 8589914592");
|
QByteArray knownData("LargeFile content at offset 8589914592");
|
||||||
QString largeFile("//" + QtNetworkSettings::winServerName() + "/testsharelargefile/file.bin");
|
QString largeFile("//" + QTest::uncServerName() + "/testsharelargefile/file.bin");
|
||||||
const QByteArray largeFileEncoded = QFile::encodeName(largeFile);
|
const QByteArray largeFileEncoded = QFile::encodeName(largeFile);
|
||||||
|
|
||||||
{
|
{
|
||||||
@ -2450,7 +2448,7 @@ void tst_QFile::writeLargeDataBlock_data()
|
|||||||
#if defined(Q_OS_WIN) && !defined(QT_NO_NETWORK)
|
#if defined(Q_OS_WIN) && !defined(QT_NO_NETWORK)
|
||||||
// Some semi-randomness to avoid collisions.
|
// Some semi-randomness to avoid collisions.
|
||||||
QTest::newRow("unc file")
|
QTest::newRow("unc file")
|
||||||
<< QString("//" + QtNetworkSettings::winServerName() + "/TESTSHAREWRITABLE/largefile-%1-%2.txt")
|
<< QString("//" + QTest::uncServerName() + "/TESTSHAREWRITABLE/largefile-%1-%2.txt")
|
||||||
.arg(QHostInfo::localHostName())
|
.arg(QHostInfo::localHostName())
|
||||||
.arg(QTime::currentTime().msec()) << (int)OpenQFile;
|
.arg(QTime::currentTime().msec()) << (int)OpenQFile;
|
||||||
#endif
|
#endif
|
||||||
@ -2875,7 +2873,7 @@ void tst_QFile::miscWithUncPathAsCurrentDir()
|
|||||||
{
|
{
|
||||||
#if defined(Q_OS_WIN)
|
#if defined(Q_OS_WIN)
|
||||||
QString current = QDir::currentPath();
|
QString current = QDir::currentPath();
|
||||||
const QString path = QLatin1String("//") + QtNetworkSettings::winServerName()
|
const QString path = QLatin1String("//") + QTest::uncServerName()
|
||||||
+ QLatin1String("/testshare");
|
+ QLatin1String("/testshare");
|
||||||
QVERIFY2(QDir::setCurrent(path), qPrintable(QDir::toNativeSeparators(path)));
|
QVERIFY2(QDir::setCurrent(path), qPrintable(QDir::toNativeSeparators(path)));
|
||||||
QFile file("test.pri");
|
QFile file("test.pri");
|
||||||
|
@ -31,9 +31,6 @@
|
|||||||
#endif
|
#endif
|
||||||
#include <qplatformdefs.h>
|
#include <qplatformdefs.h>
|
||||||
#include <qdebug.h>
|
#include <qdebug.h>
|
||||||
#if defined(Q_OS_WIN)
|
|
||||||
#include "../../../network-settings.h"
|
|
||||||
#endif
|
|
||||||
#include <private/qfileinfo_p.h>
|
#include <private/qfileinfo_p.h>
|
||||||
#include "../../../../shared/filesystem.h"
|
#include "../../../../shared/filesystem.h"
|
||||||
|
|
||||||
@ -383,7 +380,7 @@ void tst_QFileInfo::isDir_data()
|
|||||||
//QTest::newRow("drive 2") << "t:s" << false;
|
//QTest::newRow("drive 2") << "t:s" << false;
|
||||||
#endif
|
#endif
|
||||||
#if defined(Q_OS_WIN)
|
#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 1") << uncRoot << true;
|
||||||
QTest::newRow("unc 2") << uncRoot + QLatin1Char('/') << true;
|
QTest::newRow("unc 2") << uncRoot + QLatin1Char('/') << true;
|
||||||
QTest::newRow("unc 3") << uncRoot + "/testshare" << true;
|
QTest::newRow("unc 3") << uncRoot + "/testshare" << true;
|
||||||
@ -426,7 +423,7 @@ void tst_QFileInfo::isRoot_data()
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(Q_OS_WIN)
|
#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 1") << uncRoot << true;
|
||||||
QTest::newRow("unc 2") << uncRoot + QLatin1Char('/') << true;
|
QTest::newRow("unc 2") << uncRoot + QLatin1Char('/') << true;
|
||||||
QTest::newRow("unc 3") << uncRoot + "/testshare" << false;
|
QTest::newRow("unc 3") << uncRoot + "/testshare" << false;
|
||||||
@ -470,7 +467,7 @@ void tst_QFileInfo::exists_data()
|
|||||||
QTest::newRow("simple dir with slash") << (m_resourcesDir + QLatin1Char('/')) << true;
|
QTest::newRow("simple dir with slash") << (m_resourcesDir + QLatin1Char('/')) << true;
|
||||||
|
|
||||||
#if defined(Q_OS_WIN)
|
#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 1") << uncRoot << true;
|
||||||
QTest::newRow("unc 2") << uncRoot + QLatin1Char('/') << true;
|
QTest::newRow("unc 2") << uncRoot + QLatin1Char('/') << true;
|
||||||
QTest::newRow("unc 3") << uncRoot + "/testshare" << true;
|
QTest::newRow("unc 3") << uncRoot + "/testshare" << true;
|
||||||
@ -1732,7 +1729,7 @@ void tst_QFileInfo::ntfsJunctionPointsAndSymlinks_data()
|
|||||||
{
|
{
|
||||||
// Symlink to UNC share
|
// Symlink to UNC share
|
||||||
pwd.mkdir("unc");
|
pwd.mkdir("unc");
|
||||||
QString uncTarget = QStringLiteral("//") + QtNetworkSettings::winServerName() + "/testshare";
|
QString uncTarget = QStringLiteral("//") + QTest::uncServerName() + "/testshare";
|
||||||
QString uncSymlink = QDir::toNativeSeparators(pwd.absolutePath().append("\\unc\\link_to_unc"));
|
QString uncSymlink = QDir::toNativeSeparators(pwd.absolutePath().append("\\unc\\link_to_unc"));
|
||||||
QTest::newRow("UNC symlink")
|
QTest::newRow("UNC symlink")
|
||||||
<< NtfsTestResource(NtfsTestResource::SymLink, uncSymlink, uncTarget)
|
<< NtfsTestResource(NtfsTestResource::SymLink, uncSymlink, uncTarget)
|
||||||
|
@ -35,9 +35,7 @@
|
|||||||
#include <qpa/qplatformdialoghelper.h>
|
#include <qpa/qplatformdialoghelper.h>
|
||||||
#include <qpa/qplatformintegration.h>
|
#include <qpa/qplatformintegration.h>
|
||||||
|
|
||||||
#if defined(Q_OS_WIN)
|
#include "../../../../shared/filesystem.h"
|
||||||
#include "../../../network-settings.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined QT_BUILD_INTERNAL
|
#if defined QT_BUILD_INTERNAL
|
||||||
QT_BEGIN_NAMESPACE
|
QT_BEGIN_NAMESPACE
|
||||||
@ -256,7 +254,7 @@ void tst_QFileDialog2::unc()
|
|||||||
{
|
{
|
||||||
#if defined(Q_OS_WIN)
|
#if defined(Q_OS_WIN)
|
||||||
// Only test UNC on Windows./
|
// Only test UNC on Windows./
|
||||||
QString dir("\\\\" + QtNetworkSettings::winServerName() + "\\testsharewritable");
|
QString dir("\\\\" + QTest::uncServerName() + "\\testsharewritable");
|
||||||
#else
|
#else
|
||||||
QString dir(QDir::currentPath());
|
QString dir(QDir::currentPath());
|
||||||
#endif
|
#endif
|
||||||
|
@ -25,6 +25,9 @@
|
|||||||
#ifndef SYMBOLIC_LINK_FLAG_ALLOW_UNPRIVILEGED_CREATE // MinGW
|
#ifndef SYMBOLIC_LINK_FLAG_ALLOW_UNPRIVILEGED_CREATE // MinGW
|
||||||
#define SYMBOLIC_LINK_FLAG_ALLOW_UNPRIVILEGED_CREATE (0x2)
|
#define SYMBOLIC_LINK_FLAG_ALLOW_UNPRIVILEGED_CREATE (0x2)
|
||||||
#endif
|
#endif
|
||||||
|
namespace QTest {
|
||||||
|
static QString uncServerName() { return qgetenv("COMPUTERNAME"); }
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// QTemporaryDir-based helper class for creating file-system hierarchies and cleaning up.
|
// QTemporaryDir-based helper class for creating file-system hierarchies and cleaning up.
|
||||||
|
Loading…
Reference in New Issue
Block a user