9#include <QtCore/qprocess.h>
10#include <QtCore/qstring.h>
20 const Hdc &hdc,
const QString &devicePath,
const QString &bundleName);
static constexpr int EXIT_NOEXITCODE
static constexpr int EXIT_ERROR
static bool waitForProcessStart(const Hdc &hdc, const QString &bundleName, const QString &shellExitCodePath, int timeoutSecs=30)
static void waitForProcessDeath(const Hdc &hdc, const QString &bundleName, int timeoutSecs=15)
static constexpr auto quietBeforeDialogCheck
static QString shellSingleQuote(const QString &value)
static constexpr int EXIT_CRASH
static std::atomic< bool > g_interrupted
static constexpr auto quietBeforeDialogCheckWhileStarting
static void sigHandler(int sig)
static constexpr auto dialogsExpectedWhileStarting
static bool waitForStdoutFile(const Hdc &hdc, const QString &shellStdoutPath, int timeoutSecs=10)
static constexpr int EXIT_TIMEOUT
static void answerBlockingDialogsIfStalled(BlockingTestDialogs &blockingTestDialogs, const QElapsedTimer &elapsed, std::chrono::nanoseconds lastOutputAt)
QString readDeviceFile(const Hdc &hdc, const QString &devicePath)
void forceStopBundle(const Hdc &hdc, const QString &bundleName)
std::unique_ptr< QProcess > streamDeviceFileWhileAppRuns(const Hdc &hdc, const QString &devicePath, const QString &bundleName)
bool isProcessAlive(const Hdc &hdc, const QString &bundleName)
int main(int argc, char *argv[])
[ctor_close]