diff --git a/compiler/tests-common/org/jetbrains/kotlin/codegen/flags/AbstractWriteFlagsTest.java b/compiler/tests-common/org/jetbrains/kotlin/codegen/flags/AbstractWriteFlagsTest.java index 2a5218f1306..363598cd8ac 100644 --- a/compiler/tests-common/org/jetbrains/kotlin/codegen/flags/AbstractWriteFlagsTest.java +++ b/compiler/tests-common/org/jetbrains/kotlin/codegen/flags/AbstractWriteFlagsTest.java @@ -18,19 +18,17 @@ package org.jetbrains.kotlin.codegen.flags; import com.intellij.openapi.util.io.FileUtil; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import org.jetbrains.kotlin.backend.common.output.OutputFile; -import org.jetbrains.kotlin.backend.common.output.OutputFileCollection; -import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment; -import org.jetbrains.kotlin.codegen.GenerationUtils; -import org.jetbrains.kotlin.psi.KtFile; +import org.jetbrains.kotlin.codegen.CodegenTestCase; import org.jetbrains.kotlin.test.ConfigurationKind; -import org.jetbrains.kotlin.test.KotlinTestUtils; -import org.jetbrains.kotlin.test.testFramework.KtUsefulTestCase; +import org.jetbrains.kotlin.test.TestJdkKind; import org.jetbrains.org.objectweb.asm.*; import java.io.File; import java.lang.reflect.Field; import java.util.ArrayList; +import java.util.Collections; import java.util.List; import static org.jetbrains.kotlin.test.InTextDirectivesUtils.findListWithPrefixes; @@ -53,35 +51,20 @@ import static org.jetbrains.kotlin.test.InTextDirectivesUtils.findStringWithPref * TESTED_OBJECTS: Test, prop$delegate * FLAGS: ACC_STATIC, ACC_FINAL, ACC_PRIVATE */ -public abstract class AbstractWriteFlagsTest extends KtUsefulTestCase { - private KotlinCoreEnvironment environment; +public abstract class AbstractWriteFlagsTest extends CodegenTestCase { @Override - public void setUp() throws Exception { - super.setUp(); - environment = KotlinTestUtils.createEnvironmentWithMockJdkAndIdeaAnnotations(myTestRootDisposable, ConfigurationKind.JDK_ONLY); - } + protected void doMultiFileTest( + @NotNull File wholeFile, @NotNull List files, @Nullable File javaFilesDir + ) throws Exception { + compile(files, null, ConfigurationKind.JDK_ONLY, TestJdkKind.MOCK_JDK, Collections.emptyList()); - @Override - protected void tearDown() throws Exception { - environment = null; - super.tearDown(); - } - - protected void doTest(String path) throws Exception { - File ktFile = new File(path); - assertTrue("Cannot find a file " + ktFile.getAbsolutePath(), ktFile.exists()); - - String fileText = FileUtil.loadFile(ktFile, true); - - KtFile psiFile = KotlinTestUtils.createFile(ktFile.getName(), fileText, environment.getProject()); - - OutputFileCollection outputFiles = GenerationUtils.compileFile(psiFile, environment); + String fileText = FileUtil.loadFile(wholeFile, true); List testedObjects = parseExpectedTestedObject(fileText); for (TestedObject testedObject : testedObjects) { String className = null; - for (OutputFile outputFile : outputFiles.asList()) { + for (OutputFile outputFile : classFileFactory.asList()) { String filePath = outputFile.getRelativePath(); if (testedObject.isFullContainingClassName && filePath.equals(testedObject.containingClass + ".class") || !testedObject.isFullContainingClassName && filePath.startsWith(testedObject.containingClass)) { @@ -91,7 +74,7 @@ public abstract class AbstractWriteFlagsTest extends KtUsefulTestCase { assertNotNull("Couldn't find a class file with name " + testedObject.containingClass, className); - OutputFile outputFile = outputFiles.get(className); + OutputFile outputFile = classFileFactory.get(className); assertNotNull(outputFile); ClassReader cr = new ClassReader(outputFile.asByteArray()); diff --git a/generators/src/org/jetbrains/kotlin/generators/tests/GenerateTests.kt b/generators/src/org/jetbrains/kotlin/generators/tests/GenerateTests.kt index 9ee2331c3a1..0abffa389fe 100644 --- a/generators/src/org/jetbrains/kotlin/generators/tests/GenerateTests.kt +++ b/generators/src/org/jetbrains/kotlin/generators/tests/GenerateTests.kt @@ -380,6 +380,10 @@ fun main(args: Array) { testClass() { model("codegen/java8/writeSignature") } + + testClass() { + model("codegen/java8/writeFlags") + } } testGroup("idea/tests", "idea/testData") {