From 33f3552cbaa8409176375b19459e1ffadc12d2ab Mon Sep 17 00:00:00 2001 From: NissimHadar Date: Tue, 4 Sep 2018 13:31:31 -0700 Subject: [PATCH] Kills running processes (assignment clients, domain server and sand box) prior to installation Runs server processes Runs interface with the top-level recursive test script. --- tools/auto-tester/src/TestRunner.cpp | 47 +++++++++++++++++++++++----- tools/auto-tester/src/TestRunner.h | 6 +++- 2 files changed, 45 insertions(+), 8 deletions(-) diff --git a/tools/auto-tester/src/TestRunner.cpp b/tools/auto-tester/src/TestRunner.cpp index 6754e6ff46..06bb5aec9b 100644 --- a/tools/auto-tester/src/TestRunner.cpp +++ b/tools/auto-tester/src/TestRunner.cpp @@ -9,6 +9,7 @@ // #include "TestRunner.h" +#include #include #include @@ -30,15 +31,18 @@ void TestRunner::run() { autoTester->downloadFiles(urls, _tempFolder, filenames, (void *)this); - // installerDownloadComplete will run after download complete + // After download has finished, `installerDownloadComplete` will run after download complete } void TestRunner::installerDownloadComplete() { runInstaller(); createSnapshotFolder(); killProcesses(); + startLocalServerProcesses(); + runInterfaceWithTestScript(); - restoreHighFidelityAppDataFolder(); + killProcesses(); + restoreHighFidelityAppDataFolder(); } void TestRunner::runInstaller() { @@ -48,7 +52,7 @@ void TestRunner::runInstaller() { QString installerFullPath = _tempFolder + "/" + INSTALLER_FILENAME; - QString commandLine = QDir::toNativeSeparators(installerFullPath + " /S /D=" + _tempFolder); + QString commandLine = QDir::toNativeSeparators(installerFullPath) + " /S /D=" + QDir::toNativeSeparators(_tempFolder); system(commandLine.toStdString().c_str()); } @@ -70,8 +74,6 @@ void TestRunner::saveExistingHighFidelityAppDataFolder() { // The original folder is saved in a unique name _savedAppDataFolder = dataDirectory + "/" + UNIQUE_FOLDER_NAME; _appDataFolder.rename(_appDataFolder.path(), _savedAppDataFolder.path()); - - QDir().mkdir(_appDataFolder.path()); } void TestRunner::restoreHighFidelityAppDataFolder() { @@ -98,7 +100,8 @@ void TestRunner::selectTemporaryFolder() { } void TestRunner::createSnapshotFolder() { - QDir().mkdir(_tempFolder + "/" + SNAPSHOT_FOLDER_NAME); + _snapshotFolder = _tempFolder + "/" + SNAPSHOT_FOLDER_NAME; + QDir().mkdir(_snapshotFolder); } void TestRunner::killProcesses() { killProcessByName("assignment-client.exe"); @@ -111,4 +114,34 @@ void TestRunner::killProcessByName(QString processName) { QString commandLine = "taskkill /im " + processName + " /f >nul"; system(commandLine.toStdString().c_str()); #endif -} \ No newline at end of file +} + +void TestRunner::startLocalServerProcesses() { + QDir::setCurrent(_tempFolder); + +#ifdef Q_OS_WIN + QString commandLine; + + commandLine = "start \"domain-server.exe\" domain-server.exe"; + system(commandLine.toStdString().c_str()); + + commandLine = "start \"assignment-client.exe\" assignment-client.exe -n 6"; + system(commandLine.toStdString().c_str()); +#endif + // Give server processes time to stabilize + QThread::sleep(8); +} + +void TestRunner::runInterfaceWithTestScript() { + QDir::setCurrent(_tempFolder); + QString branch = autoTester->getSelectedBranch(); + QString user = autoTester->getSelectedUser(); + +#ifdef Q_OS_WIN + QString commandLine = "interface.exe --url hifi://localhost --testScript https://raw.githubusercontent.com/" + user + + "/hifi_tests/" + branch + "/tests/testRecursive.js quitWhenFinished --testResultsLocation " + + _snapshotFolder; + + system(commandLine.toStdString().c_str()); +#endif +} diff --git a/tools/auto-tester/src/TestRunner.h b/tools/auto-tester/src/TestRunner.h index 6e0566f7d5..4d95086936 100644 --- a/tools/auto-tester/src/TestRunner.h +++ b/tools/auto-tester/src/TestRunner.h @@ -13,6 +13,7 @@ #include #include +#include #include "Downloader.h" #include "ui/BusyWindow.h" @@ -32,12 +33,15 @@ public: void createSnapshotFolder(); void killProcesses(); void killProcessByName(QString processName); + void startLocalServerProcesses(); + void runInterfaceWithTestScript(); - private: +private: QDir _appDataFolder; QDir _savedAppDataFolder; QString _tempFolder; + QString _snapshotFolder; Downloader* _downloader;