Skip to content
Merged
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 36 additions & 0 deletions aws-crt-kotlin/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import aws.sdk.kotlin.gradle.kmp.IDEA_ACTIVE
import aws.sdk.kotlin.gradle.kmp.configureKmpTargets
import aws.sdk.kotlin.gradle.util.typedProp
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget
import org.jetbrains.kotlin.gradle.targets.native.tasks.KotlinNativeSimulatorTest

plugins {
alias(libs.plugins.kotlin.multiplatform)
Expand Down Expand Up @@ -167,6 +168,41 @@ kotlin {
}
}

// disable "standalone" mode in simulator tests since it causes TLS issues. this means we need to manage the simulator
// ourselves (booting / shutting down). FIXME: https://youtrack.jetbrains.com/issue/KT-38317
kotlin {
val simulatorDeviceName = project.findProperty("iosSimulatorDevice") as? String ?: "iPhone 15"

tasks.register<Exec>("bootIosSimulatorDevice") {
commandLine("xcrun", "simctl", "boot", simulatorDeviceName)

doLast {
val result = executionResult.get()
val code = result.exitValue
if (code != 148 && code != 149) { // ignore "simulator already running" errors
result.assertNormalExitValue()
}
}
}

tasks.register<Exec>("shutdownIosSimulatorDevice") {
mustRunAfter(tasks.withType<KotlinNativeSimulatorTest>())
commandLine("xcrun", "simctl", "shutdown", simulatorDeviceName)

doLast {
executionResult.get().assertNormalExitValue()
}
}

tasks.withType<KotlinNativeSimulatorTest>().configureEach {
dependsOn("bootIosSimulatorDevice")
finalizedBy("shutdownIosSimulatorDevice")

standalone = false
device = simulatorDeviceName
}
}

// Publishing
configurePublishing("aws-crt-kotlin")

Expand Down