[tests][plugin][nop] added nop-plugin for basic testing of mechanism loading plugins

This commit is contained in:
Vasily Levchenko
2019-12-03 16:11:56 +01:00
parent 2a54c8f9ba
commit 3e06b473c8
2 changed files with 60 additions and 0 deletions
+46
View File
@@ -32,6 +32,7 @@ buildscript {
}
apply plugin: 'konan'
apply plugin: 'kotlin'
configurations {
cli_bc
@@ -4048,3 +4049,48 @@ task buildKonanTests { t ->
.matching { !(it instanceof KonanStandaloneTest) && it instanceof KonanLocalTest }
.forEach { it.dependsOn(t) }
}
sourceSets {
nopPlugin {
kotlin {
srcDir 'extensions/nop/src/main/kotlin'
}
}
}
Task pluginTest(String name, String pluginName, Closure configureClosure) {
def jarTask = project.tasks.create("jar-$pluginName", Jar).configure {
it.dependsOn("compile${pluginName.capitalize()}Kotlin")
from {
sourceSets[pluginName].output
}
baseName = pluginName
destinationDirectory = buildDir
}
def taskName = "$name-with-$pluginName"
return KotlinNativeTestKt.createTest(project, taskName, KonanStandaloneTest) { task ->
task.configure(configureClosure)
task.dependsOn(jarTask)
if (task.enabled) {
konanArtifacts {
program(taskName, targets: [target.name]) {
baseDir "$testOutputLocal/$taskName"
srcFiles task.getSources()
extraOpts task.flags + "-Xplugin=$buildDir/nop-plugin.jar"
extraOpts project.globalTestArgs
}
}
}
}
}
pluginTest("runtime_basic_init", "nopPlugin") {
disabled = (project.testTarget == 'wasm32')
source = "runtime/basic/hello3.kt"
flags = ["-tr"]
}
dependencies {
nopPluginCompile kotlinCompilerModule
}
@@ -0,0 +1,14 @@
package org.jetbrains.konan.test.plugin.nop
import org.jetbrains.kotlin.backend.common.extensions.IrPluginContext
import org.jetbrains.kotlin.backend.common.extensions.IrGenerationExtension
import org.jetbrains.kotlin.ir.declarations.IrModuleFragment
open class NopExtension : IrGenerationExtension {
override fun generate(
moduleFragment: IrModuleFragment,
pluginContext: IrPluginContext
) {
}
}