tst_QGetPutEnv: use a lambda instead of a macro

Neater and more debuggable. This code was added in Qt 5.4, before we
could use C++11.

Pick-to: 6.9 6.8 6.5 6.2 5.15
Change-Id: Icd8acccb4a9ae1f500e7fffdc4d4fc7c310cbb89
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
This commit is contained in:
Thiago Macieira 2025-02-10 22:50:27 -08:00 committed by Marc Mutz
parent 83f2d1130a
commit b888bc09ce

View File

@ -142,29 +142,30 @@ void tst_QGetPutEnv::intValue_data()
QTest::newRow("junk-heading") << QByteArray("x1") << 0 << false;
QTest::newRow("junk-trailing") << QByteArray("1x") << 0 << false;
#define ROW(x, i, b) \
QTest::newRow(#x) << QByteArray(#x) << (i) << (b)
ROW(auto, 0, false);
ROW(1auto, 0, false);
ROW(0, 0, true);
ROW(+0, 0, true);
ROW(1, 1, true);
ROW(+1, 1, true);
ROW(09, 0, false);
ROW(010, 8, true);
ROW(0x10, 16, true);
ROW(0x, 0, false);
ROW(0xg, 0, false);
ROW(0x1g, 0, false);
ROW(000000000000000000000000000000000000000000000000001, 0, false);
ROW(+000000000000000000000000000000000000000000000000001, 0, false);
ROW(000000000000000000000000000000000000000000000000001g, 0, false);
ROW(-0, 0, true);
ROW(-1, -1, true);
ROW(-010, -8, true);
ROW(-000000000000000000000000000000000000000000000000001, 0, false);
// ROW(0xffffffff, -1, true); // could be expected, but not how QByteArray::toInt() works
ROW(0xffffffff, 0, false);
auto addRow = [](const char *text, int expected, bool ok) {
QTest::newRow(text) << QByteArray(text) << expected << ok;
};
addRow("auto", 0, false);
addRow("1auto", 0, false);
addRow("0", 0, true);
addRow("+0", 0, true);
addRow("1", 1, true);
addRow("+1", 1, true);
addRow("09", 0, false);
addRow("010", 8, true);
addRow("0x10", 16, true);
addRow("0x", 0, false);
addRow("0xg", 0, false);
addRow("0x1g", 0, false);
addRow("000000000000000000000000000000000000000000000000001", 0, false);
addRow("+000000000000000000000000000000000000000000000000001", 0, false);
addRow("000000000000000000000000000000000000000000000000001g", 0, false);
addRow("-0", 0, true);
addRow("-1", -1, true);
addRow("-010", -8, true);
addRow("-000000000000000000000000000000000000000000000000001", 0, false);
// addRow("0xffffffff", -1, true); // could be expected, but not how QByteArray::toInt() works
addRow("0xffffffff", 0, false);
auto addNumWithBase = [](qlonglong num, int base) {
QByteArray text;