summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorQt Continuous Integration System <qt-info@nokia.com>2010-07-19 12:03:57 (GMT)
committerQt Continuous Integration System <qt-info@nokia.com>2010-07-19 12:03:57 (GMT)
commit039ed59f899c6ff4bd82f7fa029441551ceb54dc (patch)
treebd9c9845209e84707e6446f2f07ab4a2320f7016
parent914b138f75542bd4beae57562e37f30cce990dc8 (diff)
parent8acf3098bf5d88871d866aa87fa38e6feb3a32d0 (diff)
downloadQt-039ed59f899c6ff4bd82f7fa029441551ceb54dc.zip
Qt-039ed59f899c6ff4bd82f7fa029441551ceb54dc.tar.gz
Qt-039ed59f899c6ff4bd82f7fa029441551ceb54dc.tar.bz2
Merge branch '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2 into 4.7-integration
* '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2: Do image comparison with fuzz
-rw-r--r--tests/auto/qimagereader/tst_qimagereader.cpp19
1 files changed, 18 insertions, 1 deletions
diff --git a/tests/auto/qimagereader/tst_qimagereader.cpp b/tests/auto/qimagereader/tst_qimagereader.cpp
index fe2a719..e9ef070 100644
--- a/tests/auto/qimagereader/tst_qimagereader.cpp
+++ b/tests/auto/qimagereader/tst_qimagereader.cpp
@@ -315,7 +315,24 @@ void tst_QImageReader::jpegRgbCmyk()
QImage image1(prefix + QLatin1String("YCbCr_cmyk.jpg"));
QImage image2(prefix + QLatin1String("YCbCr_cmyk.png"));
- QCOMPARE(image1, image2);
+ // first, do some obvious tests
+ QCOMPARE(image1.height(), image2.height());
+ QCOMPARE(image1.width(), image2.width());
+ QCOMPARE(image1.format(), image2.format());
+ QCOMPARE(image1.format(), QImage::Format_RGB32);
+
+ // compare all the pixels with a slack of 3. This ignores rounding errors in libjpeg/libpng
+ for (int h = 0; h < image1.height(); ++h) {
+ const uchar *s1 = image1.constScanLine(h);
+ const uchar *s2 = image2.constScanLine(h);
+ for (int w = 0; w < image1.width() * 4; ++w) {
+ if (*s1 != *s2) {
+ QVERIFY2(qAbs(*s1 - *s2) <= 3, qPrintable(QString("images differ in line %1, col %2 (image1: %3, image2: %4)").arg(h).arg(w).arg(*s1, 0, 16).arg(*s2, 0, 16)));
+ }
+ s1++;
+ s2++;
+ }
+ }
}
void tst_QImageReader::setScaledSize_data()