aboutsummaryrefslogtreecommitdiff
path: root/integration-tests/src/test/resources/incremental
diff options
context:
space:
mode:
Diffstat (limited to 'integration-tests/src/test/resources/incremental')
-rw-r--r--integration-tests/src/test/resources/incremental/build.gradle.kts8
-rw-r--r--integration-tests/src/test/resources/incremental/gradle.properties2
-rw-r--r--integration-tests/src/test/resources/incremental/settings.gradle.kts19
-rw-r--r--integration-tests/src/test/resources/incremental/validator/build.gradle.kts24
-rw-r--r--integration-tests/src/test/resources/incremental/validator/src/main/kotlin/Validator.kt62
-rw-r--r--integration-tests/src/test/resources/incremental/validator/src/main/resources/META-INF/services/com.google.devtools.ksp.processing.SymbolProcessorProvider1
-rw-r--r--integration-tests/src/test/resources/incremental/workload/build.gradle.kts22
-rw-r--r--integration-tests/src/test/resources/incremental/workload/src/main/java/p1/J1.java3
-rw-r--r--integration-tests/src/test/resources/incremental/workload/src/main/java/p1/J2.java4
-rw-r--r--integration-tests/src/test/resources/incremental/workload/src/main/java/p1/TestJ2J.java11
-rw-r--r--integration-tests/src/test/resources/incremental/workload/src/main/java/p1/TestJ2K.java10
-rw-r--r--integration-tests/src/test/resources/incremental/workload/src/main/java/p2/J2.java4
-rw-r--r--integration-tests/src/test/resources/incremental/workload/src/main/java/p3/J1.java4
-rw-r--r--integration-tests/src/test/resources/incremental/workload/src/main/java/p3/J2.java4
-rw-r--r--integration-tests/src/test/resources/incremental/workload/src/main/java/p3/J3.java4
-rw-r--r--integration-tests/src/test/resources/incremental/workload/src/main/kotlin/p1/K1.kt3
-rw-r--r--integration-tests/src/test/resources/incremental/workload/src/main/kotlin/p1/K2.kt3
-rw-r--r--integration-tests/src/test/resources/incremental/workload/src/main/kotlin/p1/TestK2J.kt10
-rw-r--r--integration-tests/src/test/resources/incremental/workload/src/main/kotlin/p1/TestK2K.kt10
-rw-r--r--integration-tests/src/test/resources/incremental/workload/src/main/kotlin/p2/K2.kt3
-rw-r--r--integration-tests/src/test/resources/incremental/workload/src/main/kotlin/p3/K1.kt3
-rw-r--r--integration-tests/src/test/resources/incremental/workload/src/main/kotlin/p3/K2.kt3
-rw-r--r--integration-tests/src/test/resources/incremental/workload/src/main/kotlin/p3/K3.kt3
23 files changed, 220 insertions, 0 deletions
diff --git a/integration-tests/src/test/resources/incremental/build.gradle.kts b/integration-tests/src/test/resources/incremental/build.gradle.kts
new file mode 100644
index 00000000..c5737a2e
--- /dev/null
+++ b/integration-tests/src/test/resources/incremental/build.gradle.kts
@@ -0,0 +1,8 @@
+plugins {
+ kotlin("jvm")
+}
+
+repositories {
+ mavenCentral()
+ maven("https://maven.pkg.jetbrains.space/kotlin/p/kotlin/bootstrap/")
+}
diff --git a/integration-tests/src/test/resources/incremental/gradle.properties b/integration-tests/src/test/resources/incremental/gradle.properties
new file mode 100644
index 00000000..f9325643
--- /dev/null
+++ b/integration-tests/src/test/resources/incremental/gradle.properties
@@ -0,0 +1,2 @@
+ksp.incremental=true
+ksp.incremental.log=true \ No newline at end of file
diff --git a/integration-tests/src/test/resources/incremental/settings.gradle.kts b/integration-tests/src/test/resources/incremental/settings.gradle.kts
new file mode 100644
index 00000000..75f651ef
--- /dev/null
+++ b/integration-tests/src/test/resources/incremental/settings.gradle.kts
@@ -0,0 +1,19 @@
+pluginManagement {
+ val kspVersion: String by settings
+ val kotlinVersion: String by settings
+ val testRepo: String by settings
+ plugins {
+ id("com.google.devtools.ksp") version kspVersion
+ kotlin("jvm") version kotlinVersion
+ }
+ repositories {
+ maven(testRepo)
+ gradlePluginPortal()
+ maven("https://maven.pkg.jetbrains.space/kotlin/p/kotlin/bootstrap/")
+ }
+}
+
+rootProject.name = "incremental-test"
+
+include(":workload")
+include(":validator")
diff --git a/integration-tests/src/test/resources/incremental/validator/build.gradle.kts b/integration-tests/src/test/resources/incremental/validator/build.gradle.kts
new file mode 100644
index 00000000..ab249cf0
--- /dev/null
+++ b/integration-tests/src/test/resources/incremental/validator/build.gradle.kts
@@ -0,0 +1,24 @@
+val kspVersion: String by project
+val testRepo: String by project
+
+plugins {
+ kotlin("jvm")
+}
+
+group = "com.example"
+version = "1.0-SNAPSHOT"
+
+repositories {
+ maven(testRepo)
+ mavenCentral()
+ maven("https://maven.pkg.jetbrains.space/kotlin/p/kotlin/bootstrap/")
+}
+
+dependencies {
+ implementation(kotlin("stdlib"))
+ implementation("com.google.devtools.ksp:symbol-processing-api:$kspVersion")
+}
+
+sourceSets.main {
+ java.srcDirs("src/main/kotlin")
+}
diff --git a/integration-tests/src/test/resources/incremental/validator/src/main/kotlin/Validator.kt b/integration-tests/src/test/resources/incremental/validator/src/main/kotlin/Validator.kt
new file mode 100644
index 00000000..96952d10
--- /dev/null
+++ b/integration-tests/src/test/resources/incremental/validator/src/main/kotlin/Validator.kt
@@ -0,0 +1,62 @@
+import com.google.devtools.ksp.processing.*
+import com.google.devtools.ksp.symbol.*
+import com.google.devtools.ksp.validate
+import com.google.devtools.ksp.visitor.KSDefaultVisitor
+import java.io.OutputStreamWriter
+
+class Validator : SymbolProcessor {
+ lateinit var codeGenerator: CodeGenerator
+ lateinit var logger: KSPLogger
+ var processed = false
+
+ fun init(
+ options: Map<String, String>,
+ kotlinVersion: KotlinVersion,
+ codeGenerator: CodeGenerator,
+ logger: KSPLogger,
+ ) {
+ this.codeGenerator = codeGenerator
+ this.logger = logger
+ }
+
+ override fun process(resolver: Resolver): List<KSAnnotated> {
+ if (processed) {
+ return emptyList()
+ }
+ val validator = object : KSDefaultVisitor<OutputStreamWriter, Unit>() {
+ override fun defaultHandler(node: KSNode, data: OutputStreamWriter) = Unit
+
+ override fun visitDeclaration(declaration: KSDeclaration, data: OutputStreamWriter) {
+ data.write(declaration.qualifiedName?.asString() ?: declaration.simpleName.asString())
+ declaration.validate()
+ }
+ }
+
+ val files = resolver.getAllFiles()
+ files.forEach { file ->
+ logger.warn("${file.packageName.asString()}/${file.fileName}")
+ val output = OutputStreamWriter(
+ codeGenerator.createNewFile(
+ Dependencies(false, file),
+ file.packageName.asString(), file.fileName, "log"
+ )
+ )
+ file.declarations.forEach {
+ it.accept(validator, output)
+ }
+ output.close()
+ }
+ processed = true
+ return emptyList()
+ }
+}
+
+class TestProcessorProvider : SymbolProcessorProvider {
+ override fun create(
+ env: SymbolProcessorEnvironment,
+ ): SymbolProcessor {
+ return Validator().apply {
+ init(env.options, env.kotlinVersion, env.codeGenerator, env.logger)
+ }
+ }
+}
diff --git a/integration-tests/src/test/resources/incremental/validator/src/main/resources/META-INF/services/com.google.devtools.ksp.processing.SymbolProcessorProvider b/integration-tests/src/test/resources/incremental/validator/src/main/resources/META-INF/services/com.google.devtools.ksp.processing.SymbolProcessorProvider
new file mode 100644
index 00000000..c91e3e9e
--- /dev/null
+++ b/integration-tests/src/test/resources/incremental/validator/src/main/resources/META-INF/services/com.google.devtools.ksp.processing.SymbolProcessorProvider
@@ -0,0 +1 @@
+TestProcessorProvider
diff --git a/integration-tests/src/test/resources/incremental/workload/build.gradle.kts b/integration-tests/src/test/resources/incremental/workload/build.gradle.kts
new file mode 100644
index 00000000..00e18e2a
--- /dev/null
+++ b/integration-tests/src/test/resources/incremental/workload/build.gradle.kts
@@ -0,0 +1,22 @@
+val testRepo: String by project
+
+plugins {
+ id("com.google.devtools.ksp")
+ kotlin("jvm")
+}
+
+version = "1.0-SNAPSHOT"
+
+repositories {
+ maven(testRepo)
+ mavenCentral()
+ maven("https://maven.pkg.jetbrains.space/kotlin/p/kotlin/bootstrap/")
+}
+
+dependencies {
+ implementation(kotlin("stdlib"))
+ implementation(project(":validator"))
+ testImplementation("junit:junit:4.12")
+ ksp(project(":validator"))
+ kspTest(project(":validator"))
+}
diff --git a/integration-tests/src/test/resources/incremental/workload/src/main/java/p1/J1.java b/integration-tests/src/test/resources/incremental/workload/src/main/java/p1/J1.java
new file mode 100644
index 00000000..b2e2e87c
--- /dev/null
+++ b/integration-tests/src/test/resources/incremental/workload/src/main/java/p1/J1.java
@@ -0,0 +1,3 @@
+package p1;
+
+public class J1 {}
diff --git a/integration-tests/src/test/resources/incremental/workload/src/main/java/p1/J2.java b/integration-tests/src/test/resources/incremental/workload/src/main/java/p1/J2.java
new file mode 100644
index 00000000..7de0687e
--- /dev/null
+++ b/integration-tests/src/test/resources/incremental/workload/src/main/java/p1/J2.java
@@ -0,0 +1,4 @@
+package p1;
+
+public class J2 {
+}
diff --git a/integration-tests/src/test/resources/incremental/workload/src/main/java/p1/TestJ2J.java b/integration-tests/src/test/resources/incremental/workload/src/main/java/p1/TestJ2J.java
new file mode 100644
index 00000000..9866bfee
--- /dev/null
+++ b/integration-tests/src/test/resources/incremental/workload/src/main/java/p1/TestJ2J.java
@@ -0,0 +1,11 @@
+package p1;
+
+import p2.J2;
+import p3.*;
+
+public class TestJ2J {
+ J1 j1 = null;
+ J2 j2 = null;
+ J3 j3 = null;
+}
+
diff --git a/integration-tests/src/test/resources/incremental/workload/src/main/java/p1/TestJ2K.java b/integration-tests/src/test/resources/incremental/workload/src/main/java/p1/TestJ2K.java
new file mode 100644
index 00000000..b5d055bb
--- /dev/null
+++ b/integration-tests/src/test/resources/incremental/workload/src/main/java/p1/TestJ2K.java
@@ -0,0 +1,10 @@
+package p1;
+
+import p2.K2;
+import p3.*;
+
+public class TestJ2K {
+ K1 k1 = null;
+ K2 k2 = null;
+ K3 k3 = null;
+}
diff --git a/integration-tests/src/test/resources/incremental/workload/src/main/java/p2/J2.java b/integration-tests/src/test/resources/incremental/workload/src/main/java/p2/J2.java
new file mode 100644
index 00000000..1e10b7c4
--- /dev/null
+++ b/integration-tests/src/test/resources/incremental/workload/src/main/java/p2/J2.java
@@ -0,0 +1,4 @@
+package p2;
+
+public class J2 {
+}
diff --git a/integration-tests/src/test/resources/incremental/workload/src/main/java/p3/J1.java b/integration-tests/src/test/resources/incremental/workload/src/main/java/p3/J1.java
new file mode 100644
index 00000000..2e5ed679
--- /dev/null
+++ b/integration-tests/src/test/resources/incremental/workload/src/main/java/p3/J1.java
@@ -0,0 +1,4 @@
+package p3;
+
+public class J1 {
+}
diff --git a/integration-tests/src/test/resources/incremental/workload/src/main/java/p3/J2.java b/integration-tests/src/test/resources/incremental/workload/src/main/java/p3/J2.java
new file mode 100644
index 00000000..fc7d454e
--- /dev/null
+++ b/integration-tests/src/test/resources/incremental/workload/src/main/java/p3/J2.java
@@ -0,0 +1,4 @@
+package p3;
+
+public class J2 {
+}
diff --git a/integration-tests/src/test/resources/incremental/workload/src/main/java/p3/J3.java b/integration-tests/src/test/resources/incremental/workload/src/main/java/p3/J3.java
new file mode 100644
index 00000000..08cfb5ec
--- /dev/null
+++ b/integration-tests/src/test/resources/incremental/workload/src/main/java/p3/J3.java
@@ -0,0 +1,4 @@
+package p3;
+
+public class J3 {
+}
diff --git a/integration-tests/src/test/resources/incremental/workload/src/main/kotlin/p1/K1.kt b/integration-tests/src/test/resources/incremental/workload/src/main/kotlin/p1/K1.kt
new file mode 100644
index 00000000..eb739a3d
--- /dev/null
+++ b/integration-tests/src/test/resources/incremental/workload/src/main/kotlin/p1/K1.kt
@@ -0,0 +1,3 @@
+package p1
+
+open class K1
diff --git a/integration-tests/src/test/resources/incremental/workload/src/main/kotlin/p1/K2.kt b/integration-tests/src/test/resources/incremental/workload/src/main/kotlin/p1/K2.kt
new file mode 100644
index 00000000..e5134f49
--- /dev/null
+++ b/integration-tests/src/test/resources/incremental/workload/src/main/kotlin/p1/K2.kt
@@ -0,0 +1,3 @@
+package p1
+
+open class K2
diff --git a/integration-tests/src/test/resources/incremental/workload/src/main/kotlin/p1/TestK2J.kt b/integration-tests/src/test/resources/incremental/workload/src/main/kotlin/p1/TestK2J.kt
new file mode 100644
index 00000000..81cb4d47
--- /dev/null
+++ b/integration-tests/src/test/resources/incremental/workload/src/main/kotlin/p1/TestK2J.kt
@@ -0,0 +1,10 @@
+package p1
+
+import p2.J2
+import p3.*
+
+open class TestK2J() {
+ val v1: J1 = TODO()
+ val v2: J2 = TODO()
+ val v3: J3 = TODO()
+}
diff --git a/integration-tests/src/test/resources/incremental/workload/src/main/kotlin/p1/TestK2K.kt b/integration-tests/src/test/resources/incremental/workload/src/main/kotlin/p1/TestK2K.kt
new file mode 100644
index 00000000..401e340f
--- /dev/null
+++ b/integration-tests/src/test/resources/incremental/workload/src/main/kotlin/p1/TestK2K.kt
@@ -0,0 +1,10 @@
+package p1
+
+import p2.K2
+import p3.*
+
+open class TestK2K() {
+ val v1: K1 = TODO()
+ val v2: K2 = TODO()
+ val v3: K3 = TODO()
+}
diff --git a/integration-tests/src/test/resources/incremental/workload/src/main/kotlin/p2/K2.kt b/integration-tests/src/test/resources/incremental/workload/src/main/kotlin/p2/K2.kt
new file mode 100644
index 00000000..55ae6f0a
--- /dev/null
+++ b/integration-tests/src/test/resources/incremental/workload/src/main/kotlin/p2/K2.kt
@@ -0,0 +1,3 @@
+package p2
+
+open class K2
diff --git a/integration-tests/src/test/resources/incremental/workload/src/main/kotlin/p3/K1.kt b/integration-tests/src/test/resources/incremental/workload/src/main/kotlin/p3/K1.kt
new file mode 100644
index 00000000..6f727609
--- /dev/null
+++ b/integration-tests/src/test/resources/incremental/workload/src/main/kotlin/p3/K1.kt
@@ -0,0 +1,3 @@
+package p3
+
+open class K1
diff --git a/integration-tests/src/test/resources/incremental/workload/src/main/kotlin/p3/K2.kt b/integration-tests/src/test/resources/incremental/workload/src/main/kotlin/p3/K2.kt
new file mode 100644
index 00000000..d3aa0f93
--- /dev/null
+++ b/integration-tests/src/test/resources/incremental/workload/src/main/kotlin/p3/K2.kt
@@ -0,0 +1,3 @@
+package p3
+
+open class K2
diff --git a/integration-tests/src/test/resources/incremental/workload/src/main/kotlin/p3/K3.kt b/integration-tests/src/test/resources/incremental/workload/src/main/kotlin/p3/K3.kt
new file mode 100644
index 00000000..522ffff4
--- /dev/null
+++ b/integration-tests/src/test/resources/incremental/workload/src/main/kotlin/p3/K3.kt
@@ -0,0 +1,3 @@
+package p3
+
+open class K3