From ce90b62c3e557fc6fe06275ead9476c454388ee0 Mon Sep 17 00:00:00 2001 From: NissimHadar Date: Fri, 25 Jan 2019 16:48:29 -0800 Subject: [PATCH] Testing APK installation. --- tools/nitpick/src/Nitpick.cpp | 5 ++++ tools/nitpick/src/Nitpick.h | 3 +++ tools/nitpick/src/TestRunner.cpp | 17 +++++++++++++ tools/nitpick/src/TestRunner.h | 9 +++++++ tools/nitpick/src/TestRunnerDesktop.cpp | 16 ------------ tools/nitpick/src/TestRunnerDesktop.h | 8 ------ tools/nitpick/src/TestRunnerMobile.cpp | 33 ++++++++++++------------- tools/nitpick/src/TestRunnerMobile.h | 8 +++++- tools/nitpick/ui/Nitpick.ui | 16 ++++++++++++ 9 files changed, 73 insertions(+), 42 deletions(-) diff --git a/tools/nitpick/src/Nitpick.cpp b/tools/nitpick/src/Nitpick.cpp index 61e5d1d8d4..9e385bcd4d 100644 --- a/tools/nitpick/src/Nitpick.cpp +++ b/tools/nitpick/src/Nitpick.cpp @@ -112,6 +112,7 @@ void Nitpick::setup() { _ui.detectedDeviceLabel, _ui.folderLineEdit, _ui.downloadAPKPushbutton, + _ui.installAPKPushbutton, _ui.runLatestOnMobileCheckBox, _ui.urlOnMobileLineEdit, _ui.statusLabelOnMobile @@ -362,6 +363,10 @@ void Nitpick::on_downloadAPKPushbutton_clicked() { _testRunnerMobile->downloadAPK(); } +void Nitpick::on_installAPKPushbutton_clicked() { + _testRunnerMobile->installAPK(); +} + void Nitpick::on_pullFolderPushbutton_clicked() { _testRunnerMobile->pullFolder(); } diff --git a/tools/nitpick/src/Nitpick.h b/tools/nitpick/src/Nitpick.h index f54754de2e..00516d1e76 100644 --- a/tools/nitpick/src/Nitpick.h +++ b/tools/nitpick/src/Nitpick.h @@ -98,7 +98,10 @@ private slots: void on_setWorkingFolderRunOnMobilePushbutton_clicked(); void on_connectDevicePushbutton_clicked(); void on_runLatestOnMobileCheckBox_clicked(); + void on_downloadAPKPushbutton_clicked(); + void on_installAPKPushbutton_clicked(); + void on_pullFolderPushbutton_clicked(); private: diff --git a/tools/nitpick/src/TestRunner.cpp b/tools/nitpick/src/TestRunner.cpp index 6d3a3e1b84..54246de80b 100644 --- a/tools/nitpick/src/TestRunner.cpp +++ b/tools/nitpick/src/TestRunner.cpp @@ -32,6 +32,9 @@ void TestRunner::setWorkingFolder(QLabel* workingFolderLabel) { } workingFolderLabel->setText(QDir::toNativeSeparators(_workingFolder)); + + // This file is used for debug purposes. + _logFile.setFileName(_workingFolder + "/log.txt"); } void TestRunner::downloadBuildXml(void* caller) { @@ -151,6 +154,20 @@ QString TestRunner::getInstallerNameFromURL(const QString& url) { } } +void TestRunner::appendLog(const QString& message) { + if (!_logFile.open(QIODevice::Append | QIODevice::Text)) { + QMessageBox::critical(0, "Internal error: " + QString(__FILE__) + ":" + QString::number(__LINE__), + "Could not open the log file"); + exit(-1); + } + + _logFile.write(message.toStdString().c_str()); + _logFile.write("\n"); + _logFile.close(); + + nitpick->appendLogWindow(message); +} + void Worker::setCommandLine(const QString& commandLine) { _commandLine = commandLine; } diff --git a/tools/nitpick/src/TestRunner.h b/tools/nitpick/src/TestRunner.h index 0453bcf491..d2468ec2fa 100644 --- a/tools/nitpick/src/TestRunner.h +++ b/tools/nitpick/src/TestRunner.h @@ -12,9 +12,11 @@ #define hifi_testRunner_h #include +#include #include #include #include +#include class Worker; @@ -31,6 +33,8 @@ public: void parseBuildInformation(); QString getInstallerNameFromURL(const QString& url); + void appendLog(const QString& message); + protected: QLabel* _workingFolderLabel; QLabel* _statusLabel; @@ -52,6 +56,11 @@ protected: #else const QString INSTALLER_FILENAME_LATEST{ "" }; #endif + + QDateTime _testStartDateTime; + +private: + QFile _logFile; }; class Worker : public QObject { diff --git a/tools/nitpick/src/TestRunnerDesktop.cpp b/tools/nitpick/src/TestRunnerDesktop.cpp index eb371f7e85..50cb6f9a07 100644 --- a/tools/nitpick/src/TestRunnerDesktop.cpp +++ b/tools/nitpick/src/TestRunnerDesktop.cpp @@ -83,8 +83,6 @@ void TestRunnerDesktop::setWorkingFolderAndEnableControls() { _installationFolder = _workingFolder + "/High_Fidelity"; #endif - _logFile.setFileName(_workingFolder + "/log.txt"); - nitpick->enableRunTabControls(); _timer = new QTimer(this); @@ -661,20 +659,6 @@ void TestRunnerDesktop::checkTime() { } } -void TestRunnerDesktop::appendLog(const QString& message) { - if (!_logFile.open(QIODevice::Append | QIODevice::Text)) { - QMessageBox::critical(0, "Internal error: " + QString(__FILE__) + ":" + QString::number(__LINE__), - "Could not open the log file"); - exit(-1); - } - - _logFile.write(message.toStdString().c_str()); - _logFile.write("\n"); - _logFile.close(); - - nitpick->appendLogWindow(message); -} - QString TestRunnerDesktop::getPRNumberFromURL(const QString& url) { try { QStringList urlParts = url.split("/"); diff --git a/tools/nitpick/src/TestRunnerDesktop.h b/tools/nitpick/src/TestRunnerDesktop.h index 83551cef0e..a8f828b9d4 100644 --- a/tools/nitpick/src/TestRunnerDesktop.h +++ b/tools/nitpick/src/TestRunnerDesktop.h @@ -16,7 +16,6 @@ #include #include #include -#include #include #include "TestRunner.h" @@ -67,8 +66,6 @@ public: void copyFolder(const QString& source, const QString& destination); - void appendLog(const QString& message); - QString getPRNumberFromURL(const QString& url); private slots: @@ -106,11 +103,6 @@ private: QCheckBox* _runServerless; QPushButton* _runNow; QTimer* _timer; - - QFile _logFile; - - QDateTime _testStartDateTime; - QThread* _installerThread; QThread* _interfaceThread; diff --git a/tools/nitpick/src/TestRunnerMobile.cpp b/tools/nitpick/src/TestRunnerMobile.cpp index 31e293cd45..480381dd8e 100644 --- a/tools/nitpick/src/TestRunnerMobile.cpp +++ b/tools/nitpick/src/TestRunnerMobile.cpp @@ -23,6 +23,7 @@ TestRunnerMobile::TestRunnerMobile( QLabel* detectedDeviceLabel, QLineEdit *folderLineEdit, QPushButton* downloadAPKPushbutton, + QPushButton* installAPKPushbutton, QCheckBox* runLatest, QLineEdit* url, QLabel* statusLabel, @@ -36,6 +37,7 @@ TestRunnerMobile::TestRunnerMobile( _detectedDeviceLabel = detectedDeviceLabel; _folderLineEdit = folderLineEdit; _downloadAPKPushbutton = downloadAPKPushbutton; + _installAPKPushbutton = installAPKPushbutton; _runLatest = runLatest; _url = url; _statusLabel = statusLabel; @@ -50,7 +52,6 @@ void TestRunnerMobile::setWorkingFolderAndEnableControls() { setWorkingFolder(_workingFolderLabel); _connectDeviceButton->setEnabled(true); - _downloadAPKPushbutton->setEnabled(true); // Find ADB (Android Debugging Bridge) before continuing #ifdef Q_OS_WIN @@ -104,6 +105,7 @@ void TestRunnerMobile::connectDevice() { _detectedDeviceLabel->setText(line2.remove(DEVICE)); _pullFolderButton->setEnabled(true); _folderLineEdit->setEnabled(true); + _downloadAPKPushbutton->setEnabled(true); } } } @@ -143,25 +145,22 @@ void TestRunnerMobile::downloadComplete() { _statusLabel->setText("Downloading installer"); nitpick->downloadFiles(urls, _workingFolder, filenames, (void*)this); - - // `downloadComplete` will run again after download has completed - } else { - // Download of Installer has completed -//// appendLog(QString("Tests started at ") + QString::number(_testStartDateTime.time().hour()) + ":" + -//// QString("%1").arg(_testStartDateTime.time().minute(), 2, 10, QChar('0')) + ", on " + -//// _testStartDateTime.date().toString("ddd, MMM d, yyyy")); - - _statusLabel->setText("Installing"); - - // Kill any existing processes that would interfere with installation -//// killProcesses(); - -//// runInstaller(); + _statusLabel->setText("Installer download complete"); + _installAPKPushbutton->setEnabled(true); } } -void TestRunnerMobile::pullFolder() { - QString command = _adbCommand + " pull " + _folderLineEdit->text() + " " + _workingFolder + " >" + _workingFolder + "/pullOutput.txt"; +void TestRunnerMobile::installAPK() { + _statusLabel->setText("Installing"); + QString command = _adbCommand + " install -r -d " + _workingFolder + "/" + _installerFilename + " >" + _workingFolder + "/installOutput.txt"; system(command.toStdString().c_str()); + _statusLabel->setText("Installation complete"); +} + +void TestRunnerMobile::pullFolder() { + _statusLabel->setText("Pulling folder"); + QString command = _adbCommand + " pull " + _folderLineEdit->text() + " " + _workingFolder + _installerFilename; + system(command.toStdString().c_str()); + _statusLabel->setText("Pull complete"); } diff --git a/tools/nitpick/src/TestRunnerMobile.h b/tools/nitpick/src/TestRunnerMobile.h index 65999439b9..4cf31f6bd4 100644 --- a/tools/nitpick/src/TestRunnerMobile.h +++ b/tools/nitpick/src/TestRunnerMobile.h @@ -27,6 +27,7 @@ public: QLabel* detectedDeviceLabel, QLineEdit *folderLineEdit, QPushButton* downloadAPKPushbutton, + QPushButton* installAPKPushbutton, QCheckBox* runLatest, QLineEdit* url, QLabel* statusLabel, @@ -37,8 +38,12 @@ public: void setWorkingFolderAndEnableControls(); void connectDevice(); - void downloadAPK(); + void downloadComplete(); + void downloadAPK(); + + void installAPK(); + void pullFolder(); private: @@ -47,6 +52,7 @@ private: QLabel* _detectedDeviceLabel; QLineEdit* _folderLineEdit; QPushButton* _downloadAPKPushbutton; + QPushButton* _installAPKPushbutton; #ifdef Q_OS_WIN const QString _adbExe{ "adb.exe" }; diff --git a/tools/nitpick/ui/Nitpick.ui b/tools/nitpick/ui/Nitpick.ui index 480d0f87f5..8d69317369 100644 --- a/tools/nitpick/ui/Nitpick.ui +++ b/tools/nitpick/ui/Nitpick.ui @@ -709,6 +709,22 @@ ####### + + + false + + + + 10 + 250 + 160 + 30 + + + + Install APK + +