From afa3ae4439aaa8bdbb386275f8e68588f46c154f Mon Sep 17 00:00:00 2001 From: Yan Zhulanow Date: Tue, 23 Jun 2015 17:38:28 +0300 Subject: [PATCH] Add tests for inherited annotations (class declarations) --- .../AbstractAnnotationProcessorBoxTest.kt | 13 ++++++++----- .../AnnotationProcessorBoxTestGenerated.java | 12 ++++++++++++ .../collectToFile/inheritedSimple/annotations.txt | 4 ++++ .../inheritedSimple/inheritedSimple.kt | 5 +++++ .../collectToFile/inheritedTopLevel/annotations.txt | 6 ++++++ .../inheritedTopLevel/inheritedTopLevel.kt | 8 ++++++++ 6 files changed, 43 insertions(+), 5 deletions(-) create mode 100644 plugins/annotation-collector/testData/collectToFile/inheritedSimple/annotations.txt create mode 100644 plugins/annotation-collector/testData/collectToFile/inheritedSimple/inheritedSimple.kt create mode 100644 plugins/annotation-collector/testData/collectToFile/inheritedTopLevel/annotations.txt create mode 100644 plugins/annotation-collector/testData/collectToFile/inheritedTopLevel/inheritedTopLevel.kt diff --git a/plugins/annotation-collector/test/org/jetbrains/kotlin/annotation/AbstractAnnotationProcessorBoxTest.kt b/plugins/annotation-collector/test/org/jetbrains/kotlin/annotation/AbstractAnnotationProcessorBoxTest.kt index f24f713cf10..493eb875114 100644 --- a/plugins/annotation-collector/test/org/jetbrains/kotlin/annotation/AbstractAnnotationProcessorBoxTest.kt +++ b/plugins/annotation-collector/test/org/jetbrains/kotlin/annotation/AbstractAnnotationProcessorBoxTest.kt @@ -35,12 +35,15 @@ import org.junit.Assert.* public abstract class AbstractAnnotationProcessorBoxTest : CodegenTestCase() { public fun doTest(path: String) { - val fileName = path + getTestName(true) + ".kt" - val collectorExtension = createTestEnvironment() + val testName = getTestName(true) + val fileName = path + testName + ".kt" + val supportInheritedAnnotations = testName.startsWith("inherited") + + val collectorExtension = createTestEnvironment(supportInheritedAnnotations) loadFileByFullPath(fileName) CodegenTestUtil.generateFiles(myEnvironment, myFiles) - val actualAnnotations = collectorExtension.stringWriter.toString() + val actualAnnotations = JetTestUtils.replaceHashWithStar(collectorExtension.stringWriter.toString()) val expectedAnnotationsFile = File(path + "annotations.txt") JetTestUtils.assertEqualsToFile(expectedAnnotationsFile, actualAnnotations) @@ -50,12 +53,12 @@ public abstract class AbstractAnnotationProcessorBoxTest : CodegenTestCase() { return "plugins/annotation-collector/testData/codegen/" } - fun createTestEnvironment(): AnnotationCollectorExtensionForTests { + fun createTestEnvironment(supportInheritedAnnotations: Boolean): AnnotationCollectorExtensionForTests { val configuration = JetTestUtils.compilerConfigurationForTests(ConfigurationKind.ALL, TestJdkKind.MOCK_JDK) val environment = KotlinCoreEnvironment.createForTests(getTestRootDisposable()!!, configuration, EnvironmentConfigFiles.JVM_CONFIG_FILES) val project = environment.project - val collectorExtension = AnnotationCollectorExtensionForTests(false) + val collectorExtension = AnnotationCollectorExtensionForTests(supportInheritedAnnotations) ClassBuilderInterceptorExtension.registerExtension(project, collectorExtension) myEnvironment = environment diff --git a/plugins/annotation-collector/test/org/jetbrains/kotlin/annotation/AnnotationProcessorBoxTestGenerated.java b/plugins/annotation-collector/test/org/jetbrains/kotlin/annotation/AnnotationProcessorBoxTestGenerated.java index 4a793f4facd..32982d7ac5c 100644 --- a/plugins/annotation-collector/test/org/jetbrains/kotlin/annotation/AnnotationProcessorBoxTestGenerated.java +++ b/plugins/annotation-collector/test/org/jetbrains/kotlin/annotation/AnnotationProcessorBoxTestGenerated.java @@ -77,6 +77,18 @@ public class AnnotationProcessorBoxTestGenerated extends AbstractAnnotationProce doTest(fileName); } + @TestMetadata("inheritedSimple") + public void testInheritedSimple() throws Exception { + String fileName = JetTestUtils.navigationMetadata("plugins/annotation-collector/testData/collectToFile/inheritedSimple/"); + doTest(fileName); + } + + @TestMetadata("inheritedTopLevel") + public void testInheritedTopLevel() throws Exception { + String fileName = JetTestUtils.navigationMetadata("plugins/annotation-collector/testData/collectToFile/inheritedTopLevel/"); + doTest(fileName); + } + @TestMetadata("localClasses") public void testLocalClasses() throws Exception { String fileName = JetTestUtils.navigationMetadata("plugins/annotation-collector/testData/collectToFile/localClasses/"); diff --git a/plugins/annotation-collector/testData/collectToFile/inheritedSimple/annotations.txt b/plugins/annotation-collector/testData/collectToFile/inheritedSimple/annotations.txt new file mode 100644 index 00000000000..72c4041b2e2 --- /dev/null +++ b/plugins/annotation-collector/testData/collectToFile/inheritedSimple/annotations.txt @@ -0,0 +1,4 @@ +p org.test 0 +d 0/SomeInterface +d 0/SomeInterface$$TImpl +d 0/SomeClass diff --git a/plugins/annotation-collector/testData/collectToFile/inheritedSimple/inheritedSimple.kt b/plugins/annotation-collector/testData/collectToFile/inheritedSimple/inheritedSimple.kt new file mode 100644 index 00000000000..4ffaa0a8b8b --- /dev/null +++ b/plugins/annotation-collector/testData/collectToFile/inheritedSimple/inheritedSimple.kt @@ -0,0 +1,5 @@ +package org.test + +public interface SomeInterface + +public class SomeClass \ No newline at end of file diff --git a/plugins/annotation-collector/testData/collectToFile/inheritedTopLevel/annotations.txt b/plugins/annotation-collector/testData/collectToFile/inheritedTopLevel/annotations.txt new file mode 100644 index 00000000000..f74c7345e7e --- /dev/null +++ b/plugins/annotation-collector/testData/collectToFile/inheritedTopLevel/annotations.txt @@ -0,0 +1,6 @@ +p org.test 0 +d 0/TestPackage$inheritedTopLevel$* +a org.jetbrains.annotations.NotNull 0 +m 0 0/TestPackage$inheritedTopLevel$* getTopLevelProperty +d 0/TestPackage +m 0 0/TestPackage getTopLevelProperty diff --git a/plugins/annotation-collector/testData/collectToFile/inheritedTopLevel/inheritedTopLevel.kt b/plugins/annotation-collector/testData/collectToFile/inheritedTopLevel/inheritedTopLevel.kt new file mode 100644 index 00000000000..56923d97754 --- /dev/null +++ b/plugins/annotation-collector/testData/collectToFile/inheritedTopLevel/inheritedTopLevel.kt @@ -0,0 +1,8 @@ +package org.test + +fun topLevelFunction() { + +} + +val topLevelProperty: String + get() = "text" \ No newline at end of file