diff options
Diffstat (limited to 'tests/auto/tools/moc/tst_moc.cpp')
-rw-r--r-- | tests/auto/tools/moc/tst_moc.cpp | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/tests/auto/tools/moc/tst_moc.cpp b/tests/auto/tools/moc/tst_moc.cpp index ede486ebc0..0cd6c295cc 100644 --- a/tests/auto/tools/moc/tst_moc.cpp +++ b/tests/auto/tools/moc/tst_moc.cpp @@ -554,6 +554,7 @@ private slots: void autoPropertyMetaTypeRegistration(); void autoMethodArgumentMetaTypeRegistration(); void parseDefines(); + void preprocessorOnly(); signals: void sigWithUnsignedArg(unsigned foo); @@ -2760,6 +2761,26 @@ void tst_Moc::parseDefines() QVERIFY(count == 2); } +void tst_Moc::preprocessorOnly() +{ +#ifdef MOC_CROSS_COMPILED + QSKIP("Not tested when cross-compiled"); +#endif +#if defined(Q_OS_LINUX) && defined(Q_CC_GNU) && !defined(QT_NO_PROCESS) + QProcess proc; + proc.start("moc", QStringList() << "-E" << srcify("/pp-dollar-signs.h")); + QVERIFY(proc.waitForFinished()); + QCOMPARE(proc.exitCode(), 0); + QByteArray mocOut = proc.readAllStandardOutput(); + QVERIFY(!mocOut.isEmpty()); + QCOMPARE(proc.readAllStandardError(), QByteArray()); + + QVERIFY(mocOut.contains("$$ = parser->createFoo()")); +#else + QSKIP("Only tested on linux/gcc"); +#endif +} + QTEST_MAIN(tst_Moc) #include "tst_moc.moc" |