forked from qt-creator/qt-creator
Ios: Finish deploy on failure
Previously the deploy step would seemingly run forever if the startSimulator step failed, as no result was added to the promise. Change-Id: Ib320d051e78057e536d4ad371cb30108e848c65f Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
@@ -746,6 +746,8 @@ void IosSimulatorToolHandlerPrivate::requestTransferApp(const FilePath &appBundl
|
||||
installAppOnSimulator();
|
||||
} else {
|
||||
errorMsg(Tr::tr("Application install on simulator failed. Simulator not running."));
|
||||
if (!response.commandOutput.isEmpty())
|
||||
errorMsg(response.commandOutput);
|
||||
didTransferApp(m_bundlePath, m_deviceId, IosToolHandler::Failure);
|
||||
emit q->finished(q);
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
|
||||
#include "simulatorcontrol.h"
|
||||
#include "iosconfigurations.h"
|
||||
#include "iostr.h"
|
||||
|
||||
#include <utils/algorithm.h>
|
||||
#include <utils/async.h>
|
||||
@@ -399,10 +400,10 @@ void startSimulator(QPromise<SimulatorControl::ResponseData> &promise, const QSt
|
||||
SimulatorInfo simInfo = deviceInfo(simUdid);
|
||||
|
||||
if (!simInfo.available) {
|
||||
qCDebug(simulatorLog) << "Simulator device is not available." << simUdid;
|
||||
promise.addResult(
|
||||
response.withError(Tr::tr("Simulator device is not available. (%1)").arg(simUdid)));
|
||||
return;
|
||||
}
|
||||
|
||||
// Shutting down state checks are for the case when simulator start is called within a short
|
||||
// interval of closing the previous interval of the simulator. We wait untill the shutdown
|
||||
// process is complete.
|
||||
@@ -414,8 +415,14 @@ void startSimulator(QPromise<SimulatorControl::ResponseData> &promise, const QSt
|
||||
}
|
||||
|
||||
if (simInfo.isShuttingDown()) {
|
||||
qCDebug(simulatorLog) << "Cannot start Simulator device. "
|
||||
<< "Previous instance taking too long to shutdown." << simInfo;
|
||||
promise.addResult(response.withError(
|
||||
Tr::tr("Cannot start Simulator device. Previous instance taking "
|
||||
"too long to shut down. (name=%1, udid=%2, available=%3, state=%4, runtime=%5)")
|
||||
.arg(simInfo.name)
|
||||
.arg(simInfo.identifier)
|
||||
.arg(simInfo.available)
|
||||
.arg(simInfo.state)
|
||||
.arg(simInfo.runtimeName)));
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -436,11 +443,19 @@ void startSimulator(QPromise<SimulatorControl::ResponseData> &promise, const QSt
|
||||
if (info.isBooted())
|
||||
response.success = true;
|
||||
} else {
|
||||
qCDebug(simulatorLog) << "Error starting simulator.";
|
||||
promise.addResult(response.withError(Tr::tr("Error starting simulator.")));
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
qCDebug(simulatorLog) << "Cannot start Simulator device. Simulator not in shutdown state."
|
||||
<< simInfo;
|
||||
promise.addResult(response.withError(
|
||||
Tr::tr("Cannot start Simulator device. Simulator not in shutdown state.(name=%1, "
|
||||
"udid=%2, available=%3, state=%4, runtime=%5)")
|
||||
.arg(simInfo.name)
|
||||
.arg(simInfo.identifier)
|
||||
.arg(simInfo.available)
|
||||
.arg(simInfo.state)
|
||||
.arg(simInfo.runtimeName)));
|
||||
return;
|
||||
}
|
||||
|
||||
if (!promise.isCanceled())
|
||||
|
||||
@@ -61,6 +61,14 @@ public:
|
||||
bool success = false;
|
||||
qint64 pID = -1;
|
||||
QString commandOutput;
|
||||
|
||||
ResponseData withError(const QString errorMsg)
|
||||
{
|
||||
ResponseData result = *this;
|
||||
result.commandOutput = errorMsg;
|
||||
result.success = false;
|
||||
return result;
|
||||
}
|
||||
};
|
||||
|
||||
public:
|
||||
|
||||
Reference in New Issue
Block a user