61 lines
2.4 KiB
Kotlin
61 lines
2.4 KiB
Kotlin
|
|
/*
|
||
|
|
* * Copyright 2022 Google LLC. All rights reserved.
|
||
|
|
*
|
||
|
|
* Licensed under the Apache License, Version 2.0 (the License);
|
||
|
|
* you may not use this file except in compliance with the License.
|
||
|
|
* You may obtain a copy of the License at
|
||
|
|
*
|
||
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||
|
|
*
|
||
|
|
* Unless required by applicable law or agreed to in writing, software
|
||
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||
|
|
* See the License for the specific language governing permissions and
|
||
|
|
* limitations under the License.
|
||
|
|
*/
|
||
|
|
|
||
|
|
package kapt
|
||
|
|
|
||
|
|
import com.google.testing.compile.Compilation
|
||
|
|
import com.google.testing.compile.CompilationSubject.assertThat
|
||
|
|
import com.google.testing.compile.Compiler.javac
|
||
|
|
import com.google.testing.compile.JavaFileObjects
|
||
|
|
import javax.tools.JavaFileObject
|
||
|
|
import org.junit.Test
|
||
|
|
import org.junit.runner.RunWith
|
||
|
|
import org.junit.runners.JUnit4
|
||
|
|
|
||
|
|
/** Sample test for [AP] that uses `com.google.testing.compile` (b/199411692). */
|
||
|
|
@RunWith(JUnit4::class)
|
||
|
|
class APTest {
|
||
|
|
@Test
|
||
|
|
fun testKTest() {
|
||
|
|
// This is the stub file kapt generates for KTest.kt as of kotlinc 1.5.31, with the original
|
||
|
|
// Kotlin module name shortened.
|
||
|
|
// Alternatively our test could run kapt to get a fresh stub file, but on the other hand we
|
||
|
|
// can test with a particular stub file this way, which may be useful for some regression tests.
|
||
|
|
val testStub = JavaFileObjects.forSourceString(
|
||
|
|
/* fullyQualifiedName= */ "kapt.KTest",
|
||
|
|
"""
|
||
|
|
|package kapt;
|
||
|
|
|
||
|
|
|import java.lang.System;
|
||
|
|
|
||
|
|
|@kotlin.Metadata(mv = {1, 5, 1}, k = 1, d1 = {"\u0000\f\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0002\b\u0002\b\u0007\u0018\u00002\u00020\u0001B\u0005\u00a2\u0006\u0002\u0010\u0002\u00a8\u0006\u0003"}, d2 = {"Lkapt/KTest;", "", "()V", "shortened.java.kapt_test_kapt"})
|
||
|
|
|@Count(value = 3, clazz = KTest_2_1_0.class)
|
||
|
|
|public final class KTest {
|
||
|
|
|
|
||
|
|
| public KTest() {
|
||
|
|
| super();
|
||
|
|
| }
|
||
|
|
|}
|
||
|
|
""".trimMargin()
|
||
|
|
)
|
||
|
|
val compilation: Compilation = javac().withProcessors(AP()).compile(testStub)
|
||
|
|
assertThat(compilation).succeededWithoutWarnings()
|
||
|
|
assertThat(compilation).generatedSourceFile("kapt.KTest_2")
|
||
|
|
assertThat(compilation).generatedSourceFile("kapt.KTest_2_1")
|
||
|
|
assertThat(compilation).generatedSourceFile("kapt.KTest_2_1_0")
|
||
|
|
}
|
||
|
|
}
|