diff options
author | Liang Qi <liang.qi@qt.io> | 2016-09-15 19:47:57 +0200 |
---|---|---|
committer | Liang Qi <liang.qi@qt.io> | 2016-09-15 19:47:57 +0200 |
commit | 40a1f69e8663fb79560c26cfad5ead45b1b3ee5f (patch) | |
tree | a8ceb093a098a38b29c0fe27e41af480ae10b876 /tests/auto/tools/moc/tst_moc.cpp | |
parent | 446afc10451d5097d7bd20b1b8d20325c4d54fa5 (diff) | |
parent | 6b2071c697d4c48f0cd289b28b443ebffc3432e6 (diff) |
Merge remote-tracking branch 'origin/5.8' into dev
Conflicts:
configure.json
mkspecs/macx-tvos-clang/qmake.conf
mkspecs/macx-watchos-clang/qmake.conf
Change-Id: Iaf32339ace59dff9ed344972472744c55d75025c
Diffstat (limited to 'tests/auto/tools/moc/tst_moc.cpp')
-rw-r--r-- | tests/auto/tools/moc/tst_moc.cpp | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/tests/auto/tools/moc/tst_moc.cpp b/tests/auto/tools/moc/tst_moc.cpp index 714ae19a10..a3648c95b6 100644 --- a/tests/auto/tools/moc/tst_moc.cpp +++ b/tests/auto/tools/moc/tst_moc.cpp @@ -69,6 +69,7 @@ #include "non-gadget-parent-class.h" #include "grand-parent-gadget-class.h" +#include "namespace.h" #ifdef Q_MOC_RUN // check that moc can parse these constructs, they are being used in Windows winsock2.h header @@ -2082,6 +2083,34 @@ void tst_Moc::warnings_data() << QString() << QString("standard input:1: Error: Namespace declaration lacks Q_NAMESPACE macro."); + QTest::newRow("Wrong Q_ENUM context.") + << QByteArray("namespace X {\nQ_NAMESPACE\n\nenum class MyEnum {Key1 = 1}\nQ_ENUM(MyEnum)\n}\n") + << QStringList() + << 1 + << QString() + << QString("standard input:5: Error: Q_ENUM can't be used in a Q_NAMESPACE, use Q_ENUM_NS instead"); + + QTest::newRow("Wrong Q_FLAG context.") + << QByteArray("namespace X {\nQ_NAMESPACE\n\nenum class MyEnum {Key1 = 1}\nQ_FLAG(MyEnum)\n}\n") + << QStringList() + << 1 + << QString() + << QString("standard input:5: Error: Q_FLAG can't be used in a Q_NAMESPACE, use Q_FLAG_NS instead"); + + QTest::newRow("Wrong Q_ENUM_NS context.") + << QByteArray("class X {\nQ_GADGET\n\nenum class MyEnum {Key1 = 1}\nQ_ENUM_NS(MyEnum)\n};\n") + << QStringList() + << 1 + << QString() + << QString("standard input:5: Error: Q_ENUM_NS can't be used in a Q_OBJECT/Q_GADGET, use Q_ENUM instead"); + + QTest::newRow("Wrong Q_FLAG_NS context.") + << QByteArray("class X {\nQ_GADGET\n\nenum class MyEnum {Key1 = 1}\nQ_FLAG_NS(MyEnum)\n};\n") + << QStringList() + << 1 + << QString() + << QString("standard input:5: Error: Q_FLAG_NS can't be used in a Q_OBJECT/Q_GADGET, use Q_FLAG instead"); + QTest::newRow("Invalid macro definition") << QByteArray("#define Foo(a, b, c) a b c #a #b #c a##b##c #d\n Foo(45, 42, 39);") << QStringList() |