diff options
author | Friedemann Kleint <Friedemann.Kleint@nokia.com> | 2011-12-12 11:16:43 +0100 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2011-12-13 09:33:49 +0100 |
commit | abb1c066e5203566c5987d6ba0746c2de1e66eb7 (patch) | |
tree | 9143dece13a1b3e4c8e2ad302718cde884e9a025 /tests/auto/gui | |
parent | 0786716ce57a06b7984b3a6934c64e35115c507e (diff) |
QImageReader-test: Make more verbose, use QTemporaryDir.
- Add some QVERIFY to check for isNull().
- Use QTemporaryDir to avoid spurious failures in the format
extension-ignore test (cannot copy to '/tmp/black.jpg').
Change-Id: Ia57ea4daa6b8686d1111c9c27a47666265fa9781
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
Diffstat (limited to 'tests/auto/gui')
-rw-r--r-- | tests/auto/gui/image/qimagereader/tst_qimagereader.cpp | 55 |
1 files changed, 46 insertions, 9 deletions
diff --git a/tests/auto/gui/image/qimagereader/tst_qimagereader.cpp b/tests/auto/gui/image/qimagereader/tst_qimagereader.cpp index 4fa1bedcdc..2ce4d01e8e 100644 --- a/tests/auto/gui/image/qimagereader/tst_qimagereader.cpp +++ b/tests/auto/gui/image/qimagereader/tst_qimagereader.cpp @@ -54,6 +54,7 @@ #include <QTcpSocket> #include <QTcpServer> #include <QTimer> +#include <QTemporaryDir> typedef QMap<QString, QString> QStringMap; typedef QList<int> QIntList; @@ -176,6 +177,9 @@ private slots: void preserveTexts_data(); void preserveTexts(); + +private: + QTemporaryDir m_temporaryDir; }; static const QLatin1String prefix(SRCDIR "/images/"); @@ -203,8 +207,10 @@ void tst_QImageReader::getSetCheck() delete var1; } -tst_QImageReader::tst_QImageReader() +tst_QImageReader::tst_QImageReader() : + m_temporaryDir(QStringLiteral("tst_qimagereaderXXXXXX")) { + m_temporaryDir.setAutoRemove(true); } tst_QImageReader::~tst_QImageReader() @@ -214,6 +220,7 @@ tst_QImageReader::~tst_QImageReader() void tst_QImageReader::init() { + QVERIFY(m_temporaryDir.isValid()); } void tst_QImageReader::cleanup() @@ -1046,6 +1053,17 @@ void tst_QImageReader::readFromDevice_data() #endif } +static QByteArray msgReadFromDeviceFail(const QString &sourceFileName, + const QByteArray &detectedFormat) +{ + QByteArray result = "Failure for '"; + result += sourceFileName.toLocal8Bit(); + result += "', detected as: '"; + result += detectedFormat; + result += '\''; + return result; +} + void tst_QImageReader::readFromDevice() { QFETCH(QString, fileName); @@ -1053,9 +1071,9 @@ void tst_QImageReader::readFromDevice() SKIP_IF_UNSUPPORTED(format); - QImage expectedImage(prefix + fileName, format); - - QFile file(prefix + fileName); + const QString imageFileName = prefix + fileName; + QImage expectedImage(imageFileName, format); + QFile file(imageFileName); QVERIFY(file.open(QFile::ReadOnly)); QByteArray imageData = file.readAll(); QVERIFY(!imageData.isEmpty()); @@ -1068,6 +1086,7 @@ void tst_QImageReader::readFromDevice() QVERIFY(reader.canRead()); QImage imageReaderImage = reader.read(); + QVERIFY2(!imageReaderImage.isNull(), msgReadFromDeviceFail(imageFileName, reader.format()).constData()); QCOMPARE(imageReaderImage, expectedImage); buffer.seek(0); @@ -1849,6 +1868,19 @@ void tst_QImageReader::testIgnoresFormatAndExtension_data() QTest::newRow("rect.svgz") << "rect" << "svgz" << "svgz"; } +static QByteArray msgIgnoreFormatAndExtensionFail(const QString &sourceFileName, + const QString &targetFileName, + const QString &detectedFormat) +{ + QByteArray result = "Failure for '"; + result += sourceFileName.toLocal8Bit(); + result += "' as '"; + result += targetFileName; + result += "', detected as: '"; + result += detectedFormat.toLocal8Bit(); + result += '\''; + return result; +} void tst_QImageReader::testIgnoresFormatAndExtension() { @@ -1859,21 +1891,26 @@ void tst_QImageReader::testIgnoresFormatAndExtension() SKIP_IF_UNSUPPORTED(expected.toLatin1()); QList<QByteArray> formats = QImageReader::supportedImageFormats(); - QString fileNameBase = prefix + name + "."; + QString fileNameBase = prefix + name + QLatin1Char('.'); + QString tempPath = m_temporaryDir.path(); + if (!tempPath.endsWith(QLatin1Char('/'))) + tempPath += QLatin1Char('/'); foreach (const QByteArray &f, formats) { if (f == extension) continue; - QFile tmp(QDir::tempPath() + "/" + name + "_" + expected + "." + f); - QVERIFY(QFile::copy(fileNameBase + extension, QFileInfo(tmp).absoluteFilePath())); + QFile tmp(tempPath + name + QLatin1Char('_') + expected + QLatin1Char('.') + f); + const QString sourceFileName = fileNameBase + extension; + const QString tempFileName = QFileInfo(tmp).absoluteFilePath(); + QVERIFY(QFile::copy(sourceFileName, tempFileName)); QString format; QImage image; { // image reader needs to be scoped for the remove() to work.. QImageReader r; - r.setFileName(QFileInfo(tmp).absoluteFilePath()); + r.setFileName(tempFileName); r.setDecideFormatFromContent(true); format = r.format(); r.read(&image); @@ -1881,7 +1918,7 @@ void tst_QImageReader::testIgnoresFormatAndExtension() tmp.remove(); - QVERIFY(!image.isNull()); + QVERIFY2(!image.isNull(), msgIgnoreFormatAndExtensionFail(sourceFileName, tempFileName, format).constData()); QCOMPARE(format, expected); } } |