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