Make 'KotlinNativeSimulatorTest.device' lazy property
This commit is contained in:
committed by
Space Team
parent
10947e2c45
commit
8c2b2eb278
+2
-2
@@ -75,8 +75,8 @@ open class DefaultSimulatorTestRun(testRunName: String, target: KotlinNativeTarg
|
||||
KotlinNativeSimulatorTestRun {
|
||||
|
||||
override var deviceId: String
|
||||
get() = executionTask.get().deviceId
|
||||
get() = executionTask.flatMap { it.device }.get()
|
||||
set(value) {
|
||||
executionTask.get().deviceId = value
|
||||
executionTask.configure { it.device.set(value) }
|
||||
}
|
||||
}
|
||||
+6
-2
@@ -43,6 +43,7 @@ import org.jetbrains.kotlin.gradle.tasks.*
|
||||
import org.jetbrains.kotlin.gradle.testing.internal.configureConventions
|
||||
import org.jetbrains.kotlin.gradle.testing.internal.kotlinTestRegistry
|
||||
import org.jetbrains.kotlin.gradle.testing.testTaskName
|
||||
import org.jetbrains.kotlin.gradle.utils.*
|
||||
import org.jetbrains.kotlin.gradle.utils.Xcode
|
||||
import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName
|
||||
import org.jetbrains.kotlin.konan.target.HostManager
|
||||
@@ -669,8 +670,11 @@ class KotlinNativeTargetWithSimulatorTestsConfigurator :
|
||||
override fun configureTestTask(target: KotlinNativeTargetWithSimulatorTests, testTask: KotlinNativeSimulatorTest) {
|
||||
super.configureTestTask(target, testTask)
|
||||
|
||||
testTask.deviceId = Xcode.getDefaultTestDeviceId(target.konanTarget)
|
||||
?: error("Xcode does not support simulator tests for ${target.konanTarget.name}. Check that requested SDK is installed.")
|
||||
val deviceIdProvider = testTask.project.provider {
|
||||
Xcode.getDefaultTestDeviceId(target.konanTarget)
|
||||
?: error("Xcode does not support simulator tests for ${target.konanTarget.name}. Check that requested SDK is installed.")
|
||||
}
|
||||
testTask.device.set(deviceIdProvider)
|
||||
}
|
||||
|
||||
override fun createTestRun(
|
||||
|
||||
+13
-4
@@ -24,6 +24,7 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.isAtLeast
|
||||
import org.jetbrains.kotlin.gradle.targets.native.internal.parseKotlinNativeStackTraceAsJvm
|
||||
import org.jetbrains.kotlin.gradle.tasks.KotlinTest
|
||||
import org.jetbrains.kotlin.gradle.utils.isConfigurationCacheAvailable
|
||||
import org.jetbrains.kotlin.gradle.utils.property
|
||||
import java.io.File
|
||||
import java.util.concurrent.Callable
|
||||
import javax.inject.Inject
|
||||
@@ -224,9 +225,17 @@ abstract class KotlinNativeHostTest : KotlinNativeTest() {
|
||||
* A task running Kotlin/Native tests on a simulator (iOS/watchOS/tvOS).
|
||||
*/
|
||||
abstract class KotlinNativeSimulatorTest : KotlinNativeTest() {
|
||||
@Input
|
||||
@Option(option = "device", description = "Sets a simulated device used to execute tests.")
|
||||
lateinit var deviceId: String
|
||||
@Deprecated("Use the property 'device' instead")
|
||||
@get:Internal
|
||||
var deviceId: String
|
||||
get() = device.get()
|
||||
set(value) {
|
||||
device.set(value)
|
||||
}
|
||||
|
||||
@get:Input
|
||||
@get:Option(option = "device", description = "Sets a simulated device used to execute tests.")
|
||||
abstract val device: Property<String>
|
||||
|
||||
@Internal
|
||||
var debugMode = false
|
||||
@@ -248,7 +257,7 @@ abstract class KotlinNativeSimulatorTest : KotlinNativeTest() {
|
||||
"spawn",
|
||||
"--wait-for-debugger".takeIf { debugMode },
|
||||
"--standalone",
|
||||
deviceId,
|
||||
device.get(),
|
||||
this@KotlinNativeSimulatorTest.executable.absolutePath,
|
||||
"--"
|
||||
) +
|
||||
|
||||
Reference in New Issue
Block a user