diff options
author | Leander Beernaert <leander.beernaert@qt.io> | 2020-01-16 16:25:06 +0100 |
---|---|---|
committer | Leander Beernaert <leander.beernaert@qt.io> | 2020-01-16 16:25:06 +0100 |
commit | 1d333d3375874efb8d37df37dc5ef561573794ad (patch) | |
tree | 2d8c995f64c05c84c1fcceb2c5cb40fcae69855f /tests/manual/scenegraph_lancelot/scenegraph | |
parent | b106d86c433706928b0b0c206a0d9f831681e1bf (diff) | |
parent | e79a2658cde899d6ee11ec3c0d0a3768eb2c864b (diff) |
Merge remote-tracking branch 'origin/dev' into wip/cmake
Change-Id: I0c5b939c70bdb91ccdf7068784308416dcaa5736
Diffstat (limited to 'tests/manual/scenegraph_lancelot/scenegraph')
-rw-r--r-- | tests/manual/scenegraph_lancelot/scenegraph/scenegraph.pro | 4 | ||||
-rw-r--r-- | tests/manual/scenegraph_lancelot/scenegraph/tst_scenegraph.cpp | 33 |
2 files changed, 34 insertions, 3 deletions
diff --git a/tests/manual/scenegraph_lancelot/scenegraph/scenegraph.pro b/tests/manual/scenegraph_lancelot/scenegraph/scenegraph.pro index dd0ef268b1..9deb46427e 100644 --- a/tests/manual/scenegraph_lancelot/scenegraph/scenegraph.pro +++ b/tests/manual/scenegraph_lancelot/scenegraph/scenegraph.pro @@ -10,6 +10,8 @@ SOURCES += tst_scenegraph.cpp # Assuming that we are in a normal Qt5 source code tree include(../../../../../qtbase/tests/baselineserver/shared/qbaselinetest.pri) -TEST_HELPER_INSTALLS += .././qmlscenegrabber +win32: TEST_HELPER_INSTALLS += .././qmlscenegrabber.exe +else: macos: TEST_HELPER_INSTALLS += .././qmlscenegrabber.app +else: TEST_HELPER_INSTALLS += .././qmlscenegrabber TESTDATA += ../data diff --git a/tests/manual/scenegraph_lancelot/scenegraph/tst_scenegraph.cpp b/tests/manual/scenegraph_lancelot/scenegraph/tst_scenegraph.cpp index 40b17ec2a2..a65bde1002 100644 --- a/tests/manual/scenegraph_lancelot/scenegraph/tst_scenegraph.cpp +++ b/tests/manual/scenegraph_lancelot/scenegraph/tst_scenegraph.cpp @@ -69,8 +69,10 @@ private: quint16 checksumFileOrDir(const QString &path); QString testSuitePath; + QString grabberPath; int consecutiveErrors; // Not test failures (image mismatches), but system failures (so no image at all) bool aborted; // This run given up because of too many system failures + bool usingRhi; }; @@ -90,10 +92,37 @@ void tst_Scenegraph::initTestCase() QSKIP("Test suite data directory missing or unreadable: " + fi.canonicalFilePath().toLatin1()); testSuitePath = fi.canonicalFilePath(); +#if defined(Q_OS_WIN) + grabberPath = QFINDTESTDATA("qmlscenegrabber.exe"); +#elif defined(Q_OS_DARWIN) + grabberPath = QFINDTESTDATA("qmlscenegrabber.app/Contents/MacOS/qmlscenegrabber"); +#else + grabberPath = QFINDTESTDATA("qmlscenegrabber"); +#endif + if (grabberPath.isEmpty()) + grabberPath = QCoreApplication::applicationDirPath() + "/qmlscenegrabber"; + const char *backendVarName = "QT_QUICK_BACKEND"; const QString backend = qEnvironmentVariable(backendVarName, QString::fromLatin1("default")); QBaselineTest::addClientProperty(QString::fromLatin1(backendVarName), backend); +#if defined(Q_OS_WIN) + const char *defaultRhiBackend = "d3d11"; +#elif defined(Q_OS_DARWIN) + const char *defaultRhiBackend = "metal"; +#else + const char *defaultRhiBackend = "opengl"; +#endif + usingRhi = qEnvironmentVariableIntValue("QSG_RHI") != 0; + QString stack; + if (usingRhi) { + const QString rhiBackend = qEnvironmentVariable("QSG_RHI_BACKEND", QString::fromLatin1(defaultRhiBackend)); + stack = QString::fromLatin1("RHI_%1").arg(rhiBackend); + } else { + stack = qEnvironmentVariable("QT_QUICK_BACKEND", QString::fromLatin1("DirectGL")); + } + QBaselineTest::addClientProperty(QString::fromLatin1("GraphicsStack"), stack); + QByteArray msg; if (!QBaselineTest::connectToBaselineServer(&msg)) QSKIP(msg); @@ -201,11 +230,11 @@ bool tst_Scenegraph::renderAndGrab(const QString& qmlFile, const QStringList& ex { bool usePipe = true; // Whether to transport the grabbed image using temp. file or pipe. TBD: cmdline option QProcess grabber; - QString cmd = QCoreApplication::applicationDirPath() + "/qmlscenegrabber"; + grabber.setProcessChannelMode(QProcess::ForwardedErrorChannel); QStringList args = extraArgs; QString tmpfile = usePipe ? QString("-") : QString("/tmp/qmlscenegrabber-%1-out.ppm").arg(QCoreApplication::applicationPid()); args << qmlFile << "-o" << tmpfile; - grabber.start(cmd, args, QIODevice::ReadOnly); + grabber.start(grabberPath, args, QIODevice::ReadOnly); grabber.waitForFinished(17000); //### hardcoded, must be larger than the scene timeout in qmlscenegrabber if (grabber.state() != QProcess::NotRunning) { grabber.terminate(); |