summaryrefslogtreecommitdiffstats
path: root/tests/auto/corelib/io
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@theqtcompany.com>2015-07-01 11:05:26 +0200
committerLiang Qi <liang.qi@theqtcompany.com>2015-07-01 11:05:26 +0200
commit0aa2d318b1524cdab42ab9988270779ddcc1922a (patch)
tree695c70702763ba2c66eb398ae9d545fc712a9e2d /tests/auto/corelib/io
parent6251d4dafc86bcbec09d1962050af9924249d419 (diff)
parent49049d90470eb3e94bda77d19ab7f7c57a0bd57f (diff)
Merge remote-tracking branch 'origin/5.5' into dev
Conflicts: src/corelib/global/qglobal.cpp src/corelib/global/qglobal.h src/corelib/global/qsysinfo.h src/corelib/global/qsystemdetection.h src/corelib/kernel/qobjectdefs.h src/plugins/plugins.pro tests/auto/widgets/itemviews/qlistview/qlistview.pro Change-Id: Ib55aa79d707c4c1453fb9d697f6cf92211ed665c
Diffstat (limited to 'tests/auto/corelib/io')
-rw-r--r--tests/auto/corelib/io/largefile/largefile.pro2
-rw-r--r--tests/auto/corelib/io/qdatastream/tst_qdatastream.cpp2
-rw-r--r--tests/auto/corelib/io/qdir/tst_qdir.cpp11
-rw-r--r--tests/auto/corelib/io/qfile/test/test.pro2
-rw-r--r--tests/auto/corelib/io/qfile/tst_qfile.cpp2
-rw-r--r--tests/auto/corelib/io/qfileinfo/qfileinfo.pro2
-rw-r--r--tests/auto/corelib/io/qfileinfo/tst_qfileinfo.cpp43
-rw-r--r--tests/auto/corelib/io/qfilesystemwatcher/tst_qfilesystemwatcher.cpp26
-rw-r--r--tests/auto/corelib/io/qprocess/testSoftExit/testSoftExit.pro2
-rw-r--r--tests/auto/corelib/io/qprocess/tst_qprocess.cpp2
-rw-r--r--tests/auto/corelib/io/qsettings/tst_qsettings.cpp2
-rw-r--r--tests/auto/corelib/io/qstorageinfo/tst_qstorageinfo.cpp18
-rw-r--r--tests/auto/corelib/io/qtextstream/tst_qtextstream.cpp18
13 files changed, 88 insertions, 44 deletions
diff --git a/tests/auto/corelib/io/largefile/largefile.pro b/tests/auto/corelib/io/largefile/largefile.pro
index 55878196cd..d9938d07d5 100644
--- a/tests/auto/corelib/io/largefile/largefile.pro
+++ b/tests/auto/corelib/io/largefile/largefile.pro
@@ -3,5 +3,5 @@ TARGET = tst_largefile
QT = core testlib
SOURCES = tst_largefile.cpp
-wince*: SOURCES += $$QT_SOURCE_TREE/src/corelib/kernel/qfunctions_wince.cpp
+wince: SOURCES += $$QT_SOURCE_TREE/src/corelib/kernel/qfunctions_wince.cpp
DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/corelib/io/qdatastream/tst_qdatastream.cpp b/tests/auto/corelib/io/qdatastream/tst_qdatastream.cpp
index 9d29b5401f..2cf93e1c45 100644
--- a/tests/auto/corelib/io/qdatastream/tst_qdatastream.cpp
+++ b/tests/auto/corelib/io/qdatastream/tst_qdatastream.cpp
@@ -1837,7 +1837,7 @@ static QRegion qRegionData(int index)
case 12: return QRegion(0, 0, 3, 3, QRegion::Ellipse);
#else
case 7:
- qWarning("Skipping streaming of elliptical regions on embedded, Mac OS X, and X11;"
+ qWarning("Skipping streaming of elliptical regions on embedded, OS X, and X11;"
" our pointarray stuff is not that great at approximating.");
#endif
}
diff --git a/tests/auto/corelib/io/qdir/tst_qdir.cpp b/tests/auto/corelib/io/qdir/tst_qdir.cpp
index e8a7105f6e..45289df398 100644
--- a/tests/auto/corelib/io/qdir/tst_qdir.cpp
+++ b/tests/auto/corelib/io/qdir/tst_qdir.cpp
@@ -1366,6 +1366,9 @@ void tst_QDir::relativeFilePath_data()
QTest::newRow("11") << "" << "" << "";
+ QTest::newRow("same path 1") << "/tmp" << "/tmp" << ".";
+ QTest::newRow("same path 2") << "//tmp" << "/tmp/" << ".";
+
#if (defined(Q_OS_WIN) && !defined(Q_OS_WINCE))
QTest::newRow("12") << "C:/foo/bar" << "ding" << "ding";
QTest::newRow("13") << "C:/foo/bar" << "C:/ding/dong" << "../../ding/dong";
@@ -1373,10 +1376,10 @@ void tst_QDir::relativeFilePath_data()
QTest::newRow("15") << "C:/foo/bar" << "D:/ding/dong" << "D:/ding/dong";
QTest::newRow("16") << "C:" << "C:/ding/dong" << "ding/dong";
QTest::newRow("17") << "C:/" << "C:/ding/dong" << "ding/dong";
- QTest::newRow("18") << "C:" << "C:" << "";
- QTest::newRow("19") << "C:/" << "C:" << "";
- QTest::newRow("20") << "C:" << "C:/" << "";
- QTest::newRow("21") << "C:/" << "C:/" << "";
+ QTest::newRow("18") << "C:" << "C:" << ".";
+ QTest::newRow("19") << "C:/" << "C:" << ".";
+ QTest::newRow("20") << "C:" << "C:/" << ".";
+ QTest::newRow("21") << "C:/" << "C:/" << ".";
QTest::newRow("22") << "C:" << "C:file.txt" << "file.txt";
QTest::newRow("23") << "C:/" << "C:file.txt" << "file.txt";
QTest::newRow("24") << "C:" << "C:/file.txt" << "file.txt";
diff --git a/tests/auto/corelib/io/qfile/test/test.pro b/tests/auto/corelib/io/qfile/test/test.pro
index 03863e9943..9aa4119795 100644
--- a/tests/auto/corelib/io/qfile/test/test.pro
+++ b/tests/auto/corelib/io/qfile/test/test.pro
@@ -7,7 +7,7 @@ else: DEFINES += QT_NO_NETWORK
TARGET = ../tst_qfile
SOURCES = ../tst_qfile.cpp
-wince*: SOURCES += $$QT_SOURCE_TREE/src/corelib/kernel/qfunctions_wince.cpp
+wince: SOURCES += $$QT_SOURCE_TREE/src/corelib/kernel/qfunctions_wince.cpp
RESOURCES += ../qfile.qrc ../rename-fallback.qrc ../copy-fallback.qrc
diff --git a/tests/auto/corelib/io/qfile/tst_qfile.cpp b/tests/auto/corelib/io/qfile/tst_qfile.cpp
index 5025dd38db..b423e857d0 100644
--- a/tests/auto/corelib/io/qfile/tst_qfile.cpp
+++ b/tests/auto/corelib/io/qfile/tst_qfile.cpp
@@ -2192,7 +2192,7 @@ void tst_QFile::removeOpenFile()
bool opened = f.open(QIODevice::ReadOnly);
QVERIFY(opened);
f.readAll();
- // this used to only fail on FreeBSD (and Mac OS X)
+ // this used to only fail on FreeBSD (and OS X)
QVERIFY(f.flush());
bool removed = f.remove(); // remove should both close and remove the file
QVERIFY(removed);
diff --git a/tests/auto/corelib/io/qfileinfo/qfileinfo.pro b/tests/auto/corelib/io/qfileinfo/qfileinfo.pro
index 0ac7b30abd..571637be37 100644
--- a/tests/auto/corelib/io/qfileinfo/qfileinfo.pro
+++ b/tests/auto/corelib/io/qfileinfo/qfileinfo.pro
@@ -5,7 +5,7 @@ SOURCES = tst_qfileinfo.cpp
RESOURCES += qfileinfo.qrc \
testdata.qrc
-win32*:!wince*:!winrt:LIBS += -ladvapi32 -lnetapi32
+win32:!wince:!winrt:LIBS += -ladvapi32 -lnetapi32
DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
win32: CONFIG += insignificant_test # Crashes on Windows in release builds
diff --git a/tests/auto/corelib/io/qfileinfo/tst_qfileinfo.cpp b/tests/auto/corelib/io/qfileinfo/tst_qfileinfo.cpp
index 62e183f619..2b01cfd7a9 100644
--- a/tests/auto/corelib/io/qfileinfo/tst_qfileinfo.cpp
+++ b/tests/auto/corelib/io/qfileinfo/tst_qfileinfo.cpp
@@ -263,21 +263,23 @@ private slots:
private:
const QString m_currentDir;
- QString m_dataPath;
QString m_sourceFile;
QString m_proFile;
QString m_resourcesDir;
QTemporaryDir m_dir;
+ QSharedPointer<QTemporaryDir> m_dataDir;
};
void tst_QFileInfo::initTestCase()
{
- m_dataPath = QEXTRACTTESTDATA("/testdata");
- QVERIFY(!m_dataPath.isEmpty());
+ m_dataDir = QEXTRACTTESTDATA("/testdata");
+ QVERIFY(m_dataDir);
+ const QString dataPath = m_dataDir->path();
+ QVERIFY(!dataPath.isEmpty());
- m_sourceFile = m_dataPath + QStringLiteral("/tst_qfileinfo.cpp");
- m_resourcesDir = m_dataPath + QStringLiteral("/resources");
- m_proFile = m_dataPath + QStringLiteral("/tst_qfileinfo.pro");
+ m_sourceFile = dataPath + QLatin1String("/tst_qfileinfo.cpp");
+ m_resourcesDir = dataPath + QLatin1String("/resources");
+ m_proFile = dataPath + QLatin1String("/tst_qfileinfo.pro");
QVERIFY(m_dir.isValid());
QVERIFY(QDir::setCurrent(m_dir.path()));
@@ -286,7 +288,6 @@ void tst_QFileInfo::initTestCase()
void tst_QFileInfo::cleanupTestCase()
{
QDir::setCurrent(m_currentDir); // Release temporary directory so that it can be deleted on Windows
- QDir(m_dataPath).removeRecursively();
}
// Testing get/set functions
@@ -609,6 +610,16 @@ void tst_QFileInfo::canonicalPath()
QCOMPARE(fi.canonicalPath(), QFileInfo(QDir::tempPath()).canonicalFilePath());
}
+class FileDeleter {
+ Q_DISABLE_COPY(FileDeleter)
+public:
+ explicit FileDeleter(const QString fileName) : m_fileName(fileName) {}
+ ~FileDeleter() { QFile::remove(m_fileName); }
+
+private:
+ const QString m_fileName;
+};
+
void tst_QFileInfo::canonicalFilePath()
{
const QString fileName("tmp.canon");
@@ -639,9 +650,13 @@ void tst_QFileInfo::canonicalFilePath()
QCOMPARE(info1.canonicalFilePath(), info2.canonicalFilePath());
}
}
+
+ const QString dirSymLinkName = QLatin1String("tst_qfileinfo")
+ + QDateTime::currentDateTime().toString(QLatin1String("yyMMddhhmmss"));
+ const QString link(QDir::tempPath() + QLatin1Char('/') + dirSymLinkName);
+ FileDeleter dirSymLinkDeleter(link);
+
{
- const QString link(QDir::tempPath() + QDir::separator() + "tst_qfileinfo");
- QFile::remove(link);
QFile file(QDir::currentPath());
if (file.link(link)) {
QFile tempfile("tempfile.txt");
@@ -666,12 +681,12 @@ void tst_QFileInfo::canonicalFilePath()
}
}
{
- QString link(QDir::tempPath() + QDir::separator() + "tst_qfileinfo"
- + QDir::separator() + "link_to_tst_qfileinfo");
+ QString link(QDir::tempPath() + QLatin1Char('/') + dirSymLinkName
+ + "/link_to_tst_qfileinfo");
QFile::remove(link);
- QFile file(QDir::tempPath() + QDir::separator() + "tst_qfileinfo"
- + QDir::separator() + "tst_qfileinfo.cpp");
+ QFile file(QDir::tempPath() + QLatin1Char('/') + dirSymLinkName
+ + "tst_qfileinfo.cpp");
if (file.link(link))
{
QFileInfo info1("tst_qfileinfo.cpp");
@@ -1266,7 +1281,7 @@ void tst_QFileInfo::isHidden_data()
#endif
#if defined(Q_OS_MAC)
- // /bin has the hidden attribute on Mac OS X
+ // /bin has the hidden attribute on OS X
QTest::newRow("/bin/") << QString::fromLatin1("/bin/") << true;
#elif !defined(Q_OS_WIN)
QTest::newRow("/bin/") << QString::fromLatin1("/bin/") << false;
diff --git a/tests/auto/corelib/io/qfilesystemwatcher/tst_qfilesystemwatcher.cpp b/tests/auto/corelib/io/qfilesystemwatcher/tst_qfilesystemwatcher.cpp
index b78ff7ed80..a0434aa8ee 100644
--- a/tests/auto/corelib/io/qfilesystemwatcher/tst_qfilesystemwatcher.cpp
+++ b/tests/auto/corelib/io/qfilesystemwatcher/tst_qfilesystemwatcher.cpp
@@ -62,6 +62,7 @@ private slots:
void removePath();
void addPaths();
void removePaths();
+ void removePathsFilesInSameDirectory();
void watchFileAndItsDirectory_data() { basicTest_data(); }
void watchFileAndItsDirectory();
@@ -460,6 +461,31 @@ void tst_QFileSystemWatcher::removePaths()
watcher.removePaths(paths);
}
+void tst_QFileSystemWatcher::removePathsFilesInSameDirectory()
+{
+ // QTBUG-46449/Windows: Check the return values of removePaths().
+ // When adding the 1st file, a thread is started to watch the temp path.
+ // After adding and removing the 2nd file, the thread is still running and
+ // success should be reported.
+ QTemporaryFile file1(m_tempDirPattern);
+ QTemporaryFile file2(m_tempDirPattern);
+ QVERIFY2(file1.open(), qPrintable(file1.errorString()));
+ QVERIFY2(file2.open(), qPrintable(file1.errorString()));
+ const QString path1 = file1.fileName();
+ const QString path2 = file2.fileName();
+ file1.close();
+ file2.close();
+ QFileSystemWatcher watcher;
+ QVERIFY(watcher.addPath(path1));
+ QCOMPARE(watcher.files().size(), 1);
+ QVERIFY(watcher.addPath(path2));
+ QCOMPARE(watcher.files().size(), 2);
+ QVERIFY(watcher.removePath(path1));
+ QCOMPARE(watcher.files().size(), 1);
+ QVERIFY(watcher.removePath(path2));
+ QCOMPARE(watcher.files().size(), 0);
+}
+
static QByteArray msgFileOperationFailed(const char *what, const QFile &f)
{
return what + QByteArrayLiteral(" failed on \"")
diff --git a/tests/auto/corelib/io/qprocess/testSoftExit/testSoftExit.pro b/tests/auto/corelib/io/qprocess/testSoftExit/testSoftExit.pro
index 7f3b8ade3e..b59241851f 100644
--- a/tests/auto/corelib/io/qprocess/testSoftExit/testSoftExit.pro
+++ b/tests/auto/corelib/io/qprocess/testSoftExit/testSoftExit.pro
@@ -1,6 +1,6 @@
win32 {
SOURCES = main_win.cpp
- !wince*:LIBS += -luser32
+ !wince: LIBS += -luser32
}
unix {
SOURCES = main_unix.cpp
diff --git a/tests/auto/corelib/io/qprocess/tst_qprocess.cpp b/tests/auto/corelib/io/qprocess/tst_qprocess.cpp
index 399e9b9222..0c65ceb0eb 100644
--- a/tests/auto/corelib/io/qprocess/tst_qprocess.cpp
+++ b/tests/auto/corelib/io/qprocess/tst_qprocess.cpp
@@ -1558,7 +1558,7 @@ void tst_QProcess::failToStart()
QVERIFY(finishedSpy.isValid());
QVERIFY(finishedSpy2.isValid());
-// Mac OS X and HP-UX have a really low default process limit (~100), so spawning
+// OS X and HP-UX have a really low default process limit (~100), so spawning
// to many processes here will cause test failures later on.
#if defined Q_OS_HPUX
const int attempts = 15;
diff --git a/tests/auto/corelib/io/qsettings/tst_qsettings.cpp b/tests/auto/corelib/io/qsettings/tst_qsettings.cpp
index bc33d5991b..e2e1d99657 100644
--- a/tests/auto/corelib/io/qsettings/tst_qsettings.cpp
+++ b/tests/auto/corelib/io/qsettings/tst_qsettings.cpp
@@ -1476,7 +1476,7 @@ void tst_QSettings::remove()
void tst_QSettings::contains()
{
QSettings settings1(QSettings::UserScope, "software.org", "KillerAPP");
- int initialNumKeys = settings1.allKeys().size(); // 0 on all platforms but Mac OS X.
+ int initialNumKeys = settings1.allKeys().size(); // 0 on all platforms but OS X.
settings1.setValue("alpha/beta/geometry", -7);
settings1.setValue("alpha/beta/geometry/x", 1);
settings1.setValue("alpha/beta/geometry/y", 2);
diff --git a/tests/auto/corelib/io/qstorageinfo/tst_qstorageinfo.cpp b/tests/auto/corelib/io/qstorageinfo/tst_qstorageinfo.cpp
index 2190c32c01..a7a0cf4ddb 100644
--- a/tests/auto/corelib/io/qstorageinfo/tst_qstorageinfo.cpp
+++ b/tests/auto/corelib/io/qstorageinfo/tst_qstorageinfo.cpp
@@ -61,9 +61,9 @@ void tst_QStorageInfo::defaultValues()
QVERIFY(!storage.isRoot());
QVERIFY(storage.device().isEmpty());
QVERIFY(storage.fileSystemType().isEmpty());
- QVERIFY(storage.bytesTotal() == 0);
- QVERIFY(storage.bytesFree() == 0);
- QVERIFY(storage.bytesAvailable() == 0);
+ QVERIFY(storage.bytesTotal() == -1);
+ QVERIFY(storage.bytesFree() == -1);
+ QVERIFY(storage.bytesAvailable() == -1);
}
void tst_QStorageInfo::operatorEqual()
@@ -106,9 +106,9 @@ void tst_QStorageInfo::root()
QVERIFY(!storage.device().isEmpty());
QVERIFY(!storage.fileSystemType().isEmpty());
#ifndef Q_OS_HAIKU
- QVERIFY(storage.bytesTotal() > 0);
- QVERIFY(storage.bytesFree() > 0);
- QVERIFY(storage.bytesAvailable() > 0);
+ QVERIFY(storage.bytesTotal() >= 0);
+ QVERIFY(storage.bytesFree() >= 0);
+ QVERIFY(storage.bytesAvailable() >= 0);
#endif
}
@@ -121,9 +121,9 @@ void tst_QStorageInfo::currentStorage()
QVERIFY(appPath.startsWith(storage.rootPath(), Qt::CaseInsensitive));
QVERIFY(!storage.device().isEmpty());
QVERIFY(!storage.fileSystemType().isEmpty());
- QVERIFY(storage.bytesTotal() > 0);
- QVERIFY(storage.bytesFree() > 0);
- QVERIFY(storage.bytesAvailable() > 0);
+ QVERIFY(storage.bytesTotal() >= 0);
+ QVERIFY(storage.bytesFree() >= 0);
+ QVERIFY(storage.bytesAvailable() >= 0);
}
void tst_QStorageInfo::storageList()
diff --git a/tests/auto/corelib/io/qtextstream/tst_qtextstream.cpp b/tests/auto/corelib/io/qtextstream/tst_qtextstream.cpp
index aa7a3762ce..36da3b8770 100644
--- a/tests/auto/corelib/io/qtextstream/tst_qtextstream.cpp
+++ b/tests/auto/corelib/io/qtextstream/tst_qtextstream.cpp
@@ -81,7 +81,7 @@ private slots:
void readLineMaxlen_data();
void readLineMaxlen();
void readLinesFromBufferCRCR();
- void readLineOverload();
+ void readLineInto();
// all
void readAllFromDevice_data();
@@ -612,22 +612,22 @@ protected:
}
};
-void tst_QTextStream::readLineOverload()
+void tst_QTextStream::readLineInto()
{
QByteArray data = "1\n2\n3";
QTextStream ts(&data);
QString line;
- ts.readLine(&line);
+ ts.readLineInto(&line);
QCOMPARE(line, QStringLiteral("1"));
- ts.readLine(Q_NULLPTR, 0); // read the second line, but don't store it
+ ts.readLineInto(Q_NULLPTR, 0); // read the second line, but don't store it
- ts.readLine(&line);
+ ts.readLineInto(&line);
QCOMPARE(line, QStringLiteral("3"));
- QVERIFY(!ts.readLine(&line));
+ QVERIFY(!ts.readLineInto(&line));
QVERIFY(line.isEmpty());
QFile file(m_rfc3261FilePath);
@@ -637,7 +637,7 @@ void tst_QTextStream::readLineOverload()
line.reserve(1);
int maxLineCapacity = line.capacity();
- while (ts.readLine(&line)) {
+ while (ts.readLineInto(&line)) {
QVERIFY(line.capacity() >= maxLineCapacity);
maxLineCapacity = line.capacity();
}
@@ -647,7 +647,7 @@ void tst_QTextStream::readLineOverload()
QVERIFY(errorDevice.open(QIODevice::ReadOnly));
ts.setDevice(&errorDevice);
- QVERIFY(!ts.readLine(&line));
+ QVERIFY(!ts.readLineInto(&line));
QVERIFY(line.isEmpty());
}
@@ -1025,7 +1025,7 @@ void tst_QTextStream::performance()
QTextStream stream2(&file3);
QString line;
- while (stream2.readLine(&line))
+ while (stream2.readLineInto(&line))
++nlines3;
elapsed[2] = stopWatch.elapsed();