diff options
author | Frederik Gladhorn <frederik.gladhorn@digia.com> | 2013-08-27 22:51:09 +0200 |
---|---|---|
committer | Frederik Gladhorn <frederik.gladhorn@digia.com> | 2013-08-27 22:51:09 +0200 |
commit | 190fa97c83472863fd886e86f626ab8196ed51b3 (patch) | |
tree | 49edb9f6a41d6c999c9bb43ae28911a8e7212757 /tests/auto/tools | |
parent | 3aa163491c9c8f28c88ac87cafc6418f2c0e46c5 (diff) | |
parent | 5971e0918757737425151c39a5f81a238663a17a (diff) |
Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
examples/widgets/doc/src/addressbook-fr.qdoc
Change-Id: Id1196e8e0c6445f1616c3f29234c974d809f8e48
Diffstat (limited to 'tests/auto/tools')
-rw-r--r-- | tests/auto/tools/moc/moc.pro | 3 | ||||
-rw-r--r-- | tests/auto/tools/moc/tst_moc.cpp | 41 |
2 files changed, 41 insertions, 3 deletions
diff --git a/tests/auto/tools/moc/moc.pro b/tests/auto/tools/moc/moc.pro index 1600c458b5..5ea8c06f02 100644 --- a/tests/auto/tools/moc/moc.pro +++ b/tests/auto/tools/moc/moc.pro @@ -29,8 +29,7 @@ if(*-g++*|*-icc*|*-clang*|*-llvm):!irix-*:!win32-*: HEADERS += os9-newlines.h wi if(*-g++*|*-clang*): HEADERS += dollars.h SOURCES += tst_moc.cpp -QT -= gui -QT += sql network testlib +QT = core sql network testlib qtHaveModule(dbus) { DEFINES += WITH_DBUS QT += dbus diff --git a/tests/auto/tools/moc/tst_moc.cpp b/tests/auto/tools/moc/tst_moc.cpp index e7303d716e..a6cd85ade5 100644 --- a/tests/auto/tools/moc/tst_moc.cpp +++ b/tests/auto/tools/moc/tst_moc.cpp @@ -566,6 +566,7 @@ private slots: void parseDefines(); void preprocessorOnly(); void unterminatedFunctionMacro(); + void QTBUG32933_relatedObjectsDontIncludeItself(); signals: void sigWithUnsignedArg(unsigned foo); @@ -1759,6 +1760,14 @@ void tst_Moc::warnings_data() << 1 << QString() << QString("standard input:1: Error: Class contains Q_OBJECT macro but does not inherit from QObject"); + + QTest::newRow("Warning on invalid macro") + << QByteArray("#define Foo(a, b)\n class X : public QObject { Q_OBJECT }; \n Foo(a) \n Foo(a,b,c) \n") + << QStringList() + << 0 + << QString("IGNORE_ALL_STDOUT") + << QString(":3: Warning: Macro argument mismatch.\n:4: Warning: Macro argument mismatch."); + } void tst_Moc::warnings() @@ -1800,7 +1809,7 @@ void tst_Moc::warnings() // magic value "IGNORE_ALL_STDOUT" ignores stdout if (expectedStdOut != "IGNORE_ALL_STDOUT") QCOMPARE(QString::fromLocal8Bit(proc.readAllStandardOutput()).trimmed(), expectedStdOut); - QCOMPARE(QString::fromLocal8Bit(proc.readAllStandardError()).trimmed(), expectedStdErr); + QCOMPARE(QString::fromLocal8Bit(proc.readAllStandardError()).trimmed().remove('\r'), expectedStdErr); } class tst_Moc::PrivateClass : public QObject { @@ -3038,7 +3047,37 @@ void tst_Moc::unterminatedFunctionMacro() #endif } +namespace QTBUG32933_relatedObjectsDontIncludeItself { + namespace NS { + class Obj : QObject { + Q_OBJECT + Q_PROPERTY(MyEnum p1 MEMBER member) + Q_PROPERTY(Obj::MyEnum p2 MEMBER member) + Q_PROPERTY(NS::Obj::MyEnum p3 MEMBER member) + Q_PROPERTY(QTBUG32933_relatedObjectsDontIncludeItself::NS::Obj::MyEnum p4 MEMBER member) + Q_ENUMS(MyEnum); + public: + enum MyEnum { Something, SomethingElse }; + MyEnum member; + }; + } +} + +void tst_Moc::QTBUG32933_relatedObjectsDontIncludeItself() +{ + const QMetaObject *mo = &QTBUG32933_relatedObjectsDontIncludeItself::NS::Obj::staticMetaObject; + const QMetaObject **objects = mo->d.relatedMetaObjects; + // the related objects should be empty because the enums is in the same object. + QVERIFY(!objects); + +} + QTEST_MAIN(tst_Moc) +// the generated code must compile with QT_NO_KEYWORDS +#undef signals +#undef slots +#undef emit + #include "tst_moc.moc" |