Fix some tests in Gradle Integration Tests Native Mac Arm64

This commit is contained in:
Alexander Dudinsky
2021-09-16 10:24:36 +03:00
committed by Space
parent c4a9d7b74d
commit 7db1b6fe01
3 changed files with 22 additions and 11 deletions
@@ -22,6 +22,7 @@ import org.jetbrains.kotlin.gradle.util.modify
import org.jetbrains.kotlin.gradle.util.runProcess import org.jetbrains.kotlin.gradle.util.runProcess
import org.jetbrains.kotlin.konan.target.CompilerOutputKind import org.jetbrains.kotlin.konan.target.CompilerOutputKind
import org.jetbrains.kotlin.konan.target.HostManager import org.jetbrains.kotlin.konan.target.HostManager
import org.jetbrains.kotlin.konan.target.KonanTarget
import org.jetbrains.kotlin.konan.target.presetName import org.jetbrains.kotlin.konan.target.presetName
import org.junit.Assume import org.junit.Assume
import org.junit.Ignore import org.junit.Ignore
@@ -50,7 +51,11 @@ internal object MPPNativeTargets {
val supported = listOf("linux64", "macos64", "mingw64").filter { !unsupported.contains(it) } val supported = listOf("linux64", "macos64", "mingw64").filter { !unsupported.contains(it) }
} }
internal fun BaseGradleIT.transformNativeTestProject(projectName: String, wrapperVersion: GradleVersionRequired = defaultGradleVersion, directoryPrefix: String? = null): BaseGradleIT.Project { internal fun BaseGradleIT.transformNativeTestProject(
projectName: String,
wrapperVersion: GradleVersionRequired = defaultGradleVersion,
directoryPrefix: String? = null
): BaseGradleIT.Project {
val project = Project(projectName, wrapperVersion, directoryPrefix = directoryPrefix) val project = Project(projectName, wrapperVersion, directoryPrefix = directoryPrefix)
project.setupWorkingDir() project.setupWorkingDir()
project.configureSingleNativeTarget() project.configureSingleNativeTarget()
@@ -61,7 +66,11 @@ internal fun BaseGradleIT.transformNativeTestProject(projectName: String, wrappe
return project return project
} }
internal fun BaseGradleIT.transformNativeTestProjectWithPluginDsl(projectName: String, wrapperVersion: GradleVersionRequired = defaultGradleVersion, directoryPrefix: String? = null): BaseGradleIT.Project { internal fun BaseGradleIT.transformNativeTestProjectWithPluginDsl(
projectName: String,
wrapperVersion: GradleVersionRequired = defaultGradleVersion,
directoryPrefix: String? = null
): BaseGradleIT.Project {
val project = transformProjectWithPluginsDsl(projectName, wrapperVersion, directoryPrefix = directoryPrefix) val project = transformProjectWithPluginsDsl(projectName, wrapperVersion, directoryPrefix = directoryPrefix)
project.configureSingleNativeTarget() project.configureSingleNativeTarget()
project.gradleProperties().apply { project.gradleProperties().apply {
@@ -589,8 +598,6 @@ class GeneralNativeIT : BaseGradleIT() {
val defaultOutputFile = "build/bin/host/debugTest/test.$suffix" val defaultOutputFile = "build/bin/host/debugTest/test.$suffix"
val anotherOutputFile = "build/bin/host/anotherDebugTest/another.$suffix" val anotherOutputFile = "build/bin/host/anotherDebugTest/another.$suffix"
val hostIsMac = HostManager.hostIsMac
build("tasks") { build("tasks") {
assertSuccessful() assertSuccessful()
testTasks.forEach { testTasks.forEach {
@@ -608,8 +615,10 @@ class GeneralNativeIT : BaseGradleIT() {
} }
val testsToExecute = mutableListOf(":$hostTestTask") val testsToExecute = mutableListOf(":$hostTestTask")
if (hostIsMac) { when (HostManager.host) {
testsToExecute.add(":iosTest") KonanTarget.MACOS_X64 -> testsToExecute.add(":iosTest")
KonanTarget.MACOS_ARM64 -> testsToExecute.add(":iosArm64Test")
else -> { }
} }
val testsToSkip = testTasks.map { ":$it" } - testsToExecute val testsToSkip = testTasks.map { ":$it" } - testsToExecute
@@ -851,7 +860,7 @@ class GeneralNativeIT : BaseGradleIT() {
} }
// Check that changing K/N version lead to tasks rerun // Check that changing K/N version lead to tasks rerun
build(*compileTasksArray, "-Porg.jetbrains.kotlin.native.version=1.4.20-dev-16314") { build(*compileTasksArray, "-Porg.jetbrains.kotlin.native.version=1.5.30") {
assertSuccessful() assertSuccessful()
assertTasksExecuted(compileTasks) assertTasksExecuted(compileTasks)
} }
@@ -1016,7 +1025,7 @@ class GeneralNativeIT : BaseGradleIT() {
check(settingsHeader != null && settingsPrefix in settingsHeader) { check(settingsHeader != null && settingsPrefix in settingsHeader) {
"Cannot find setting '${settingsKind.title}' for task ${taskPath}" "Cannot find setting '${settingsKind.title}' for task ${taskPath}"
} }
return if (settingsHeader.trimEnd().endsWith(']')) return if (settingsHeader.trimEnd().endsWith(']'))
emptySequence() // No parameters. emptySequence() // No parameters.
else else
@@ -1046,7 +1055,7 @@ class GeneralNativeIT : BaseGradleIT() {
toolName: String = "konanc", toolName: String = "konanc",
check: (List<String>) -> Unit check: (List<String>) -> Unit
) = taskPaths.forEach { taskPath -> check(extractNativeCompilerClasspath(taskPath, toolName)) } ) = taskPaths.forEach { taskPath -> check(extractNativeCompilerClasspath(taskPath, toolName)) }
fun CompiledProject.checkNativeCustomEnvironment( fun CompiledProject.checkNativeCustomEnvironment(
vararg taskPaths: String, vararg taskPaths: String,
toolName: String = "konanc", toolName: String = "konanc",
@@ -185,7 +185,8 @@ class NativePlatformLibsIT : BaseGradleIT() {
} }
} }
when { when {
HostManager.hostIsMac -> buildPlatformLibrariesWithoutAndWithCaches(KonanTarget.IOS_X64) HostManager.host == KonanTarget.MACOS_ARM64 -> buildPlatformLibrariesWithoutAndWithCaches(KonanTarget.IOS_ARM64)
HostManager.host == KonanTarget.MACOS_X64 -> buildPlatformLibrariesWithoutAndWithCaches(KonanTarget.IOS_X64)
HostManager.hostIsLinux -> buildPlatformLibrariesWithoutAndWithCaches(KonanTarget.LINUX_X64) HostManager.hostIsLinux -> buildPlatformLibrariesWithoutAndWithCaches(KonanTarget.LINUX_X64)
} }
} }
@@ -23,6 +23,7 @@ kotlin {
fromPreset(presets.<SingleNativeTarget>, 'host') fromPreset(presets.<SingleNativeTarget>, 'host')
fromPreset(presets.iosX64, 'ios') fromPreset(presets.iosX64, 'ios')
fromPreset(presets.iosSimulatorArm64, 'iosArm64')
configure([host]) { configure([host]) {
compilations.create("anotherTest") compilations.create("anotherTest")
@@ -41,7 +42,7 @@ kotlin {
} }
// Check that test events are correctly reported in CLI. // Check that test events are correctly reported in CLI.
configure([hostTest, iosTest]){ configure([hostTest, iosTest, iosArm64Test]){
trackEnvironment("ANDROID_HOME") trackEnvironment("ANDROID_HOME")
testLogging { testLogging {