summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorHarald Fernengel <harald.fernengel@nokia.com>2010-07-19 11:49:33 (GMT)
committerHarald Fernengel <harald.fernengel@nokia.com>2010-07-19 11:53:27 (GMT)
commit8acf3098bf5d88871d866aa87fa38e6feb3a32d0 (patch)
treebd9c9845209e84707e6446f2f07ab4a2320f7016 /tests
parent914b138f75542bd4beae57562e37f30cce990dc8 (diff)
downloadQt-8acf3098bf5d88871d866aa87fa38e6feb3a32d0.zip
Qt-8acf3098bf5d88871d866aa87fa38e6feb3a32d0.tar.gz
Qt-8acf3098bf5d88871d866aa87fa38e6feb3a32d0.tar.bz2
Do image comparison with fuzz
Looks like native png and jpeg libs on some devices have rounding problems, so compare the color values with a fuzz of 3. This fixes this test on Maemo 5 and 6. Reviewed-by: Benjamin Poulain
Diffstat (limited to 'tests')
-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()