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 <joerg.bornemann@theqtcompany.com>
This commit is contained in:
Ulf Hermann
2015-03-23 16:30:52 +01:00
parent adb630ca74
commit d57c7e14fe

View File

@@ -38,6 +38,14 @@
using namespace Timeline; 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) void runSceneGraph(QSGNode *node)
{ {
QSurfaceFormat format; QSurfaceFormat format;
@@ -62,7 +70,9 @@ void runSceneGraph(QSGNode *node)
QSGAbstractRenderer *renderer = engine.createRenderer(); QSGAbstractRenderer *renderer = engine.createRenderer();
QVERIFY(renderer != 0); QVERIFY(renderer != 0);
renderer->setRootNode(&root); renderer->setRootNode(&root);
QtMessageHandler originalHandler = qInstallMessageHandler(renderMessageHandler);
renderer->renderScene(); renderer->renderScene();
qInstallMessageHandler(originalHandler);
delete renderer; delete renderer;
// Unfortunately we cannot check the results of the rendering. But at least we know the shaders // Unfortunately we cannot check the results of the rendering. But at least we know the shaders