diff options
author | Jason McDonald <jason.mcdonald@nokia.com> | 2011-12-22 17:16:48 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2011-12-28 04:48:11 +0100 |
commit | ea415e20607016651f3cef02dff109235d84eb4d (patch) | |
tree | 8c954afe7d078b0ca742a1f2249ccc5a9ddf1b82 /tests/auto/corelib/io | |
parent | 1e7296f3f2e7346f52e8f70d4e531405a248aa8b (diff) |
Cleanup corelib autotests.
When using QSignalSpy, always verify that the signal spy is valid. This
will cause the test to give a meaningful failure when spying on a
non-existant signal. Without this change, tests that spy on a signal to
ensure that it is not emitted (i.e. by comparing the spy count to zero)
could pass erroneously if something went wrong when creating the signal
spy, as an invalid QSignalSpy will always return a count of zero.
Change-Id: I41f4a63d9f0de9190a86de237662dc96be802446
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
Diffstat (limited to 'tests/auto/corelib/io')
-rw-r--r-- | tests/auto/corelib/io/qfile/tst_qfile.cpp | 5 | ||||
-rw-r--r-- | tests/auto/corelib/io/qfilesystemwatcher/tst_qfilesystemwatcher.cpp | 4 | ||||
-rw-r--r-- | tests/auto/corelib/io/qprocess/tst_qprocess.cpp | 38 |
3 files changed, 45 insertions, 2 deletions
diff --git a/tests/auto/corelib/io/qfile/tst_qfile.cpp b/tests/auto/corelib/io/qfile/tst_qfile.cpp index fdb0a7e59c..cae97f80c4 100644 --- a/tests/auto/corelib/io/qfile/tst_qfile.cpp +++ b/tests/auto/corelib/io/qfile/tst_qfile.cpp @@ -1483,14 +1483,15 @@ void tst_QFile::tailFile() QVERIFY(tailFile.open(QFile::ReadOnly)); tailFile.seek(file.size()); - QSignalSpy readSignal(&tailFile, SIGNAL(readyRead())); + QSignalSpy readSignalSpy(&tailFile, SIGNAL(readyRead())); + QVERIFY(readSignalSpy.isValid()); file.write("", 1); QTestEventLoop::instance().enterLoop(5); QVERIFY(!QTestEventLoop::instance().timeout()); - QCOMPARE(readSignal.count(), 1); + QCOMPARE(readSignalSpy.count(), 1); } void tst_QFile::flush() diff --git a/tests/auto/corelib/io/qfilesystemwatcher/tst_qfilesystemwatcher.cpp b/tests/auto/corelib/io/qfilesystemwatcher/tst_qfilesystemwatcher.cpp index b9840bdb75..0f2c163e24 100644 --- a/tests/auto/corelib/io/qfilesystemwatcher/tst_qfilesystemwatcher.cpp +++ b/tests/auto/corelib/io/qfilesystemwatcher/tst_qfilesystemwatcher.cpp @@ -138,6 +138,7 @@ void tst_QFileSystemWatcher::basicTest() watcher.addPath(testFile.fileName()); QSignalSpy changedSpy(&watcher, SIGNAL(fileChanged(const QString &))); + QVERIFY(changedSpy.isValid()); QEventLoop eventLoop; QTimer timer; connect(&timer, SIGNAL(timeout()), &eventLoop, SLOT(quit())); @@ -273,6 +274,7 @@ void tst_QFileSystemWatcher::watchDirectory() watcher.addPath(testDir.dirName()); QSignalSpy changedSpy(&watcher, SIGNAL(directoryChanged(const QString &))); + QVERIFY(changedSpy.isValid()); QEventLoop eventLoop; QTimer timer; connect(&timer, SIGNAL(timeout()), &eventLoop, SLOT(quit())); @@ -423,6 +425,8 @@ void tst_QFileSystemWatcher::watchFileAndItsDirectory() QSignalSpy fileChangedSpy(&watcher, SIGNAL(fileChanged(const QString &))); QSignalSpy dirChangedSpy(&watcher, SIGNAL(directoryChanged(const QString &))); + QVERIFY(fileChangedSpy.isValid()); + QVERIFY(dirChangedSpy.isValid()); QEventLoop eventLoop; QTimer timer; connect(&timer, SIGNAL(timeout()), &eventLoop, SLOT(quit())); diff --git a/tests/auto/corelib/io/qprocess/tst_qprocess.cpp b/tests/auto/corelib/io/qprocess/tst_qprocess.cpp index 9d0121307c..d8b0b38b0c 100644 --- a/tests/auto/corelib/io/qprocess/tst_qprocess.cpp +++ b/tests/auto/corelib/io/qprocess/tst_qprocess.cpp @@ -239,6 +239,7 @@ void tst_QProcess::simpleStart() process = new QProcess; QSignalSpy spy(process, SIGNAL(stateChanged(QProcess::ProcessState))); + QVERIFY(spy.isValid()); connect(process, SIGNAL(readyRead()), this, SLOT(readFromProcess())); /* valgrind dislike SUID binaries(those that have the `s'-flag set), which @@ -303,6 +304,7 @@ void tst_QProcess::crashTest() #endif process = new QProcess; QSignalSpy stateSpy(process, SIGNAL(stateChanged(QProcess::ProcessState))); + QVERIFY(stateSpy.isValid()); process->start("testProcessCrash/testProcessCrash"); QVERIFY(process->waitForStarted(5000)); @@ -312,6 +314,9 @@ void tst_QProcess::crashTest() QSignalSpy spy(process, SIGNAL(error(QProcess::ProcessError))); QSignalSpy spy2(process, SIGNAL(finished(int, QProcess::ExitStatus))); + QVERIFY(spy.isValid()); + QVERIFY(spy2.isValid()); + QVERIFY(process->waitForFinished(30000)); QCOMPARE(spy.count(), 1); @@ -347,6 +352,9 @@ void tst_QProcess::crashTest2() QSignalSpy spy(process, SIGNAL(error(QProcess::ProcessError))); QSignalSpy spy2(process, SIGNAL(finished(int, QProcess::ExitStatus))); + QVERIFY(spy.isValid()); + QVERIFY(spy2.isValid()); + QObject::connect(process, SIGNAL(finished(int)), this, SLOT(exitLoopSlot())); QTestEventLoop::instance().enterLoop(30); @@ -461,6 +469,9 @@ void tst_QProcess::echoTest2() QSignalSpy spy1(process, SIGNAL(readyReadStandardOutput())); QSignalSpy spy2(process, SIGNAL(readyReadStandardError())); + QVERIFY(spy1.isValid()); + QVERIFY(spy2.isValid()); + QTime stopWatch; stopWatch.start(); forever { @@ -516,6 +527,7 @@ void tst_QProcess::echoTest_performance() qint64 totalBytes = 0; QByteArray dump; QSignalSpy readyReadSpy(&process, SIGNAL(readyRead())); + QVERIFY(readyReadSpy.isValid()); while (stopWatch.elapsed() < 2000) { process.write(array); while (process.bytesToWrite() > 0) { @@ -697,6 +709,7 @@ void tst_QProcess::readTimeoutAndThenCrash() qRegisterMetaType<QProcess::ProcessError>("QProcess::ProcessError"); QSignalSpy spy(process, SIGNAL(error(QProcess::ProcessError))); + QVERIFY(spy.isValid()); process->kill(); @@ -926,6 +939,7 @@ void tst_QProcess::emitReadyReadOnlyWhenNewDataArrives() QProcess proc; connect(&proc, SIGNAL(readyRead()), this, SLOT(exitLoopSlot())); QSignalSpy spy(&proc, SIGNAL(readyRead())); + QVERIFY(spy.isValid()); #ifdef Q_OS_MAC proc.start("testProcessEcho/testProcessEcho.app"); @@ -1307,6 +1321,7 @@ void tst_QProcess::waitForReadyReadInAReadyReadSlot() QVERIFY(process->waitForStarted(5000)); QSignalSpy spy(process, SIGNAL(readyRead())); + QVERIFY(spy.isValid()); process->write("foo"); QTestEventLoop::instance().enterLoop(30); QVERIFY(!QTestEventLoop::instance().timeout()); @@ -1353,6 +1368,7 @@ void tst_QProcess::waitForBytesWrittenInABytesWrittenSlot() qRegisterMetaType<qint64>("qint64"); QSignalSpy spy(process, SIGNAL(bytesWritten(qint64))); + QVERIFY(spy.isValid()); process->write("f"); QTestEventLoop::instance().enterLoop(30); QVERIFY(!QTestEventLoop::instance().timeout()); @@ -1572,6 +1588,11 @@ void tst_QProcess::failToStart() QSignalSpy finishedSpy(&process, SIGNAL(finished(int))); QSignalSpy finishedSpy2(&process, SIGNAL(finished(int, QProcess::ExitStatus))); + QVERIFY(stateSpy.isValid()); + QVERIFY(errorSpy.isValid()); + QVERIFY(finishedSpy.isValid()); + QVERIFY(finishedSpy2.isValid()); + // Mac OS X and HP-UX have a really low default process limit (~100), so spawning // to many processes here will cause test failures later on. #if defined Q_OS_HPUX @@ -1633,6 +1654,10 @@ void tst_QProcess::failToStartWithWait() QSignalSpy finishedSpy(&process, SIGNAL(finished(int))); QSignalSpy finishedSpy2(&process, SIGNAL(finished(int, QProcess::ExitStatus))); + QVERIFY(errorSpy.isValid()); + QVERIFY(finishedSpy.isValid()); + QVERIFY(finishedSpy2.isValid()); + for (int i = 0; i < 50; ++i) { process.start("/blurp", QStringList() << "-v" << "-debug"); process.waitForStarted(); @@ -1656,6 +1681,10 @@ void tst_QProcess::failToStartWithEventLoop() QSignalSpy finishedSpy(&process, SIGNAL(finished(int))); QSignalSpy finishedSpy2(&process, SIGNAL(finished(int, QProcess::ExitStatus))); + QVERIFY(errorSpy.isValid()); + QVERIFY(finishedSpy.isValid()); + QVERIFY(finishedSpy2.isValid()); + // The error signal may be emitted before start() returns connect(&process, SIGNAL(error(QProcess::ProcessError)), &loop, SLOT(quit()), Qt::QueuedConnection); @@ -1896,6 +1925,11 @@ void tst_QProcess::waitForReadyReadForNonexistantProcess() QSignalSpy errorSpy(&process, SIGNAL(error(QProcess::ProcessError))); QSignalSpy finishedSpy1(&process, SIGNAL(finished(int))); QSignalSpy finishedSpy2(&process, SIGNAL(finished(int, QProcess::ExitStatus))); + + QVERIFY(errorSpy.isValid()); + QVERIFY(finishedSpy1.isValid()); + QVERIFY(finishedSpy2.isValid()); + QVERIFY(!process.waitForReadyRead()); // used to crash process.start("doesntexist"); QVERIFY(!process.waitForReadyRead()); @@ -2233,6 +2267,7 @@ void tst_QProcess::invalidProgramString() qRegisterMetaType<QProcess::ProcessError>("QProcess::ProcessError"); QSignalSpy spy(&process, SIGNAL(error(QProcess::ProcessError))); + QVERIFY(spy.isValid()); process.start(programString); QCOMPARE(process.error(), QProcess::FailedToStart); @@ -2249,6 +2284,9 @@ void tst_QProcess::onlyOneStartedSignal() QSignalSpy spyStarted(&process, SIGNAL(started())); QSignalSpy spyFinished(&process, SIGNAL(finished(int, QProcess::ExitStatus))); + QVERIFY(spyStarted.isValid()); + QVERIFY(spyFinished.isValid()); + process.start("testProcessNormal/testProcessNormal"); QVERIFY(process.waitForStarted(5000)); QVERIFY(process.waitForFinished(5000)); |