diff options
author | Harald Fernengel <harald.fernengel@nokia.com> | 2010-07-19 11:49:33 (GMT) |
---|---|---|
committer | Harald Fernengel <harald.fernengel@nokia.com> | 2010-07-19 11:53:27 (GMT) |
commit | 8acf3098bf5d88871d866aa87fa38e6feb3a32d0 (patch) | |
tree | bd9c9845209e84707e6446f2f07ab4a2320f7016 /tests | |
parent | 914b138f75542bd4beae57562e37f30cce990dc8 (diff) | |
download | Qt-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.cpp | 19 |
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() |