autotests: allow JPG as test source

In special cases, JPG with fuzziness value
can be used instead of big PNG files.
This commit is contained in:
Daniel Novomeský
2026-07-27 14:27:02 +02:00
parent 66d7d7c154
commit abc2ac2de1

View File

@@ -14,7 +14,7 @@
#include <QMetaEnum> #include <QMetaEnum>
#include <QVersionNumber> #include <QVersionNumber>
static QJsonObject searchObject(const QFileInfo& file) static QJsonObject searchObject(const QFileInfo &file)
{ {
auto fi = QFileInfo(QStringLiteral("%1.json").arg(file.filePath())); auto fi = QFileInfo(QStringLiteral("%1.json").arg(file.filePath()));
if (!fi.exists()) { if (!fi.exists()) {
@@ -56,17 +56,15 @@ static QJsonObject searchObject(const QFileInfo& file)
return {}; return {};
} }
TemplateImage::TemplateImage(const QFileInfo &fi)
TemplateImage::TemplateImage(const QFileInfo &fi) : : m_fi(fi)
m_fi(fi)
{ {
} }
bool TemplateImage::isTemplate() const bool TemplateImage::isTemplate() const
{ {
auto list = suffixes(); auto list = suffixes();
for (auto&& suffix : list) { for (auto &&suffix : list) {
if (!m_fi.suffix().compare(suffix, Qt::CaseInsensitive)) if (!m_fi.suffix().compare(suffix, Qt::CaseInsensitive))
return true; return true;
} }
@@ -87,7 +85,7 @@ bool TemplateImage::skipSequentialDeviceTest() const
return obj.value("skipSequential").toBool(); return obj.value("skipSequential").toBool();
} }
QFileInfo TemplateImage::compareImage(TestFlags &flags, QString& comment) const QFileInfo TemplateImage::compareImage(TestFlags &flags, QString &comment) const
{ {
auto fi = jsonImage(flags, comment); auto fi = jsonImage(flags, comment);
if ((flags & TestFlag::SkipTest) == TestFlag::SkipTest) { if ((flags & TestFlag::SkipTest) == TestFlag::SkipTest) {
@@ -99,7 +97,7 @@ QFileInfo TemplateImage::compareImage(TestFlags &flags, QString& comment) const
return legacyImage(); return legacyImage();
} }
bool TemplateImage::checkOptionaInfo(const QImage& image, QString& error) const bool TemplateImage::checkOptionaInfo(const QImage &image, QString &error) const
{ {
auto obj = searchObject(m_fi); auto obj = searchObject(m_fi);
if (obj.isEmpty()) { if (obj.isEmpty()) {
@@ -196,13 +194,13 @@ bool TemplateImage::perceptiveFuzziness() const
QStringList TemplateImage::suffixes() QStringList TemplateImage::suffixes()
{ {
return QStringList({"png", "tif", "tiff", "json"}); return QStringList({"png", "tif", "tiff", "json", "jpg"});
} }
QFileInfo TemplateImage::legacyImage() const QFileInfo TemplateImage::legacyImage() const
{ {
auto list = suffixes(); auto list = suffixes();
for (auto&& suffix : list) { for (auto &&suffix : list) {
auto fi = QFileInfo(QStringLiteral("%1/%2.%3").arg(m_fi.path(), m_fi.completeBaseName(), suffix)); auto fi = QFileInfo(QStringLiteral("%1/%2.%3").arg(m_fi.path(), m_fi.completeBaseName(), suffix));
if (fi.exists()) { if (fi.exists()) {
return fi; return fi;
@@ -211,7 +209,7 @@ QFileInfo TemplateImage::legacyImage() const
return {}; return {};
} }
QFileInfo TemplateImage::jsonImage(TestFlags &flags, QString& comment) const QFileInfo TemplateImage::jsonImage(TestFlags &flags, QString &comment) const
{ {
flags = TestFlag::None; flags = TestFlag::None;
@@ -224,7 +222,7 @@ QFileInfo TemplateImage::jsonImage(TestFlags &flags, QString& comment) const
auto unsupportedFormat = obj.value("unsupportedFormat").toBool(); auto unsupportedFormat = obj.value("unsupportedFormat").toBool();
comment = obj.value("comment").toString(); comment = obj.value("comment").toString();
if(obj.value("disableAutoTransform").toBool()) { if (obj.value("disableAutoTransform").toBool()) {
flags |= TestFlag::DisableAutotransform; flags |= TestFlag::DisableAutotransform;
} }
@@ -235,4 +233,3 @@ QFileInfo TemplateImage::jsonImage(TestFlags &flags, QString& comment) const
return QFileInfo(QStringLiteral("%1/%2").arg(m_fi.path(), name)); return QFileInfo(QStringLiteral("%1/%2").arg(m_fi.path(), name));
} }