iOS: Move launch result from devicectl to a function

And add a test to document what we expect from devicectl.

Change-Id: I1a7f03c50393b99eddb2bfd34b5857e15b28d0a7
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
This commit is contained in:
Eike Ziller
2024-02-01 14:21:03 +01:00
parent e32d3da321
commit a7a06d6f79
4 changed files with 85 additions and 11 deletions

View File

@@ -247,22 +247,15 @@ GroupItem DeviceCtlRunner::launchTask(const QString &bundleIdentifier)
reportFailure(Tr::tr("Failed to run devicectl: %1.").arg(process.errorString()));
return DoneResult::Error;
}
const Utils::expected_str<QJsonValue> resultValue = parseDevicectlResult(
process.rawStdOut());
if (resultValue) {
// success
m_processIdentifier = (*resultValue)["process"]["processIdentifier"].toInteger(-1);
if (m_processIdentifier < 0) {
// something unexpected happened ...
reportFailure(Tr::tr("devicectl returned unexpected output ... running failed."));
return DoneResult::Error;
}
const Utils::expected_str<qint64> pid = parseLaunchResult(process.rawStdOut());
if (pid) {
m_processIdentifier = *pid;
m_pollTimer.start();
reportStarted();
return DoneResult::Success;
}
// failure
reportFailure(resultValue.error());
reportFailure(pid.error());
return DoneResult::Error;
};
return ProcessTask(onSetup, onDone);