Here is my reducted test case (added to tst_qquickwebview.cpp) void tst_QQuickWebView::showBasic() { QSizeF s(300, 400); webView()->setSize(s); m_window->setGeometry(0, 0, s.width(), s.height()); m_window->show(); webView()->setVisible(true); webView()->setUrl(QUrl::fromLocalFile(QLatin1String(TESTS_SOURCE_DIR "/html/basic_page.html"))); QTest::qWait(500); } It is flakily producing a crash under GraphicsContext3D::mappedSymbolName, because at ShaderSourceMap::iterator result = m_shaderSourceMap.find(shaders[i]); the shader is 0 (empty key value). The reason is that glGetAttachedShaders could not lookup the second shader. Here is the output of the reducted test (after added a check for GLerror() with printf and exit): PASS : tst_QQuickWebView::initTestCase() QWARN : tst_QQuickWebView::showBasic() QOpenGLShader::compile(Vertex): failed QWARN : tst_QQuickWebView::showBasic() QOpenGLShader::compile(Fragment): failed QWARN : tst_QQuickWebView::showBasic() QSGMaterialShader: Shader compilation failed: QWARN : tst_QQuickWebView::showBasic() "" QWARN : tst_QQuickWebView::showBasic() QOpenGLShaderProgram::uniformLocation( matrix ): shader program is not linked QWARN : tst_QQuickWebView::showBasic() QOpenGLShaderProgram::uniformLocation( color ): shader program is not linked GL_INVALID_VALUE So, it's clear that we should not ignore those warnings from Qt, and find out how could be compatible with xvfb. If it's not possible than we would have to dedicate a machine for API tests.
Ossy said these tests runs fine in his local environment (in xvfb), so it's affected by my environment (GPU I guess).
Seems like for some reason compilation of the most simple shader program is failing in my env in xvfb (not tried in a separate program but Qt is failing with the QSGFlatColorMaterial). I think the difference between the bot and my env is that here it use the nvidia gl lib and not mesa. I'm not sure whether the nvidia implementation or Qt is incompatible with xvfb, but the consequence seems to be that we should not try to run tests (or anything) in xvfb if Qt was built against a vendor GL implementation (and not mesa). Since bots are ok, and developers don't have to use xvfb we can live with that.