diff options
Diffstat (limited to 'sources/shiboken6/ApiExtractor/tests/testarrayargument.cpp')
-rw-r--r-- | sources/shiboken6/ApiExtractor/tests/testarrayargument.cpp | 108 |
1 files changed, 45 insertions, 63 deletions
diff --git a/sources/shiboken6/ApiExtractor/tests/testarrayargument.cpp b/sources/shiboken6/ApiExtractor/tests/testarrayargument.cpp index 22cf7ab40..6e1820bed 100644 --- a/sources/shiboken6/ApiExtractor/tests/testarrayargument.cpp +++ b/sources/shiboken6/ApiExtractor/tests/testarrayargument.cpp @@ -1,48 +1,30 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the test suite of Qt for Python. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 #include "testarrayargument.h" -#include <QtTest/QTest> #include "testutil.h" +#include <abstractmetaargument.h> #include <abstractmetaenum.h> #include <abstractmetafunction.h> #include <abstractmetalang.h> -#include <typesystem.h> +#include <abstractmetatype.h> +#include <primitivetypeentry.h> #include <parser/enumvalue.h> +#include <qtcompat.h> + +#include <QtTest/QTest> + +using namespace Qt::StringLiterals; + void TestArrayArgument::testArrayArgumentWithSizeDefinedByInteger() { - const char* cppCode ="\ + const char cppCode[] = "\ struct A {\n\ enum SomeEnum { Value0, Value1, NValues };\n\ void method(double[3]);\n\ };\n"; - const char* xmlCode = "\ + const char xmlCode[] = "\ <typesystem package='Foo'>\n\ <primitive-type name='double'/>\n\ <object-type name='A'>\n\ @@ -52,19 +34,19 @@ void TestArrayArgument::testArrayArgumentWithSizeDefinedByInteger() QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false)); QVERIFY(!builder.isNull()); - const AbstractMetaClass *classA = AbstractMetaClass::findClass(builder->classes(), QLatin1String("A")); + const auto classA = AbstractMetaClass::findClass(builder->classes(), "A"); QVERIFY(classA); const AbstractMetaArgument &arg = classA->functions().constLast()->arguments().constFirst(); QVERIFY(arg.type().isArray()); QCOMPARE(arg.type().arrayElementCount(), 3); - QCOMPARE(arg.type().arrayElementType()->name(), QLatin1String("double")); + QCOMPARE(arg.type().arrayElementType()->name(), u"double"); } -static QString functionMinimalSignature(const AbstractMetaClass *c, const QString &name) +static QString functionMinimalSignature(const AbstractMetaClassCPtr &c, const QString &name) { const auto f = c->findFunction(name); - return f.isNull() ? QString() : f->minimalSignature(); + return f ? f->minimalSignature() : QString(); } void TestArrayArgument::testArraySignature() @@ -90,33 +72,33 @@ void TestArrayArgument::testArraySignature() QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false)); QVERIFY(!builder.isNull()); - const AbstractMetaClass *classA = AbstractMetaClass::findClass(builder->classes(), QLatin1String("A")); - QCOMPARE(functionMinimalSignature(classA, QLatin1String("mi1")), - QLatin1String("mi1(int[5])")); - QCOMPARE(functionMinimalSignature(classA, QLatin1String("mi1c")), - QLatin1String("mi1c(const int[5])")); - QCOMPARE(functionMinimalSignature(classA, QLatin1String("mi1cu")), - QLatin1String("mi1cu(const int[])")); - QCOMPARE(functionMinimalSignature(classA, QLatin1String("mc1cu")), - QLatin1String("mc1cu(const char*)")); - QCOMPARE(functionMinimalSignature(classA, QLatin1String("mc1cup")), - QLatin1String("mc1cup(const char*[])")); - QCOMPARE(functionMinimalSignature(classA, QLatin1String("muc2")), - QLatin1String("muc2(unsigned char*[2][3])")); - QCOMPARE(functionMinimalSignature(classA, QLatin1String("mc2c")), - QLatin1String("mc2c(const char*[5][6])")); - QCOMPARE(functionMinimalSignature(classA, QLatin1String("mc2cu")), - QLatin1String("mc2cu(const char[][2])")); + const auto classA = AbstractMetaClass::findClass(builder->classes(), "A"); + QCOMPARE(functionMinimalSignature(classA, u"mi1"_s), + u"mi1(int[5])"); + QCOMPARE(functionMinimalSignature(classA, u"mi1c"_s), + u"mi1c(const int[5])"); + QCOMPARE(functionMinimalSignature(classA, u"mi1cu"_s), + u"mi1cu(const int[])"); + QCOMPARE(functionMinimalSignature(classA, u"mc1cu"_s), + u"mc1cu(const char*)"); + QCOMPARE(functionMinimalSignature(classA, u"mc1cup"_s), + u"mc1cup(const char*[])"); + QCOMPARE(functionMinimalSignature(classA, u"muc2"_s), + u"muc2(unsigned char*[2][3])"); + QCOMPARE(functionMinimalSignature(classA, u"mc2c"_s), + u"mc2c(const char*[5][6])"); + QCOMPARE(functionMinimalSignature(classA, u"mc2cu"_s), + u"mc2cu(const char[][2])"); } void TestArrayArgument::testArrayArgumentWithSizeDefinedByEnumValue() { - const char* cppCode ="\ + const char cppCode[] = "\ struct A {\n\ enum SomeEnum { Value0, Value1, NValues };\n\ void method(double[NValues]);\n\ };\n"; - const char* xmlCode = "\ + const char xmlCode[] = "\ <typesystem package='Foo'>\n\ <primitive-type name='double'/>\n\ <object-type name='A'>\n\ @@ -126,28 +108,28 @@ void TestArrayArgument::testArrayArgumentWithSizeDefinedByEnumValue() QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false)); QVERIFY(!builder.isNull()); - AbstractMetaClass *classA = AbstractMetaClass::findClass(builder->classes(), QLatin1String("A")); + AbstractMetaClassPtr classA = AbstractMetaClass::findClass(builder->classes(), "A"); QVERIFY(classA); - auto someEnum = classA->findEnum(QLatin1String("SomeEnum")); + auto someEnum = classA->findEnum(u"SomeEnum"_s); QVERIFY(someEnum.has_value()); - auto nvalues = classA->findEnumValue(QLatin1String("NValues")); + auto nvalues = classA->findEnumValue(u"NValues"_s); QVERIFY(nvalues.has_value()); const AbstractMetaArgument &arg = classA->functions().constLast()->arguments().constFirst(); QVERIFY(arg.type().isArray()); QCOMPARE(arg.type().arrayElementCount(), nvalues->value().value()); - QCOMPARE(arg.type().arrayElementType()->name(), QLatin1String("double")); + QCOMPARE(arg.type().arrayElementType()->name(), u"double"); }; void TestArrayArgument::testArrayArgumentWithSizeDefinedByEnumValueFromGlobalEnum() { - const char* cppCode ="\ + const char cppCode[] = "\ enum SomeEnum { Value0, Value1, NValues };\n\ struct A {\n\ void method(double[NValues]);\n\ };\n"; - const char* xmlCode = "\ + const char xmlCode[] = "\ <typesystem package='Foo'>\n\ <primitive-type name='double'/>\n\ <enum-type name='SomeEnum'/>\n\ @@ -156,8 +138,8 @@ void TestArrayArgument::testArrayArgumentWithSizeDefinedByEnumValueFromGlobalEnu </typesystem>\n"; QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false)); - QVERIFY(!builder.isNull()); - const AbstractMetaClass *classA = AbstractMetaClass::findClass(builder->classes(), QLatin1String("A")); + QVERIFY(builder); + const auto classA = AbstractMetaClass::findClass(builder->classes(), "A"); QVERIFY(classA); AbstractMetaEnum someEnum = builder->globalEnums().constFirst(); @@ -167,7 +149,7 @@ void TestArrayArgument::testArrayArgumentWithSizeDefinedByEnumValueFromGlobalEnu const AbstractMetaArgument &arg = classA->functions().constLast()->arguments().constFirst(); QVERIFY(arg.type().isArray()); QCOMPARE(arg.type().arrayElementCount(), nvalues->value().value()); - QCOMPARE(arg.type().arrayElementType()->name(), QLatin1String("double")); + QCOMPARE(arg.type().arrayElementType()->name(), u"double"); }; QTEST_APPLESS_MAIN(TestArrayArgument) |