diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/corelib/serialization/json/tst_qtjson.cpp | 17 |
1 files changed, 7 insertions, 10 deletions
diff --git a/tests/auto/corelib/serialization/json/tst_qtjson.cpp b/tests/auto/corelib/serialization/json/tst_qtjson.cpp index 3a57d3b8a5..d23f866690 100644 --- a/tests/auto/corelib/serialization/json/tst_qtjson.cpp +++ b/tests/auto/corelib/serialization/json/tst_qtjson.cpp @@ -3541,16 +3541,13 @@ void tst_QtJson::fromToVariantConversions_data() QTest::newRow("NaN") << QVariant(qQNaN()) << QJsonValue(QJsonValue::Null) << QVariant::fromValue(nullptr); - const qulonglong ulongValue = (1ul << 63) + 1; - const double uLongToDouble = ulongValue; - qint64 n; - if (convertDoubleTo(uLongToDouble, &n)) { - QTest::newRow("ulonglong") << QVariant(ulongValue) << QJsonValue(uLongToDouble) - << QVariant(n); - } else { - QTest::newRow("ulonglong") << QVariant(ulongValue) << QJsonValue(uLongToDouble) - << QVariant(uLongToDouble); - } + static_assert(std::numeric_limits<double>::digits <= 63, + "double is too big on this platform, this test would fail"); + constexpr quint64 Threshold = Q_UINT64_C(1) << 63; + const qulonglong ulongValue = qulonglong(Threshold) + 1; + const double uLongToDouble = Threshold; + QTest::newRow("ulonglong") << QVariant(ulongValue) << QJsonValue(uLongToDouble) + << QVariant(uLongToDouble); } void tst_QtJson::fromToVariantConversions() |