From 918038ad57840f980cf65464d6f1fc4703909629 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C4=99drzej=20Nowacki?= Date: Thu, 13 Feb 2014 16:59:28 +0100 Subject: Mark QByteArrayList as metatype built-in type. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit As a side effects it also adds core templates types to the tests Change-Id: I0e3338e0bffdf21982aa83d404c83288e54411f4 Reviewed-by: Jędrzej Nowacki --- .../auto/corelib/kernel/qvariant/tst_qvariant.cpp | 57 ++++++++++++++++------ 1 file changed, 41 insertions(+), 16 deletions(-) (limited to 'tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp') diff --git a/tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp b/tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp index 660d0f804e..f78f993645 100644 --- a/tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp +++ b/tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp @@ -3646,6 +3646,24 @@ struct ContainerAPI } }; +template +struct ContainerAPI +{ + static void insert(Container &container, int value) + { + container.push_back(QByteArray::number(value)); + } + + static bool compare(const QVariant &variant, QByteArray value) + { + return variant.value() == value; + } + static bool compare(QVariant variant, const QVariant &value) + { + return variant == value; + } +}; + // We have no built-in defines to check the stdlib features. // #define TEST_FORWARD_LIST @@ -3762,12 +3780,12 @@ void tst_QVariant::iterateContainerElements() { #ifdef Q_COMPILER_RANGE_FOR -#define TEST_RANGE_FOR(CONTAINER, VALUE_TYPE) \ +#define TEST_RANGE_FOR(CONTAINER) \ numSeen = 0; \ containerIter = intList.begin(); \ for (QVariant v : listIter) { \ - QVERIFY(ContainerAPI >::compare(v, *containerIter)); \ - QVERIFY(ContainerAPI >::compare(v, varList.at(numSeen))); \ + QVERIFY(ContainerAPI::compare(v, *containerIter)); \ + QVERIFY(ContainerAPI::compare(v, varList.at(numSeen))); \ ++containerIter; \ ++numSeen; \ } \ @@ -3775,17 +3793,17 @@ void tst_QVariant::iterateContainerElements() #else -#define TEST_RANGE_FOR(CONTAINER, VALUE_TYPE) +#define TEST_RANGE_FOR(CONTAINER) #endif -#define TEST_SEQUENTIAL_ITERATION(CONTAINER, VALUE_TYPE) \ +#define TEST_SEQUENTIAL_ITERATION_ON_FULL_NAME(CONTAINER) \ { \ int numSeen = 0; \ - CONTAINER intList; \ - ContainerAPI >::insert(intList, 1); \ - ContainerAPI >::insert(intList, 2); \ - ContainerAPI >::insert(intList, 3); \ + CONTAINER intList; \ + ContainerAPI::insert(intList, 1); \ + ContainerAPI::insert(intList, 2); \ + ContainerAPI::insert(intList, 3); \ \ QVariant listVariant = QVariant::fromValue(intList); \ QVERIFY(listVariant.canConvert()); \ @@ -3794,12 +3812,12 @@ void tst_QVariant::iterateContainerElements() QSequentialIterable listIter = listVariant.value(); \ QCOMPARE(varList.size(), listIter.size()); \ \ - CONTAINER::iterator containerIter = intList.begin(); \ - const CONTAINER::iterator containerEnd = intList.end(); \ + CONTAINER::iterator containerIter = intList.begin(); \ + const CONTAINER::iterator containerEnd = intList.end(); \ for (int i = 0; i < listIter.size(); ++i, ++containerIter, ++numSeen) \ { \ - QVERIFY(ContainerAPI >::compare(listIter.at(i), *containerIter)); \ - QVERIFY(ContainerAPI >::compare(listIter.at(i), varList.at(i))); \ + QVERIFY(ContainerAPI::compare(listIter.at(i), *containerIter)); \ + QVERIFY(ContainerAPI::compare(listIter.at(i), varList.at(i))); \ } \ QCOMPARE(numSeen, (int)std::distance(intList.begin(), intList.end())); \ QCOMPARE(containerIter, containerEnd); \ @@ -3807,15 +3825,19 @@ void tst_QVariant::iterateContainerElements() containerIter = intList.begin(); \ numSeen = 0; \ Q_FOREACH (const QVariant &v, listIter) { \ - QVERIFY(ContainerAPI >::compare(v, *containerIter)); \ - QVERIFY(ContainerAPI >::compare(v, varList.at(numSeen))); \ + QVERIFY(ContainerAPI::compare(v, *containerIter)); \ + QVERIFY(ContainerAPI::compare(v, varList.at(numSeen))); \ ++containerIter; \ ++numSeen; \ } \ QCOMPARE(numSeen, (int)std::distance(intList.begin(), intList.end())); \ - TEST_RANGE_FOR(CONTAINER, VALUE_TYPE) \ + TEST_RANGE_FOR(CONTAINER) \ } +#define TEST_SEQUENTIAL_ITERATION(CONTAINER, VALUE_TYPE) \ + TEST_SEQUENTIAL_ITERATION_ON_FULL_NAME(CONTAINER ) + + TEST_SEQUENTIAL_ITERATION(QVector, int) TEST_SEQUENTIAL_ITERATION(QVector, QVariant) TEST_SEQUENTIAL_ITERATION(QVector, QString) @@ -3825,6 +3847,7 @@ void tst_QVariant::iterateContainerElements() TEST_SEQUENTIAL_ITERATION(QList, int) TEST_SEQUENTIAL_ITERATION(QList, QVariant) TEST_SEQUENTIAL_ITERATION(QList, QString) + TEST_SEQUENTIAL_ITERATION(QList, QByteArray) TEST_SEQUENTIAL_ITERATION(QStack, int) TEST_SEQUENTIAL_ITERATION(QStack, QVariant) TEST_SEQUENTIAL_ITERATION(QStack, QString) @@ -3834,6 +3857,8 @@ void tst_QVariant::iterateContainerElements() TEST_SEQUENTIAL_ITERATION(std::list, int) TEST_SEQUENTIAL_ITERATION(std::list, QVariant) TEST_SEQUENTIAL_ITERATION(std::list, QString) + TEST_SEQUENTIAL_ITERATION_ON_FULL_NAME(QStringList) + TEST_SEQUENTIAL_ITERATION_ON_FULL_NAME(QByteArrayList) #ifdef TEST_FORWARD_LIST TEST_SEQUENTIAL_ITERATION(std::forward_list, int) -- cgit v1.2.3