summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAssam Boudjelthia <[email protected]>2023-11-25 23:29:48 +0200
committerQt Cherry-pick Bot <[email protected]>2023-12-01 13:14:14 +0000
commitf9892335fdccf9b3a363e173e78564feff684198 (patch)
treec8699db3b150fbac26704b362a50c50ab6a55b6c
parent7b88eb82eec73b1a48386d5549c144ee53ed25e3 (diff)
AndroidTestRunner: pass testlib env vars to the test app
Check if the common testlib environment variables are set on the host and pass them to the test app. This include any env variable starting with "QTEST_". Fixes: QTBUG-106478 Task-number: QTBUG-106479 Change-Id: I99e1b314b106cda20a66e3cac9a92b463b94f5c9 Reviewed-by: Dimitrios Apostolou <[email protected]> Reviewed-by: Axel Spoerl <[email protected]> (cherry picked from commit 0d5fe9c3d7a1af873e800453306b1a5116812966) Reviewed-by: Qt Cherry-pick Bot <[email protected]> (cherry picked from commit 751d80f126c8f24e3cf146f92776569b38bd20ce)
-rw-r--r--src/tools/androidtestrunner/main.cpp24
1 files changed, 20 insertions, 4 deletions
diff --git a/src/tools/androidtestrunner/main.cpp b/src/tools/androidtestrunner/main.cpp
index ceb687cbbc3..901c447a248 100644
--- a/src/tools/androidtestrunner/main.cpp
+++ b/src/tools/androidtestrunner/main.cpp
@@ -13,6 +13,7 @@
#include <functional>
#include <QtCore/QDeadlineTimer>
#include <QtCore/QThread>
+#include <QtCore/QProcessEnvironment>
#include <shellquote_shared.h>
@@ -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;
}