From d57c7e14fe8f8e08744452c75b5ca9806c68b522 Mon Sep 17 00:00:00 2001 From: Ulf Hermann Date: Mon, 23 Mar 2015 16:30:52 +0100 Subject: [PATCH] Timeline: In autotests, fail if the renderer warns Warnings from the scene graph renderer are most likely things we want to catch when testing, such as failure to compile the shaders. Change-Id: I96bcf4a44d0986ca6f065cda71b242ebb355ce84 Reviewed-by: Joerg Bornemann --- .../tst_timelineitemsrenderpass.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/tests/auto/timeline/timelineitemsrenderpass/tst_timelineitemsrenderpass.cpp b/tests/auto/timeline/timelineitemsrenderpass/tst_timelineitemsrenderpass.cpp index dc8cae660c1..c2cff9cffb0 100644 --- a/tests/auto/timeline/timelineitemsrenderpass/tst_timelineitemsrenderpass.cpp +++ b/tests/auto/timeline/timelineitemsrenderpass/tst_timelineitemsrenderpass.cpp @@ -38,6 +38,14 @@ using namespace Timeline; +void renderMessageHandler(QtMsgType type, const QMessageLogContext &context, const QString &message) +{ + if (type > QtDebugMsg) + QTest::qFail(message.toLatin1().constData(), context.file, context.line); + else + QTest::qWarn(message.toLatin1().constData(), context.file, context.line); +} + void runSceneGraph(QSGNode *node) { QSurfaceFormat format; @@ -62,7 +70,9 @@ void runSceneGraph(QSGNode *node) QSGAbstractRenderer *renderer = engine.createRenderer(); QVERIFY(renderer != 0); renderer->setRootNode(&root); + QtMessageHandler originalHandler = qInstallMessageHandler(renderMessageHandler); renderer->renderScene(); + qInstallMessageHandler(originalHandler); delete renderer; // Unfortunately we cannot check the results of the rendering. But at least we know the shaders