[Gradle] Add test for KT-53704
CInterop Task input should be modifiable through Cinterop DSL
This commit is contained in:
+68
@@ -0,0 +1,68 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||||
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.jetbrains.kotlin.gradle
|
||||||
|
|
||||||
|
import org.jetbrains.kotlin.gradle.plugin.mpp.DefaultCInteropSettings
|
||||||
|
import org.jetbrains.kotlin.gradle.tasks.CInteropProcess
|
||||||
|
import kotlin.test.BeforeTest
|
||||||
|
import kotlin.test.Test
|
||||||
|
import kotlin.test.assertEquals
|
||||||
|
|
||||||
|
class CInteropTaskTest : MultiplatformExtensionTest() {
|
||||||
|
|
||||||
|
@BeforeTest
|
||||||
|
override fun setup() {
|
||||||
|
super.setup()
|
||||||
|
setupDefaultProjectWithCinterop()
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun setupDefaultProjectWithCinterop() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun `cinterop properties can be changed after creating`() {
|
||||||
|
fun DefaultCInteropSettings.setDummyValues(prefix: String) {
|
||||||
|
dependencyFiles = project.files("${prefix}-dependencyFile")
|
||||||
|
defFile("${prefix}-defFile")
|
||||||
|
packageName = "${prefix}-packageName"
|
||||||
|
compilerOpts += "${prefix}-compilerOpts"
|
||||||
|
linkerOpts += "${prefix}-linkerOpts"
|
||||||
|
extraOpts = listOf("${prefix}-extraOpts")
|
||||||
|
header("${prefix}-header.h")
|
||||||
|
|
||||||
|
includeDirs {
|
||||||
|
allHeaders("${prefix}-allHeaders")
|
||||||
|
headerFilterOnly("${prefix}-headerFilterOnly")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
val linuxX64 = kotlin.linuxX64().apply {
|
||||||
|
compilations.getByName("main").cinterops.create("dummy") {
|
||||||
|
it.setDummyValues(prefix = "default")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get task to make sure it is configured
|
||||||
|
val cinteropTask = project.tasks.getByName("cinteropDummyLinuxX64") as CInteropProcess
|
||||||
|
|
||||||
|
// Change cinterop properties
|
||||||
|
val cinterop = linuxX64.compilations.getByName("main").cinterops.getByName("dummy")
|
||||||
|
cinterop.setDummyValues("updated")
|
||||||
|
|
||||||
|
project.evaluate()
|
||||||
|
|
||||||
|
assertEquals("updated-dependencyFile", cinteropTask.libraries.files.single().name)
|
||||||
|
assertEquals("updated-defFile", cinteropTask.defFile.name)
|
||||||
|
assertEquals("updated-packageName", cinteropTask.packageName)
|
||||||
|
assertEquals(listOf("default-compilerOpts", "updated-compilerOpts"), cinteropTask.compilerOpts)
|
||||||
|
assertEquals(listOf("default-linkerOpts", "updated-linkerOpts"), cinteropTask.linkerOpts)
|
||||||
|
assertEquals(listOf("updated-extraOpts"), cinteropTask.extraOpts)
|
||||||
|
assertEquals(listOf("default-header.h", "updated-header.h"), cinteropTask.headers.files.map { it.name })
|
||||||
|
assertEquals(listOf("default-allHeaders", "updated-allHeaders"), cinteropTask.allHeadersDirs.map { it.name })
|
||||||
|
assertEquals(listOf("default-headerFilterOnly", "updated-headerFilterOnly"), cinteropTask.headerFilterDirs.map { it.name })
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user