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
|
||||
}
|
||||
|
||||
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) {
|
||||
final String frameworkName = 'ValuesGenerics'
|
||||
testName = frameworkName
|
||||
|
||||
@@ -503,7 +503,7 @@ fun KonanTestExecutable.configureXcodeBuild() {
|
||||
// Create a Frameworks folder inside the build dir.
|
||||
it += "mkdir -p \"\$TARGET_BUILD_DIR/\$FRAMEWORKS_FOLDER_PATH\""
|
||||
// Copy each framework to the Frameworks dir.
|
||||
it += frameworkNames.map { name ->
|
||||
it += frameworkArtifactNames.map { name ->
|
||||
"cp -r \"$testOutput/$testName/${project.testTarget.name}/$name.framework\" " +
|
||||
"\"\$TARGET_BUILD_DIR/\$FRAMEWORKS_FOLDER_PATH/$name.framework\""
|
||||
}
|
||||
|
||||
@@ -32,9 +32,15 @@ open class FrameworkTest : DefaultTask(), KonanTestExecutable {
|
||||
@Input
|
||||
lateinit var frameworkNames: List<String>
|
||||
|
||||
@Input
|
||||
lateinit var frameworkArtifactNames: List<String>
|
||||
|
||||
@Input
|
||||
var fullBitcode: Boolean = false
|
||||
|
||||
@Input
|
||||
var codesign: Boolean = true
|
||||
|
||||
val testOutput: String = project.testOutputFramework
|
||||
|
||||
override val executable: String
|
||||
@@ -57,6 +63,11 @@ open class FrameworkTest : DefaultTask(), KonanTestExecutable {
|
||||
}
|
||||
check(::testName.isInitialized) { "Test name should be set" }
|
||||
check(::frameworkNames.isInitialized) { "Framework names should be set" }
|
||||
|
||||
if (!::frameworkArtifactNames.isInitialized) {
|
||||
frameworkArtifactNames = frameworkNames
|
||||
}
|
||||
|
||||
frameworkNames.forEach { frameworkName ->
|
||||
val compileTask = project.tasks.getByName("compileKonan$frameworkName")
|
||||
doBeforeBuild?.let { compileTask.doFirst(it) }
|
||||
@@ -71,11 +82,11 @@ open class FrameworkTest : DefaultTask(), KonanTestExecutable {
|
||||
|
||||
private fun buildTestExecutable() {
|
||||
val frameworkParentDirPath = "$testOutput/$testName/${project.testTarget.name}"
|
||||
frameworkNames.forEach { frameworkName ->
|
||||
frameworkArtifactNames.forEach { frameworkName ->
|
||||
val frameworkPath = "$frameworkParentDirPath/$frameworkName.framework"
|
||||
val frameworkBinaryPath = "$frameworkPath/$frameworkName"
|
||||
validateBitcodeEmbedding(frameworkBinaryPath)
|
||||
codesign(project, frameworkPath)
|
||||
if (codesign) codesign(project, frameworkPath)
|
||||
}
|
||||
|
||||
// create a test provider and get main entry point
|
||||
|
||||
Reference in New Issue
Block a user