From 7b909dccc283987b146fbef314dcd00923fa6b09 Mon Sep 17 00:00:00 2001 From: Edward Welbourne Date: Fri, 22 Apr 2022 13:01:20 +0200 Subject: [PATCH] Convert tst_QSettings::testVariantTypes()'s macro body into a lambda MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Retain the macro, so as to automate checking QTest::currentTestFailed() after return from the lambda. Change-Id: If5873a533224ea3b809cef02255642a7d071d642 Reviewed-by: Thiago Macieira Reviewed-by: MÃ¥rten Nordheim --- .../corelib/io/qsettings/tst_qsettings.cpp | 31 +++++++++++-------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/tests/auto/corelib/io/qsettings/tst_qsettings.cpp b/tests/auto/corelib/io/qsettings/tst_qsettings.cpp index a943f76cc5..781650b85b 100644 --- a/tests/auto/corelib/io/qsettings/tst_qsettings.cpp +++ b/tests/auto/corelib/io/qsettings/tst_qsettings.cpp @@ -1300,19 +1300,24 @@ void tst_QSettings::testVariantTypes() QCOMPARE(settings.value("empty"), QVariant()); } -#define testValue(key, actual, expected) do { \ - { \ - QSettings settings1(format, QSettings::UserScope, "software.org", "KillerAPP"); \ - settings1.setValue(key, QVariant::fromValue(actual)); \ - } \ - QConfFile::clearCache(); \ - { \ - QSettings settings2(format, QSettings::UserScope, "software.org", "KillerAPP"); \ - QVariant v = settings2.value(key); \ - QCOMPARE(v.metaType().id(), QMetaType::expected); \ - QCOMPARE(qvariant_cast(v), actual); \ - } \ -} while (0) + auto checker = [format](const char *key, auto value, QMetaType::Type expected) { + { + QSettings settings(format, QSettings::UserScope, "software.org", "KillerAPP"); + settings.setValue(key, QVariant::fromValue(value)); + } + QConfFile::clearCache(); + { + QSettings settings(format, QSettings::UserScope, "software.org", "KillerAPP"); + QVariant actual = settings.value(key); + QCOMPARE(actual.metaType().id(), expected); + QCOMPARE(qvariant_cast(actual), value); + } + }; +#define testValue(key, supplied, expected) do { \ + checker(key, supplied, QMetaType::expected); \ + if (QTest::currentTestFailed()) \ + return; \ + } while (0) typedef QMap TestVariantMap;