summaryrefslogtreecommitdiffstats
path: root/tests/auto/corelib/io
diff options
context:
space:
mode:
authorJason McDonald <jason.mcdonald@nokia.com>2011-12-22 17:16:48 +1000
committerQt by Nokia <qt-info@nokia.com>2011-12-28 04:48:11 +0100
commitea415e20607016651f3cef02dff109235d84eb4d (patch)
tree8c954afe7d078b0ca742a1f2249ccc5a9ddf1b82 /tests/auto/corelib/io
parent1e7296f3f2e7346f52e8f70d4e531405a248aa8b (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.cpp5
-rw-r--r--tests/auto/corelib/io/qfilesystemwatcher/tst_qfilesystemwatcher.cpp4
-rw-r--r--tests/auto/corelib/io/qprocess/tst_qprocess.cpp38
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));