//// TestRunnerDesktop.h//// Created by Nissim Hadar on 1 Sept 2018.// Copyright 2013 High Fidelity, Inc.// Copyright 2024 Overte e.V.//// Distributed under the Apache License, Version 2.0.// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html// #ifndef hifi_testRunnerDesktop_h#define hifi_testRunnerDesktop_h #include <QDir>#include <QObject>#include <QPushButton>#include <QThread>#include <QTimer> #include "TestRunner.h" class InterfaceWorker;class InstallerWorker; class TestRunnerDesktop : public QObject, public TestRunner { Q_OBJECTpublic: explicit TestRunnerDesktop( std::vector<QCheckBox*> dayCheckboxes, std::vector<QCheckBox*> timeEditCheckboxes, std::vector<QTimeEdit*> timeEdits, QLabel* workingFolderLabel, QCheckBox* runServerless, QCheckBox* usePreviousInstallationOnMobileCheckBox, QCheckBox* runLatest, QLineEdit* url, QCheckBox* runFullSuite, QLineEdit* scriptURL, QPushButton* runNow, QLabel* statusLabel, QObject* parent = 0 ); ~TestRunnerDesktop(); void setWorkingFolderAndEnableControls(); void run(); void downloadComplete(); void runInstaller(); void verifyInstallationSucceeded(); void saveExistingAppDataFolder(); void restoreAppDataFolder(); void createSnapshotFolder(); void killProcesses(); void startLocalServerProcesses(); void runInterfaceWithTestScript(); void evaluateResults(); void automaticTestRunEvaluationComplete(const QString& zippedFolderName, int numberOfFailures); void addBuildNumberToResults(const QString& zippedFolderName); void copyFolder(const QString& source, const QString& destination); QString getPRNumberFromURL(const QString& url); private slots: void checkTime(); void installationComplete(); void interfaceExecutionComplete(); signals: void startInstaller(); void startInterface(); void startResize(); private: bool _automatedTestIsRunning{ false }; QString _installerURL; QString _installerFilename; QDir _appDataFolder; QDir _savedAppDataFolder; QString _installationFolder; QString _snapshotFolder; const QString UNIQUE_FOLDER_NAME{ "fgadhcUDHSFaidsfh3478JJJFSDFIUSOEIrf" }; const QString SNAPSHOT_FOLDER_NAME{ "snapshots" }; QString _branch; QString _user; std::vector<QCheckBox*> _dayCheckboxes; std::vector<QCheckBox*> _timeEditCheckboxes; std::vector<QTimeEdit*> _timeEdits; QCheckBox* _runServerless; QPushButton* _runNow; QTimer* _timer; QThread* _installerThread; QThread* _interfaceThread; InstallerWorker* _installerWorker; InterfaceWorker* _interfaceWorker;}; class InstallerWorker : public Worker { Q_OBJECTsignals: void startInstaller();}; class InterfaceWorker : public Worker { Q_OBJECTsignals: void startInterface();};#endif
//
// TestRunnerDesktop.h
//
// Created by Nissim Hadar on 1 Sept 2018.
// Copyright 2013 High Fidelity, Inc.
// Copyright 2024 Overte e.V.
//
// Distributed under the Apache License, Version 2.0.
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
//
#ifndef hifi_testRunnerDesktop_h
#define hifi_testRunnerDesktop_h
#include <QDir>
#include <QObject>
#include <QPushButton>
#include <QThread>
#include <QTimer>
#include "TestRunner.h"
class InterfaceWorker;
class InstallerWorker;
class TestRunnerDesktop : public QObject, public TestRunner {
Q_OBJECT
public:
explicit TestRunnerDesktop(
std::vector<QCheckBox*> dayCheckboxes,
std::vector<QCheckBox*> timeEditCheckboxes,
std::vector<QTimeEdit*> timeEdits,
QLabel* workingFolderLabel,
QCheckBox* runServerless,
QCheckBox* usePreviousInstallationOnMobileCheckBox,
QCheckBox* runLatest,
QLineEdit* url,
QCheckBox* runFullSuite,
QLineEdit* scriptURL,
QPushButton* runNow,
QLabel* statusLabel,
QObject* parent = 0
);
~TestRunnerDesktop();
void setWorkingFolderAndEnableControls();
void run();
void downloadComplete();
void runInstaller();
void verifyInstallationSucceeded();
void saveExistingAppDataFolder();
void restoreAppDataFolder();
void createSnapshotFolder();
void killProcesses();
void startLocalServerProcesses();
void runInterfaceWithTestScript();
void evaluateResults();
void automaticTestRunEvaluationComplete(const QString& zippedFolderName, int numberOfFailures);
void addBuildNumberToResults(const QString& zippedFolderName);
void copyFolder(const QString& source, const QString& destination);
QString getPRNumberFromURL(const QString& url);
private slots:
void checkTime();
void installationComplete();
void interfaceExecutionComplete();
signals:
void startInstaller();
void startInterface();
void startResize();
private:
bool _automatedTestIsRunning{ false };
QString _installerURL;
QString _installerFilename;
QDir _appDataFolder;
QDir _savedAppDataFolder;
QString _installationFolder;
QString _snapshotFolder;
const QString UNIQUE_FOLDER_NAME{ "fgadhcUDHSFaidsfh3478JJJFSDFIUSOEIrf" };
const QString SNAPSHOT_FOLDER_NAME{ "snapshots" };
QString _branch;
QString _user;
std::vector<QCheckBox*> _dayCheckboxes;
std::vector<QCheckBox*> _timeEditCheckboxes;
std::vector<QTimeEdit*> _timeEdits;
QCheckBox* _runServerless;
QPushButton* _runNow;
QTimer* _timer;
QThread* _installerThread;
QThread* _interfaceThread;
InstallerWorker* _installerWorker;
InterfaceWorker* _interfaceWorker;
};
class InstallerWorker : public Worker {
Q_OBJECT
signals:
void startInstaller();
};
class InterfaceWorker : public Worker {
Q_OBJECT
signals:
void startInterface();
};
#endif