diff options
author | Liang Qi <liang.qi@theqtcompany.com> | 2015-10-14 15:45:35 +0200 |
---|---|---|
committer | Liang Qi <liang.qi@theqtcompany.com> | 2015-10-14 15:45:35 +0200 |
commit | 4456984da780b14572e1ec0f079a4d349ab299bd (patch) | |
tree | f586a281a81c57c91c49e83a5d3ec6c7eece0578 /tests/auto/corelib/io | |
parent | e824abd987d77efaa085fe1f9fb514d270798d55 (diff) | |
parent | 281121697340084f7d385eab530f41916789b94d (diff) |
Merge remote-tracking branch 'origin/5.6' into dev
Conflicts:
tests/auto/corelib/io/qfile/tst_qfile.cpp
tests/auto/corelib/io/qprocess/tst_qprocess.cpp
tests/auto/corelib/tools/qversionnumber/qversionnumber.pro
Change-Id: Ia93ce500349d96a2fbf0b4a37b73f088cc505c6e
Diffstat (limited to 'tests/auto/corelib/io')
-rw-r--r-- | tests/auto/corelib/io/qdir/tst_qdir.cpp | 69 | ||||
-rw-r--r-- | tests/auto/corelib/io/qfile/BLACKLIST | 5 | ||||
-rw-r--r-- | tests/auto/corelib/io/qfile/tst_qfile.cpp | 286 | ||||
-rw-r--r-- | tests/auto/corelib/io/qfileinfo/tst_qfileinfo.cpp | 98 | ||||
-rw-r--r-- | tests/auto/corelib/io/qfilesystemwatcher/tst_qfilesystemwatcher.cpp | 13 | ||||
-rw-r--r-- | tests/auto/corelib/io/qlockfile/tst_qlockfile.cpp | 1 | ||||
-rw-r--r-- | tests/auto/corelib/io/qprocess/BLACKLIST | 3 | ||||
-rw-r--r-- | tests/auto/corelib/io/qprocess/fileWriterProcess/main.cpp | 14 | ||||
-rw-r--r-- | tests/auto/corelib/io/qprocess/testDetached/main.cpp | 3 | ||||
-rw-r--r-- | tests/auto/corelib/io/qprocess/testExitCodes/main.cpp | 4 | ||||
-rw-r--r-- | tests/auto/corelib/io/qprocess/tst_qprocess.cpp | 475 | ||||
-rw-r--r-- | tests/auto/corelib/io/qsavefile/tst_qsavefile.cpp | 22 | ||||
-rw-r--r-- | tests/auto/corelib/io/qsettings/tst_qsettings.cpp | 2 | ||||
-rw-r--r-- | tests/auto/corelib/io/qstandardpaths/tst_qstandardpaths.cpp | 9 | ||||
-rw-r--r-- | tests/auto/corelib/io/qstorageinfo/tst_qstorageinfo.cpp | 4 | ||||
-rw-r--r-- | tests/auto/corelib/io/qtextstream/tst_qtextstream.cpp | 1 |
16 files changed, 600 insertions, 409 deletions
diff --git a/tests/auto/corelib/io/qdir/tst_qdir.cpp b/tests/auto/corelib/io/qdir/tst_qdir.cpp index 8a1777d7fd..2106a1cea8 100644 --- a/tests/auto/corelib/io/qdir/tst_qdir.cpp +++ b/tests/auto/corelib/io/qdir/tst_qdir.cpp @@ -68,6 +68,12 @@ QT_END_NAMESPACE #endif +static QByteArray msgDoesNotExist(const QString &name) +{ + return (QLatin1Char('"') + QDir::toNativeSeparators(name) + + QLatin1String("\" does not exist.")).toLocal8Bit(); +} + class tst_QDir : public QObject { Q_OBJECT @@ -354,7 +360,7 @@ void tst_QDir::mkdir() //make sure it really exists (ie that mkdir returns the right value) QFileInfo fi(path); - QVERIFY(fi.exists() && fi.isDir()); + QVERIFY2(fi.exists() && fi.isDir(), msgDoesNotExist(path).constData()); } void tst_QDir::makedirReturnCode() @@ -378,7 +384,7 @@ void tst_QDir::makedirReturnCode() f.open(QIODevice::WriteOnly); f.write("test"); f.close(); - QVERIFY(f.exists()); + QVERIFY2(f.exists(), msgDoesNotExist(f.fileName()).constData()); QVERIFY(!QDir::current().mkdir(dirName)); // calling mkdir on an existing file will fail. QVERIFY(!QDir::current().mkpath(dirName)); // calling mkpath on an existing file will fail. f.remove(); @@ -474,7 +480,7 @@ void tst_QDir::removeRecursivelyFailure() QVERIFY(!QDir().rmdir(path)); QDir dir(path); QVERIFY(!dir.removeRecursively()); // didn't work - QVERIFY(dir.exists()); // still exists + QVERIFY2(dir.exists(), msgDoesNotExist(dir.absolutePath()).constData()); // still exists QVERIFY(dirAsFile.setPermissions(QFile::Permissions(QFile::ReadOwner | QFile::WriteOwner | QFile::ExeOwner))); QVERIFY(dir.removeRecursively()); @@ -527,14 +533,15 @@ 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) && !defined(Q_OS_WINCE)) - QTest::newRow("unc 1") << "//" + QtNetworkSettings::winServerName() << true; - QTest::newRow("unc 2") << "//" + QtNetworkSettings::winServerName() + "/" << true; - QTest::newRow("unc 3") << "//" + QtNetworkSettings::winServerName() + "/testshare" << true; - QTest::newRow("unc 4") << "//" + QtNetworkSettings::winServerName() + "/testshare/" << true; - QTest::newRow("unc 5") << "//" + QtNetworkSettings::winServerName() + "/testshare/tmp" << true; - QTest::newRow("unc 6") << "//" + QtNetworkSettings::winServerName() + "/testshare/tmp/" << true; - QTest::newRow("unc 7") << "//" + QtNetworkSettings::winServerName() + "/testshare/adirthatshouldnotexist" << false; - QTest::newRow("unc 8") << "//" + QtNetworkSettings::winServerName() + "/asharethatshouldnotexist" << false; + const QString uncRoot = QStringLiteral("//") + QtNetworkSettings::winServerName(); + QTest::newRow("unc 1") << uncRoot << true; + QTest::newRow("unc 2") << uncRoot + QLatin1Char('/') << true; + QTest::newRow("unc 3") << uncRoot + "/testshare" << true; + QTest::newRow("unc 4") << uncRoot + "/testshare/" << true; + QTest::newRow("unc 5") << uncRoot + "/testshare/tmp" << true; + QTest::newRow("unc 6") << uncRoot + "/testshare/tmp/" << true; + QTest::newRow("unc 7") << uncRoot + "/testshare/adirthatshouldnotexist" << false; + QTest::newRow("unc 8") << uncRoot + "/asharethatshouldnotexist" << false; QTest::newRow("unc 9") << "//ahostthatshouldnotexist" << false; #endif #if (defined(Q_OS_WIN) && !defined(Q_OS_WINCE)) @@ -566,7 +573,10 @@ void tst_QDir::exists() QFETCH(bool, expected); QDir dir(path); - QCOMPARE(dir.exists(), expected); + if (expected) + QVERIFY2(dir.exists(), msgDoesNotExist(path).constData()); + else + QVERIFY(!dir.exists()); } void tst_QDir::isRelativePath_data() @@ -802,7 +812,7 @@ void tst_QDir::entryList() #endif //Q_NO_SYMLINKS QDir dir(dirName); - QVERIFY(dir.exists()); + QVERIFY2(dir.exists(), msgDoesNotExist(dirName).constData()); QStringList actual = dir.entryList(nameFilters, (QDir::Filters)filterspec, (QDir::SortFlags)sortspec); @@ -845,8 +855,8 @@ void tst_QDir::entryListTimedSort() QTemporaryFile aFile(entrylistPath + "A-XXXXXX.qws"); QTemporaryFile bFile(entrylistPath + "B-XXXXXX.qws"); - QVERIFY(aFile.open()); - QVERIFY(bFile.open()); + QVERIFY2(aFile.open(), qPrintable(aFile.errorString())); + QVERIFY2(bFile.open(), qPrintable(bFile.errorString())); { QProcess p; p.start(touchBinary, QStringList() << "-t" << "201306021513" << aFile.fileName()); @@ -888,18 +898,25 @@ void tst_QDir::entryListSimple_data() #endif #if defined(Q_OS_WIN) && !defined(Q_OS_WINCE) - QTest::newRow("unc 1") << "//" + QtNetworkSettings::winServerName() << 2; - QTest::newRow("unc 2") << "//" + QtNetworkSettings::winServerName() + "/" << 2; - QTest::newRow("unc 3") << "//" + QtNetworkSettings::winServerName() + "/testshare" << 2; - QTest::newRow("unc 4") << "//" + QtNetworkSettings::winServerName() + "/testshare/" << 2; - QTest::newRow("unc 5") << "//" + QtNetworkSettings::winServerName() + "/testshare/tmp" << 2; - QTest::newRow("unc 6") << "//" + QtNetworkSettings::winServerName() + "/testshare/tmp/" << 2; - QTest::newRow("unc 7") << "//" + QtNetworkSettings::winServerName() + "/testshare/adirthatshouldnotexist" << 0; - QTest::newRow("unc 8") << "//" + QtNetworkSettings::winServerName() + "/asharethatshouldnotexist" << 0; + const QString uncRoot = QStringLiteral("//") + QtNetworkSettings::winServerName(); + QTest::newRow("unc 1") << uncRoot << 2; + QTest::newRow("unc 2") << uncRoot + QLatin1Char('/') << 2; + QTest::newRow("unc 3") << uncRoot + "/testshare" << 2; + QTest::newRow("unc 4") << uncRoot + "/testshare/" << 2; + QTest::newRow("unc 5") << uncRoot + "/testshare/tmp" << 2; + QTest::newRow("unc 6") << uncRoot + "/testshare/tmp/" << 2; + QTest::newRow("unc 7") << uncRoot + "/testshare/adirthatshouldnotexist" << 0; + QTest::newRow("unc 8") << uncRoot + "/asharethatshouldnotexist" << 0; QTest::newRow("unc 9") << "//ahostthatshouldnotexist" << 0; #endif } +static QByteArray msgEntryListFailed(int actual, int expectedMin, const QString &name) +{ + return QByteArray::number(actual) + " < " + QByteArray::number(expectedMin) + " in \"" + + QFile::encodeName(QDir::toNativeSeparators(name)) + '"'; +} + void tst_QDir::entryListSimple() { QFETCH(QString, dirName); @@ -907,7 +924,7 @@ void tst_QDir::entryListSimple() QDir dir(dirName); QStringList actual = dir.entryList(); - QVERIFY(actual.count() >= countMin); + QVERIFY2(actual.count() >= countMin, msgEntryListFailed(actual.count(), countMin, dirName).constData()); } void tst_QDir::entryListWithSymLinks() @@ -1121,7 +1138,7 @@ void tst_QDir::setNameFilters() QFETCH(QStringList, expected); QDir dir(dirName); - QVERIFY(dir.exists()); + QVERIFY2(dir.exists(), msgDoesNotExist(dirName).constData()); dir.setNameFilters(nameFilters); QStringList actual = dir.entryList(); @@ -1504,7 +1521,7 @@ void tst_QDir::exists2() QDir dir; if (exists) - QVERIFY(dir.exists(path)); + QVERIFY2(dir.exists(path), msgDoesNotExist(path).constData()); else QVERIFY(!dir.exists(path)); diff --git a/tests/auto/corelib/io/qfile/BLACKLIST b/tests/auto/corelib/io/qfile/BLACKLIST new file mode 100644 index 0000000000..7aac313b12 --- /dev/null +++ b/tests/auto/corelib/io/qfile/BLACKLIST @@ -0,0 +1,5 @@ +# QTBUG-48455 +[readLineStdin] +msvc-2015 +[readLineStdin_lineByLine] +msvc-2015 diff --git a/tests/auto/corelib/io/qfile/tst_qfile.cpp b/tests/auto/corelib/io/qfile/tst_qfile.cpp index c1aed842cf..b4140e1115 100644 --- a/tests/auto/corelib/io/qfile/tst_qfile.cpp +++ b/tests/auto/corelib/io/qfile/tst_qfile.cpp @@ -390,9 +390,30 @@ tst_QFile::tst_QFile() : m_oldDir(QDir::currentPath()) { } +static QByteArray msgOpenFailed(QIODevice::OpenMode om, const QFile &file) +{ + QString result; + QDebug(&result).noquote().nospace() << "Could not open \"" + << QDir::toNativeSeparators(file.fileName()) << "\" using " + << om << ": " << file.errorString(); + return result.toLocal8Bit(); +} + +static QByteArray msgOpenFailed(const QFile &file) +{ + return (QLatin1String("Could not open \"") + QDir::toNativeSeparators(file.fileName()) + + QLatin1String("\": ") + file.errorString()).toLocal8Bit(); +} + +static QByteArray msgFileDoesNotExist(const QString &name) +{ + return (QLatin1Char('"') + QDir::toNativeSeparators(name) + + QLatin1String("\" does not exist.")).toLocal8Bit(); +} + void tst_QFile::initTestCase() { - QVERIFY(m_temporaryDir.isValid()); + QVERIFY2(m_temporaryDir.isValid(), qPrintable(m_temporaryDir.errorString())); m_stdinProcessDir = QFINDTESTDATA("stdinprocess"); QVERIFY(!m_stdinProcessDir.isEmpty()); m_testSourceFile = QFINDTESTDATA("tst_qfile.cpp"); @@ -418,19 +439,19 @@ void tst_QFile::initTestCase() // create a file and make it read-only QFile file(QString::fromLatin1(readOnlyFile)); - QVERIFY2(file.open(QFile::WriteOnly), qPrintable(file.errorString())); + QVERIFY2(file.open(QFile::WriteOnly), msgOpenFailed(file).constData()); file.write("a", 1); file.close(); QVERIFY2(file.setPermissions(QFile::ReadOwner), qPrintable(file.errorString())); // create another file and make it not readable file.setFileName(QString::fromLatin1(noReadFile)); - QVERIFY2(file.open(QFile::WriteOnly), qPrintable(file.errorString())); + QVERIFY2(file.open(QFile::WriteOnly), msgOpenFailed(file).constData()); file.write("b", 1); file.close(); #ifndef Q_OS_WIN // Not supported on Windows. QVERIFY2(file.setPermissions(0), qPrintable(file.errorString())); #else - QVERIFY2(file.open(QFile::WriteOnly), qPrintable(file.errorString())); + QVERIFY2(file.open(QFile::WriteOnly), msgOpenFailed(file).constData()); #endif } @@ -455,19 +476,19 @@ void tst_QFile::cleanupTestCase() void tst_QFile::exists() { QFile f( m_testFile ); - QVERIFY(f.exists()); + QVERIFY2(f.exists(), msgFileDoesNotExist(m_testFile)); QFile file("nobodyhassuchafile"); file.remove(); QVERIFY(!file.exists()); QFile file2("nobodyhassuchafile"); - QVERIFY(file2.open(QIODevice::WriteOnly)); + QVERIFY2(file2.open(QIODevice::WriteOnly), msgOpenFailed(file2).constData()); file2.close(); QVERIFY(file.exists()); - QVERIFY(file.open(QIODevice::WriteOnly)); + QVERIFY2(file.open(QIODevice::WriteOnly), msgOpenFailed(file).constData()); file.close(); QVERIFY(file.exists()); @@ -475,8 +496,9 @@ void tst_QFile::exists() QVERIFY(!file.exists()); #if defined(Q_OS_WIN) && !defined(Q_OS_WINCE) && !defined(Q_OS_WINRT) - QFile unc("//" + QtNetworkSettings::winServerName() + "/testshare/readme.txt"); - QVERIFY(unc.exists()); + const QString uncPath = "//" + QtNetworkSettings::winServerName() + "/testshare/readme.txt"; + QFile unc(uncPath); + QVERIFY2(unc.exists(), msgFileDoesNotExist(uncPath).constData()); #endif } @@ -558,7 +580,12 @@ void tst_QFile::open() if (filename.isEmpty()) QTest::ignoreMessage(QtWarningMsg, "QFSFileEngine::open: No file name specified"); - QCOMPARE(f.open( QIODevice::OpenMode(mode) ), ok); + const QIODevice::OpenMode om(mode); + const bool succeeded = f.open(om); + if (ok) + QVERIFY2(succeeded, msgOpenFailed(om, f).constData()); + else + QVERIFY(!succeeded); QTEST( f.error(), "status" ); } @@ -566,7 +593,7 @@ void tst_QFile::open() void tst_QFile::openUnbuffered() { QFile file(m_testFile); - QVERIFY(file.open(QIODevice::ReadOnly | QIODevice::Unbuffered)); + QVERIFY2(file.open(QIODevice::ReadOnly | QIODevice::Unbuffered), msgOpenFailed(file).constData()); char c = '\0'; QVERIFY(file.seek(1)); QCOMPARE(file.pos(), qint64(1)); @@ -618,7 +645,7 @@ void tst_QFile::size() QFile f( filename ); QCOMPARE( f.size(), size ); - QVERIFY( f.open(QIODevice::ReadOnly) ); + QVERIFY2(f.open(QIODevice::ReadOnly), msgOpenFailed(f).constData()); QCOMPARE( f.size(), size ); } @@ -662,7 +689,7 @@ void tst_QFile::sizeNoExist() void tst_QFile::seek() { QFile file("newfile.txt"); - file.open(QIODevice::WriteOnly); + QVERIFY2(file.open(QIODevice::WriteOnly), msgOpenFailed(file).constData()); QCOMPARE(file.size(), qint64(0)); QCOMPARE(file.pos(), qint64(0)); QVERIFY(file.seek(10)); @@ -674,7 +701,7 @@ void tst_QFile::seek() void tst_QFile::setSize() { QFile f("createme.txt"); - QVERIFY(f.open(QIODevice::Truncate | QIODevice::ReadWrite)); + QVERIFY2(f.open(QIODevice::Truncate | QIODevice::ReadWrite), msgOpenFailed(f).constData()); f.putChar('a'); f.seek(0); @@ -712,7 +739,7 @@ void tst_QFile::setSize() void tst_QFile::setSizeSeek() { QFile f("setsizeseek.txt"); - QVERIFY(f.open(QFile::WriteOnly)); + QVERIFY2(f.open(QFile::WriteOnly), msgOpenFailed(f).constData()); f.write("ABCD"); QCOMPARE(f.pos(), qint64(4)); @@ -734,7 +761,7 @@ void tst_QFile::setSizeSeek() void tst_QFile::atEnd() { QFile f( m_testFile ); - QVERIFY(f.open( QIODevice::ReadOnly )); + QVERIFY2(f.open(QFile::ReadOnly), msgOpenFailed(f).constData()); int size = f.size(); f.seek( size ); @@ -747,7 +774,7 @@ void tst_QFile::atEnd() void tst_QFile::readLine() { QFile f( m_testFile ); - QVERIFY(f.open( QIODevice::ReadOnly )); + QVERIFY2(f.open(QFile::ReadOnly), msgOpenFailed(f).constData()); int i = 0; char p[128]; @@ -767,7 +794,8 @@ void tst_QFile::readLine() void tst_QFile::readLine2() { QFile f( m_testFile ); - f.open( QIODevice::ReadOnly ); + QVERIFY2(f.open(QFile::ReadOnly), msgOpenFailed(f).constData()); + char p[128]; QCOMPARE(f.readLine(p, 60), qlonglong(59)); @@ -785,7 +813,7 @@ void tst_QFile::readLineNullInLine() { QFile::remove("nullinline.txt"); QFile file("nullinline.txt"); - QVERIFY(file.open(QIODevice::ReadWrite)); + QVERIFY2(file.open(QFile::ReadWrite), msgOpenFailed(file).constData()); QVERIFY(file.write("linewith\0null\nanotherline\0withnull\n\0\nnull\0", 42) > 0); QVERIFY(file.flush()); file.reset(); @@ -816,10 +844,8 @@ void tst_QFile::readAll() QFETCH( QString, fileName ); QFile file(fileName); - if (textMode) - QVERIFY(file.open(QFile::Text | QFile::ReadOnly)); - else - QVERIFY(file.open(QFile::ReadOnly)); + const QIODevice::OpenMode om = textMode ? (QFile::Text | QFile::ReadOnly) : QFile::ReadOnly; + QVERIFY2(file.open(om), msgOpenFailed(om, file).constData()); QByteArray a = file.readAll(); file.reset(); @@ -848,8 +874,8 @@ void tst_QFile::readAllBuffer() QByteArray data1("This is arguably a very simple text."); QByteArray data2("This is surely not as simple a test."); - QVERIFY( writer.open(QIODevice::ReadWrite | QIODevice::Unbuffered) ); - QVERIFY( reader.open(QIODevice::ReadOnly) ); + QVERIFY2(writer.open(QIODevice::ReadWrite | QIODevice::Unbuffered), msgOpenFailed(writer).constData()); + QVERIFY2(reader.open(QIODevice::ReadOnly), msgOpenFailed(reader).constData()); QCOMPARE( writer.write(data1), qint64(data1.size()) ); QVERIFY( writer.seek(0) ); @@ -868,6 +894,32 @@ void tst_QFile::readAllBuffer() QFile::remove(fileName); } +#ifndef QT_NO_PROCESS +class StdinReaderProcessGuard { // Ensure the stdin reader process is stopped on destruction. + Q_DISABLE_COPY(StdinReaderProcessGuard) + +public: + StdinReaderProcessGuard(QProcess *p) : m_process(p) {} + ~StdinReaderProcessGuard() { stop(); } + + bool stop(int msecs = 30000) + { + if (m_process->state() != QProcess::Running) + return true; + m_process->closeWriteChannel(); + if (m_process->waitForFinished(msecs)) + return m_process->exitStatus() == QProcess::NormalExit && !m_process->exitCode(); + m_process->terminate(); + if (!m_process->waitForFinished()) + m_process->kill(); + return false; + } + +private: + QProcess *m_process; +}; +#endif // !QT_NO_PROCESS + #if !defined(Q_OS_WINCE) void tst_QFile::readAllStdin() { @@ -877,18 +929,17 @@ void tst_QFile::readAllStdin() QByteArray lotsOfData(1024, '@'); // 10 megs QProcess process; + StdinReaderProcessGuard processGuard(&process); process.start(m_stdinProcessDir + QStringLiteral("/stdinprocess"), QStringList(QStringLiteral("all"))); QVERIFY2(process.waitForStarted(), qPrintable(process.errorString())); for (int i = 0; i < 5; ++i) { QTest::qWait(1000); process.write(lotsOfData); - while (process.bytesToWrite() > 0) { + while (process.bytesToWrite() > 0) QVERIFY(process.waitForBytesWritten()); - } } - process.closeWriteChannel(); - process.waitForFinished(); + QVERIFY(processGuard.stop()); QCOMPARE(process.readAll().size(), lotsOfData.size() * 5); #endif } @@ -908,6 +959,7 @@ void tst_QFile::readLineStdin() for (int i = 0; i < 2; ++i) { QProcess process; + StdinReaderProcessGuard processGuard(&process); process.start(m_stdinProcessDir + QStringLiteral("/stdinprocess"), QStringList() << QStringLiteral("line") << QString::number(i), QIODevice::Text | QIODevice::ReadWrite); @@ -915,13 +967,11 @@ void tst_QFile::readLineStdin() for (int i = 0; i < 5; ++i) { QTest::qWait(1000); process.write(lotsOfData); - while (process.bytesToWrite() > 0) { + while (process.bytesToWrite() > 0) QVERIFY(process.waitForBytesWritten()); - } } - process.closeWriteChannel(); - QVERIFY(process.waitForFinished(5000)); + QVERIFY(processGuard.stop(5000)); QByteArray array = process.readAll(); QCOMPARE(array.size(), lotsOfData.size() * 5); @@ -942,6 +992,7 @@ void tst_QFile::readLineStdin_lineByLine() #else for (int i = 0; i < 2; ++i) { QProcess process; + StdinReaderProcessGuard processGuard(&process); process.start(m_stdinProcessDir + QStringLiteral("/stdinprocess"), QStringList() << QStringLiteral("line") << QString::number(i), QIODevice::Text | QIODevice::ReadWrite); @@ -956,8 +1007,7 @@ void tst_QFile::readLineStdin_lineByLine() QCOMPARE(process.readAll(), line); } - process.closeWriteChannel(); - QVERIFY(process.waitForFinished(5000)); + QVERIFY(processGuard.stop(5000)); } #endif } @@ -967,7 +1017,7 @@ void tst_QFile::text() { // dosfile.txt is a binary CRLF file QFile file(m_dosFile); - QVERIFY(file.open(QFile::Text | QFile::ReadOnly)); + QVERIFY2(file.open(QFile::Text | QFile::ReadOnly), msgOpenFailed(file).constData()); QCOMPARE(file.readLine(), QByteArray("/dev/system/root / reiserfs acl,user_xattr 1 1\n")); QCOMPARE(file.readLine(), @@ -980,7 +1030,7 @@ void tst_QFile::text() void tst_QFile::missingEndOfLine() { QFile file(m_noEndOfLineFile); - QVERIFY(file.open(QFile::ReadOnly)); + QVERIFY2(file.open(QFile::ReadOnly), msgOpenFailed(file).constData()); int nlines = 0; while (!file.atEnd()) { @@ -1026,7 +1076,7 @@ void tst_QFile::getch() void tst_QFile::ungetChar() { QFile f(m_testFile); - QVERIFY(f.open(QIODevice::ReadOnly)); + QVERIFY2(f.open(QFile::ReadOnly), msgOpenFailed(f).constData()); QByteArray array = f.readLine(); QCOMPARE(array.constData(), "----------------------------------------------------------\n"); @@ -1044,7 +1094,7 @@ void tst_QFile::ungetChar() QFile::remove("genfile.txt"); QFile out("genfile.txt"); - QVERIFY(out.open(QIODevice::ReadWrite)); + QVERIFY2(out.open(QIODevice::ReadWrite), msgOpenFailed(out).constData()); out.write("123"); out.seek(0); QCOMPARE(out.readAll().constData(), "123"); @@ -1127,7 +1177,7 @@ void tst_QFile::createFile() QVERIFY( !QFile::exists( "createme.txt" ) ); QFile f( "createme.txt" ); - QVERIFY( f.open( QIODevice::WriteOnly ) ); + QVERIFY2( f.open(QIODevice::WriteOnly), msgOpenFailed(f).constData()); f.close(); QVERIFY( QFile::exists( "createme.txt" ) ); } @@ -1140,11 +1190,11 @@ void tst_QFile::append() QVERIFY(!QFile::exists(name)); QFile f(name); - QVERIFY(f.open(QIODevice::WriteOnly | QIODevice::Truncate)); + QVERIFY2(f.open(QIODevice::WriteOnly | QIODevice::Truncate), msgOpenFailed(f).constData()); f.putChar('a'); f.close(); - QVERIFY(f.open(QIODevice::Append)); + QVERIFY2(f.open(QIODevice::Append), msgOpenFailed(f).constData()); QCOMPARE(f.pos(), 1); f.putChar('a'); f.close(); @@ -1181,7 +1231,7 @@ void tst_QFile::permissions() QFETCH(bool, create); if (create) { QFile fc(file); - QVERIFY(fc.open(QFile::WriteOnly)); + QVERIFY2(fc.open(QFile::WriteOnly), msgOpenFailed(fc).constData()); QVERIFY(fc.write("hello\n")); fc.close(); } @@ -1230,7 +1280,7 @@ void tst_QFile::setPermissions() QVERIFY( !QFile::exists( "createme.txt" ) ); QFile f("createme.txt"); - QVERIFY(f.open(QIODevice::WriteOnly | QIODevice::Truncate)); + QVERIFY2(f.open(QIODevice::WriteOnly | QIODevice::Truncate), msgOpenFailed(f).constData()); f.putChar('a'); f.close(); @@ -1247,8 +1297,8 @@ void tst_QFile::copy() QFile::remove("test2"); QVERIFY(QFile::copy(m_testSourceFile, "tst_qfile_copy.cpp")); QFile in1(m_testSourceFile), in2("tst_qfile_copy.cpp"); - QVERIFY(in1.open(QFile::ReadOnly)); - QVERIFY(in2.open(QFile::ReadOnly)); + QVERIFY2(in1.open(QFile::ReadOnly), msgOpenFailed(in1).constData()); + QVERIFY2(in2.open(QFile::ReadOnly), msgOpenFailed(in2).constData()); QByteArray data1 = in1.readAll(), data2 = in2.readAll(); QCOMPARE(data1, data2); QFile::remove( "main_copy.cpp" ); @@ -1261,8 +1311,8 @@ void tst_QFile::copyAfterFail() QFile file1("file-to-be-copied.txt"); QFile file2("existing-file.txt"); - QVERIFY(file1.open(QIODevice::ReadWrite) && "(test-precondition)"); - QVERIFY(file2.open(QIODevice::ReadWrite) && "(test-precondition)"); + QVERIFY2(file1.open(QIODevice::ReadWrite), msgOpenFailed(file1).constData()); + QVERIFY2(file2.open(QIODevice::ReadWrite), msgOpenFailed(file1).constData()); file2.close(); QVERIFY(!QFile::exists("copied-file-1.txt") && "(test-precondition)"); QVERIFY(!QFile::exists("copied-file-2.txt") && "(test-precondition)"); @@ -1331,7 +1381,7 @@ void tst_QFile::copyFallback() QVERIFY(QFile::remove("file-copy-destination.txt")); // Fallback copy of open file. - QVERIFY(file.open(QIODevice::ReadOnly)); + QVERIFY2(file.open(QIODevice::ReadOnly), msgOpenFailed(file).constData()); QVERIFY(file.copy("file-copy-destination.txt")); QVERIFY(QFile::exists("file-copy-destination.txt")); QVERIFY(!file.isOpen()); @@ -1401,7 +1451,7 @@ void tst_QFile::link() QCOMPARE(info2.symLinkTarget(), referenceTarget); QFile link("myLink.lnk"); - QVERIFY(link.open(QIODevice::ReadOnly)); + QVERIFY2(link.open(QIODevice::ReadOnly), msgOpenFailed(link).constData()); QCOMPARE(link.symLinkTarget(), referenceTarget); link.close(); @@ -1483,15 +1533,15 @@ void tst_QFile::readTextFile() QFETCH(QByteArray, out); QFile winfile("winfile.txt"); - QVERIFY(winfile.open(QFile::WriteOnly | QFile::Truncate)); + QVERIFY2(winfile.open(QFile::WriteOnly | QFile::Truncate), msgOpenFailed(winfile).constData()); winfile.write(in); winfile.close(); - QVERIFY(winfile.open(QFile::ReadOnly)); + QVERIFY2(winfile.open(QFile::ReadOnly), msgOpenFailed(winfile).constData()); QCOMPARE(winfile.readAll(), in); winfile.close(); - QVERIFY(winfile.open(QFile::ReadOnly | QFile::Text)); + QVERIFY2(winfile.open(QFile::ReadOnly | QFile::Text), msgOpenFailed(winfile).constData()); QCOMPARE(winfile.readAll(), out); } @@ -1499,13 +1549,13 @@ void tst_QFile::readTextFile2() { { QFile file(m_testLogFile); - QVERIFY(file.open(QIODevice::ReadOnly)); + QVERIFY2(file.open(QIODevice::ReadOnly), msgOpenFailed(file).constData()); file.read(4097); } { QFile file(m_testLogFile); - QVERIFY(file.open(QIODevice::ReadOnly | QIODevice::Text)); + QVERIFY2(file.open(QIODevice::ReadOnly | QIODevice::Text), msgOpenFailed(file).constData()); file.read(4097); } } @@ -1532,7 +1582,8 @@ void tst_QFile::writeTextFile() QFETCH(QByteArray, in); QFile file("textfile.txt"); - QVERIFY(file.open(QFile::WriteOnly | QFile::Truncate | QFile::Text)); + QVERIFY2(file.open(QFile::WriteOnly | QFile::Truncate | QFile::Text), + msgOpenFailed(file).constData()); QByteArray out = in; #ifdef Q_OS_WIN out.replace('\n', "\r\n"); @@ -1555,8 +1606,10 @@ void tst_QFile::largeUncFileSupport() { // 1) Native file handling. QFile file(largeFile); + QVERIFY2(file.exists(), msgFileDoesNotExist(largeFile)); + QCOMPARE(file.size(), size); - QVERIFY(file.open(QIODevice::ReadOnly)); + QVERIFY2(file.open(QIODevice::ReadOnly), msgOpenFailed(file).constData()); QCOMPARE(file.size(), size); QVERIFY(file.seek(dataOffset)); QCOMPARE(file.read(knownData.size()), knownData); @@ -1593,13 +1646,13 @@ void tst_QFile::flush() { QFile file(fileName); - QVERIFY(file.open(QFile::WriteOnly)); + QVERIFY2(file.open(QFile::WriteOnly), msgOpenFailed(file).constData()); QCOMPARE(file.write("abc", 3),qint64(3)); } { QFile file(fileName); - QVERIFY(file.open(QFile::WriteOnly | QFile::Append)); + QVERIFY2(file.open(QFile::WriteOnly | QFile::Append), msgOpenFailed(file).constData()); QCOMPARE(file.pos(), qlonglong(3)); QCOMPARE(file.write("def", 3), qlonglong(3)); QCOMPARE(file.pos(), qlonglong(6)); @@ -1607,7 +1660,7 @@ void tst_QFile::flush() { QFile file("stdfile.txt"); - QVERIFY(file.open(QFile::ReadOnly)); + QVERIFY2(file.open(QFile::ReadOnly), msgOpenFailed(file).constData()); QCOMPARE(file.readAll(), QByteArray("abcdef")); } } @@ -1617,7 +1670,7 @@ void tst_QFile::bufferedRead() QFile::remove("stdfile.txt"); QFile file("stdfile.txt"); - QVERIFY(file.open(QFile::WriteOnly)); + QVERIFY2(file.open(QFile::WriteOnly), msgOpenFailed(file).constData()); file.write("abcdef"); file.close(); @@ -1634,7 +1687,7 @@ void tst_QFile::bufferedRead() { QFile file; - QVERIFY(file.open(stdFile, QFile::ReadOnly)); + QVERIFY2(file.open(stdFile, QFile::ReadOnly), msgOpenFailed(file).constData()); QCOMPARE(file.pos(), qlonglong(1)); QCOMPARE(file.read(&c, 1), qlonglong(1)); QCOMPARE(c, 'b'); @@ -1648,7 +1701,7 @@ void tst_QFile::bufferedRead() void tst_QFile::isSequential() { QFile zero("/dev/null"); - QVERIFY(zero.open(QFile::ReadOnly)); + QVERIFY2(zero.open(QFile::ReadOnly), msgOpenFailed(zero).constData()); QVERIFY(zero.isSequential()); } #endif @@ -1662,15 +1715,15 @@ void tst_QFile::truncate() { for (int i = 0; i < 2; ++i) { QFile file("truncate.txt"); - QVERIFY(file.open(QFile::WriteOnly)); + QVERIFY2(file.open(QFile::WriteOnly), msgOpenFailed(file).constData()); file.write(QByteArray(200, '@')); file.close(); - QVERIFY(file.open((i ? QFile::WriteOnly : QFile::ReadWrite) | QFile::Truncate)); + QVERIFY2(file.open((i ? QFile::WriteOnly : QFile::ReadWrite) | QFile::Truncate), msgOpenFailed(file).constData()); file.write(QByteArray(100, '$')); file.close(); - QVERIFY(file.open(QFile::ReadOnly)); + QVERIFY2(file.open(QFile::ReadOnly), msgOpenFailed(file).constData()); QCOMPARE(file.readAll(), QByteArray(100, '$')); } } @@ -1679,13 +1732,13 @@ void tst_QFile::seekToPos() { { QFile file("seekToPos.txt"); - QVERIFY(file.open(QFile::WriteOnly)); + QVERIFY2(file.open(QFile::WriteOnly), msgOpenFailed(file).constData()); file.write("a\r\nb\r\nc\r\n"); file.flush(); } QFile file("seekToPos.txt"); - QVERIFY(file.open(QFile::ReadOnly | QFile::Text)); + QVERIFY2(file.open(QFile::ReadOnly | QFile::Text), msgOpenFailed(file).constData()); file.seek(1); char c; QVERIFY(file.getChar(&c)); @@ -1707,7 +1760,7 @@ void tst_QFile::seekAfterEndOfFile() QFile::remove(filename); { QFile file(filename); - QVERIFY(file.open(QFile::WriteOnly)); + QVERIFY2(file.open(QFile::WriteOnly), msgOpenFailed(file).constData()); file.write("abcd"); QCOMPARE(file.size(), qint64(4)); file.seek(8); @@ -1723,7 +1776,7 @@ void tst_QFile::seekAfterEndOfFile() } QFile file(filename); - QVERIFY(file.open(QFile::ReadOnly)); + QVERIFY2(file.open(QFile::ReadOnly), msgOpenFailed(file).constData()); QByteArray contents = file.readAll(); QCOMPARE(contents.left(12), QByteArray("abcdefghijkl", 12)); //bytes 12-15 are uninitialised so we don't care what they read as. @@ -1741,7 +1794,7 @@ void tst_QFile::FILEReadWrite() // create test file { QFile f("FILEReadWrite.txt"); - QVERIFY(f.open(QFile::WriteOnly)); + QVERIFY2(f.open(QFile::WriteOnly), msgOpenFailed(f).constData()); QDataStream ds(&f); qint8 c = 0; ds << c; @@ -1777,7 +1830,7 @@ void tst_QFile::FILEReadWrite() #endif QVERIFY(fp); QFile file; - QVERIFY(file.open(fp, QFile::ReadWrite)); + QVERIFY2(file.open(fp, QFile::ReadWrite), msgOpenFailed(file).constData()); QDataStream sfile(&file) ; qint8 var1,var2,var3,var4; @@ -1814,7 +1867,7 @@ void tst_QFile::FILEReadWrite() // check modified file { QFile f("FILEReadWrite.txt"); - QVERIFY(f.open(QFile::ReadOnly)); + QVERIFY2(f.open(QFile::ReadOnly), msgOpenFailed(file).constData()); QDataStream ds(&f); qint8 c = 0; ds >> c; @@ -1928,14 +1981,14 @@ void tst_QFile::i18nFileName() } { QFile file(fileName); - QVERIFY(file.open(QFile::WriteOnly | QFile::Text)); + QVERIFY2(file.open(QFile::WriteOnly | QFile::Text), msgOpenFailed(file).constData()); QTextStream ts(&file); ts.setCodec("UTF-8"); ts << fileName << endl; } { QFile file(fileName); - QVERIFY(file.open(QFile::ReadOnly | QFile::Text)); + QVERIFY2(file.open(QFile::ReadOnly | QFile::Text), msgOpenFailed(file).constData()); QTextStream ts(&file); ts.setCodec("UTF-8"); QString line = ts.readLine(); @@ -1983,13 +2036,13 @@ void tst_QFile::longFileName() QEXPECT_FAIL("244 chars", "Full pathname must be less than 260 chars", Abort); QEXPECT_FAIL("244 chars to absolutepath", "Full pathname must be less than 260 chars", Abort); #endif - QVERIFY(file.open(QFile::WriteOnly | QFile::Text)); + QVERIFY2(file.open(QFile::WriteOnly | QFile::Text), msgOpenFailed(file).constData()); QTextStream ts(&file); ts << fileName << endl; } { QFile file(fileName); - QVERIFY(file.open(QFile::ReadOnly | QFile::Text)); + QVERIFY2(file.open(QFile::ReadOnly | QFile::Text), msgOpenFailed(file).constData()); QTextStream ts(&file); QString line = ts.readLine(); QCOMPARE(line, fileName); @@ -1998,7 +2051,7 @@ void tst_QFile::longFileName() { QVERIFY(QFile::copy(fileName, newName)); QFile file(newName); - QVERIFY(file.open(QFile::ReadOnly | QFile::Text)); + QVERIFY2(file.open(QFile::ReadOnly | QFile::Text), msgOpenFailed(file).constData()); QTextStream ts(&file); QString line = ts.readLine(); QCOMPARE(line, fileName); @@ -2008,12 +2061,12 @@ void tst_QFile::longFileName() { QVERIFY(QFile::rename(fileName, newName)); QFile file(newName); - QVERIFY(file.open(QFile::ReadOnly | QFile::Text)); + QVERIFY2(file.open(QFile::ReadOnly | QFile::Text), msgOpenFailed(file).constData()); QTextStream ts(&file); QString line = ts.readLine(); QCOMPARE(line, fileName); } - QVERIFY(QFile::exists(newName)); + QVERIFY2(QFile::exists(newName), msgFileDoesNotExist(newName).constData()); } #ifdef QT_BUILD_INTERNAL @@ -2146,7 +2199,7 @@ void tst_QFile::remove_and_exists() bool opened = f.open(QIODevice::WriteOnly); QVERIFY(opened); - f.write(QString("testing that remove/exists work...").toLatin1()); + f.write("testing that remove/exists work..."); f.close(); QVERIFY(f.exists()); @@ -2165,7 +2218,7 @@ void tst_QFile::removeOpenFile() QVERIFY(!f.exists()); bool opened = f.open(QIODevice::WriteOnly); QVERIFY(opened); - f.write(QString("testing that remove closes the file first...").toLatin1()); + f.write("testing that remove closes the file first..."); bool removed = f.remove(); // remove should both close and remove the file QVERIFY(removed); @@ -2184,7 +2237,7 @@ void tst_QFile::removeOpenFile() QVERIFY(!f.exists()); bool opened = f.open(QIODevice::WriteOnly); QVERIFY(opened); - f.write(QString("testing that remove closes the file first...").toLatin1()); + f.write("testing that remove closes the file first..."); f.close(); } @@ -2208,7 +2261,7 @@ void tst_QFile::fullDisk() if (!file.exists()) QSKIP("/dev/full doesn't exist on this system"); - QVERIFY(file.open(QIODevice::WriteOnly)); + QVERIFY2(file.open(QIODevice::WriteOnly), msgOpenFailed(file).constData()); file.write("foobar", 6); QVERIFY(!file.flush()); @@ -2235,7 +2288,7 @@ void tst_QFile::fullDisk() QCOMPARE(file.error(), QFile::NoError); // try again without flush: - QVERIFY(file.open(QIODevice::WriteOnly)); + QVERIFY2(file.open(QIODevice::WriteOnly), msgOpenFailed(file).constData()); file.write("foobar", 6); file.close(); QVERIFY(file.error() != QFile::NoError); @@ -2288,8 +2341,7 @@ void tst_QFile::writeLargeDataBlock() { QFile file(fileName); - QVERIFY2( openFile(file, QIODevice::WriteOnly, (FileType)type), - qPrintable(QString("Couldn't open file for writing: [%1]").arg(fileName)) ); + QVERIFY2(openFile(file, QIODevice::WriteOnly, (FileType)type), msgOpenFailed(file)); qint64 fileWriteOriginalData = file.write(originalData); qint64 originalDataSize = (qint64)originalData.size(); #if defined(Q_OS_WIN) @@ -2332,7 +2384,7 @@ void tst_QFile::writeLargeDataBlock() void tst_QFile::readFromWriteOnlyFile() { QFile file("writeonlyfile"); - QVERIFY(file.open(QFile::WriteOnly)); + QVERIFY2(file.open(QFile::WriteOnly), msgOpenFailed(file).constData()); char c; QTest::ignoreMessage(QtWarningMsg, "QIODevice::read (QFile, \"writeonlyfile\"): WriteOnly device"); QCOMPARE(file.read(&c, 1), qint64(-1)); @@ -2341,7 +2393,7 @@ void tst_QFile::readFromWriteOnlyFile() void tst_QFile::writeToReadOnlyFile() { QFile file("readonlyfile"); - QVERIFY(file.open(QFile::ReadOnly)); + QVERIFY2(file.open(QFile::ReadOnly), msgOpenFailed(file).constData()); char c = 0; QTest::ignoreMessage(QtWarningMsg, "QIODevice::write (QFile, \"readonlyfile\"): ReadOnly device"); QCOMPARE(file.write(&c, 1), qint64(-1)); @@ -2363,13 +2415,13 @@ void tst_QFile::virtualFile() // consistency check QFileInfo fi(fname); - QVERIFY(fi.exists()); + QVERIFY2(fi.exists(), msgFileDoesNotExist(fname).constData()); QVERIFY(fi.isFile()); QCOMPARE(fi.size(), Q_INT64_C(0)); // open the file QFile f(fname); - QVERIFY(f.open(QIODevice::ReadOnly)); + QVERIFY2(f.open(QIODevice::ReadOnly), msgOpenFailed(f).constData()); QCOMPARE(f.size(), Q_INT64_C(0)); QVERIFY(f.atEnd()); @@ -2413,7 +2465,7 @@ void tst_QFile::textFile() ::fclose(fs); QFile file("writeabletextfile"); - QVERIFY(file.open(QIODevice::ReadOnly)); + QVERIFY2(file.open(QIODevice::ReadOnly), msgOpenFailed(file).constData()); QByteArray data = file.readAll(); @@ -2543,8 +2595,8 @@ void tst_QFile::renameMultiple() // create the file if it doesn't exist QFile file("file-to-be-renamed.txt"); QFile file2("existing-file.txt"); - QVERIFY(file.open(QIODevice::ReadWrite) && "(test-precondition)"); - QVERIFY(file2.open(QIODevice::ReadWrite) && "(test-precondition)"); + QVERIFY2(file.open(QIODevice::ReadWrite), msgOpenFailed(file).constData()); + QVERIFY2(file2.open(QIODevice::ReadWrite), msgOpenFailed(file2).constData()); // any stale files from previous test failures? QFile::remove("file-renamed-once.txt"); @@ -2583,10 +2635,10 @@ void tst_QFile::renameMultiple() void tst_QFile::appendAndRead() { QFile writeFile(QLatin1String("appendfile.txt")); - QVERIFY(writeFile.open(QIODevice::WriteOnly | QIODevice::Truncate)); + QVERIFY2(writeFile.open(QIODevice::WriteOnly | QIODevice::Truncate), msgOpenFailed(writeFile).constData()); QFile readFile(QLatin1String("appendfile.txt")); - QVERIFY(readFile.open(QIODevice::ReadOnly)); + QVERIFY2(readFile.open(QIODevice::ReadOnly), msgOpenFailed(readFile).constData()); // Write to the end of the file, then read that character back, and so on. for (int i = 0; i < 100; ++i) { @@ -2612,11 +2664,13 @@ void tst_QFile::miscWithUncPathAsCurrentDir() { #if defined(Q_OS_WIN) && !defined(Q_OS_WINCE) && !defined(Q_OS_WINRT) QString current = QDir::currentPath(); - QVERIFY(QDir::setCurrent("//" + QtNetworkSettings::winServerName() + "/testshare")); + const QString path = QLatin1String("//") + QtNetworkSettings::winServerName() + + QLatin1String("/testshare"); + QVERIFY2(QDir::setCurrent(path), qPrintable(QDir::toNativeSeparators(path))); QFile file("test.pri"); - QVERIFY(file.exists()); + QVERIFY2(file.exists(), msgFileDoesNotExist(file.fileName()).constData()); QCOMPARE(int(file.size()), 34); - QVERIFY(file.open(QIODevice::ReadOnly)); + QVERIFY2(file.open(QIODevice::ReadOnly), msgOpenFailed(file).constData()); QVERIFY(QDir::setCurrent(current)); #endif } @@ -2634,7 +2688,7 @@ void tst_QFile::handle() int fd; #if !defined(Q_OS_WINCE) QFile file(m_testSourceFile); - QVERIFY(file.open(QIODevice::ReadOnly)); + QVERIFY2(file.open(QIODevice::ReadOnly), msgOpenFailed(file).constData()); fd = int(file.handle()); QVERIFY(fd > 2); QCOMPARE(int(file.handle()), fd); @@ -2648,7 +2702,7 @@ void tst_QFile::handle() // same, but read from QFile first now file.close(); - QVERIFY(file.open(QIODevice::ReadOnly | QIODevice::Unbuffered)); + QVERIFY2(file.open(QIODevice::ReadOnly | QIODevice::Unbuffered), msgOpenFailed(file).constData()); fd = int(file.handle()); QVERIFY(fd > 2); QVERIFY(file.getChar(&c)); @@ -2690,7 +2744,7 @@ void tst_QFile::nativeHandleLeaks() { QFile file("qt_file.tmp"); - QVERIFY( file.open(QIODevice::ReadWrite) ); + QVERIFY2(file.open(QIODevice::ReadWrite), msgOpenFailed(file).constData()); fd1 = file.handle(); QVERIFY( -1 != fd1 ); @@ -2709,7 +2763,7 @@ void tst_QFile::nativeHandleLeaks() { QFile file("qt_file.tmp"); - QVERIFY( file.open(QIODevice::ReadOnly) ); + QVERIFY2(file.open(QIODevice::ReadOnly), msgOpenFailed(file).constData()); fd2 = file.handle(); QVERIFY( -1 != fd2 ); @@ -2755,7 +2809,7 @@ void tst_QFile::readEof() { QFile file(filename); - QVERIFY(file.open(QIODevice::ReadOnly | mode)); + QVERIFY2(file.open(QIODevice::ReadOnly | mode), msgOpenFailed(file).constData()); bool isSequential = file.isSequential(); if (!isSequential) { QVERIFY(file.seek(245)); @@ -2777,7 +2831,7 @@ void tst_QFile::readEof() { QFile file(filename); - QVERIFY(file.open(QIODevice::ReadOnly | mode)); + QVERIFY2(file.open(QIODevice::ReadOnly | mode), msgOpenFailed(file).constData()); bool isSequential = file.isSequential(); if (!isSequential) { QVERIFY(file.seek(245)); @@ -2798,7 +2852,7 @@ void tst_QFile::readEof() { QFile file(filename); - QVERIFY(file.open(QIODevice::ReadOnly | mode)); + QVERIFY2(file.open(QIODevice::ReadOnly | mode), msgOpenFailed(file).constData()); bool isSequential = file.isSequential(); if (!isSequential) { QVERIFY(file.seek(245)); @@ -2820,7 +2874,7 @@ void tst_QFile::readEof() { QFile file(filename); - QVERIFY(file.open(QIODevice::ReadOnly | mode)); + QVERIFY2(file.open(QIODevice::ReadOnly | mode), msgOpenFailed(file).constData()); bool isSequential = file.isSequential(); if (!isSequential) { QVERIFY(file.seek(245)); @@ -2841,7 +2895,7 @@ void tst_QFile::readEof() { QFile file(filename); - QVERIFY(file.open(QIODevice::ReadOnly | mode)); + QVERIFY2(file.open(QIODevice::ReadOnly | mode), msgOpenFailed(file).constData()); bool isSequential = file.isSequential(); if (!isSequential) { QVERIFY(file.seek(245)); @@ -2867,7 +2921,7 @@ void tst_QFile::posAfterFailedStat() QFile::remove("tmp.txt"); QFile file("tmp.txt"); QVERIFY(!file.exists()); - QVERIFY(file.open(QIODevice::Append)); + QVERIFY2(file.open(QIODevice::Append), msgOpenFailed(file).constData()); QVERIFY(file.exists()); file.write("qt430", 5); QVERIFY(!file.isSequential()); @@ -2922,11 +2976,11 @@ void tst_QFile::map() QCOMPARE(file.error(), QFile::PermissionsError); // make a file - QVERIFY(file.open(QFile::ReadWrite)); + QVERIFY2(file.open(QFile::ReadWrite), msgOpenFailed(file).constData()); QVERIFY(file.resize(fileSize)); QVERIFY(file.flush()); file.close(); - QVERIFY(file.open(QFile::ReadWrite)); + QVERIFY2(file.open(QFile::ReadWrite), msgOpenFailed(file).constData()); memory = file.map(offset, size); if (error != QFile::NoError) { QVERIFY(file.error() != QFile::NoError); @@ -3061,13 +3115,14 @@ void tst_QFile::mapOpenMode() QFile file(fileName); // make a file - QVERIFY(file.open(QFile::ReadWrite)); + QVERIFY2(file.open(QFile::ReadWrite), msgOpenFailed(file).constData()); QVERIFY(file.write(pattern)); QVERIFY(file.flush()); file.close(); // open according to our mode - QVERIFY(file.open(QIODevice::OpenMode(openMode))); + const QIODevice::OpenMode om(openMode); + QVERIFY2(file.open(om), msgOpenFailed(om, file).constData()); uchar *memory = file.map(0, fileSize, QFileDevice::MemoryMapFlags(flags)); #if defined(Q_OS_WINCE) @@ -3116,7 +3171,8 @@ void tst_QFile::mapWrittenFile() QFile::remove(fileName); } QFile file(fileName); - QVERIFY(file.open(QIODevice::ReadWrite | QFile::OpenMode(mode))); + const QIODevice::OpenMode om = QIODevice::ReadWrite | QIODevice::OpenMode(mode); + QVERIFY2(file.open(om), msgOpenFailed(om, file).constData()); QCOMPARE(file.write(data, sizeof data), qint64(sizeof data)); if ((mode & QIODevice::Unbuffered) == 0) file.flush(); @@ -3328,7 +3384,7 @@ void tst_QFile::caseSensitivity() QString filename("File.txt"); { QFile f(filename); - QVERIFY(f.open(QIODevice::WriteOnly)); + QVERIFY2(f.open(QIODevice::WriteOnly), msgOpenFailed(f)); QVERIFY(f.write(testData)); f.close(); } diff --git a/tests/auto/corelib/io/qfileinfo/tst_qfileinfo.cpp b/tests/auto/corelib/io/qfileinfo/tst_qfileinfo.cpp index 0319568229..1d49c8e3b9 100644 --- a/tests/auto/corelib/io/qfileinfo/tst_qfileinfo.cpp +++ b/tests/auto/corelib/io/qfileinfo/tst_qfileinfo.cpp @@ -149,6 +149,25 @@ static QString seedAndTemplate() qsrand(QDateTime::currentDateTimeUtc().toTime_t()); return QDir::tempPath() + "/tst_qfileinfo-XXXXXX"; } + +static QByteArray msgDoesNotExist(const QString &name) +{ + return (QLatin1Char('"') + QDir::toNativeSeparators(name) + + QLatin1String("\" does not exist.")).toLocal8Bit(); +} + +static QByteArray msgIsNoDirectory(const QString &name) +{ + return (QLatin1Char('"') + QDir::toNativeSeparators(name) + + QLatin1String("\" is not a directory.")).toLocal8Bit(); +} + +static QByteArray msgIsNotRoot(const QString &name) +{ + return (QLatin1Char('"') + QDir::toNativeSeparators(name) + + QLatin1String("\" is no root directory.")).toLocal8Bit(); +} + class tst_QFileInfo : public QObject { Q_OBJECT @@ -317,7 +336,7 @@ static QFileInfoPrivate* getPrivate(QFileInfo &info) void tst_QFileInfo::copy() { QTemporaryFile t; - t.open(); + QVERIFY2(t.open(), qPrintable(t.errorString())); QFileInfo info(t.fileName()); QVERIFY(info.exists()); @@ -414,13 +433,14 @@ void tst_QFileInfo::isDir_data() //QTest::newRow("drive 2") << "t:s" << false; #endif #if defined(Q_OS_WIN) && !defined(Q_OS_WINCE) - QTest::newRow("unc 1") << "//" + QtNetworkSettings::winServerName() << true; - QTest::newRow("unc 2") << "//" + QtNetworkSettings::winServerName() + "/" << true; - QTest::newRow("unc 3") << "//" + QtNetworkSettings::winServerName() + "/testshare" << true; - QTest::newRow("unc 4") << "//" + QtNetworkSettings::winServerName() + "/testshare/" << true; - QTest::newRow("unc 5") << "//" + QtNetworkSettings::winServerName() + "/testshare/tmp" << true; - QTest::newRow("unc 6") << "//" + QtNetworkSettings::winServerName() + "/testshare/tmp/" << true; - QTest::newRow("unc 7") << "//" + QtNetworkSettings::winServerName() + "/testshare/adirthatshouldnotexist" << false; + const QString uncRoot = QStringLiteral("//") + QtNetworkSettings::winServerName(); + QTest::newRow("unc 1") << uncRoot << true; + QTest::newRow("unc 2") << uncRoot + QLatin1Char('/') << true; + QTest::newRow("unc 3") << uncRoot + "/testshare" << true; + QTest::newRow("unc 4") << uncRoot + "/testshare/" << true; + QTest::newRow("unc 5") << uncRoot + "/testshare/tmp" << true; + QTest::newRow("unc 6") << uncRoot + "/testshare/tmp/" << true; + QTest::newRow("unc 7") << uncRoot + "/testshare/adirthatshouldnotexist" << false; #endif } @@ -429,8 +449,11 @@ void tst_QFileInfo::isDir() QFETCH(QString, path); QFETCH(bool, expected); - QFileInfo fi(path); - QCOMPARE(fi.isDir(), expected); + const bool isDir = QFileInfo(path).isDir(); + if (expected) + QVERIFY2(isDir, msgIsNoDirectory(path).constData()); + else + QVERIFY(!isDir); } void tst_QFileInfo::isRoot_data() @@ -453,10 +476,11 @@ void tst_QFileInfo::isRoot_data() #endif #if defined(Q_OS_WIN) && !defined(Q_OS_WINCE) && !defined(Q_OS_WINRT) - QTest::newRow("unc 1") << "//" + QtNetworkSettings::winServerName() << true; - QTest::newRow("unc 2") << "//" + QtNetworkSettings::winServerName() + "/" << true; - QTest::newRow("unc 3") << "//" + QtNetworkSettings::winServerName() + "/testshare" << false; - QTest::newRow("unc 4") << "//" + QtNetworkSettings::winServerName() + "/testshare/" << false; + const QString uncRoot = QStringLiteral("//") + QtNetworkSettings::winServerName(); + QTest::newRow("unc 1") << uncRoot << true; + QTest::newRow("unc 2") << uncRoot + QLatin1Char('/') << true; + QTest::newRow("unc 3") << uncRoot + "/testshare" << false; + QTest::newRow("unc 4") << uncRoot + "/testshare/" << false; QTest::newRow("unc 7") << "//ahostthatshouldnotexist" << false; #endif } @@ -466,8 +490,11 @@ void tst_QFileInfo::isRoot() QFETCH(QString, path); QFETCH(bool, expected); - QFileInfo fi(path); - QCOMPARE(fi.isRoot(), expected); + const bool isRoot = QFileInfo(path).isRoot(); + if (expected) + QVERIFY2(isRoot, msgIsNotRoot(path).constData()); + else + QVERIFY(!isRoot); } void tst_QFileInfo::exists_data() @@ -493,14 +520,15 @@ void tst_QFileInfo::exists_data() QTest::newRow("simple dir with slash") << (m_resourcesDir + QLatin1Char('/')) << true; #if defined(Q_OS_WIN) && !defined(Q_OS_WINCE) && !defined(Q_OS_WINRT) - QTest::newRow("unc 1") << "//" + QtNetworkSettings::winServerName() << true; - QTest::newRow("unc 2") << "//" + QtNetworkSettings::winServerName() + "/" << true; - QTest::newRow("unc 3") << "//" + QtNetworkSettings::winServerName() + "/testshare" << true; - QTest::newRow("unc 4") << "//" + QtNetworkSettings::winServerName() + "/testshare/" << true; - QTest::newRow("unc 5") << "//" + QtNetworkSettings::winServerName() + "/testshare/tmp" << true; - QTest::newRow("unc 6") << "//" + QtNetworkSettings::winServerName() + "/testshare/tmp/" << true; - QTest::newRow("unc 7") << "//" + QtNetworkSettings::winServerName() + "/testshare/adirthatshouldnotexist" << false; - QTest::newRow("unc 8") << "//" + QtNetworkSettings::winServerName() + "/asharethatshouldnotexist" << false; + const QString uncRoot = QStringLiteral("//") + QtNetworkSettings::winServerName(); + QTest::newRow("unc 1") << uncRoot << true; + QTest::newRow("unc 2") << uncRoot + QLatin1Char('/') << true; + QTest::newRow("unc 3") << uncRoot + "/testshare" << true; + QTest::newRow("unc 4") << uncRoot + "/testshare/" << true; + QTest::newRow("unc 5") << uncRoot + "/testshare/tmp" << true; + QTest::newRow("unc 6") << uncRoot + "/testshare/tmp/" << true; + QTest::newRow("unc 7") << uncRoot + "/testshare/adirthatshouldnotexist" << false; + QTest::newRow("unc 8") << uncRoot + "/asharethatshouldnotexist" << false; QTest::newRow("unc 9") << "//ahostthatshouldnotexist" << false; #endif } @@ -511,8 +539,12 @@ void tst_QFileInfo::exists() QFETCH(bool, expected); QFileInfo fi(path); - QCOMPARE(fi.exists(), expected); - QCOMPARE(QFileInfo::exists(path), expected); + const bool exists = fi.exists(); + QCOMPARE(exists, QFileInfo::exists(path)); + if (expected) + QVERIFY2(exists, msgDoesNotExist(path).constData()); + else + QVERIFY(!exists); } void tst_QFileInfo::absolutePath_data() @@ -612,7 +644,7 @@ void tst_QFileInfo::canonicalPath() { QTemporaryFile tempFile; tempFile.setAutoRemove(true); - tempFile.open(); + QVERIFY2(tempFile.open(), qPrintable(tempFile.errorString())); QFileInfo fi(tempFile.fileName()); QCOMPARE(fi.canonicalPath(), QFileInfo(QDir::tempPath()).canonicalFilePath()); } @@ -994,7 +1026,7 @@ void tst_QFileInfo::systemFiles() QSKIP("This is a Windows only test"); #endif QFileInfo fi("c:\\pagefile.sys"); - QVERIFY(fi.exists()); + QVERIFY2(fi.exists(), msgDoesNotExist(fi.absoluteFilePath()).constData()); QVERIFY(fi.size() > 0); QVERIFY(fi.lastModified().isValid()); } @@ -1479,7 +1511,7 @@ void tst_QFileInfo::ntfsJunctionPointsAndSymlinks_data() QTest::newRow("dummy") << target.path() << false << "" << target.canonicalPath(); QSKIP("link not supported by FS or insufficient privilege"); } - QVERIFY(file.exists()); + QVERIFY2(file.exists(), msgDoesNotExist(file.fileName()).constData()); QTest::newRow("absolute dir symlink") << absSymlink << true << QDir::fromNativeSeparators(absTarget) << target.canonicalPath(); QTest::newRow("relative dir symlink") << relSymlink << true << QDir::fromNativeSeparators(relTarget) << target.canonicalPath(); @@ -1510,7 +1542,7 @@ void tst_QFileInfo::ntfsJunctionPointsAndSymlinks_data() QFile file(fileInJunction.absoluteFilePath()); file.open(QIODevice::ReadWrite); file.close(); - QVERIFY(file.exists()); + QVERIFY2(file.exists(), msgDoesNotExist(file.fileName()).constData()); QTest::newRow("file in junction") << fileInJunction.absoluteFilePath() << false << "" << fileInJunction.canonicalFilePath(); target = QDir::rootPath(); @@ -1602,7 +1634,7 @@ void tst_QFileInfo::isWritable() #else QFileInfo fi("c:\\pagefile.sys"); #endif - QVERIFY(fi.exists()); + QVERIFY2(fi.exists(), msgDoesNotExist(fi.absoluteFilePath()).constData()); QVERIFY(!fi.isWritable()); #endif #if defined (Q_OS_QNX) // On QNX /etc is usually on a read-only filesystem @@ -1860,7 +1892,7 @@ void tst_QFileInfo::owner() QVERIFY(testFile.write(testData) != -1); } QFileInfo fi(fileName); - QVERIFY(fi.exists()); + QVERIFY2(fi.exists(), msgDoesNotExist(fi.absoluteFilePath()).constData()); QCOMPARE(fi.owner(), userName); QFile::remove(fileName); @@ -1895,7 +1927,7 @@ void tst_QFileInfo::group() QVERIFY(testFile.write(testData) != -1); testFile.close(); QFileInfo fi(fileName); - QVERIFY(fi.exists()); + QVERIFY2(fi.exists(), msgDoesNotExist(fi.absoluteFilePath()).constData()); QCOMPARE(fi.group(), expected); } diff --git a/tests/auto/corelib/io/qfilesystemwatcher/tst_qfilesystemwatcher.cpp b/tests/auto/corelib/io/qfilesystemwatcher/tst_qfilesystemwatcher.cpp index a0434aa8ee..026743257c 100644 --- a/tests/auto/corelib/io/qfilesystemwatcher/tst_qfilesystemwatcher.cpp +++ b/tests/auto/corelib/io/qfilesystemwatcher/tst_qfilesystemwatcher.cpp @@ -126,7 +126,7 @@ void tst_QFileSystemWatcher::basicTest() // create test file QTemporaryDir temporaryDirectory(m_tempDirPattern); - QVERIFY(temporaryDirectory.isValid()); + QVERIFY2(temporaryDirectory.isValid(), qPrintable(temporaryDirectory.errorString())); QFile testFile(temporaryDirectory.path() + QLatin1Char('/') + testFileName); QVERIFY(testFile.open(QIODevice::WriteOnly | QIODevice::Truncate)); testFile.write(QByteArray("hello")); @@ -263,7 +263,7 @@ void tst_QFileSystemWatcher::watchDirectory() QFETCH(QString, backend); QTemporaryDir temporaryDirectory(m_tempDirPattern); - QVERIFY(temporaryDirectory.isValid()); + QVERIFY2(temporaryDirectory.isValid(), qPrintable(temporaryDirectory.errorString())); QDir temporaryDir(temporaryDirectory.path()); const QString testDirName = QStringLiteral("testDir"); @@ -498,7 +498,7 @@ void tst_QFileSystemWatcher::watchFileAndItsDirectory() QFETCH(QString, backend); QTemporaryDir temporaryDirectory(m_tempDirPattern); - QVERIFY(temporaryDirectory.isValid()); + QVERIFY2(temporaryDirectory.isValid(), qPrintable(temporaryDirectory.errorString())); QDir temporaryDir(temporaryDirectory.path()); const QString testDirName = QStringLiteral("testDir"); @@ -605,7 +605,7 @@ void tst_QFileSystemWatcher::nonExistingFile() void tst_QFileSystemWatcher::removeFileAndUnWatch() { QTemporaryDir temporaryDirectory(m_tempDirPattern); - QVERIFY(temporaryDirectory.isValid()); + QVERIFY2(temporaryDirectory.isValid(), qPrintable(temporaryDirectory.errorString())); const QString filename = temporaryDirectory.path() + QStringLiteral("/foo.txt"); @@ -664,7 +664,7 @@ void tst_QFileSystemWatcher::QTBUG2331() QFETCH(QString, backend); QTemporaryDir temporaryDirectory(m_tempDirPattern); - QVERIFY(temporaryDirectory.isValid()); + QVERIFY2(temporaryDirectory.isValid(), qPrintable(temporaryDirectory.errorString())); QFileSystemWatcher watcher; watcher.setObjectName(QLatin1String("_qt_autotest_force_engine_") + backend); QVERIFY(watcher.addPath(temporaryDirectory.path())); @@ -724,7 +724,8 @@ void tst_QFileSystemWatcher::signalsEmittedAfterFileMoved() { const int fileCount = 10; QTemporaryDir temporaryDirectory(m_tempDirPattern); - QVERIFY(temporaryDirectory.isValid()); + QVERIFY2(temporaryDirectory.isValid(), qPrintable(temporaryDirectory.errorString())); + QDir testDir(temporaryDirectory.path()); QVERIFY(testDir.mkdir("movehere")); QString movePath = testDir.filePath("movehere"); diff --git a/tests/auto/corelib/io/qlockfile/tst_qlockfile.cpp b/tests/auto/corelib/io/qlockfile/tst_qlockfile.cpp index 27614e0eb8..21c5696d1d 100644 --- a/tests/auto/corelib/io/qlockfile/tst_qlockfile.cpp +++ b/tests/auto/corelib/io/qlockfile/tst_qlockfile.cpp @@ -80,6 +80,7 @@ void tst_QLockFile::initTestCase() #elif defined(QT_NO_PROCESS) QSKIP("This test requires QProcess support"); #else + QVERIFY2(dir.isValid(), qPrintable(dir.errorString())); // chdir to our testdata path and execute helper apps relative to that. QString testdata_dir = QFileInfo(QFINDTESTDATA("qlockfiletesthelper")).absolutePath(); QVERIFY2(QDir::setCurrent(testdata_dir), qPrintable("Could not chdir to " + testdata_dir)); diff --git a/tests/auto/corelib/io/qprocess/BLACKLIST b/tests/auto/corelib/io/qprocess/BLACKLIST index dcd913ca49..216faa7fb4 100644 --- a/tests/auto/corelib/io/qprocess/BLACKLIST +++ b/tests/auto/corelib/io/qprocess/BLACKLIST @@ -1,2 +1,5 @@ [lockupsInStartDetached] redhatenterpriselinuxworkstation-6.6 +# QTBUG-48455 +[fileWriterProcess] +msvc-2015 diff --git a/tests/auto/corelib/io/qprocess/fileWriterProcess/main.cpp b/tests/auto/corelib/io/qprocess/fileWriterProcess/main.cpp index 411c7e334b..25cb66f9d2 100644 --- a/tests/auto/corelib/io/qprocess/fileWriterProcess/main.cpp +++ b/tests/auto/corelib/io/qprocess/fileWriterProcess/main.cpp @@ -33,20 +33,26 @@ #include <QCoreApplication> #include <QFile> +#include <stdio.h> + int main(int argc, char **argv) { QCoreApplication ca(argc, argv); QFile f; f.open(stdin, QIODevice::ReadOnly); - QString input; + QByteArray input; char buf[1024]; qint64 len; while ((len = f.read(buf, 1024)) > 0) - input += QByteArray(buf, len); + input.append(buf, len); f.close(); QFile f2("fileWriterProcess.txt"); - f2.open(QIODevice::WriteOnly | QIODevice::Truncate); - f2.write(input.toLatin1()); + if (!f2.open(QIODevice::WriteOnly | QIODevice::Truncate)) { + fprintf(stderr, "Cannot open %s for writing: %s\n", + qPrintable(f2.fileName()), qPrintable(f2.errorString())); + return 1; + } + f2.write(input); f2.close(); return 0; } diff --git a/tests/auto/corelib/io/qprocess/testDetached/main.cpp b/tests/auto/corelib/io/qprocess/testDetached/main.cpp index bbcc7033c7..760306ea17 100644 --- a/tests/auto/corelib/io/qprocess/testDetached/main.cpp +++ b/tests/auto/corelib/io/qprocess/testDetached/main.cpp @@ -57,7 +57,8 @@ int main(int argc, char **argv) QFile f(args.at(1)); if (!f.open(QIODevice::WriteOnly | QIODevice::Truncate | QIODevice::Text)) { - fprintf(stderr, "Cannot open %s for writing", qPrintable(f.fileName())); + fprintf(stderr, "Cannot open %s for writing: %s\n", + qPrintable(f.fileName()), qPrintable(f.errorString())); return 1; } diff --git a/tests/auto/corelib/io/qprocess/testExitCodes/main.cpp b/tests/auto/corelib/io/qprocess/testExitCodes/main.cpp index c92d7f515f..c3cf9f56c7 100644 --- a/tests/auto/corelib/io/qprocess/testExitCodes/main.cpp +++ b/tests/auto/corelib/io/qprocess/testExitCodes/main.cpp @@ -33,8 +33,8 @@ #include <stdlib.h> -int main(int /* argc */, char **argv) +int main(int argc, char **argv) { - return atoi(argv[1]); + return argc >= 2 ? atoi(argv[1]) : -1; } diff --git a/tests/auto/corelib/io/qprocess/tst_qprocess.cpp b/tests/auto/corelib/io/qprocess/tst_qprocess.cpp index 426c378967..83da28767f 100644 --- a/tests/auto/corelib/io/qprocess/tst_qprocess.cpp +++ b/tests/auto/corelib/io/qprocess/tst_qprocess.cpp @@ -62,6 +62,10 @@ if (ret == false) \ QVERIFY(ret); \ } +typedef void (QProcess::*QProcessFinishedSignal1)(int); +typedef void (QProcess::*QProcessFinishedSignal2)(int, QProcess::ExitStatus); +typedef void (QProcess::*QProcessErrorSignal)(QProcess::ProcessError); + class tst_QProcess : public QObject { Q_OBJECT @@ -69,6 +73,7 @@ class tst_QProcess : public QObject public slots: void initTestCase(); void cleanupTestCase(); + void init(); #ifndef QT_NO_PROCESS private slots: @@ -174,7 +179,6 @@ protected slots: #endif private: - QProcess *process; qint64 bytesAvailable; #endif //QT_NO_PROCESS }; @@ -197,6 +201,11 @@ void tst_QProcess::cleanupTestCase() #endif } +void tst_QProcess::init() +{ + bytesAvailable = 0; +} + #ifndef QT_NO_PROCESS // Testing get/set functions @@ -257,10 +266,10 @@ void tst_QProcess::simpleStart() { qRegisterMetaType<QProcess::ProcessState>("QProcess::ProcessState"); - process = new QProcess; - QSignalSpy spy(process, &QProcess::stateChanged); + QScopedPointer<QProcess> process(new QProcess); + QSignalSpy spy(process.data(), &QProcess::stateChanged); QVERIFY(spy.isValid()); - connect(process, SIGNAL(readyRead()), this, SLOT(readFromProcess())); + connect(process.data(), &QIODevice::readyRead, this, &tst_QProcess::readFromProcess); /* valgrind dislike SUID binaries(those that have the `s'-flag set), which * makes it fail to start the process. For this reason utilities like `ping' won't @@ -272,8 +281,7 @@ void tst_QProcess::simpleStart() QCOMPARE(process->state(), QProcess::Running); QTRY_COMPARE(process->state(), QProcess::NotRunning); - delete process; - process = 0; + process.reset(); QCOMPARE(spy.count(), 3); QCOMPARE(qvariant_cast<QProcess::ProcessState>(spy.at(0).at(0)), QProcess::Starting); @@ -325,9 +333,8 @@ void tst_QProcess::execute() void tst_QProcess::startDetached() { - QProcess proc; - QVERIFY(proc.startDetached("testProcessNormal/testProcessNormal", - QStringList() << "arg1" << "arg2")); + QVERIFY(QProcess::startDetached("testProcessNormal/testProcessNormal", + QStringList() << "arg1" << "arg2")); #ifdef QPROCESS_USE_SPAWN QEXPECT_FAIL("", "QProcess cannot detect failure to start when using posix_spawn()", Continue); #endif @@ -336,18 +343,20 @@ void tst_QProcess::startDetached() void tst_QProcess::readFromProcess() { + QProcess *process = qobject_cast<QProcess *>(sender()); + QVERIFY(process); int lines = 0; while (process->canReadLine()) { ++lines; - QByteArray line = process->readLine(); + process->readLine(); } } void tst_QProcess::crashTest() { qRegisterMetaType<QProcess::ProcessState>("QProcess::ProcessState"); - process = new QProcess; - QSignalSpy stateSpy(process, &QProcess::stateChanged); + QScopedPointer<QProcess> process(new QProcess); + QSignalSpy stateSpy(process.data(), &QProcess::stateChanged); QVERIFY(stateSpy.isValid()); process->start("testProcessCrash/testProcessCrash"); QVERIFY(process->waitForStarted(5000)); @@ -355,9 +364,9 @@ void tst_QProcess::crashTest() qRegisterMetaType<QProcess::ProcessError>("QProcess::ProcessError"); qRegisterMetaType<QProcess::ExitStatus>("QProcess::ExitStatus"); - QSignalSpy spy(process, &QProcess::errorOccurred); - QSignalSpy spy2(process, static_cast<void (QProcess::*)(QProcess::ProcessError)>(&QProcess::error)); - QSignalSpy spy3(process, static_cast<void (QProcess::*)(int, QProcess::ExitStatus)>(&QProcess::finished)); + QSignalSpy spy(process.data(), &QProcess::errorOccurred); + QSignalSpy spy2(process.data(), static_cast<QProcessErrorSignal>(&QProcess::error)); + QSignalSpy spy3(process.data(), static_cast<QProcessFinishedSignal2>(&QProcess::finished)); QVERIFY(spy.isValid()); QVERIFY(spy2.isValid()); @@ -376,8 +385,8 @@ void tst_QProcess::crashTest() QCOMPARE(process->exitStatus(), QProcess::CrashExit); - delete process; - process = 0; + // delete process; + process.reset(); QCOMPARE(stateSpy.count(), 3); QCOMPARE(qvariant_cast<QProcess::ProcessState>(stateSpy.at(0).at(0)), QProcess::Starting); @@ -387,20 +396,21 @@ void tst_QProcess::crashTest() void tst_QProcess::crashTest2() { - process = new QProcess; - process->start("testProcessCrash/testProcessCrash"); - QVERIFY(process->waitForStarted(5000)); + QProcess process; + process.start("testProcessCrash/testProcessCrash"); + QVERIFY(process.waitForStarted(5000)); qRegisterMetaType<QProcess::ProcessError>("QProcess::ProcessError"); qRegisterMetaType<QProcess::ExitStatus>("QProcess::ExitStatus"); - QSignalSpy spy(process, static_cast<void (QProcess::*)(QProcess::ProcessError)>(&QProcess::errorOccurred)); - QSignalSpy spy2(process, static_cast<void (QProcess::*)(int, QProcess::ExitStatus)>(&QProcess::finished)); + QSignalSpy spy(&process, static_cast<QProcessErrorSignal>(&QProcess::errorOccurred)); + QSignalSpy spy2(&process, static_cast<QProcessFinishedSignal2>(&QProcess::finished)); QVERIFY(spy.isValid()); QVERIFY(spy2.isValid()); - QObject::connect(process, SIGNAL(finished(int)), this, SLOT(exitLoopSlot())); + QObject::connect(&process, static_cast<QProcessFinishedSignal1>(&QProcess::finished), + this, &tst_QProcess::exitLoopSlot); QTestEventLoop::instance().enterLoop(30); if (QTestEventLoop::instance().timeout()) @@ -412,10 +422,7 @@ void tst_QProcess::crashTest2() QCOMPARE(spy2.count(), 1); QCOMPARE(*static_cast<const QProcess::ExitStatus *>(spy2.at(0).at(1).constData()), QProcess::CrashExit); - QCOMPARE(process->exitStatus(), QProcess::CrashExit); - - delete process; - process = 0; + QCOMPARE(process.exitStatus(), QProcess::CrashExit); } #ifndef Q_OS_WINCE @@ -438,24 +445,24 @@ void tst_QProcess::echoTest() { QFETCH(QByteArray, input); - process = new QProcess; - connect(process, SIGNAL(readyRead()), this, SLOT(exitLoopSlot())); + QProcess process; + connect(&process, &QIODevice::readyRead, this, &tst_QProcess::exitLoopSlot); - process->start("testProcessEcho/testProcessEcho"); - QVERIFY(process->waitForStarted(5000)); + process.start("testProcessEcho/testProcessEcho"); + QVERIFY(process.waitForStarted(5000)); - process->write(input); + process.write(input); QTime stopWatch; stopWatch.start(); do { - QVERIFY(process->isOpen()); + QVERIFY(process.isOpen()); QTestEventLoop::instance().enterLoop(2); - } while (stopWatch.elapsed() < 60000 && process->bytesAvailable() < input.size()); + } while (stopWatch.elapsed() < 60000 && process.bytesAvailable() < input.size()); if (stopWatch.elapsed() >= 60000) QFAIL("Timed out"); - QByteArray message = process->readAll(); + QByteArray message = process.readAll(); QCOMPARE(message.size(), input.size()); char *c1 = message.data(); @@ -468,13 +475,11 @@ void tst_QProcess::echoTest() } QCOMPARE(*c1, *c2); - process->write("", 1); - - QVERIFY(process->waitForFinished(5000)); - + process.write("", 1); - delete process; - process = 0; + QVERIFY(process.waitForFinished(5000)); + QCOMPARE(process.exitStatus(), QProcess::NormalExit); + QCOMPARE(process.exitCode(), 0); } #endif @@ -488,17 +493,17 @@ void tst_QProcess::exitLoopSlot() void tst_QProcess::echoTest2() { - process = new QProcess; - connect(process, SIGNAL(readyRead()), this, SLOT(exitLoopSlot())); + QProcess process; + connect(&process, &QIODevice::readyRead, this, &tst_QProcess::exitLoopSlot); - process->start("testProcessEcho2/testProcessEcho2"); - QVERIFY(process->waitForStarted(5000)); - QVERIFY(!process->waitForReadyRead(250)); - QCOMPARE(process->error(), QProcess::Timedout); + process.start("testProcessEcho2/testProcessEcho2"); + QVERIFY(process.waitForStarted(5000)); + QVERIFY(!process.waitForReadyRead(250)); + QCOMPARE(process.error(), QProcess::Timedout); - process->write("Hello"); - QSignalSpy spy1(process, &QProcess::readyReadStandardOutput); - QSignalSpy spy2(process, &QProcess::readyReadStandardError); + process.write("Hello"); + QSignalSpy spy1(&process, &QProcess::readyReadStandardOutput); + QSignalSpy spy2(&process, &QProcess::readyReadStandardError); QVERIFY(spy1.isValid()); QVERIFY(spy2.isValid()); @@ -509,11 +514,11 @@ void tst_QProcess::echoTest2() QTestEventLoop::instance().enterLoop(1); if (stopWatch.elapsed() >= 30000) QFAIL("Timed out"); - process->setReadChannel(QProcess::StandardOutput); - qint64 baso = process->bytesAvailable(); + process.setReadChannel(QProcess::StandardOutput); + qint64 baso = process.bytesAvailable(); - process->setReadChannel(QProcess::StandardError); - qint64 base = process->bytesAvailable(); + process.setReadChannel(QProcess::StandardError); + qint64 base = process.bytesAvailable(); if (baso == 5 && base == 5) break; } @@ -521,14 +526,13 @@ void tst_QProcess::echoTest2() QVERIFY(spy1.count() > 0); QVERIFY(spy2.count() > 0); - QCOMPARE(process->readAllStandardOutput(), QByteArray("Hello")); - QCOMPARE(process->readAllStandardError(), QByteArray("Hello")); - - process->write("", 1); - QVERIFY(process->waitForFinished(5000)); + QCOMPARE(process.readAllStandardOutput(), QByteArray("Hello")); + QCOMPARE(process.readAllStandardError(), QByteArray("Hello")); - delete process; - process = 0; + process.write("", 1); + QVERIFY(process.waitForFinished(5000)); + QCOMPARE(process.exitStatus(), QProcess::NormalExit); + QCOMPARE(process.exitCode(), 0); } #endif @@ -545,6 +549,8 @@ void tst_QProcess::echoTestGui() process.write("q"); QVERIFY(process.waitForFinished(50000)); + QCOMPARE(process.exitStatus(), QProcess::NormalExit); + QCOMPARE(process.exitCode(), 0); QCOMPARE(process.readAllStandardOutput(), QByteArray("Hello")); QCOMPARE(process.readAllStandardError(), QByteArray("Hello")); @@ -583,6 +589,8 @@ void tst_QProcess::batFiles() proc.start(batFile, QStringList()); QVERIFY(proc.waitForFinished(5000)); + QCOMPARE(proc.exitStatus(), QProcess::NormalExit); + QCOMPARE(proc.exitCode(), 0); QVERIFY(proc.bytesAvailable() > 0); @@ -616,21 +624,18 @@ void tst_QProcess::exitStatus_data() void tst_QProcess::exitStatus() { - process = new QProcess; + QProcess process; QFETCH(QStringList, processList); QFETCH(QList<QProcess::ExitStatus>, exitStatus); QCOMPARE(exitStatus.count(), processList.count()); for (int i = 0; i < processList.count(); ++i) { - process->start(processList.at(i)); - QVERIFY(process->waitForStarted(5000)); - QVERIFY(process->waitForFinished(30000)); + process.start(processList.at(i)); + QVERIFY(process.waitForStarted(5000)); + QVERIFY(process.waitForFinished(30000)); - QCOMPARE(process->exitStatus(), exitStatus.at(i)); + QCOMPARE(process.exitStatus(), exitStatus.at(i)); } - - process->deleteLater(); - process = 0; } #ifndef Q_OS_WINCE @@ -638,23 +643,22 @@ void tst_QProcess::exitStatus() void tst_QProcess::loopBackTest() { - process = new QProcess; - process->start("testProcessEcho/testProcessEcho"); - QVERIFY(process->waitForStarted(5000)); + QProcess process; + process.start("testProcessEcho/testProcessEcho"); + QVERIFY(process.waitForStarted(5000)); for (int i = 0; i < 100; ++i) { - process->write("Hello"); + process.write("Hello"); do { - QVERIFY(process->waitForReadyRead(5000)); - } while (process->bytesAvailable() < 5); - QCOMPARE(process->readAll(), QByteArray("Hello")); + QVERIFY(process.waitForReadyRead(5000)); + } while (process.bytesAvailable() < 5); + QCOMPARE(process.readAll(), QByteArray("Hello")); } - process->write("", 1); - QVERIFY(process->waitForFinished(5000)); - - delete process; - process = 0; + process.write("", 1); + QVERIFY(process.waitForFinished(5000)); + QCOMPARE(process.exitStatus(), QProcess::NormalExit); + QCOMPARE(process.exitCode(), 0); } #endif @@ -663,35 +667,32 @@ void tst_QProcess::loopBackTest() void tst_QProcess::readTimeoutAndThenCrash() { - process = new QProcess; - process->start("testProcessEcho/testProcessEcho"); - if (process->state() != QProcess::Starting) - QCOMPARE(process->state(), QProcess::Running); + QProcess process; + process.start("testProcessEcho/testProcessEcho"); + if (process.state() != QProcess::Starting) + QCOMPARE(process.state(), QProcess::Running); - QVERIFY(process->waitForStarted(5000)); - QCOMPARE(process->state(), QProcess::Running); + QVERIFY(process.waitForStarted(5000)); + QCOMPARE(process.state(), QProcess::Running); - QVERIFY(!process->waitForReadyRead(5000)); - QCOMPARE(process->error(), QProcess::Timedout); + QVERIFY(!process.waitForReadyRead(5000)); + QCOMPARE(process.error(), QProcess::Timedout); qRegisterMetaType<QProcess::ProcessError>("QProcess::ProcessError"); - QSignalSpy spy(process, &QProcess::errorOccurred); - QSignalSpy spy2(process, static_cast<void (QProcess::*)(QProcess::ProcessError)>(&QProcess::error)); + QSignalSpy spy(&process, &QProcess::errorOccurred); + QSignalSpy spy2(&process, static_cast<QProcessErrorSignal>(&QProcess::error)); QVERIFY(spy.isValid()); QVERIFY(spy2.isValid()); - process->kill(); + process.kill(); - QVERIFY(process->waitForFinished(5000)); - QCOMPARE(process->state(), QProcess::NotRunning); + QVERIFY(process.waitForFinished(5000)); + QCOMPARE(process.state(), QProcess::NotRunning); QCOMPARE(spy.count(), 1); QCOMPARE(*static_cast<const QProcess::ProcessError *>(spy.at(0).at(0).constData()), QProcess::Crashed); QCOMPARE(spy2.count(), 1); QCOMPARE(*static_cast<const QProcess::ProcessError *>(spy2.at(0).at(0).constData()), QProcess::Crashed); - - delete process; - process = 0; } #endif @@ -738,6 +739,8 @@ void tst_QProcess::deadWhileReading() QCOMPARE(output.count("\n"), 10*1024); process.waitForFinished(); + QCOMPARE(process.exitStatus(), QProcess::NormalExit); + QCOMPARE(process.exitCode(), 0); } #endif @@ -749,23 +752,27 @@ void tst_QProcess::restartProcessDeadlock() // The purpose of this test is to detect whether restarting a // process in the finished() connected slot causes a deadlock // because of the way QProcessManager uses its locks. - QProcess proc; - process = &proc; - connect(process, SIGNAL(finished(int)), this, SLOT(restartProcess())); + QProcess process; + connect(&process, static_cast<QProcessFinishedSignal1>(&QProcess::finished), + this, &tst_QProcess::restartProcess); - process->start("testProcessEcho/testProcessEcho"); + process.start("testProcessEcho/testProcessEcho"); - QCOMPARE(process->write("", 1), qlonglong(1)); - QVERIFY(process->waitForFinished(5000)); + QCOMPARE(process.write("", 1), qlonglong(1)); + QVERIFY(process.waitForFinished(5000)); - process->disconnect(SIGNAL(finished(int))); + QObject::disconnect(&process, static_cast<QProcessFinishedSignal1>(&QProcess::finished), Q_NULLPTR, Q_NULLPTR); - QCOMPARE(process->write("", 1), qlonglong(1)); - QVERIFY(process->waitForFinished(5000)); + QCOMPARE(process.write("", 1), qlonglong(1)); + QVERIFY(process.waitForFinished(5000)); + QCOMPARE(process.exitStatus(), QProcess::NormalExit); + QCOMPARE(process.exitCode(), 0); } void tst_QProcess::restartProcess() { + QProcess *process = qobject_cast<QProcess *>(sender()); + QVERIFY(process); process->start("testProcessEcho/testProcessEcho"); } #endif @@ -794,6 +801,8 @@ void tst_QProcess::closeWriteChannel() if (more.state() == QProcess::Running) more.write("q"); QVERIFY(more.waitForFinished(5000)); + QCOMPARE(more.exitStatus(), QProcess::NormalExit); + QCOMPARE(more.exitCode(), 0); } #endif @@ -824,6 +833,8 @@ void tst_QProcess::closeReadChannel() proc.write("", 1); QVERIFY(proc.waitForFinished(5000)); + QCOMPARE(proc.exitStatus(), QProcess::NormalExit); + QCOMPARE(proc.exitCode(), 0); } } #endif @@ -878,7 +889,7 @@ void tst_QProcess::emitReadyReadOnlyWhenNewDataArrives() { QProcess proc; - connect(&proc, SIGNAL(readyRead()), this, SLOT(exitLoopSlot())); + connect(&proc, &QIODevice::readyRead, this, &tst_QProcess::exitLoopSlot); QSignalSpy spy(&proc, &QProcess::readyRead); QVERIFY(spy.isValid()); @@ -898,12 +909,14 @@ void tst_QProcess::emitReadyReadOnlyWhenNewDataArrives() QVERIFY(QTestEventLoop::instance().timeout()); QVERIFY(!proc.waitForReadyRead(250)); - QObject::disconnect(&proc, SIGNAL(readyRead()), 0, 0); + QObject::disconnect(&proc, &QIODevice::readyRead, Q_NULLPTR, Q_NULLPTR); proc.write("B"); QVERIFY(proc.waitForReadyRead(5000)); proc.write("", 1); QVERIFY(proc.waitForFinished(5000)); + QCOMPARE(proc.exitStatus(), QProcess::NormalExit); + QCOMPARE(proc.exitCode(), 0); } #endif @@ -960,30 +973,30 @@ public: SoftExitProcess(int n) : waitedForFinished(false), n(n), killing(false) { - connect(this, SIGNAL(finished(int,QProcess::ExitStatus)), - this, SLOT(finishedSlot(int,QProcess::ExitStatus))); + connect(this, static_cast<QProcessFinishedSignal2>(&QProcess::finished), + this, &SoftExitProcess::finishedSlot); switch (n) { case 0: setReadChannelMode(QProcess::MergedChannels); - connect(this, SIGNAL(readyRead()), this, SLOT(terminateSlot())); + connect(this, &QIODevice::readyRead, this, &SoftExitProcess::terminateSlot); break; case 1: - connect(this, SIGNAL(readyReadStandardOutput()), - this, SLOT(terminateSlot())); + connect(this, &QProcess::readyReadStandardOutput, + this, &SoftExitProcess::terminateSlot); break; case 2: - connect(this, SIGNAL(readyReadStandardError()), - this, SLOT(terminateSlot())); + connect(this, &QProcess::readyReadStandardError, + this, &SoftExitProcess::terminateSlot); break; case 3: - connect(this, SIGNAL(started()), - this, SLOT(terminateSlot())); + connect(this, &QProcess::started, + this, &SoftExitProcess::terminateSlot); break; case 4: default: - connect(this, SIGNAL(stateChanged(QProcess::ProcessState)), - this, SLOT(terminateSlot())); + connect(this, &QProcess::stateChanged, + this, &SoftExitProcess::terminateSlot); break; } } @@ -1084,6 +1097,8 @@ void tst_QProcess::mergedChannels() process.closeWriteChannel(); QVERIFY(process.waitForFinished(5000)); + QCOMPARE(process.exitStatus(), QProcess::NormalExit); + QCOMPARE(process.exitCode(), 0); } #endif @@ -1122,6 +1137,8 @@ void tst_QProcess::forwardedChannels() QCOMPARE(process.write("input"), 5); process.closeWriteChannel(); QVERIFY(process.waitForFinished(5000)); + QCOMPARE(process.exitStatus(), QProcess::NormalExit); + QCOMPARE(process.exitCode(), 0); const char *err; switch (process.exitCode()) { case 0: err = "ok"; break; @@ -1161,6 +1178,8 @@ void tst_QProcess::atEnd() process.write("", 1); QVERIFY(process.waitForFinished(5000)); + QCOMPARE(process.exitStatus(), QProcess::NormalExit); + QCOMPARE(process.exitCode(), 0); } #endif @@ -1179,8 +1198,8 @@ protected: exitCode = 90210; QProcess process; - connect(&process, SIGNAL(finished(int)), this, SLOT(catchExitCode(int)), - Qt::DirectConnection); + connect(&process, static_cast<QProcessFinishedSignal1>(&QProcess::finished), + this, &TestThread::catchExitCode, Qt::DirectConnection); process.start("testProcessEcho/testProcessEcho"); @@ -1239,19 +1258,16 @@ void tst_QProcess::processesInMultipleThreads() // Reading and writing to a process is not supported on Qt/CE void tst_QProcess::waitForFinishedWithTimeout() { - process = new QProcess(this); - - process->start("testProcessEcho/testProcessEcho"); + QProcess process; - QVERIFY(process->waitForStarted(5000)); - QVERIFY(!process->waitForFinished(1)); + process.start("testProcessEcho/testProcessEcho"); - process->write("", 1); + QVERIFY(process.waitForStarted(5000)); + QVERIFY(!process.waitForFinished(1)); - QVERIFY(process->waitForFinished()); + process.write("", 1); - delete process; - process = 0; + QVERIFY(process.waitForFinished()); } #endif @@ -1259,27 +1275,28 @@ void tst_QProcess::waitForFinishedWithTimeout() // Reading and writing to a process is not supported on Qt/CE void tst_QProcess::waitForReadyReadInAReadyReadSlot() { - process = new QProcess(this); - connect(process, SIGNAL(readyRead()), this, SLOT(waitForReadyReadInAReadyReadSlotSlot())); - connect(process, SIGNAL(finished(int)), this, SLOT(exitLoopSlot())); + QProcess process; + connect(&process, &QIODevice::readyRead, this, &tst_QProcess::waitForReadyReadInAReadyReadSlotSlot); + connect(&process, static_cast<QProcessFinishedSignal1>(&QProcess::finished), + this, &tst_QProcess::exitLoopSlot); bytesAvailable = 0; - process->start("testProcessEcho/testProcessEcho"); - QVERIFY(process->waitForStarted(5000)); + process.start("testProcessEcho/testProcessEcho"); + QVERIFY(process.waitForStarted(5000)); - QSignalSpy spy(process, &QProcess::readyRead); + QSignalSpy spy(&process, &QProcess::readyRead); QVERIFY(spy.isValid()); - process->write("foo"); + process.write("foo"); QTestEventLoop::instance().enterLoop(30); QVERIFY(!QTestEventLoop::instance().timeout()); QCOMPARE(spy.count(), 1); - process->disconnect(); - QVERIFY(process->waitForFinished(5000)); - QVERIFY(process->bytesAvailable() > bytesAvailable); - delete process; - process = 0; + process.disconnect(); + QVERIFY(process.waitForFinished(5000)); + QCOMPARE(process.exitStatus(), QProcess::NormalExit); + QCOMPARE(process.exitCode(), 0); + QVERIFY(process.bytesAvailable() > bytesAvailable); } #endif @@ -1287,6 +1304,8 @@ void tst_QProcess::waitForReadyReadInAReadyReadSlot() // Reading and writing to a process is not supported on Qt/CE void tst_QProcess::waitForReadyReadInAReadyReadSlotSlot() { + QProcess *process = qobject_cast<QProcess *>(sender()); + QVERIFY(process); bytesAvailable = process->bytesAvailable(); process->write("bar", 4); QVERIFY(process->waitForReadyRead(5000)); @@ -1298,25 +1317,25 @@ void tst_QProcess::waitForReadyReadInAReadyReadSlotSlot() // Reading and writing to a process is not supported on Qt/CE void tst_QProcess::waitForBytesWrittenInABytesWrittenSlot() { - process = new QProcess(this); - connect(process, SIGNAL(bytesWritten(qint64)), this, SLOT(waitForBytesWrittenInABytesWrittenSlotSlot())); + QProcess process; + connect(&process, &QIODevice::bytesWritten, this, &tst_QProcess::waitForBytesWrittenInABytesWrittenSlotSlot); bytesAvailable = 0; - process->start("testProcessEcho/testProcessEcho"); - QVERIFY(process->waitForStarted(5000)); + process.start("testProcessEcho/testProcessEcho"); + QVERIFY(process.waitForStarted(5000)); - QSignalSpy spy(process, &QProcess::bytesWritten); + QSignalSpy spy(&process, &QProcess::bytesWritten); QVERIFY(spy.isValid()); - process->write("f"); + process.write("f"); QTestEventLoop::instance().enterLoop(30); QVERIFY(!QTestEventLoop::instance().timeout()); QCOMPARE(spy.count(), 1); - process->write("", 1); - process->disconnect(); - QVERIFY(process->waitForFinished()); - delete process; - process = 0; + process.write("", 1); + process.disconnect(); + QVERIFY(process.waitForFinished()); + QCOMPARE(process.exitStatus(), QProcess::NormalExit); + QCOMPARE(process.exitCode(), 0); } #endif @@ -1324,6 +1343,8 @@ void tst_QProcess::waitForBytesWrittenInABytesWrittenSlot() // Reading and writing to a process is not supported on Qt/CE void tst_QProcess::waitForBytesWrittenInABytesWrittenSlotSlot() { + QProcess *process = qobject_cast<QProcess *>(sender()); + QVERIFY(process); process->write("b"); QVERIFY(process->waitForBytesWritten(5000)); QTestEventLoop::instance().exitLoop(); @@ -1392,11 +1413,11 @@ void tst_QProcess::spaceArgsTest() << QString::fromLatin1("testProcessSpacesArgs/one space") << QString::fromLatin1("testProcessSpacesArgs/two space s"); - process = new QProcess(this); + QProcess process; for (int i = 0; i < programs.size(); ++i) { QString program = programs.at(i); - process->start(program, args); + process.start(program, args); #if defined(Q_OS_WINCE) const int timeOutMS = 10000; @@ -1404,14 +1425,16 @@ void tst_QProcess::spaceArgsTest() const int timeOutMS = 5000; #endif QByteArray errorMessage; - bool started = process->waitForStarted(timeOutMS); + bool started = process.waitForStarted(timeOutMS); if (!started) - errorMessage = startFailMessage(program, *process); + errorMessage = startFailMessage(program, process); QVERIFY2(started, errorMessage.constData()); - QVERIFY(process->waitForFinished(timeOutMS)); + QVERIFY(process.waitForFinished(timeOutMS)); + QCOMPARE(process.exitStatus(), QProcess::NormalExit); + QCOMPARE(process.exitCode(), 0); #if !defined(Q_OS_WINCE) - QStringList actual = QString::fromLatin1(process->readAll()).split("|"); + QStringList actual = QString::fromLatin1(process.readAll()).split("|"); #endif #if !defined(Q_OS_WINCE) QVERIFY(!actual.isEmpty()); @@ -1428,16 +1451,16 @@ void tst_QProcess::spaceArgsTest() program += QLatin1Char(' ') + stringArgs; errorMessage.clear(); - process->start(program); - started = process->waitForStarted(5000); + process.start(program); + started = process.waitForStarted(5000); if (!started) - errorMessage = startFailMessage(program, *process); + errorMessage = startFailMessage(program, process); QVERIFY2(started, errorMessage.constData()); - QVERIFY(process->waitForFinished(5000)); + QVERIFY(process.waitForFinished(5000)); #if !defined(Q_OS_WINCE) - actual = QString::fromLatin1(process->readAll()).split("|"); + actual = QString::fromLatin1(process.readAll()).split("|"); #endif #if !defined(Q_OS_WINCE) QVERIFY(!actual.isEmpty()); @@ -1447,9 +1470,6 @@ void tst_QProcess::spaceArgsTest() QCOMPARE(actual, args); #endif } - - delete process; - process = 0; } #if defined(Q_OS_WIN) @@ -1471,6 +1491,8 @@ void tst_QProcess::nativeArguments() QVERIFY(proc.waitForStarted(10000)); QVERIFY(proc.waitForFinished(10000)); #endif + QCOMPARE(proc.exitStatus(), QProcess::NormalExit); + QCOMPARE(proc.exitCode(), 0); #if defined(Q_OS_WINCE) // WinCE test outputs to a file, so check that @@ -1525,9 +1547,9 @@ void tst_QProcess::failToStart() QProcess process; QSignalSpy stateSpy(&process, &QProcess::stateChanged); QSignalSpy errorSpy(&process, &QProcess::errorOccurred); - QSignalSpy errorSpy2(&process, static_cast<void (QProcess::*)(QProcess::ProcessError)>(&QProcess::error)); - QSignalSpy finishedSpy(&process, static_cast<void (QProcess::*)(int)>(&QProcess::finished)); - QSignalSpy finishedSpy2(&process, static_cast<void (QProcess::*)(int, QProcess::ExitStatus)>(&QProcess::finished)); + QSignalSpy errorSpy2(&process, static_cast<QProcessErrorSignal>(&QProcess::error)); + QSignalSpy finishedSpy(&process, static_cast<QProcessFinishedSignal1>(&QProcess::finished)); + QSignalSpy finishedSpy2(&process, static_cast<QProcessFinishedSignal2>(&QProcess::finished)); QVERIFY(stateSpy.isValid()); QVERIFY(errorSpy.isValid()); @@ -1597,9 +1619,9 @@ void tst_QProcess::failToStartWithWait() QProcess process; QEventLoop loop; QSignalSpy errorSpy(&process, &QProcess::errorOccurred); - QSignalSpy errorSpy2(&process, static_cast<void (QProcess::*)(QProcess::ProcessError)>(&QProcess::error)); - QSignalSpy finishedSpy(&process, static_cast<void (QProcess::*)(int)>(&QProcess::finished)); - QSignalSpy finishedSpy2(&process, static_cast<void (QProcess::*)(int, QProcess::ExitStatus)>(&QProcess::finished)); + QSignalSpy errorSpy2(&process, static_cast<QProcessErrorSignal>(&QProcess::error)); + QSignalSpy finishedSpy(&process, static_cast<QProcessFinishedSignal1>(&QProcess::finished)); + QSignalSpy finishedSpy2(&process, static_cast<QProcessFinishedSignal2>(&QProcess::finished)); QVERIFY(errorSpy.isValid()); QVERIFY(errorSpy2.isValid()); @@ -1629,9 +1651,9 @@ void tst_QProcess::failToStartWithEventLoop() QProcess process; QEventLoop loop; QSignalSpy errorSpy(&process, &QProcess::errorOccurred); - QSignalSpy errorSpy2(&process, static_cast<void (QProcess::*)(QProcess::ProcessError)>(&QProcess::error)); - QSignalSpy finishedSpy(&process, static_cast<void (QProcess::*)(int)>(&QProcess::finished)); - QSignalSpy finishedSpy2(&process, static_cast<void (QProcess::*)(int, QProcess::ExitStatus)>(&QProcess::finished)); + QSignalSpy errorSpy2(&process, static_cast<QProcessErrorSignal>(&QProcess::error)); + QSignalSpy finishedSpy(&process, static_cast<QProcessFinishedSignal1>(&QProcess::finished)); + QSignalSpy finishedSpy2(&process, static_cast<QProcessFinishedSignal2>(&QProcess::finished)); QVERIFY(errorSpy.isValid()); QVERIFY(errorSpy2.isValid()); @@ -1669,7 +1691,7 @@ void tst_QProcess::failToStartEmptyArgs() qRegisterMetaType<QProcess::ProcessError>("QProcess::ProcessError"); QProcess process; - QSignalSpy errorSpy(&process, static_cast<void (QProcess::*)(QProcess::ProcessError)>(&QProcess::error)); + QSignalSpy errorSpy(&process, static_cast<QProcessErrorSignal>(&QProcess::error)); QVERIFY(errorSpy.isValid()); switch (startOverload) { @@ -1707,6 +1729,8 @@ void tst_QProcess::removeFileWhileProcessIsRunning() process.write("", 1); QVERIFY(process.waitForFinished(5000)); + QCOMPARE(process.exitStatus(), QProcess::NormalExit); + QCOMPARE(process.exitCode(), 0); } #endif #ifndef Q_OS_WINCE @@ -1851,6 +1875,8 @@ void tst_QProcess::spaceInName() QVERIFY(process.waitForStarted()); process.write("", 1); QVERIFY(process.waitForFinished()); + QCOMPARE(process.exitStatus(), QProcess::NormalExit); + QCOMPARE(process.exitCode(), 0); } #endif @@ -1893,9 +1919,9 @@ void tst_QProcess::waitForReadyReadForNonexistantProcess() QProcess process; QSignalSpy errorSpy(&process, &QProcess::errorOccurred); - QSignalSpy errorSpy2(&process, static_cast<void (QProcess::*)(QProcess::ProcessError)>(&QProcess::error)); - QSignalSpy finishedSpy1(&process, static_cast<void (QProcess::*)(int)>(&QProcess::finished)); - QSignalSpy finishedSpy2(&process, static_cast<void (QProcess::*)(int, QProcess::ExitStatus)>(&QProcess::finished)); + QSignalSpy errorSpy2(&process, static_cast<QProcessErrorSignal>(&QProcess::error)); + QSignalSpy finishedSpy1(&process, static_cast<QProcessFinishedSignal1>(&QProcess::finished)); + QSignalSpy finishedSpy2(&process, static_cast<QProcessFinishedSignal2>(&QProcess::finished)); QVERIFY(errorSpy.isValid()); QVERIFY(errorSpy2.isValid()); @@ -1932,6 +1958,8 @@ void tst_QProcess::setStandardInputFile() process.start("testProcessEcho/testProcessEcho"); QPROCESS_VERIFY(process, waitForFinished()); + QCOMPARE(process.exitStatus(), QProcess::NormalExit); + QCOMPARE(process.exitCode(), 0); QByteArray all = process.readAll(); QCOMPARE(all.size(), int(sizeof data) - 1); // testProcessEcho drops the ending \0 QVERIFY(all == data); @@ -2004,6 +2032,8 @@ void tst_QProcess::setStandardOutputFile() process.start("testProcessEcho2/testProcessEcho2"); process.write(testdata, sizeof testdata); QPROCESS_VERIFY(process,waitForFinished()); + QCOMPARE(process.exitStatus(), QProcess::NormalExit); + QCOMPARE(process.exitCode(), 0); // open the file again and verify the data QVERIFY(file.open(QIODevice::ReadOnly)); @@ -2033,6 +2063,8 @@ void tst_QProcess::setStandardOutputFileNullDevice() process.start("testProcessEcho2/testProcessEcho2"); process.write(testdata, sizeof testdata); QPROCESS_VERIFY(process,waitForFinished()); + QCOMPARE(process.exitStatus(), QProcess::NormalExit); + QCOMPARE(process.exitCode(), 0); QCOMPARE(process.bytesAvailable(), Q_INT64_C(0)); QVERIFY(!QFileInfo(QProcess::nullDevice()).isFile()); @@ -2049,6 +2081,8 @@ void tst_QProcess::setStandardOutputFileAndWaitForBytesWritten() process.write(testdata, sizeof testdata); process.waitForBytesWritten(); QPROCESS_VERIFY(process, waitForFinished()); + QCOMPARE(process.exitStatus(), QProcess::NormalExit); + QCOMPARE(process.exitCode(), 0); // open the file again and verify the data QVERIFY(file.open(QIODevice::ReadOnly)); @@ -2089,7 +2123,11 @@ void tst_QProcess::setStandardOutputProcess() source.waitForBytesWritten(); source.closeWriteChannel(); QPROCESS_VERIFY(source, waitForFinished()); + QCOMPARE(source.exitStatus(), QProcess::NormalExit); + QCOMPARE(source.exitCode(), 0); QPROCESS_VERIFY(sink, waitForFinished()); + QCOMPARE(sink.exitStatus(), QProcess::NormalExit); + QCOMPARE(sink.exitCode(), 0); QByteArray all = sink.readAll(); if (!merged) @@ -2103,25 +2141,34 @@ void tst_QProcess::setStandardOutputProcess() // Reading and writing to a process is not supported on Qt/CE void tst_QProcess::fileWriterProcess() { - QString stdinStr; - for (int i = 0; i < 5000; ++i) - stdinStr += QString::fromLatin1("%1 -- testing testing 1 2 3\n").arg(i); + const QByteArray line = QByteArrayLiteral(" -- testing testing 1 2 3\n"); + QByteArray stdinStr; + stdinStr.reserve(5000 * (4 + line.size()) + 1); + for (int i = 0; i < 5000; ++i) { + stdinStr += QByteArray::number(i); + stdinStr += line; + } QTime stopWatch; stopWatch.start(); + const QString fileName = QLatin1String("fileWriterProcess.txt"); + do { - QFile::remove("fileWriterProcess.txt"); + if (QFile::exists(fileName)) + QVERIFY(QFile::remove(fileName)); QProcess process; process.start("fileWriterProcess/fileWriterProcess", QIODevice::ReadWrite | QIODevice::Text); - process.write(stdinStr.toLatin1()); + process.write(stdinStr); process.closeWriteChannel(); while (process.bytesToWrite()) { QVERIFY(stopWatch.elapsed() < 3500); QVERIFY(process.waitForBytesWritten(2000)); } QVERIFY(process.waitForFinished()); - QCOMPARE(QFile("fileWriterProcess.txt").size(), qint64(stdinStr.size())); + QCOMPARE(process.exitStatus(), QProcess::NormalExit); + QCOMPARE(process.exitCode(), 0); + QCOMPARE(QFile(fileName).size(), qint64(stdinStr.size())); } while (stopWatch.elapsed() < 3000); } #endif @@ -2181,6 +2228,8 @@ void tst_QProcess::switchReadChannels() process.write(data); process.closeWriteChannel(); QVERIFY(process.waitForFinished(5000)); + QCOMPARE(process.exitStatus(), QProcess::NormalExit); + QCOMPARE(process.exitCode(), 0); for (int i = 0; i < 4; ++i) { process.setReadChannel(QProcess::StandardOutput); @@ -2210,6 +2259,8 @@ void tst_QProcess::discardUnwantedOutput() process.write("Hello, World"); process.closeWriteChannel(); QVERIFY(process.waitForFinished(5000)); + QCOMPARE(process.exitStatus(), QProcess::NormalExit); + QCOMPARE(process.exitCode(), 0); process.setReadChannel(QProcess::StandardOutput); QCOMPARE(process.bytesAvailable(), Q_INT64_C(0)); @@ -2223,45 +2274,41 @@ void tst_QProcess::discardUnwantedOutput() // Windows CE does not support working directory logic void tst_QProcess::setWorkingDirectory() { - process = new QProcess; - process->setWorkingDirectory("test"); + QProcess process; + process.setWorkingDirectory("test"); // use absolute path because on Windows, the executable is relative to the parent's CWD // while on Unix with fork it's relative to the child's (with posix_spawn, it could be either). - process->start(QFileInfo("testSetWorkingDirectory/testSetWorkingDirectory").absoluteFilePath()); + process.start(QFileInfo("testSetWorkingDirectory/testSetWorkingDirectory").absoluteFilePath()); - QVERIFY2(process->waitForFinished(), process->errorString().toLocal8Bit()); + QVERIFY2(process.waitForFinished(), process.errorString().toLocal8Bit()); + QCOMPARE(process.exitStatus(), QProcess::NormalExit); + QCOMPARE(process.exitCode(), 0); - QByteArray workingDir = process->readAllStandardOutput(); + QByteArray workingDir = process.readAllStandardOutput(); QCOMPARE(QDir("test").canonicalPath(), QDir(workingDir.constData()).canonicalPath()); - - delete process; - process = 0; } void tst_QProcess::setNonExistentWorkingDirectory() { - process = new QProcess; - process->setWorkingDirectory("this/directory/should/not/exist/for/sure"); + QProcess process; + process.setWorkingDirectory("this/directory/should/not/exist/for/sure"); // use absolute path because on Windows, the executable is relative to the parent's CWD // while on Unix with fork it's relative to the child's (with posix_spawn, it could be either). - process->start(QFileInfo("testSetWorkingDirectory/testSetWorkingDirectory").absoluteFilePath()); - QVERIFY(!process->waitForFinished()); + process.start(QFileInfo("testSetWorkingDirectory/testSetWorkingDirectory").absoluteFilePath()); + QVERIFY(!process.waitForFinished()); #ifdef QPROCESS_USE_SPAWN QEXPECT_FAIL("", "QProcess cannot detect failure to start when using posix_spawn()", Continue); #endif - QCOMPARE(int(process->error()), int(QProcess::FailedToStart)); + QCOMPARE(int(process.error()), int(QProcess::FailedToStart)); #ifdef Q_OS_UNIX # ifdef QPROCESS_USE_SPAWN QEXPECT_FAIL("", "QProcess cannot detect failure to start when using posix_spawn()", Continue); # endif - QVERIFY2(process->errorString().startsWith("chdir:"), process->errorString().toLocal8Bit()); + QVERIFY2(process.errorString().startsWith("chdir:"), process.errorString().toLocal8Bit()); #endif - - delete process; - process = 0; } #endif @@ -2278,8 +2325,11 @@ void tst_QProcess::startFinishStartFinish() QCOMPARE(QString::fromLatin1(process.readLine().trimmed()), QString("0 -this is a number")); #endif - if (process.state() != QProcess::NotRunning) + if (process.state() != QProcess::NotRunning) { QVERIFY(process.waitForFinished(10000)); + QCOMPARE(process.exitStatus(), QProcess::NormalExit); + QCOMPARE(process.exitCode(), 0); + } } } @@ -2298,7 +2348,7 @@ void tst_QProcess::invalidProgramString() qRegisterMetaType<QProcess::ProcessError>("QProcess::ProcessError"); QSignalSpy spy(&process, &QProcess::errorOccurred); - QSignalSpy spy2(&process, static_cast<void (QProcess::*)(QProcess::ProcessError)>(&QProcess::error)); + QSignalSpy spy2(&process, static_cast<QProcessErrorSignal>(&QProcess::error)); QVERIFY(spy.isValid()); QVERIFY(spy2.isValid()); @@ -2316,7 +2366,7 @@ void tst_QProcess::onlyOneStartedSignal() QProcess process; QSignalSpy spyStarted(&process, &QProcess::started); - QSignalSpy spyFinished(&process, static_cast<void (QProcess::*)(int, QProcess::ExitStatus)>(&QProcess::finished)); + QSignalSpy spyFinished(&process, static_cast<QProcessFinishedSignal2>(&QProcess::finished)); QVERIFY(spyStarted.isValid()); QVERIFY(spyFinished.isValid()); @@ -2332,6 +2382,8 @@ void tst_QProcess::onlyOneStartedSignal() process.start("testProcessNormal/testProcessNormal"); QVERIFY(process.waitForFinished(5000)); + QCOMPARE(process.exitStatus(), QProcess::NormalExit); + QCOMPARE(process.exitCode(), 0); QCOMPARE(spyStarted.count(), 1); QCOMPARE(spyFinished.count(), 1); } @@ -2342,7 +2394,7 @@ class BlockOnReadStdOut : public QObject public: BlockOnReadStdOut(QProcess *process) { - connect(process, SIGNAL(readyReadStandardOutput()), SLOT(block())); + connect(process, &QProcess::readyReadStandardOutput, this, &BlockOnReadStdOut::block); } public slots: @@ -2357,7 +2409,8 @@ void tst_QProcess::finishProcessBeforeReadingDone() QProcess process; BlockOnReadStdOut blocker(&process); QEventLoop loop; - connect(&process, SIGNAL(finished(int)), &loop, SLOT(quit())); + connect(&process, static_cast<QProcessFinishedSignal1>(&QProcess::finished), + &loop, &QEventLoop::quit); process.start("testProcessOutput/testProcessOutput"); QVERIFY(process.waitForStarted()); loop.exec(); @@ -2365,6 +2418,8 @@ void tst_QProcess::finishProcessBeforeReadingDone() QRegExp(QStringLiteral("[\r\n]")), QString::SkipEmptyParts); QVERIFY(!lines.isEmpty()); QCOMPARE(lines.last(), QStringLiteral("10239 -this is a number")); + QCOMPARE(process.exitStatus(), QProcess::NormalExit); + QCOMPARE(process.exitCode(), 0); } //----------------------------------------------------------------------------- @@ -2381,14 +2436,17 @@ void tst_QProcess::startStopStartStop() QProcess process; process.start("testProcessNormal/testProcessNormal"); QVERIFY(process.waitForFinished()); + QCOMPARE(process.exitStatus(), QProcess::NormalExit); QCOMPARE(process.exitCode(), 0); process.start("testExitCodes/testExitCodes", QStringList() << "1"); QVERIFY(process.waitForFinished()); + QCOMPARE(process.exitStatus(), QProcess::NormalExit); QCOMPARE(process.exitCode(), 1); process.start("testProcessNormal/testProcessNormal"); QVERIFY(process.waitForFinished()); + QCOMPARE(process.exitStatus(), QProcess::NormalExit); QCOMPARE(process.exitCode(), 0); } @@ -2460,6 +2518,7 @@ void tst_QProcess::startStopStartStopBuffers() process.write("line3\n"); process.closeWriteChannel(); QVERIFY(process.waitForFinished()); + QCOMPARE(process.exitStatus(), QProcess::NormalExit); QCOMPARE(process.exitCode(), 0); if (channelMode2 == QProcess::MergedChannels) { diff --git a/tests/auto/corelib/io/qsavefile/tst_qsavefile.cpp b/tests/auto/corelib/io/qsavefile/tst_qsavefile.cpp index 5796636b92..6e6dc2df95 100644 --- a/tests/auto/corelib/io/qsavefile/tst_qsavefile.cpp +++ b/tests/auto/corelib/io/qsavefile/tst_qsavefile.cpp @@ -99,7 +99,7 @@ static inline QByteArray msgCannotOpen(const QFileDevice &f) void tst_QSaveFile::transactionalWrite() { QTemporaryDir dir; - QVERIFY(dir.isValid()); + QVERIFY2(dir.isValid(), qPrintable(dir.errorString())); const QString targetFile = dir.path() + QString::fromLatin1("/outfile"); QFile::remove(targetFile); QSaveFile file(targetFile); @@ -134,7 +134,7 @@ void tst_QSaveFile::saveTwice() // Check that we can reuse a QSaveFile object // (and test the case of an existing target file) QTemporaryDir dir; - QVERIFY(dir.isValid()); + QVERIFY2(dir.isValid(), qPrintable(dir.errorString())); const QString targetFile = dir.path() + QString::fromLatin1("/outfile"); QSaveFile file(targetFile); QVERIFY2(file.open(QIODevice::WriteOnly), msgCannotOpen(file).constData()); @@ -153,7 +153,7 @@ void tst_QSaveFile::saveTwice() void tst_QSaveFile::textStreamManualFlush() { QTemporaryDir dir; - QVERIFY(dir.isValid()); + QVERIFY2(dir.isValid(), qPrintable(dir.errorString())); const QString targetFile = dir.path() + QString::fromLatin1("/outfile"); QSaveFile file(targetFile); QVERIFY2(file.open(QIODevice::WriteOnly), msgCannotOpen(file).constData()); @@ -174,7 +174,7 @@ void tst_QSaveFile::textStreamManualFlush() void tst_QSaveFile::textStreamAutoFlush() { QTemporaryDir dir; - QVERIFY(dir.isValid()); + QVERIFY2(dir.isValid(), qPrintable(dir.errorString())); const QString targetFile = dir.path() + QString::fromLatin1("/outfile"); QSaveFile file(targetFile); QVERIFY2(file.open(QIODevice::WriteOnly), msgCannotOpen(file).constData()); @@ -206,7 +206,7 @@ void tst_QSaveFile::transactionalWriteNoPermissionsOnDir() #endif QFETCH(bool, directWriteFallback); QTemporaryDir dir; - QVERIFY(dir.isValid()); + QVERIFY2(dir.isValid(), qPrintable(dir.errorString())); QVERIFY(QFile(dir.path()).setPermissions(QFile::ReadOwner | QFile::ExeOwner)); PermissionRestorer permissionRestorer(dir.path()); @@ -264,7 +264,7 @@ void tst_QSaveFile::transactionalWriteNoPermissionsOnFile() #endif // Setup an existing but readonly file QTemporaryDir dir; - QVERIFY(dir.isValid()); + QVERIFY2(dir.isValid(), qPrintable(dir.errorString())); const QString targetFile = dir.path() + QString::fromLatin1("/outfile"); QFile file(targetFile); PermissionRestorer permissionRestorer(targetFile); @@ -285,7 +285,7 @@ void tst_QSaveFile::transactionalWriteNoPermissionsOnFile() void tst_QSaveFile::transactionalWriteCanceled() { QTemporaryDir dir; - QVERIFY(dir.isValid()); + QVERIFY2(dir.isValid(), qPrintable(dir.errorString())); const QString targetFile = dir.path() + QString::fromLatin1("/outfile"); QFile::remove(targetFile); QSaveFile file(targetFile); @@ -313,7 +313,7 @@ void tst_QSaveFile::transactionalWriteErrorRenaming() QSKIP("Test is not applicable with root privileges"); #endif QTemporaryDir dir; - QVERIFY(dir.isValid()); + QVERIFY2(dir.isValid(), qPrintable(dir.errorString())); const QString targetFile = dir.path() + QString::fromLatin1("/outfile"); QSaveFile file(targetFile); QVERIFY2(file.open(QIODevice::WriteOnly), msgCannotOpen(file).constData()); @@ -347,7 +347,7 @@ void tst_QSaveFile::symlink() #ifdef Q_OS_UNIX QByteArray someData = "some data"; QTemporaryDir dir; - QVERIFY(dir.isValid()); + QVERIFY2(dir.isValid(), qPrintable(dir.errorString())); const QString targetFile = dir.path() + QLatin1String("/outfile"); const QString linkFile = dir.path() + QLatin1String("/linkfile"); @@ -400,7 +400,7 @@ void tst_QSaveFile::symlink() // link to a link in another directory QTemporaryDir dir2; - QVERIFY(dir2.isValid()); + QVERIFY2(dir2.isValid(), qPrintable(dir2.errorString())); const QString linkFile2 = dir2.path() + QLatin1String("/linkfile"); QVERIFY(QFile::link(linkFile, linkFile2)); @@ -458,7 +458,7 @@ void tst_QSaveFile::symlink() void tst_QSaveFile::directory() { QTemporaryDir dir; - QVERIFY(dir.isValid()); + QVERIFY2(dir.isValid(), qPrintable(dir.errorString())); const QString subdir = dir.path() + QLatin1String("/subdir"); QVERIFY(QDir(dir.path()).mkdir(QStringLiteral("subdir"))); diff --git a/tests/auto/corelib/io/qsettings/tst_qsettings.cpp b/tests/auto/corelib/io/qsettings/tst_qsettings.cpp index 83ccf20a6d..a520010b47 100644 --- a/tests/auto/corelib/io/qsettings/tst_qsettings.cpp +++ b/tests/auto/corelib/io/qsettings/tst_qsettings.cpp @@ -3378,7 +3378,7 @@ void tst_QSettings::dontReorderIniKeysNeedlessly() QString outFileName2; QTemporaryFile outFile; - outFile.open(); + QVERIFY2(outFile.open(), qPrintable(outFile.errorString())); outFile.write(contentsBefore); outFileName = outFile.fileName(); outFile.close(); diff --git a/tests/auto/corelib/io/qstandardpaths/tst_qstandardpaths.cpp b/tests/auto/corelib/io/qstandardpaths/tst_qstandardpaths.cpp index efb343cf85..24ff2f237f 100644 --- a/tests/auto/corelib/io/qstandardpaths/tst_qstandardpaths.cpp +++ b/tests/auto/corelib/io/qstandardpaths/tst_qstandardpaths.cpp @@ -56,6 +56,7 @@ class tst_qstandardpaths : public QObject Q_OBJECT private slots: + void initTestCase(); void dump(); void testDefaultLocations(); void testCustomLocations(); @@ -128,6 +129,14 @@ static const char * const enumNames[MaxStandardLocation + 1 - int(QStandardPaths "AppConfigLocation" }; +void tst_qstandardpaths::initTestCase() +{ + QVERIFY2(m_localConfigTempDir.isValid(), qPrintable(m_localConfigTempDir.errorString())); + QVERIFY2(m_globalConfigTempDir.isValid(), qPrintable(m_globalConfigTempDir.errorString())); + QVERIFY2(m_localAppTempDir.isValid(), qPrintable(m_localAppTempDir.errorString())); + QVERIFY2(m_globalAppTempDir.isValid(), qPrintable(m_globalAppTempDir.errorString())); +} + void tst_qstandardpaths::dump() { #ifdef Q_XDG_PLATFORM diff --git a/tests/auto/corelib/io/qstorageinfo/tst_qstorageinfo.cpp b/tests/auto/corelib/io/qstorageinfo/tst_qstorageinfo.cpp index 57bb81be61..aaaa0d4949 100644 --- a/tests/auto/corelib/io/qstorageinfo/tst_qstorageinfo.cpp +++ b/tests/auto/corelib/io/qstorageinfo/tst_qstorageinfo.cpp @@ -153,7 +153,7 @@ void tst_QStorageInfo::storageList() void tst_QStorageInfo::tempFile() { QTemporaryFile file; - QVERIFY(file.open()); + QVERIFY2(file.open(), qPrintable(file.errorString())); QStorageInfo storage1(file.fileName()); #ifdef Q_OS_LINUX @@ -174,7 +174,7 @@ void tst_QStorageInfo::tempFile() void tst_QStorageInfo::caching() { QTemporaryFile file; - QVERIFY(file.open()); + QVERIFY2(file.open(), qPrintable(file.errorString())); QStorageInfo storage1(file.fileName()); #ifdef Q_OS_LINUX diff --git a/tests/auto/corelib/io/qtextstream/tst_qtextstream.cpp b/tests/auto/corelib/io/qtextstream/tst_qtextstream.cpp index 4bcdd1b827..532a53e5d3 100644 --- a/tests/auto/corelib/io/qtextstream/tst_qtextstream.cpp +++ b/tests/auto/corelib/io/qtextstream/tst_qtextstream.cpp @@ -258,6 +258,7 @@ tst_QTextStream::tst_QTextStream() void tst_QTextStream::initTestCase() { + QVERIFY2(tempDir.isValid(), qPrintable(tempDir.errorString())); QVERIFY(!m_rfc3261FilePath.isEmpty()); QVERIFY(!m_shiftJisFilePath.isEmpty()); |