[K/N][test] Improve XcodeSimulatorExecutor

Make it be able to recognise incorrect installation when
preferred runtimes are not set but present in the system.
This commit is contained in:
Pavel Punegov
2022-12-28 20:09:24 +01:00
committed by Space Team
parent 0b38ab4f01
commit 950082e7f4
@@ -110,6 +110,14 @@ class XcodeSimulatorExecutor(
val out = simctl("create", deviceType.name, deviceType.identifier, runtimeIdentifier)
logger.info("Create device $deviceId: simctl output is: $out")
// Return freshly created device if it fits
deviceOrNull()?.let { return it }
// Looks like device is unavailable. This may happen if
// `~/Library/Developer/CoreSimulator/RuntimeMap.plist` has empty preferred runtimes
logger.info("Runtimes are available but devices can't use it. Download runtimes again with Xcode")
downloadRuntimeFor(simulatorOsName(target.family))
return checkNotNull(deviceOrNull()) { "Unable to get or create simulator device $deviceId for $target with runtime ${simulatorRuntime.name}" }
}