diff options
Diffstat (limited to 'tests/auto/tools/moc/tst_moc.cpp')
-rw-r--r-- | tests/auto/tools/moc/tst_moc.cpp | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/tests/auto/tools/moc/tst_moc.cpp b/tests/auto/tools/moc/tst_moc.cpp index 2e1504383f..97a2f366c5 100644 --- a/tests/auto/tools/moc/tst_moc.cpp +++ b/tests/auto/tools/moc/tst_moc.cpp @@ -174,6 +174,9 @@ class TestClassinfoWithEscapes: public QObject Q_OBJECT Q_CLASSINFO("escaped", "\"bar\"") Q_CLASSINFO("\"escaped\"", "foo") + Q_CLASSINFO("cpp c*/omment", "f/*oo") + Q_CLASSINFO("endswith\\", "Or?\?/") + Q_CLASSINFO("newline\n inside\n", "Or \r") public slots: void slotWithAReallyLongName(int) { } @@ -800,6 +803,14 @@ void tst_Moc::classinfoWithEscapes() const QMetaObject *mobj = &TestClassinfoWithEscapes::staticMetaObject; QCOMPARE(mobj->methodCount() - mobj->methodOffset(), 1); + QCOMPARE(mobj->classInfoCount(), 5); + QCOMPARE(mobj->classInfo(2).name(), "cpp c*/omment"); + QCOMPARE(mobj->classInfo(2).value(), "f/*oo"); + QCOMPARE(mobj->classInfo(3).name(), "endswith\\"); + QCOMPARE(mobj->classInfo(3).value(), "Or?\?/"); + QCOMPARE(mobj->classInfo(4).name(), "newline\n inside\n"); + QCOMPARE(mobj->classInfo(4).value(), "Or \r"); + QMetaMethod mm = mobj->method(mobj->methodOffset()); QCOMPARE(mm.methodSignature(), QByteArray("slotWithAReallyLongName(int)")); } @@ -1781,6 +1792,14 @@ void tst_Moc::warnings_data() << QString("IGNORE_ALL_STDOUT") << QString("standard input:1: Warning: Property declaration x has no READ accessor function or associated MEMBER variable. The property will be invalid."); + // This should output a warning + QTest::newRow("Duplicate property warning") + << QByteArray("class X : public QObject { Q_OBJECT Q_PROPERTY(int x READ x) Q_PROPERTY(int x READ y) };") + << QStringList() + << 0 + << QString("IGNORE_ALL_STDOUT") + << QString("standard input:1: Warning: The property 'x' is defined multiple times in class X."); + // Passing "-nn" should NOT suppress the warning QTest::newRow("Invalid property warning with -nn") << QByteArray("class X : public QObject { Q_OBJECT Q_PROPERTY(int x) };") |