aboutsummaryrefslogtreecommitdiffstats
path: root/tests/manual/scenegraph_lancelot/scenegraph
diff options
context:
space:
mode:
authorLeander Beernaert <leander.beernaert@qt.io>2020-01-16 16:25:06 +0100
committerLeander Beernaert <leander.beernaert@qt.io>2020-01-16 16:25:06 +0100
commit1d333d3375874efb8d37df37dc5ef561573794ad (patch)
tree2d8c995f64c05c84c1fcceb2c5cb40fcae69855f /tests/manual/scenegraph_lancelot/scenegraph
parentb106d86c433706928b0b0c206a0d9f831681e1bf (diff)
parente79a2658cde899d6ee11ec3c0d0a3768eb2c864b (diff)
Merge remote-tracking branch 'origin/dev' into wip/cmake
Diffstat (limited to 'tests/manual/scenegraph_lancelot/scenegraph')
-rw-r--r--tests/manual/scenegraph_lancelot/scenegraph/scenegraph.pro4
-rw-r--r--tests/manual/scenegraph_lancelot/scenegraph/tst_scenegraph.cpp33
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();