Add directive ALL_JAVA_AS_BINARIES and use it explicitly for foreign annotations tests with compiled java

This commit is contained in:
Victor Petukhov
2021-04-06 17:45:08 +03:00
parent 89270399db
commit 24685ee9d6
6 changed files with 18 additions and 12 deletions
@@ -16,7 +16,7 @@ import java.util.regex.Pattern;
/** This class is generated by {@link GenerateNewCompilerTests.kt}. DO NOT MODIFY MANUALLY */
@SuppressWarnings("all")
public class ForeignAnnotationsNoAnnotationInClasspathTestGenerated extends AbstractForeignAnnotationsNoAnnotationInClasspathTest {
public class ForeignAnnotationsCompiledJavaTestGenerated extends AbstractForeignAnnotationsCompiledJavaTest {
@Nested
@TestMetadata("compiler/testData/diagnostics/foreignAnnotationsTests/tests")
@TestDataPath("$PROJECT_ROOT")
@@ -16,7 +16,7 @@ import java.util.regex.Pattern;
/** This class is generated by {@link GenerateNewCompilerTests.kt}. DO NOT MODIFY MANUALLY */
@SuppressWarnings("all")
public class ForeignAnnotationsNoAnnotationInClasspathWithPsiClassReadingTestGenerated extends AbstractForeignAnnotationsNoAnnotationInClasspathWithPsiClassReadingTest {
public class ForeignAnnotationsCompiledJavaWithPsiClassReadingTestGenerated extends AbstractForeignAnnotationsCompiledJavaWithPsiClassReadingTest {
@Nested
@TestMetadata("compiler/testData/diagnostics/foreignAnnotationsTests/tests")
@TestDataPath("$PROJECT_ROOT")
@@ -16,7 +16,7 @@ import java.util.regex.Pattern;
/** This class is generated by {@link GenerateNewCompilerTests.kt}. DO NOT MODIFY MANUALLY */
@SuppressWarnings("all")
public class ForeignAnnotationsTestGenerated extends AbstractForeignAnnotationsTest {
public class ForeignAnnotationsSourceJavaTestGenerated extends AbstractForeignAnnotationsSourceJavaTest {
@Nested
@TestMetadata("compiler/testData/diagnostics/foreignAnnotationsTests/tests")
@TestDataPath("$PROJECT_ROOT")
@@ -13,9 +13,9 @@ import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder
import org.jetbrains.kotlin.test.directives.DiagnosticsDirectives.REPORT_JVM_DIAGNOSTICS_ON_FRONTEND
import org.jetbrains.kotlin.test.directives.DiagnosticsDirectives.SKIP_TXT
import org.jetbrains.kotlin.test.directives.ForeignAnnotationsDirectives.ANNOTATIONS_PATH
import org.jetbrains.kotlin.test.directives.JvmEnvironmentConfigurationDirectives.ALL_JAVA_AS_BINARY
import org.jetbrains.kotlin.test.directives.JvmEnvironmentConfigurationDirectives.COMPILE_JAVA_USING
import org.jetbrains.kotlin.test.directives.JvmEnvironmentConfigurationDirectives.JDK_KIND
import org.jetbrains.kotlin.test.directives.JvmEnvironmentConfigurationDirectives.SKIP_JAVA_SOURCES
import org.jetbrains.kotlin.test.directives.JvmEnvironmentConfigurationDirectives.USE_PSI_CLASS_FILES_READING
import org.jetbrains.kotlin.test.directives.JvmEnvironmentConfigurationDirectives.WITH_FOREIGN_ANNOTATIONS
import org.jetbrains.kotlin.test.directives.JvmEnvironmentConfigurationDirectives.WITH_JSR305_TEST_ANNOTATIONS
@@ -94,17 +94,20 @@ abstract class AbstractForeignAnnotationsTestBase : AbstractKotlinCompilerTest()
}
}
abstract class AbstractForeignAnnotationsTest : AbstractForeignAnnotationsTestBase() {
abstract class AbstractForeignAnnotationsSourceJavaTest : AbstractForeignAnnotationsTestBase() {
override val foreignAnnotationsConfigurator: Constructor<JvmForeignAnnotationsConfigurator>
get() = ::JvmForeignAnnotationsConfigurator
}
abstract class AbstractForeignAnnotationsNoAnnotationInClasspathTest : AbstractForeignAnnotationsTestBase() {
abstract class AbstractForeignAnnotationsCompiledJavaTest : AbstractForeignAnnotationsTestBase() {
override val foreignAnnotationsConfigurator: Constructor<JvmForeignAnnotationsConfigurator>
get() = ::JvmForeignAnnotationsConfigurator
override fun configure(builder: TestConfigurationBuilder) {
super.configure(builder)
with(builder) {
defaultDirectives {
+SKIP_JAVA_SOURCES
+ALL_JAVA_AS_BINARY
+SKIP_TXT
}
@@ -113,7 +116,7 @@ abstract class AbstractForeignAnnotationsNoAnnotationInClasspathTest : AbstractF
}
}
abstract class AbstractForeignAnnotationsNoAnnotationInClasspathWithPsiClassReadingTest : AbstractForeignAnnotationsNoAnnotationInClasspathTest() {
abstract class AbstractForeignAnnotationsCompiledJavaWithPsiClassReadingTest : AbstractForeignAnnotationsCompiledJavaTest() {
override fun configure(builder: TestConfigurationBuilder) {
super.configure(builder)
with(builder) {
@@ -22,6 +22,7 @@ import org.jetbrains.kotlin.test.TestJavacVersion
import org.jetbrains.kotlin.test.TestJdkKind
import org.jetbrains.kotlin.test.directives.ForeignAnnotationsDirectives
import org.jetbrains.kotlin.test.directives.JvmEnvironmentConfigurationDirectives
import org.jetbrains.kotlin.test.directives.JvmEnvironmentConfigurationDirectives.ALL_JAVA_AS_BINARY
import org.jetbrains.kotlin.test.directives.JvmEnvironmentConfigurationDirectives.ASSERTIONS_MODE
import org.jetbrains.kotlin.test.directives.JvmEnvironmentConfigurationDirectives.COMPILE_JAVA_USING
import org.jetbrains.kotlin.test.directives.JvmEnvironmentConfigurationDirectives.CONSTRUCTOR_CALL_NORMALIZATION_MODE
@@ -130,7 +131,9 @@ class JvmEnvironmentConfigurator(testServices: TestServices) : EnvironmentConfig
}
val javaVersionToCompile = registeredDirectives[COMPILE_JAVA_USING].singleOrNull()
val javaBinaryFiles = module.javaFiles.filter { INCLUDE_JAVA_AS_BINARY in it.directives }
val javaBinaryFiles = if (ALL_JAVA_AS_BINARY !in registeredDirectives) {
module.javaFiles.filter { INCLUDE_JAVA_AS_BINARY in it.directives }
} else module.javaFiles
val withForeignAnnotations = JvmEnvironmentConfigurationDirectives.WITH_FOREIGN_ANNOTATIONS in registeredDirectives
assertTrue(javaVersionToCompile == null || javaBinaryFiles.isNotEmpty() || withForeignAnnotations) {
@@ -47,19 +47,19 @@ fun generateJUnit5CompilerTests(args: Array<String>) {
model("diagnostics/nativeTests")
}
testClass<AbstractForeignAnnotationsTest> {
testClass<AbstractForeignAnnotationsSourceJavaTest> {
model("diagnostics/foreignAnnotationsTests/tests")
model("diagnostics/foreignAnnotationsTests/java8Tests")
model("diagnostics/foreignAnnotationsTests/java9Tests")
}
testClass<AbstractForeignAnnotationsNoAnnotationInClasspathTest> {
testClass<AbstractForeignAnnotationsCompiledJavaTest> {
model("diagnostics/foreignAnnotationsTests/tests")
model("diagnostics/foreignAnnotationsTests/java8Tests")
model("diagnostics/foreignAnnotationsTests/java9Tests")
}
testClass<AbstractForeignAnnotationsNoAnnotationInClasspathWithPsiClassReadingTest> {
testClass<AbstractForeignAnnotationsCompiledJavaWithPsiClassReadingTest> {
model("diagnostics/foreignAnnotationsTests/tests")
model("diagnostics/foreignAnnotationsTests/java8Tests")
model("diagnostics/foreignAnnotationsTests/java9Tests")