summaryrefslogtreecommitdiffstats
path: root/tests/auto/tools/moc/tst_moc.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/tools/moc/tst_moc.cpp')
-rw-r--r--tests/auto/tools/moc/tst_moc.cpp19
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) };")