From 086bb487689b7e8c887b2965473d2b709452fdbf Mon Sep 17 00:00:00 2001 From: Alexey Edelev Date: Mon, 10 Mar 2025 17:42:08 +0100 Subject: [PATCH] [androidtestrunner] Add option for the AndroidManifest.xml Allow specifying path AndroidManifest.xml from command line. Change-Id: I4a2301b98befe32c27602ff63b65aea8a4686123 Reviewed-by: Assam Boudjelthia --- src/tools/androidtestrunner/main.cpp | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/src/tools/androidtestrunner/main.cpp b/src/tools/androidtestrunner/main.cpp index 932a5640c9d..eb4c84fbd75 100644 --- a/src/tools/androidtestrunner/main.cpp +++ b/src/tools/androidtestrunner/main.cpp @@ -38,6 +38,7 @@ struct Options int timeoutSecs = 600; // 10 minutes int resultsPullRetries = 3; QString buildPath; + QString manifestPath; QString adbCommand{"adb"_L1}; QString serial; QString makeCommand; @@ -137,6 +138,11 @@ static bool parseOptions() g_options.helpRequested = true; else g_options.buildPath = arguments.at(++i); + } else if (argument.compare("--manifest"_L1, Qt::CaseInsensitive) == 0) { + if (i + 1 == arguments.size()) + g_options.helpRequested = true; + else + g_options.manifestPath = arguments.at(++i); } else if (argument.compare("--make"_L1, Qt::CaseInsensitive) == 0) { if (i + 1 == arguments.size()) g_options.helpRequested = true; @@ -208,6 +214,9 @@ static bool parseOptions() g_options.ndkStackPath = ndkStackPath; } + if (g_options.manifestPath.isEmpty()) + g_options.manifestPath = g_options.buildPath + "/AndroidManifest.xml"_L1; + return true; } @@ -254,6 +263,8 @@ static void printHelp() " --pre-test-adb-command : call the adb after\n" " installation and before the test run.\n" "\n" + " --manifest : Custom path to the AndroidManifest.xml.\n" + "\n" " --help: Displays this information.\n", qPrintable(QCoreApplication::arguments().at(0)) ); @@ -860,14 +871,13 @@ int main(int argc, char *argv[]) g_testInfo.userId = userId(); - QString manifest = g_options.buildPath + "/AndroidManifest.xml"_L1; - if (!QFile::exists(manifest)) { - qCritical("Unable to find '%s'.", qPrintable(manifest)); + if (!QFile::exists(g_options.manifestPath)) { + qCritical("Unable to find '%s'.", qPrintable(g_options.manifestPath)); return EXIT_ERROR; } - g_options.package = packageNameFromAndroidManifest(manifest); + g_options.package = packageNameFromAndroidManifest(g_options.manifestPath); if (g_options.activity.isEmpty()) - g_options.activity = activityFromAndroidManifest(manifest); + g_options.activity = activityFromAndroidManifest(g_options.manifestPath); // parseTestArgs depends on g_options.package if (!parseTestArgs())