Add test for static framework (#4008)
This commit is contained in:
committed by
GitHub
parent
839c995266
commit
71e1f8228b
@@ -3882,6 +3882,38 @@ if (isAppleTarget(project)) {
|
|||||||
}*.absolutePath
|
}*.absolutePath
|
||||||
}
|
}
|
||||||
|
|
||||||
|
task testObjCExportStatic(type: FrameworkTest) {
|
||||||
|
final String frameworkName = 'KtStatic'
|
||||||
|
final String frameworkArtifactName = 'Kt'
|
||||||
|
testName = "ObjCExportStatic"
|
||||||
|
frameworkNames = [frameworkName]
|
||||||
|
frameworkArtifactNames = [frameworkArtifactName]
|
||||||
|
|
||||||
|
codesign = false
|
||||||
|
|
||||||
|
final String dir = "$testOutputFramework/$testName"
|
||||||
|
|
||||||
|
konanArtifacts {
|
||||||
|
framework(frameworkName, targets: [target.name]) {
|
||||||
|
srcDir 'objcexport'
|
||||||
|
baseDir dir
|
||||||
|
|
||||||
|
if (!useCustomDist) {
|
||||||
|
dependsOn ":${target.name}CrossDistRuntime", ':commonDistRuntime', ':distCompiler'
|
||||||
|
}
|
||||||
|
|
||||||
|
extraOpts "-Xembed-bitcode-marker"
|
||||||
|
extraOpts "-Xstatic-framework"
|
||||||
|
extraOpts project.globalTestArgs
|
||||||
|
|
||||||
|
artifactName frameworkArtifactName
|
||||||
|
}
|
||||||
|
}
|
||||||
|
swiftSources = fileTree('objcexport') {
|
||||||
|
include '*.swift'
|
||||||
|
}*.absolutePath
|
||||||
|
}
|
||||||
|
|
||||||
task testValuesGenericsFramework(type: FrameworkTest) {
|
task testValuesGenericsFramework(type: FrameworkTest) {
|
||||||
final String frameworkName = 'ValuesGenerics'
|
final String frameworkName = 'ValuesGenerics'
|
||||||
testName = frameworkName
|
testName = frameworkName
|
||||||
|
|||||||
@@ -503,7 +503,7 @@ fun KonanTestExecutable.configureXcodeBuild() {
|
|||||||
// Create a Frameworks folder inside the build dir.
|
// Create a Frameworks folder inside the build dir.
|
||||||
it += "mkdir -p \"\$TARGET_BUILD_DIR/\$FRAMEWORKS_FOLDER_PATH\""
|
it += "mkdir -p \"\$TARGET_BUILD_DIR/\$FRAMEWORKS_FOLDER_PATH\""
|
||||||
// Copy each framework to the Frameworks dir.
|
// Copy each framework to the Frameworks dir.
|
||||||
it += frameworkNames.map { name ->
|
it += frameworkArtifactNames.map { name ->
|
||||||
"cp -r \"$testOutput/$testName/${project.testTarget.name}/$name.framework\" " +
|
"cp -r \"$testOutput/$testName/${project.testTarget.name}/$name.framework\" " +
|
||||||
"\"\$TARGET_BUILD_DIR/\$FRAMEWORKS_FOLDER_PATH/$name.framework\""
|
"\"\$TARGET_BUILD_DIR/\$FRAMEWORKS_FOLDER_PATH/$name.framework\""
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,9 +32,15 @@ open class FrameworkTest : DefaultTask(), KonanTestExecutable {
|
|||||||
@Input
|
@Input
|
||||||
lateinit var frameworkNames: List<String>
|
lateinit var frameworkNames: List<String>
|
||||||
|
|
||||||
|
@Input
|
||||||
|
lateinit var frameworkArtifactNames: List<String>
|
||||||
|
|
||||||
@Input
|
@Input
|
||||||
var fullBitcode: Boolean = false
|
var fullBitcode: Boolean = false
|
||||||
|
|
||||||
|
@Input
|
||||||
|
var codesign: Boolean = true
|
||||||
|
|
||||||
val testOutput: String = project.testOutputFramework
|
val testOutput: String = project.testOutputFramework
|
||||||
|
|
||||||
override val executable: String
|
override val executable: String
|
||||||
@@ -57,6 +63,11 @@ open class FrameworkTest : DefaultTask(), KonanTestExecutable {
|
|||||||
}
|
}
|
||||||
check(::testName.isInitialized) { "Test name should be set" }
|
check(::testName.isInitialized) { "Test name should be set" }
|
||||||
check(::frameworkNames.isInitialized) { "Framework names should be set" }
|
check(::frameworkNames.isInitialized) { "Framework names should be set" }
|
||||||
|
|
||||||
|
if (!::frameworkArtifactNames.isInitialized) {
|
||||||
|
frameworkArtifactNames = frameworkNames
|
||||||
|
}
|
||||||
|
|
||||||
frameworkNames.forEach { frameworkName ->
|
frameworkNames.forEach { frameworkName ->
|
||||||
val compileTask = project.tasks.getByName("compileKonan$frameworkName")
|
val compileTask = project.tasks.getByName("compileKonan$frameworkName")
|
||||||
doBeforeBuild?.let { compileTask.doFirst(it) }
|
doBeforeBuild?.let { compileTask.doFirst(it) }
|
||||||
@@ -71,11 +82,11 @@ open class FrameworkTest : DefaultTask(), KonanTestExecutable {
|
|||||||
|
|
||||||
private fun buildTestExecutable() {
|
private fun buildTestExecutable() {
|
||||||
val frameworkParentDirPath = "$testOutput/$testName/${project.testTarget.name}"
|
val frameworkParentDirPath = "$testOutput/$testName/${project.testTarget.name}"
|
||||||
frameworkNames.forEach { frameworkName ->
|
frameworkArtifactNames.forEach { frameworkName ->
|
||||||
val frameworkPath = "$frameworkParentDirPath/$frameworkName.framework"
|
val frameworkPath = "$frameworkParentDirPath/$frameworkName.framework"
|
||||||
val frameworkBinaryPath = "$frameworkPath/$frameworkName"
|
val frameworkBinaryPath = "$frameworkPath/$frameworkName"
|
||||||
validateBitcodeEmbedding(frameworkBinaryPath)
|
validateBitcodeEmbedding(frameworkBinaryPath)
|
||||||
codesign(project, frameworkPath)
|
if (codesign) codesign(project, frameworkPath)
|
||||||
}
|
}
|
||||||
|
|
||||||
// create a test provider and get main entry point
|
// create a test provider and get main entry point
|
||||||
|
|||||||
Reference in New Issue
Block a user