diff --git a/vendor/vendor-ios/src/main/kotlin/com/malinskiy/marathon/ios/AppleApplicationInstaller.kt b/vendor/vendor-ios/src/main/kotlin/com/malinskiy/marathon/ios/AppleApplicationInstaller.kt index 3673aa8bb..bde00912b 100644 --- a/vendor/vendor-ios/src/main/kotlin/com/malinskiy/marathon/ios/AppleApplicationInstaller.kt +++ b/vendor/vendor-ios/src/main/kotlin/com/malinskiy/marathon/ios/AppleApplicationInstaller.kt @@ -25,7 +25,6 @@ class AppleApplicationInstaller( val remoteXctest = device.remoteFileManager.remoteXctestFile() withRetry(3, 1000L) { device.remoteFileManager.createRemoteDirectory() - val remoteDirectory = device.remoteFileManager.remoteDirectory() if (!device.pushFolder(xctest, remoteXctest)) { throw DeviceSetupException("Error transferring $xctest to ${device.serialNumber}") } diff --git a/vendor/vendor-ios/src/main/kotlin/com/malinskiy/marathon/ios/AppleSimulatorDevice.kt b/vendor/vendor-ios/src/main/kotlin/com/malinskiy/marathon/ios/AppleSimulatorDevice.kt index 08bbcab70..bf839f7d8 100644 --- a/vendor/vendor-ios/src/main/kotlin/com/malinskiy/marathon/ios/AppleSimulatorDevice.kt +++ b/vendor/vendor-ios/src/main/kotlin/com/malinskiy/marathon/ios/AppleSimulatorDevice.kt @@ -130,7 +130,7 @@ class AppleSimulatorDevice( } override val coroutineContext: CoroutineContext = dispatcher override val remoteFileManager: RemoteFileManager = RemoteFileManager(this) - override val storagePath = "/tmp/marathon/$udid" + override val storagePath = "$SHARED_PATH/$udid" private lateinit var xcodeVersion: XcodeVersion /** @@ -188,6 +188,7 @@ class AppleSimulatorDevice( track.trackDevicePreparing(this@AppleSimulatorDevice) { remoteFileManager.removeRemoteDirectory() remoteFileManager.createRemoteDirectory() + remoteFileManager.createRemoteSharedDirectory() //Clean slate for the recorder executeWorkerCommand(listOf("pkill", "-f", "'simctl io ${udid} recordVideo'")) mutableListOf>().apply { @@ -750,4 +751,8 @@ class AppleSimulatorDevice( suspend fun grant(permission: Permission, bundleId: String): Boolean { return binaryEnvironment.xcrun.simctl.privacy.grant(udid, permission, bundleId).successful } + + companion object { + const val SHARED_PATH = "/tmp/marathon" + } } diff --git a/vendor/vendor-ios/src/main/kotlin/com/malinskiy/marathon/ios/AppleTestParser.kt b/vendor/vendor-ios/src/main/kotlin/com/malinskiy/marathon/ios/AppleTestParser.kt index eadd1512c..187e66375 100644 --- a/vendor/vendor-ios/src/main/kotlin/com/malinskiy/marathon/ios/AppleTestParser.kt +++ b/vendor/vendor-ios/src/main/kotlin/com/malinskiy/marathon/ios/AppleTestParser.kt @@ -57,6 +57,7 @@ class AppleTestParser( logger.debug { "Found test binary $testBinary for xctest $xctest" } device.remoteFileManager.createRemoteDirectory() + device.remoteFileManager.createRemoteSharedDirectory() val remoteXctest = device.remoteFileManager.remoteXctestFile() if (!device.pushFile(xctest, remoteXctest)) { throw TestParsingException("failed to push xctest for test parsing") diff --git a/vendor/vendor-ios/src/main/kotlin/com/malinskiy/marathon/ios/RemoteFileManager.kt b/vendor/vendor-ios/src/main/kotlin/com/malinskiy/marathon/ios/RemoteFileManager.kt index 0f3e87b99..d4be73d5b 100644 --- a/vendor/vendor-ios/src/main/kotlin/com/malinskiy/marathon/ios/RemoteFileManager.kt +++ b/vendor/vendor-ios/src/main/kotlin/com/malinskiy/marathon/ios/RemoteFileManager.kt @@ -16,6 +16,7 @@ class RemoteFileManager(private val device: AppleDevice) { private val outputDir by lazy { device.storagePath } fun remoteDirectory(): String = outputDir + fun remoteSharedDirectory(): String = AppleSimulatorDevice.SHARED_PATH + "/shared/" suspend fun createRemoteDirectory(remoteDir: String = remoteDirectory()) { executeCommand( @@ -24,6 +25,8 @@ class RemoteFileManager(private val device: AppleDevice) { ) } + suspend fun createRemoteSharedDirectory() = createRemoteDirectory(remoteSharedDirectory()) + suspend fun removeRemoteDirectory() { executeCommand( listOf("rm", "-rf", remoteDirectory()), @@ -40,9 +43,9 @@ class RemoteFileManager(private val device: AppleDevice) { fun remoteXctestrunFile(): String = remoteFile(xctestrunFileName()) - fun remoteXctestFile(): String = remoteFile(xctestFileName()) - fun remoteApplication(): String = remoteFile(appUnderTestFileName()) - fun remoteExtraApplication(name: String) = remoteFile(name) + fun remoteXctestFile(): String = remoteSharedFile(xctestFileName()) + fun remoteApplication(): String = remoteSharedFile(appUnderTestFileName()) + fun remoteExtraApplication(name: String) = remoteSharedFile(name) /** * Omitting xcresult extension results in a symlink @@ -58,6 +61,7 @@ class RemoteFileManager(private val device: AppleDevice) { "${device.udid}.${batch.id}.xcresult" private fun remoteFile(file: String): String = remoteDirectory().resolve(file) + private fun remoteSharedFile(file: String): String = remoteSharedDirectory().resolve(file) private suspend fun safeExecuteCommand(command: List) { try {