From 80e03bbd9a42401d50af450aff5351c3a0c95444 Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Thu, 27 Jul 2017 09:44:58 +0200 Subject: Ignore debugger failures with GCC on Windows MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Capturing the output of the started process mysteriously fails on Windows with gcc. While the nested event loop is run, the readyRead() signal is never emitted. Only after the timer fired and the event loop is terminated, we receive the output we were expecting. Some tests needed adapting to the initializing sub-function failing in QVERIFY/QCOMPARE calls, in order for the process to not crash and the blacklisting to work. Task-number: QTQAINFRA-1334 Change-Id: I4804d94580e7db65595137d19d7b75d75c243257 Reviewed-by: Jędrzej Nowacki --- .../auto/qml/debugger/qdebugmessageservice/BLACKLIST | 2 ++ .../qqmldebuggingenabler/BLACKLIST | 2 ++ .../qml/debugger/qqmldebugjs/qqmldebugjs/BLACKLIST | 2 ++ tests/auto/qml/debugger/qqmlenginecontrol/BLACKLIST | 2 ++ .../debugger/qqmlenginecontrol/qqmlenginecontrol.pro | 2 +- .../qqmlenginecontrol/tst_qqmlenginecontrol.cpp | 5 +++++ .../qqmlenginedebuginspectorintegrationtest.pro | 2 +- .../tst_qqmlenginedebuginspectorintegration.cpp | 20 ++++++++++++++++++++ tests/auto/qml/debugger/qqmlinspector/BLACKLIST | 2 ++ .../qqmlprofilerservice/qqmlprofilerservice.pro | 2 +- .../qqmlprofilerservice/tst_qqmlprofilerservice.cpp | 15 +++++++++++++++ 11 files changed, 53 insertions(+), 3 deletions(-) create mode 100644 tests/auto/qml/debugger/qdebugmessageservice/BLACKLIST create mode 100644 tests/auto/qml/debugger/qqmldebuggingenabler/qqmldebuggingenabler/BLACKLIST create mode 100644 tests/auto/qml/debugger/qqmldebugjs/qqmldebugjs/BLACKLIST create mode 100644 tests/auto/qml/debugger/qqmlenginecontrol/BLACKLIST create mode 100644 tests/auto/qml/debugger/qqmlinspector/BLACKLIST diff --git a/tests/auto/qml/debugger/qdebugmessageservice/BLACKLIST b/tests/auto/qml/debugger/qdebugmessageservice/BLACKLIST new file mode 100644 index 0000000000..5fb1dc193b --- /dev/null +++ b/tests/auto/qml/debugger/qdebugmessageservice/BLACKLIST @@ -0,0 +1,2 @@ +# QTQAINFRA-1334 +windows gcc diff --git a/tests/auto/qml/debugger/qqmldebuggingenabler/qqmldebuggingenabler/BLACKLIST b/tests/auto/qml/debugger/qqmldebuggingenabler/qqmldebuggingenabler/BLACKLIST new file mode 100644 index 0000000000..5fb1dc193b --- /dev/null +++ b/tests/auto/qml/debugger/qqmldebuggingenabler/qqmldebuggingenabler/BLACKLIST @@ -0,0 +1,2 @@ +# QTQAINFRA-1334 +windows gcc diff --git a/tests/auto/qml/debugger/qqmldebugjs/qqmldebugjs/BLACKLIST b/tests/auto/qml/debugger/qqmldebugjs/qqmldebugjs/BLACKLIST new file mode 100644 index 0000000000..5fb1dc193b --- /dev/null +++ b/tests/auto/qml/debugger/qqmldebugjs/qqmldebugjs/BLACKLIST @@ -0,0 +1,2 @@ +# QTQAINFRA-1334 +windows gcc diff --git a/tests/auto/qml/debugger/qqmlenginecontrol/BLACKLIST b/tests/auto/qml/debugger/qqmlenginecontrol/BLACKLIST new file mode 100644 index 0000000000..5fb1dc193b --- /dev/null +++ b/tests/auto/qml/debugger/qqmlenginecontrol/BLACKLIST @@ -0,0 +1,2 @@ +# QTQAINFRA-1334 +windows gcc diff --git a/tests/auto/qml/debugger/qqmlenginecontrol/qqmlenginecontrol.pro b/tests/auto/qml/debugger/qqmlenginecontrol/qqmlenginecontrol.pro index 2518650493..40ec1230d6 100644 --- a/tests/auto/qml/debugger/qqmlenginecontrol/qqmlenginecontrol.pro +++ b/tests/auto/qml/debugger/qqmlenginecontrol/qqmlenginecontrol.pro @@ -10,7 +10,7 @@ include(../shared/debugutil.pri) TESTDATA = data/* -QT += core qml testlib gui-private core-private +QT += core qml testlib testlib-private gui-private core-private OTHER_FILES += \ data/test.qml \ diff --git a/tests/auto/qml/debugger/qqmlenginecontrol/tst_qqmlenginecontrol.cpp b/tests/auto/qml/debugger/qqmlenginecontrol/tst_qqmlenginecontrol.cpp index 3f8731ce6b..2c515d7cf5 100644 --- a/tests/auto/qml/debugger/qqmlenginecontrol/tst_qqmlenginecontrol.cpp +++ b/tests/auto/qml/debugger/qqmlenginecontrol/tst_qqmlenginecontrol.cpp @@ -35,6 +35,7 @@ #include #include +#include #include #define STR_PORT_FROM "13773" @@ -154,6 +155,8 @@ void tst_QQmlEngineControl::startEngine() QFETCH(bool, restrictMode); connect("test.qml", restrictMode); + if (QTest::currentTestFailed() || QTestResult::skipCurrentTest()) + return; QTRY_VERIFY(!m_client->blockedEngines().empty()); m_client->releaseEngine(m_client->blockedEngines().last()); @@ -172,6 +175,8 @@ void tst_QQmlEngineControl::stopEngine() QFETCH(bool, restrictMode); connect("exit.qml", restrictMode); + if (QTest::currentTestFailed() || QTestResult::skipCurrentTest()) + return; QTRY_VERIFY(!m_client->blockedEngines().empty()); m_client->releaseEngine(m_client->blockedEngines().last()); diff --git a/tests/auto/qml/debugger/qqmlenginedebuginspectorintegrationtest/qqmlenginedebuginspectorintegrationtest.pro b/tests/auto/qml/debugger/qqmlenginedebuginspectorintegrationtest/qqmlenginedebuginspectorintegrationtest.pro index e11ccdc6ca..b8b4c3fc8b 100644 --- a/tests/auto/qml/debugger/qqmlenginedebuginspectorintegrationtest/qqmlenginedebuginspectorintegrationtest.pro +++ b/tests/auto/qml/debugger/qqmlenginedebuginspectorintegrationtest/qqmlenginedebuginspectorintegrationtest.pro @@ -1,7 +1,7 @@ CONFIG += testcase TARGET = tst_qqmlenginedebuginspectorintegration -QT += qml testlib gui-private core-private +QT += qml testlib testlib-private gui-private core-private osx:CONFIG -= app_bundle SOURCES += tst_qqmlenginedebuginspectorintegration.cpp diff --git a/tests/auto/qml/debugger/qqmlenginedebuginspectorintegrationtest/tst_qqmlenginedebuginspectorintegration.cpp b/tests/auto/qml/debugger/qqmlenginedebuginspectorintegrationtest/tst_qqmlenginedebuginspectorintegration.cpp index 940f89e936..738da048a3 100644 --- a/tests/auto/qml/debugger/qqmlenginedebuginspectorintegrationtest/tst_qqmlenginedebuginspectorintegration.cpp +++ b/tests/auto/qml/debugger/qqmlenginedebuginspectorintegrationtest/tst_qqmlenginedebuginspectorintegration.cpp @@ -34,6 +34,7 @@ #include #include +#include #include #include #include @@ -101,6 +102,10 @@ QmlDebugObjectReference tst_QQmlEngineDebugInspectorIntegration::findRootObject( void tst_QQmlEngineDebugInspectorIntegration::init(bool restrictServices) { +#if defined(Q_OS_WIN) && defined(Q_CC_MINGW) + QSKIP("Capturing output while running nested event loop is not reliable on Windows/GCC"); +#endif + const QString argument = QString::fromLatin1("-qmljsdebugger=port:%1,%2,block%3") .arg(STR_PORT_FROM).arg(STR_PORT_TO) .arg(restrictServices ? QStringLiteral(",services:QmlDebugger,QmlInspector") : @@ -164,6 +169,8 @@ void tst_QQmlEngineDebugInspectorIntegration::connect() void tst_QQmlEngineDebugInspectorIntegration::objectLocationLookup() { init(true); + if (QTest::currentTestFailed() || QTestResult::skipCurrentTest()) + return; bool success = false; QmlDebugObjectReference rootObject = findRootObject(); @@ -190,6 +197,9 @@ void tst_QQmlEngineDebugInspectorIntegration::objectLocationLookup() void tst_QQmlEngineDebugInspectorIntegration::select() { init(true); + if (QTest::currentTestFailed() || QTestResult::skipCurrentTest()) + return; + QmlDebugObjectReference rootObject = findRootObject(); QList childIds; int requestId = 0; @@ -207,6 +217,8 @@ void tst_QQmlEngineDebugInspectorIntegration::select() void tst_QQmlEngineDebugInspectorIntegration::createObject() { init(true); + if (QTest::currentTestFailed() || QTestResult::skipCurrentTest()) + return; QString qml = QLatin1String("Rectangle {\n" " id: xxxyxxx\n" @@ -234,6 +246,10 @@ void tst_QQmlEngineDebugInspectorIntegration::createObject() void tst_QQmlEngineDebugInspectorIntegration::moveObject() { init(true); + if (QTest::currentTestFailed() || QTestResult::skipCurrentTest()) + return; + + QCOMPARE(m_inspectorClient->state(), QQmlDebugClient::Enabled); QmlDebugObjectReference rootObject = findRootObject(); QVERIFY(rootObject.debugId != -1); QCOMPARE(rootObject.children.length(), 2); @@ -257,6 +273,10 @@ void tst_QQmlEngineDebugInspectorIntegration::moveObject() void tst_QQmlEngineDebugInspectorIntegration::destroyObject() { init(true); + if (QTest::currentTestFailed() || QTestResult::skipCurrentTest()) + return; + + QCOMPARE(m_inspectorClient->state(), QQmlDebugClient::Enabled); QmlDebugObjectReference rootObject = findRootObject(); QVERIFY(rootObject.debugId != -1); QCOMPARE(rootObject.children.length(), 2); diff --git a/tests/auto/qml/debugger/qqmlinspector/BLACKLIST b/tests/auto/qml/debugger/qqmlinspector/BLACKLIST new file mode 100644 index 0000000000..5fb1dc193b --- /dev/null +++ b/tests/auto/qml/debugger/qqmlinspector/BLACKLIST @@ -0,0 +1,2 @@ +# QTQAINFRA-1334 +windows gcc diff --git a/tests/auto/qml/debugger/qqmlprofilerservice/qqmlprofilerservice.pro b/tests/auto/qml/debugger/qqmlprofilerservice/qqmlprofilerservice.pro index 71a58d6f34..f5e3dbdc2f 100644 --- a/tests/auto/qml/debugger/qqmlprofilerservice/qqmlprofilerservice.pro +++ b/tests/auto/qml/debugger/qqmlprofilerservice/qqmlprofilerservice.pro @@ -10,7 +10,7 @@ include(../shared/debugutil.pri) TESTDATA = data/* -QT += core qml testlib gui-private core-private +QT += core qml testlib testlib-private gui-private core-private OTHER_FILES += \ data/pixmapCacheTest.qml \ diff --git a/tests/auto/qml/debugger/qqmlprofilerservice/tst_qqmlprofilerservice.cpp b/tests/auto/qml/debugger/qqmlprofilerservice/tst_qqmlprofilerservice.cpp index 692e70d7da..b8e1f1f21d 100644 --- a/tests/auto/qml/debugger/qqmlprofilerservice/tst_qqmlprofilerservice.cpp +++ b/tests/auto/qml/debugger/qqmlprofilerservice/tst_qqmlprofilerservice.cpp @@ -33,6 +33,7 @@ #include #include +#include #include #define STR_PORT_FROM "13773" @@ -562,6 +563,8 @@ void tst_QQmlProfilerService::connect() void tst_QQmlProfilerService::pixmapCacheData() { connect(true, "pixmapCacheTest.qml"); + if (QTest::currentTestFailed() || QTestResult::skipCurrentTest()) + return; m_client->sendRecordingStatus(true); QVERIFY(QQmlDebugTest::waitForSignal(m_process, SIGNAL(readyReadStandardOutput()))); @@ -599,6 +602,8 @@ void tst_QQmlProfilerService::pixmapCacheData() void tst_QQmlProfilerService::scenegraphData() { connect(true, "scenegraphTest.qml"); + if (QTest::currentTestFailed() || QTestResult::skipCurrentTest()) + return; m_client->sendRecordingStatus(true); @@ -656,6 +661,8 @@ void tst_QQmlProfilerService::scenegraphData() void tst_QQmlProfilerService::profileOnExit() { connect(true, "exit.qml"); + if (QTest::currentTestFailed() || QTestResult::skipCurrentTest()) + return; m_client->sendRecordingStatus(true); @@ -666,6 +673,8 @@ void tst_QQmlProfilerService::profileOnExit() void tst_QQmlProfilerService::controlFromJS() { connect(true, "controlFromJS.qml"); + if (QTest::currentTestFailed() || QTestResult::skipCurrentTest()) + return; m_client->sendRecordingStatus(false); checkTraceReceived(); @@ -675,6 +684,8 @@ void tst_QQmlProfilerService::controlFromJS() void tst_QQmlProfilerService::signalSourceLocation() { connect(true, "signalSourceLocation.qml"); + if (QTest::currentTestFailed() || QTestResult::skipCurrentTest()) + return; m_client->sendRecordingStatus(true); while (!(m_process->output().contains(QLatin1String("500")))) @@ -698,6 +709,8 @@ void tst_QQmlProfilerService::signalSourceLocation() void tst_QQmlProfilerService::javascript() { connect(true, "javascript.qml"); + if (QTest::currentTestFailed() || QTestResult::skipCurrentTest()) + return; m_client->sendRecordingStatus(true); while (!(m_process->output().contains(QLatin1String("done")))) @@ -728,6 +741,8 @@ void tst_QQmlProfilerService::javascript() void tst_QQmlProfilerService::flushInterval() { connect(true, "timer.qml"); + if (QTest::currentTestFailed() || QTestResult::skipCurrentTest()) + return; m_client->sendRecordingStatus(true, -1, 1); -- cgit v1.2.3