diff --git a/src/tools/androidtestrunner/main.cpp b/src/tools/androidtestrunner/main.cpp index 35a48c3ffcc..c88c19bac52 100644 --- a/src/tools/androidtestrunner/main.cpp +++ b/src/tools/androidtestrunner/main.cpp @@ -13,6 +13,7 @@ #include #include #include +#include #include @@ -364,10 +365,25 @@ static bool parseTestArgs() g_options.testArgs += unhandledArgs.join(u' '); - g_options.testArgs = QStringLiteral("shell am start -e applicationArguments \"%1\" -n %2/%3") - .arg(shellQuote(g_options.testArgs.trimmed())) - .arg(g_options.package) - .arg(g_options.activity); + // Pass over any testlib env vars if set + QString testEnvVars; + const QStringList envVarsList = QProcessEnvironment::systemEnvironment().toStringList(); + for (const QString &var : envVarsList) { + if (var.startsWith("QTEST_"_L1)) + testEnvVars += "%1 "_L1.arg(var); + } + + if (!testEnvVars.isEmpty()) { + testEnvVars = QString::fromUtf8(testEnvVars.trimmed().toUtf8().toBase64()); + testEnvVars = "-e extraenvvars \"%4\""_L1.arg(testEnvVars); + } + + g_options.testArgs = "shell am start -n %1/%2 -e applicationArguments \"%3\" %4"_L1 + .arg(g_options.package) + .arg(g_options.activity) + .arg(shellQuote(g_options.testArgs.trimmed())) + .arg(testEnvVars) + .trimmed(); return true; }