From aa24e60cb8ab2d11bbdc64d1b2bff69ab86cb46a Mon Sep 17 00:00:00 2001 From: Edward Welbourne Date: Fri, 25 Mar 2022 16:35:56 +0100 Subject: [PATCH] Don't use QSKIP() when merely eliding part of a test MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 Reviewed-by: Tor Arne Vestbø (cherry picked from commit d82301a9002fc8bd1b2a81ae841cf087e8781739) --- .../corelib/serialization/json/tst_qtjson.cpp | 49 +++++++++---------- 1 file changed, 24 insertions(+), 25 deletions(-) diff --git a/tests/auto/corelib/serialization/json/tst_qtjson.cpp b/tests/auto/corelib/serialization/json/tst_qtjson.cpp index fa03bfa7b1b..a5c3907b0b6 100644 --- a/tests/auto/corelib/serialization/json/tst_qtjson.cpp +++ b/tests/auto/corelib/serialization/json/tst_qtjson.cpp @@ -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::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::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"); } }