(ddf0886b4f0c872e48219b6c1555ee7cd31bb4a6)
#include <QtCore/QCommandLineParser>
#include <QtCore/QCoreApplication>
#include <QtCore/QDeadlineTimer>
#include <QtCore/qdebug.h>
#include <QtCore/QDir>
#include <QtCore/QHash>
#include <QtCore/QLockFile>
#include <QtCore/QProcess>
#include <QtCore/QProcessEnvironment>
#include <QtCore/QRegularExpression>
#include <QtCore/QSet>
#include <QtCore/QStandardPaths>
#include <QtCore/QThread>
#include <QtCore/QXmlStreamReader>
#include <QtCore/QFileInfo>
#include <QtCore/QTemporaryFile>
#include <atomic>
#include <chrono>
#include <csignal>
#include <QtCore/qxpfunctional.h>
#include <optional>
#include <unistd.h>
Go to the source code of this file.
|
| static bool | isTestExitCodeNormal (const int ec) |
| static QByteArray | execCommand (const QString &program, const QStringList &args, bool verbose=false, std::chrono::milliseconds timeout=std::chrono::milliseconds(-1)) |
| static QStringList | adbArgsWithSerial (const QStringList &args) |
| static QByteArray | execAdbCommand (const QStringList &args, bool verbose=true) |
| static QByteArray | execBundletoolCommand (const QStringList &args, bool verbose=true) |
| static bool | setPackagePath (const QString &path) |
| static bool | collectPackagePaths (const QStringList &apkValues, const QStringList &aabValues) |
| static QByteArray | execCommand (const QString &command, bool verbose=true, std::chrono::milliseconds timeout=std::chrono::milliseconds(-1)) |
| static QStringList | splitOwnAndTestArgs (const QStringList &args, const QSet< QString > &knownOpts, const QSet< QString > &valueOpts) |
| static bool | parseOptions () |
| static QString | gradleInitScriptPath () |
| static QString | getGradleProjectProperty (const QString &androidBuildDir, const QString &property) |
| static bool | processAndroidManifest () |
| static QStringList | queryDangerousPermissions () |
| static QString | deviceOutputFileName (const QString &format, const QString &hostPath) |
| static void | setOutputFile (QString file, QString format) |
| static bool | parseTestArgs () |
| static int | getPid (const QString &package) |
| static QString | runCommandAsUserArgs (const QString &cmd) |
| static std::optional< QStringList > | runningDevices () |
| static bool | deviceDisconnected () |
| static bool | isRunning () |
| static bool | pollUntil (qxp::function_ref< bool() const > predicate, QDeadlineTimer deadline, std::chrono::nanoseconds interval) |
| static void | waitForStarted () |
| static bool | waitForLoggingStarted () |
| static bool | setupStdoutLogger () |
| static bool | stopStdoutLogger () |
| static void | waitForFinished () |
| static void | obtainSdkVersion () |
| static QString | userId () |
| static QByteArray | adbReadAppFile (const QString &fileName, int retries, std::chrono::milliseconds backoff) |
| static bool | pullResults () |
| static QString | getAbiLibsPath () |
| static void | printLogcatCrash (const QByteArray &logcat) |
| static QByteArray | fetchLogcat (const QString &timeStamp, bool waitForDiagnostics) |
| static QByteArray | takeCrashDump (QByteArray *logcat) |
| static QByteArray | filterTestLogcat (const QByteArray &logcat, int testPid, int systemServerPid) |
| static void | analyseLogcat (const QString &timeStamp, int *exitCode) |
| static QString | getCurrentTimeString () |
| static int | testExitCode () |
| static bool | uninstallTestPackage () |
| void | sigHandler (int signal) |
| int | main (int argc, char *argv[]) |
◆ adbArgsWithSerial()
◆ adbReadAppFile()
| QByteArray adbReadAppFile |
( |
const QString & | fileName, |
|
|
int | retries, |
|
|
std::chrono::milliseconds | backoff ) |
|
static |
◆ analyseLogcat()
| void analyseLogcat |
( |
const QString & | timeStamp, |
|
|
int * | exitCode ) |
|
static |
◆ collectPackagePaths()
◆ deviceDisconnected()
| bool deviceDisconnected |
( |
| ) |
|
|
static |
◆ deviceOutputFileName()
◆ execAdbCommand()
◆ execBundletoolCommand()
◆ execCommand() [1/2]
| QByteArray execCommand |
( |
const QString & | command, |
|
|
bool | verbose = true, |
|
|
std::chrono::milliseconds | timeout = std::chrono::milliseconds(-1) ) |
|
static |
◆ execCommand() [2/2]
| QByteArray execCommand |
( |
const QString & | program, |
|
|
const QStringList & | args, |
|
|
bool | verbose = false, |
|
|
std::chrono::milliseconds | timeout = std::chrono::milliseconds(-1) ) |
|
static |
◆ fetchLogcat()
◆ filterTestLogcat()
◆ getAbiLibsPath()
◆ getCurrentTimeString()
◆ getGradleProjectProperty()
◆ getPid()
| int getPid |
( |
const QString & | package | ) |
|
|
static |
◆ gradleInitScriptPath()
◆ isRunning()
◆ isTestExitCodeNormal()
| bool isTestExitCodeNormal |
( |
const int | ec | ) |
|
|
static |
◆ main()
| int main |
( |
int | argc, |
|
|
char * | argv[] ) |
Definition at line 1173 of file main.cpp.
References EXIT_DEVICE_GONE, EXIT_ERROR, EXIT_NOEXITCODE, EXIT_NORESULTS, g_options, g_testInfo, isTestExitCodeNormal(), obtainSdkVersion(), parseOptions(), parseTestArgs(), processAndroidManifest(), pullResults(), setupStdoutLogger(), Options::showLogcatOutput, sigHandler(), stopStdoutLogger(), testExitCode(), uninstallTestPackage(), waitForFinished(), waitForLoggingStarted(), and waitForStarted().
◆ obtainSdkVersion()
| void obtainSdkVersion |
( |
| ) |
|
|
static |
◆ parseOptions()
◆ parseTestArgs()
◆ pollUntil()
◆ printLogcatCrash()
◆ processAndroidManifest()
| bool processAndroidManifest |
( |
| ) |
|
|
static |
◆ pullResults()
◆ queryDangerousPermissions()
◆ runCommandAsUserArgs()
◆ runningDevices()
◆ setOutputFile()
◆ setPackagePath()
| bool setPackagePath |
( |
const QString & | path | ) |
|
|
static |
◆ setupStdoutLogger()
| bool setupStdoutLogger |
( |
| ) |
|
|
static |
◆ sigHandler()
| void sigHandler |
( |
int | signal | ) |
|
◆ splitOwnAndTestArgs()
◆ stopStdoutLogger()
| bool stopStdoutLogger |
( |
| ) |
|
|
static |
◆ takeCrashDump()
◆ testExitCode()
◆ uninstallTestPackage()
| bool uninstallTestPackage |
( |
| ) |
|
|
static |
◆ userId()
◆ waitForFinished()
◆ waitForLoggingStarted()
| bool waitForLoggingStarted |
( |
| ) |
|
|
static |
◆ waitForStarted()
◆ crashBannerMarker
| constexpr auto crashBannerMarker = "*** *** *** *** *** *** *** ***" |
|
staticconstexpr |
◆ EXIT_ANR
| constexpr int EXIT_ANR = 252 |
|
staticconstexpr |
◆ EXIT_DEVICE_GONE
| constexpr int EXIT_DEVICE_GONE = 250 |
|
staticconstexpr |
◆ EXIT_ERROR
| constexpr int EXIT_ERROR = 254 |
|
staticconstexpr |
◆ EXIT_NOEXITCODE
| constexpr int EXIT_NOEXITCODE = 253 |
|
staticconstexpr |
◆ EXIT_NORESULTS
| constexpr int EXIT_NORESULTS = 251 |
|
staticconstexpr |
◆ g_options
Definition at line 74 of file main.cpp.
Referenced by adbArgsWithSerial(), analyseLogcat(), deviceDisconnected(), execCommand(), fetchLogcat(), isRunning(), main(), parseOptions(), parseTestArgs(), printLogcatCrash(), processAndroidManifest(), pullResults(), setOutputFile(), setPackagePath(), setupStdoutLogger(), stopStdoutLogger(), and waitForLoggingStarted().
◆ g_testInfo
Definition at line 92 of file main.cpp.
Referenced by analyseLogcat(), fetchLogcat(), getCurrentTimeString(), isRunning(), main(), obtainSdkVersion(), pullResults(), setupStdoutLogger(), sigHandler(), stopStdoutLogger(), testExitCode(), userId(), waitForFinished(), and waitForStarted().
◆ HIGHEST_QTEST_EXITCODE
| constexpr int HIGHEST_QTEST_EXITCODE = 127 |
|
staticconstexpr |