Don't use QSKIP() when merely eliding part of a test
Use of QSKIP() means the whole test is skipped; when all applicable parts of a test have passed and some part of the test is inapplicable, merely report that it is skipped, rather than discarding the PASS for all the parts that do work. In the process, eliminate a spurious layer of indentation; the earlier test only needed a scope to contain its declaration, a goal adequately achieved by the scope of the if constexpr block. Task-number: QTBUG-99123 Change-Id: Ie4790a24ebf49a7f3035ffad42d78450e1560832 Reviewed-by: Tatiana Borisova <tatiana.borisova@qt.io> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> (cherry picked from commit d82301a9002fc8bd1b2a81ae841cf087e8781739)
This commit is contained in:
parent
124a844145
commit
aa24e60cb8
@ -1,6 +1,7 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2016 The Qt Company Ltd.
|
||||
** Copyright (C) 2022 The Qt Company Ltd.
|
||||
** Copyright (C) 2021 Intel Corporation.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the test suite of the Qt Toolkit.
|
||||
@ -401,7 +402,7 @@ void tst_QtJson::testNumbers_2()
|
||||
QVERIFY2(floatValues_1[index - 1] == (floatValues_1[index] * 2), QString("Value should be double adjacent value at index %1").arg(index).toLatin1());
|
||||
}
|
||||
} else {
|
||||
QSKIP("Skipping 'denorm' as this type lacks denormals on this system");
|
||||
qInfo("Skipping denormal test as this system's double type lacks support");
|
||||
}
|
||||
}
|
||||
|
||||
@ -2286,30 +2287,28 @@ void tst_QtJson::parseNumbers()
|
||||
QCOMPARE(val.toDouble(), numbers[i].n);
|
||||
}
|
||||
}
|
||||
{
|
||||
if constexpr (std::numeric_limits<double>::has_denorm == std::denorm_present) {
|
||||
Numbers numbers [] = {
|
||||
{ "1.1e-308", 1.1e-308 },
|
||||
{ "-1.1e-308", -1.1e-308 }
|
||||
};
|
||||
int size = sizeof(numbers)/sizeof(Numbers);
|
||||
for (int i = 0; i < size; ++i) {
|
||||
QByteArray json = "[ ";
|
||||
json += numbers[i].str;
|
||||
json += " ]";
|
||||
QJsonDocument doc = QJsonDocument::fromJson(json);
|
||||
QVERIFY(!doc.isEmpty());
|
||||
QCOMPARE(doc.isArray(), true);
|
||||
QCOMPARE(doc.isObject(), false);
|
||||
QJsonArray array = doc.array();
|
||||
QCOMPARE(array.size(), 1);
|
||||
QJsonValue val = array.at(0);
|
||||
QCOMPARE(val.type(), QJsonValue::Double);
|
||||
QCOMPARE(val.toDouble(), numbers[i].n);
|
||||
}
|
||||
} else {
|
||||
QSKIP("Skipping 'denorm' as this type lacks denormals on this system");
|
||||
if constexpr (std::numeric_limits<double>::has_denorm == std::denorm_present) {
|
||||
Numbers numbers [] = {
|
||||
{ "1.1e-308", 1.1e-308 },
|
||||
{ "-1.1e-308", -1.1e-308 }
|
||||
};
|
||||
int size = sizeof(numbers)/sizeof(Numbers);
|
||||
for (int i = 0; i < size; ++i) {
|
||||
QByteArray json = "[ ";
|
||||
json += numbers[i].str;
|
||||
json += " ]";
|
||||
QJsonDocument doc = QJsonDocument::fromJson(json);
|
||||
QVERIFY(!doc.isEmpty());
|
||||
QCOMPARE(doc.isArray(), true);
|
||||
QCOMPARE(doc.isObject(), false);
|
||||
QJsonArray array = doc.array();
|
||||
QCOMPARE(array.size(), 1);
|
||||
QJsonValue val = array.at(0);
|
||||
QCOMPARE(val.type(), QJsonValue::Double);
|
||||
QCOMPARE(val.toDouble(), numbers[i].n);
|
||||
}
|
||||
} else {
|
||||
qInfo("Skipping denormal test as this system's double type lacks support");
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user