Skip to content

Commit dd0c918

Browse files
hfmehmedKSP Auto Pick
authored andcommitted
Extend tests with more assertions
(cherry picked from commit b235f49)
1 parent fbdd2ae commit dd0c918

File tree

16 files changed

+86
-37
lines changed

16 files changed

+86
-37
lines changed

integration-tests/src/test/kotlin/com/google/devtools/ksp/test/AGP900IT.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ class AGP900IT() {
1717
fun testRunsKSP() {
1818
val gradleRunner = GradleRunner.create().withProjectDir(project.root).withGradleVersion("9.0.0")
1919

20-
File(project.root, "gradle.properties").appendText("\nagpVersion=9.0.0-alpha05")
20+
File(project.root, "gradle.properties").appendText("\nagpVersion=9.0.0-alpha12")
2121
File(project.root, "gradle.properties").appendText("\nandroid.builtInKotlin=false")
2222
File(project.root, "gradle.properties").appendText("\nandroid.newDsl=false")
2323

integration-tests/src/test/kotlin/com/google/devtools/ksp/test/AndroidBuiltInKotlinIT.kt

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
11
package com.google.devtools.ksp.test
22

33
import com.google.devtools.ksp.test.fixtures.TemporaryTestProject
4+
import com.google.devtools.ksp.test.utils.assertContainsNonNullEntry
45
import com.google.devtools.ksp.test.utils.assertMergedConfigurationOutput
56
import org.gradle.testkit.runner.GradleRunner
67
import org.gradle.testkit.runner.TaskOutcome
78
import org.junit.Assert
89
import org.junit.Rule
910
import org.junit.Test
1011
import java.io.File
12+
import java.util.jar.JarFile
1113

1214
class AndroidBuiltInKotlinIT {
1315
@Rule
@@ -22,7 +24,27 @@ class AndroidBuiltInKotlinIT {
2224
"clean", "build", "minifyReleaseWithR8", "--configuration-cache", "--info", "--stacktrace"
2325
).build().let { result ->
2426
Assert.assertEquals(TaskOutcome.SUCCESS, result.task(":workload:build")?.outcome)
27+
28+
val classesJar = File(
29+
project.root,
30+
"workload/build/intermediates/compile_app_classes_jar/debug/bundleDebugClassesToCompileJar/classes.jar"
31+
)
32+
JarFile(classesJar).use { jarFile ->
33+
jarFile.assertContainsNonNullEntry("Generated.class")
34+
jarFile.assertContainsNonNullEntry("hello/HELLO.class")
35+
jarFile.assertContainsNonNullEntry("com/example/AClassBuilder.class")
36+
jarFile.assertContainsNonNullEntry("com/example/BClassBuilder.class")
37+
jarFile.assertContainsNonNullEntry("com/example/AClass.class")
38+
jarFile.assertContainsNonNullEntry("com/example/BClass.class")
39+
}
40+
41+
val javaResDir = File(project.root, "workload/build/intermediates/java_res/debug/processDebugJavaRes/out")
42+
Assert.assertTrue(File(javaResDir, "TestProcessor.log").exists())
43+
Assert.assertTrue(File(javaResDir, "META-INF/proguard/builder-AClassBuilder.pro").exists())
44+
Assert.assertTrue(File(javaResDir, "META-INF/proguard/builder-BClassBuilder.pro").exists())
2545
assertMergedConfigurationOutput(project, "-keep class com.example.AClassBuilder { *; }")
46+
assertMergedConfigurationOutput(project, "-keep class com.example.BClassBuilder { *; }")
47+
2648
val outputs = result.output.lines()
2749
assert("w: [ksp] [workload_debug] Mangled name for internalFun: internalFun\$workload_debug" in outputs)
2850
assert("w: [ksp] [workload_release] Mangled name for internalFun: internalFun\$workload_release" in outputs)
@@ -59,7 +81,27 @@ class AndroidBuiltInKotlinIT {
5981
"clean", "build", "minifyReleaseWithR8", "--configuration-cache", "--info", "--stacktrace"
6082
).build().let { result ->
6183
Assert.assertEquals(TaskOutcome.SUCCESS, result.task(":workload:build")?.outcome)
84+
85+
val classesJar = File(
86+
project.root,
87+
"workload/build/intermediates/compile_app_classes_jar/debug/bundleDebugClassesToCompileJar/classes.jar"
88+
)
89+
JarFile(classesJar).use { jarFile ->
90+
jarFile.assertContainsNonNullEntry("Generated.class")
91+
jarFile.assertContainsNonNullEntry("hello/HELLO.class")
92+
jarFile.assertContainsNonNullEntry("com/example/AClassBuilder.class")
93+
jarFile.assertContainsNonNullEntry("com/example/BClassBuilder.class")
94+
jarFile.assertContainsNonNullEntry("com/example/AClass.class")
95+
jarFile.assertContainsNonNullEntry("com/example/BClass.class")
96+
}
97+
98+
val javaResDir = File(project.root, "workload/build/intermediates/java_res/debug/processDebugJavaRes/out")
99+
Assert.assertTrue(File(javaResDir, "TestProcessor.log").exists())
100+
Assert.assertTrue(File(javaResDir, "META-INF/proguard/builder-AClassBuilder.pro").exists())
101+
Assert.assertTrue(File(javaResDir, "META-INF/proguard/builder-BClassBuilder.pro").exists())
62102
assertMergedConfigurationOutput(project, "-keep class com.example.AClassBuilder { *; }")
103+
assertMergedConfigurationOutput(project, "-keep class com.example.BClassBuilder { *; }")
104+
63105
val outputs = result.output.lines()
64106
assert("w: [ksp] [workload_debug] Mangled name for internalFun: internalFun\$workload_debug" in outputs)
65107
assert("w: [ksp] [workload_release] Mangled name for internalFun: internalFun\$workload_release" in outputs)

integration-tests/src/test/kotlin/com/google/devtools/ksp/test/AndroidIT.kt

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,15 @@
11
package com.google.devtools.ksp.test
22

33
import com.google.devtools.ksp.test.fixtures.TemporaryTestProject
4+
import com.google.devtools.ksp.test.utils.assertContainsNonNullEntry
45
import com.google.devtools.ksp.test.utils.assertMergedConfigurationOutput
56
import org.gradle.testkit.runner.GradleRunner
67
import org.gradle.testkit.runner.TaskOutcome
78
import org.junit.Assert
89
import org.junit.Rule
910
import org.junit.Test
11+
import java.io.File
12+
import java.util.jar.JarFile
1013

1114
class AndroidIT() {
1215
@Rule
@@ -21,7 +24,30 @@ class AndroidIT() {
2124
"clean", "build", "minifyReleaseWithR8", "--configuration-cache", "--info", "--stacktrace"
2225
).build().let { result ->
2326
Assert.assertEquals(TaskOutcome.SUCCESS, result.task(":workload:build")?.outcome)
27+
28+
val classesJar = File(
29+
project.root,
30+
"workload/build/intermediates/compile_app_classes_jar/debug/bundleDebugClassesToCompileJar/classes.jar"
31+
)
32+
JarFile(classesJar).use { jarFile ->
33+
jarFile.assertContainsNonNullEntry("Generated.class")
34+
jarFile.assertContainsNonNullEntry("hello/HELLO.class")
35+
jarFile.assertContainsNonNullEntry("com/example/AClassBuilder.class")
36+
jarFile.assertContainsNonNullEntry("com/example/BClassBuilder.class")
37+
jarFile.assertContainsNonNullEntry("com/example/AClass.class")
38+
jarFile.assertContainsNonNullEntry("com/example/BClass.class")
39+
jarFile.assertContainsNonNullEntry("TestProcessor.log")
40+
jarFile.assertContainsNonNullEntry("META-INF/proguard/builder-AClassBuilder.pro")
41+
jarFile.assertContainsNonNullEntry("META-INF/proguard/builder-BClassBuilder.pro")
42+
}
43+
44+
val javaResDir = File(project.root, "workload/build/intermediates/java_res/debug/processDebugJavaRes/out")
45+
Assert.assertTrue(File(javaResDir, "TestProcessor.log").exists())
46+
Assert.assertTrue(File(javaResDir, "META-INF/proguard/builder-AClassBuilder.pro").exists())
47+
Assert.assertTrue(File(javaResDir, "META-INF/proguard/builder-BClassBuilder.pro").exists())
2448
assertMergedConfigurationOutput(project, "-keep class com.example.AClassBuilder { *; }")
49+
assertMergedConfigurationOutput(project, "-keep class com.example.BClassBuilder { *; }")
50+
2551
val outputs = result.output.lines()
2652
assert("w: [ksp] [workload_debug] Mangled name for internalFun: internalFun\$workload_debug" in outputs)
2753
assert("w: [ksp] [workload_release] Mangled name for internalFun: internalFun\$workload_release" in outputs)

integration-tests/src/test/kotlin/com/google/devtools/ksp/test/PlaygroundIT.kt

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.google.devtools.ksp.test
22

33
import com.google.devtools.ksp.test.fixtures.TemporaryTestProject
4+
import com.google.devtools.ksp.test.utils.assertContainsNonNullEntry
45
import org.gradle.testkit.runner.BuildResult
56
import org.gradle.testkit.runner.GradleRunner
67
import org.gradle.testkit.runner.TaskOutcome
@@ -46,12 +47,6 @@ class PlaygroundIT() {
4647
extraCheck(result)
4748
}
4849

49-
private fun JarFile.assertContainsNonNullEntry(path: String) {
50-
val entry = getEntry(path)
51-
Assert.assertNotNull("Entry '$path' should exist in the JAR file.", entry)
52-
Assert.assertTrue("Entry '$path' should not be empty.", entry.size > 0)
53-
}
54-
5550
@Test
5651
fun testPlayground() {
5752
// FIXME: `clean` fails to delete files on windows.

integration-tests/src/test/kotlin/com/google/devtools/ksp/test/utils/AssertionUtils.kt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
package com.google.devtools.ksp.test.utils
22

33
import com.google.devtools.ksp.test.fixtures.TemporaryTestProject
4+
import org.junit.Assert
45
import java.io.File
6+
import java.util.jar.JarFile
57

68
fun assertMergedConfigurationOutput(project: TemporaryTestProject, expectedOutput: String) {
79
val mergedConfiguration = File(project.root, "workload/build/outputs/mapping/release/configuration.txt")
@@ -13,3 +15,9 @@ fun assertMergedConfigurationOutput(project: TemporaryTestProject, expectedOutpu
1315
"Merged configuration did not contain expected output!\n"
1416
}
1517
}
18+
19+
fun JarFile.assertContainsNonNullEntry(path: String) {
20+
val entry = getEntry(path)
21+
Assert.assertNotNull("Entry '$path' should exist in the JAR file.", entry)
22+
Assert.assertTrue("Entry '$path' should not be empty.", entry.size > 0)
23+
}

integration-tests/src/test/resources/playground-android-multi/application/build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ repositories {
1111
maven(testRepo)
1212
mavenCentral()
1313
maven("https://redirector.kotlinlang.org/maven/bootstrap/")
14+
google()
1415
}
1516

1617
dependencies {

integration-tests/src/test/resources/playground-android-multi/build.gradle.kts

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,3 @@ plugins {
1515
id("com.google.devtools.ksp") apply false
1616
id("com.android.library") apply false
1717
}
18-
19-
allprojects {
20-
val testRepo: String by project
21-
repositories {
22-
maven(testRepo)
23-
mavenCentral()
24-
maven("https://redirector.kotlinlang.org/maven/bootstrap/")
25-
google()
26-
}
27-
}

integration-tests/src/test/resources/playground-android-multi/test-processor/build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ repositories {
1212
maven(testRepo)
1313
mavenCentral()
1414
maven("https://redirector.kotlinlang.org/maven/bootstrap/")
15+
google()
1516
}
1617

1718
dependencies {

integration-tests/src/test/resources/playground-android-multi/workload/build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ repositories {
1313
maven(testRepo)
1414
mavenCentral()
1515
maven("https://redirector.kotlinlang.org/maven/bootstrap/")
16+
google()
1617
}
1718

1819
dependencies {

integration-tests/src/test/resources/playground-android/build.gradle.kts

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,3 @@ buildscript {
88
google()
99
}
1010
}
11-
12-
allprojects {
13-
val testRepo: String by project
14-
repositories {
15-
maven(testRepo)
16-
mavenCentral()
17-
maven("https://redirector.kotlinlang.org/maven/bootstrap/")
18-
google()
19-
}
20-
}

0 commit comments

Comments
 (0)