提交 aacf934b 编写于 作者: D Dmitriy Novozhilov 提交者: TeamCityServer

[TEST] Drop machinery about experimental coroutines from compiler tests

上级 8c4b7ad1
...@@ -116,7 +116,7 @@ abstract class AbstractFirTypeEnhancementTest : KtUsefulTestCase() { ...@@ -116,7 +116,7 @@ abstract class AbstractFirTypeEnhancementTest : KtUsefulTestCase() {
return targetFile return targetFile
} }
}, "" }
) )
environment = createEnvironment(content) environment = createEnvironment(content)
val virtualFiles = srcFiles.map { val virtualFiles = srcFiles.map {
......
...@@ -17,7 +17,6 @@ import org.jetbrains.kotlin.TestsCompilerError ...@@ -17,7 +17,6 @@ import org.jetbrains.kotlin.TestsCompilerError
import org.jetbrains.kotlin.analyzer.AnalysisResult import org.jetbrains.kotlin.analyzer.AnalysisResult
import org.jetbrains.kotlin.analyzer.common.CommonResolverForModuleFactory import org.jetbrains.kotlin.analyzer.common.CommonResolverForModuleFactory
import org.jetbrains.kotlin.asJava.finder.JavaElementFinder import org.jetbrains.kotlin.asJava.finder.JavaElementFinder
import org.jetbrains.kotlin.builtins.StandardNames
import org.jetbrains.kotlin.builtins.jvm.JvmBuiltIns import org.jetbrains.kotlin.builtins.jvm.JvmBuiltIns
import org.jetbrains.kotlin.cli.common.messages.AnalyzerWithCompilerReport import org.jetbrains.kotlin.cli.common.messages.AnalyzerWithCompilerReport
import org.jetbrains.kotlin.cli.common.messages.GroupingMessageCollector import org.jetbrains.kotlin.cli.common.messages.GroupingMessageCollector
...@@ -127,15 +126,7 @@ abstract class AbstractDiagnosticsTest : BaseDiagnosticsTest() { ...@@ -127,15 +126,7 @@ abstract class AbstractDiagnosticsTest : BaseDiagnosticsTest() {
val oldModule = modules[testModule]!! val oldModule = modules[testModule]!!
val languageVersionSettings = val languageVersionSettings = loadLanguageVersionSettings(testFilesInModule)
if (coroutinesPackage.isNotEmpty()) {
val isExperimental = coroutinesPackage == StandardNames.COROUTINES_PACKAGE_FQ_NAME_EXPERIMENTAL.asString()
CompilerTestLanguageVersionSettings(
DEFAULT_DIAGNOSTIC_TESTS_FEATURES,
if (isExperimental) ApiVersion.KOTLIN_1_2 else ApiVersion.KOTLIN_1_3,
if (isExperimental) LanguageVersion.KOTLIN_1_2 else LanguageVersion.KOTLIN_1_3
)
} else loadLanguageVersionSettings(testFilesInModule)
languageVersionSettingsByModule[testModule] = languageVersionSettings languageVersionSettingsByModule[testModule] = languageVersionSettings
...@@ -180,7 +171,7 @@ abstract class AbstractDiagnosticsTest : BaseDiagnosticsTest() { ...@@ -180,7 +171,7 @@ abstract class AbstractDiagnosticsTest : BaseDiagnosticsTest() {
var exceptionFromDescriptorValidation: Throwable? = null var exceptionFromDescriptorValidation: Throwable? = null
try { try {
val expectedFile = getExpectedDescriptorFile(testDataFile, files) val expectedFile = getExpectedDescriptorFile(testDataFile, files)
validateAndCompareDescriptorWithFile(expectedFile, files, modules, coroutinesPackage) validateAndCompareDescriptorWithFile(expectedFile, files, modules)
} catch (e: Throwable) { } catch (e: Throwable) {
exceptionFromDescriptorValidation = e exceptionFromDescriptorValidation = e
} }
...@@ -262,9 +253,7 @@ abstract class AbstractDiagnosticsTest : BaseDiagnosticsTest() { ...@@ -262,9 +253,7 @@ abstract class AbstractDiagnosticsTest : BaseDiagnosticsTest() {
} }
protected open fun checkDiagnostics(actualText: String, testDataFile: File) { protected open fun checkDiagnostics(actualText: String, testDataFile: File) {
KotlinTestUtils.assertEqualsToFile(getExpectedDiagnosticsFile(testDataFile), actualText) { s -> KotlinTestUtils.assertEqualsToFile(getExpectedDiagnosticsFile(testDataFile), actualText)
s.replace("COROUTINES_PACKAGE", coroutinesPackage)
}
} }
private fun checkFirTestdata(testDataFile: File, files: List<TestFile>) { private fun checkFirTestdata(testDataFile: File, files: List<TestFile>) {
...@@ -289,7 +278,6 @@ abstract class AbstractDiagnosticsTest : BaseDiagnosticsTest() { ...@@ -289,7 +278,6 @@ abstract class AbstractDiagnosticsTest : BaseDiagnosticsTest() {
val testRunner = object : AbstractFirOldFrontendDiagnosticsTest() { val testRunner = object : AbstractFirOldFrontendDiagnosticsTest() {
init { init {
environment = this@AbstractDiagnosticsTest.environment environment = this@AbstractDiagnosticsTest.environment
coroutinesPackage = this@AbstractDiagnosticsTest.coroutinesPackage
} }
} }
if (testDataFile.readText().contains("// FIR_IDENTICAL")) { if (testDataFile.readText().contains("// FIR_IDENTICAL")) {
...@@ -529,8 +517,7 @@ abstract class AbstractDiagnosticsTest : BaseDiagnosticsTest() { ...@@ -529,8 +517,7 @@ abstract class AbstractDiagnosticsTest : BaseDiagnosticsTest() {
private fun validateAndCompareDescriptorWithFile( private fun validateAndCompareDescriptorWithFile(
expectedFile: File, expectedFile: File,
testFiles: List<TestFile>, testFiles: List<TestFile>,
modules: Map<TestModule?, ModuleDescriptorImpl>, modules: Map<TestModule?, ModuleDescriptorImpl>
coroutinesPackage: String
) { ) {
if (skipDescriptorsValidation()) return if (skipDescriptorsValidation()) return
if (testFiles.any { file -> InTextDirectivesUtils.isDirectiveDefined(file.expectedText, "// SKIP_TXT") }) { if (testFiles.any { file -> InTextDirectivesUtils.isDirectiveDefined(file.expectedText, "// SKIP_TXT") }) {
...@@ -591,9 +578,7 @@ abstract class AbstractDiagnosticsTest : BaseDiagnosticsTest() { ...@@ -591,9 +578,7 @@ abstract class AbstractDiagnosticsTest : BaseDiagnosticsTest() {
"Such tests are hard to maintain, take long time to execute and are subject to sudden unreviewed changes anyway." "Such tests are hard to maintain, take long time to execute and are subject to sudden unreviewed changes anyway."
} }
KotlinTestUtils.assertEqualsToFile(expectedFile, allPackagesText) { s -> KotlinTestUtils.assertEqualsToFile(expectedFile, allPackagesText)
s.replace("COROUTINES_PACKAGE", coroutinesPackage)
}
} }
......
...@@ -16,6 +16,6 @@ abstract class AbstractDiagnosticsTestWithStdLib : AbstractDiagnosticsTest() { ...@@ -16,6 +16,6 @@ abstract class AbstractDiagnosticsTestWithStdLib : AbstractDiagnosticsTest() {
override fun shouldValidateFirTestData(testDataFile: File): Boolean { override fun shouldValidateFirTestData(testDataFile: File): Boolean {
val path = testDataFile.absolutePath val path = testDataFile.absolutePath
return !path.endsWith(".kts") && coroutinesPackage != StandardNames.COROUTINES_PACKAGE_FQ_NAME_EXPERIMENTAL.asString() return !path.endsWith(".kts")
} }
} }
...@@ -88,11 +88,6 @@ abstract class KotlinMultiFileTestWithJava<M : KotlinBaseTest.TestModule, F : Ko ...@@ -88,11 +88,6 @@ abstract class KotlinMultiFileTestWithJava<M : KotlinBaseTest.TestModule, F : Ko
if (InTextDirectivesUtils.isDirectiveDefined(fileText, "STDLIB_JDK8")) { if (InTextDirectivesUtils.isDirectiveDefined(fileText, "STDLIB_JDK8")) {
result.add(ForTestCompileRuntime.runtimeJarForTestsWithJdk8()) result.add(ForTestCompileRuntime.runtimeJarForTestsWithJdk8())
} }
if (StandardNames.COROUTINES_PACKAGE_FQ_NAME_EXPERIMENTAL.asString() == coroutinesPackage ||
fileText.contains(StandardNames.COROUTINES_PACKAGE_FQ_NAME_EXPERIMENTAL.asString())
) {
result.add(ForTestCompileRuntime.coroutinesCompatForTests())
}
return result return result
} }
...@@ -152,7 +147,7 @@ abstract class KotlinMultiFileTestWithJava<M : KotlinBaseTest.TestModule, F : Ko ...@@ -152,7 +147,7 @@ abstract class KotlinMultiFileTestWithJava<M : KotlinBaseTest.TestModule, F : Ko
KotlinTestUtils.mkdirs(tmpFile.parentFile) KotlinTestUtils.mkdirs(tmpFile.parentFile)
tmpFile.writeText(content, Charsets.UTF_8) tmpFile.writeText(content, Charsets.UTF_8)
} }
}, coroutinesPackage) })
} }
companion object { companion object {
......
...@@ -68,11 +68,7 @@ public abstract class AbstractBlackBoxCodegenTest extends CodegenTestCase { ...@@ -68,11 +68,7 @@ public abstract class AbstractBlackBoxCodegenTest extends CodegenTestCase {
private void doBytecodeListingTest(@NotNull File wholeFile) throws Exception { private void doBytecodeListingTest(@NotNull File wholeFile) throws Exception {
if (!InTextDirectivesUtils.isDirectiveDefined(FileUtil.loadFile(wholeFile), "CHECK_BYTECODE_LISTING")) return; if (!InTextDirectivesUtils.isDirectiveDefined(FileUtil.loadFile(wholeFile), "CHECK_BYTECODE_LISTING")) return;
String suffix = String suffix = getBackend().isIR() ? "_ir" : "";
(coroutinesPackage.equals(StandardNames.COROUTINES_PACKAGE_FQ_NAME_EXPERIMENTAL.asString()) || coroutinesPackage.isEmpty())
&& InTextDirectivesUtils.isDirectiveDefined(FileUtil.loadFile(wholeFile), "COMMON_COROUTINES_TEST")
? "_1_2" :
getBackend().isIR() ? "_ir" : "";
File expectedFile = new File(wholeFile.getParent(), FilesKt.getNameWithoutExtension(wholeFile) + suffix + ".txt"); File expectedFile = new File(wholeFile.getParent(), FilesKt.getNameWithoutExtension(wholeFile) + suffix + ".txt");
String text = String text =
...@@ -101,7 +97,7 @@ public abstract class AbstractBlackBoxCodegenTest extends CodegenTestCase { ...@@ -101,7 +97,7 @@ public abstract class AbstractBlackBoxCodegenTest extends CodegenTestCase {
} }
); );
assertEqualsToFile(expectedFile, text, s -> s.replace("COROUTINES_PACKAGE", coroutinesPackage)); assertEqualsToFile(expectedFile, text);
} }
protected void blackBox(boolean reportProblems, boolean unexpectedBehaviour) { protected void blackBox(boolean reportProblems, boolean unexpectedBehaviour) {
......
...@@ -31,8 +31,7 @@ abstract class AbstractBytecodeListingTest : CodegenTestCase() { ...@@ -31,8 +31,7 @@ abstract class AbstractBytecodeListingTest : CodegenTestCase() {
) )
val prefixes = when { val prefixes = when {
backend.isIR -> listOf("_ir", "_1_3", "") backend.isIR -> listOf("_ir", "")
coroutinesPackage == StandardNames.COROUTINES_PACKAGE_FQ_NAME_RELEASE.asString() -> listOf("_1_3", "")
else -> listOf("") else -> listOf("")
} }
......
...@@ -19,9 +19,7 @@ abstract class AbstractDumpDeclarationsTest : CodegenTestCase() { ...@@ -19,9 +19,7 @@ abstract class AbstractDumpDeclarationsTest : CodegenTestCase() {
dumpToFile = KotlinTestUtils.tmpDirForTest(this).resolve("$name.json") dumpToFile = KotlinTestUtils.tmpDirForTest(this).resolve("$name.json")
compile(files) compile(files)
classFileFactory.generationState.destroy() classFileFactory.generationState.destroy()
KotlinTestUtils.assertEqualsToFile(expectedResult, dumpToFile.readText()) { KotlinTestUtils.assertEqualsToFile(expectedResult, dumpToFile.readText())
it.replace("COROUTINES_PACKAGE", coroutinesPackage)
}
} }
override fun updateConfiguration(configuration: CompilerConfiguration) { override fun updateConfiguration(configuration: CompilerConfiguration) {
......
...@@ -607,32 +607,21 @@ public abstract class CodegenTestCase extends KotlinBaseTest<KotlinBaseTest.Test ...@@ -607,32 +607,21 @@ public abstract class CodegenTestCase extends KotlinBaseTest<KotlinBaseTest.Test
File file = new File(filePath); File file = new File(filePath);
String expectedText = KotlinTestUtils.doLoadFile(file); String expectedText = KotlinTestUtils.doLoadFile(file);
if (!coroutinesPackage.isEmpty()) {
expectedText = expectedText.replace("COROUTINES_PACKAGE", coroutinesPackage);
}
List<TestFile> testFiles = createTestFilesFromFile(file, expectedText); List<TestFile> testFiles = createTestFilesFromFile(file, expectedText);
doMultiFileTest(file, testFiles); doMultiFileTest(file, testFiles);
} }
@Override
protected void doTestWithCoroutinesPackageReplacement(@NotNull String filePath, @NotNull String packageName) throws Exception {
this.coroutinesPackage = packageName;
doTest(filePath);
}
@Override @Override
@NotNull @NotNull
protected List<TestFile> createTestFilesFromFile(@NotNull File file, @NotNull String expectedText) { protected List<TestFile> createTestFilesFromFile(@NotNull File file, @NotNull String expectedText) {
return createTestFilesFromFile(file, expectedText, coroutinesPackage, parseDirectivesPerFiles(), getBackend()); return createTestFilesFromFile(file, expectedText, parseDirectivesPerFiles(), getBackend());
} }
@NotNull @NotNull
public static List<TestFile> createTestFilesFromFile( public static List<TestFile> createTestFilesFromFile(
@NotNull File file, @NotNull File file,
@NotNull String expectedText, @NotNull String expectedText,
@NotNull String coroutinesPackage,
boolean parseDirectivesPerFiles, boolean parseDirectivesPerFiles,
@NotNull TargetBackend backend @NotNull TargetBackend backend
) { ) {
...@@ -643,7 +632,7 @@ public abstract class CodegenTestCase extends KotlinBaseTest<KotlinBaseTest.Test ...@@ -643,7 +632,7 @@ public abstract class CodegenTestCase extends KotlinBaseTest<KotlinBaseTest.Test
public TestFile create(@NotNull String fileName, @NotNull String text, @NotNull Directives directives) { public TestFile create(@NotNull String fileName, @NotNull String text, @NotNull Directives directives) {
return new TestFile(fileName, text, directives); return new TestFile(fileName, text, directives);
} }
}, false, coroutinesPackage, parseDirectivesPerFiles); }, false, parseDirectivesPerFiles);
if (InTextDirectivesUtils.isDirectiveDefined(expectedText, "WITH_HELPERS")) { if (InTextDirectivesUtils.isDirectiveDefined(expectedText, "WITH_HELPERS")) {
testFiles.add(new TestFile("CodegenTestHelpers.kt", TestHelperGeneratorKt.createTextForCodegenTestHelpers(backend))); testFiles.add(new TestFile("CodegenTestHelpers.kt", TestHelperGeneratorKt.createTextForCodegenTestHelpers(backend)));
} }
......
...@@ -64,7 +64,6 @@ import java.io.File ...@@ -64,7 +64,6 @@ import java.io.File
abstract class AbstractFirDiagnosticsTest : AbstractFirBaseDiagnosticsTest() { abstract class AbstractFirDiagnosticsTest : AbstractFirBaseDiagnosticsTest() {
companion object { companion object {
const val DUMP_CFG_DIRECTIVE = "DUMP_CFG" const val DUMP_CFG_DIRECTIVE = "DUMP_CFG"
const val COMMON_COROUTINES_DIRECTIVE = "COMMON_COROUTINES_TEST"
private val allowedKindsForDebugInfo = setOf( private val allowedKindsForDebugInfo = setOf(
FirRealSourceElementKind, FirRealSourceElementKind,
...@@ -74,9 +73,6 @@ abstract class AbstractFirDiagnosticsTest : AbstractFirBaseDiagnosticsTest() { ...@@ -74,9 +73,6 @@ abstract class AbstractFirDiagnosticsTest : AbstractFirBaseDiagnosticsTest() {
val TestFile.withDumpCfgDirective: Boolean val TestFile.withDumpCfgDirective: Boolean
get() = DUMP_CFG_DIRECTIVE in directives get() = DUMP_CFG_DIRECTIVE in directives
val TestFile.withCommonCoroutinesDirective: Boolean
get() = COMMON_COROUTINES_DIRECTIVE in directives
val File.cfgDumpFile: File val File.cfgDumpFile: File
get() = File(absolutePath.replace(".kt", ".dot")) get() = File(absolutePath.replace(".kt", ".dot"))
} }
...@@ -136,10 +132,7 @@ abstract class AbstractFirDiagnosticsTest : AbstractFirBaseDiagnosticsTest() { ...@@ -136,10 +132,7 @@ abstract class AbstractFirDiagnosticsTest : AbstractFirBaseDiagnosticsTest() {
actualTextBuilder.append(testFile.expectedText) actualTextBuilder.append(testFile.expectedText)
} }
} }
var actualText = actualTextBuilder.toString() val actualText = actualTextBuilder.toString()
if (testFiles.any { it.withCommonCoroutinesDirective }) {
actualText = actualText.replace(coroutinesPackage, "COROUTINES_PACKAGE")
}
KotlinTestUtils.assertEqualsToFile(file, actualText) KotlinTestUtils.assertEqualsToFile(file, actualText)
} }
......
...@@ -295,7 +295,7 @@ public abstract class AbstractLoadJavaTest extends TestCaseWithTmpdir { ...@@ -295,7 +295,7 @@ public abstract class AbstractLoadJavaTest extends TestCaseWithTmpdir {
} }
return targetFile; return targetFile;
} }
}, ""); });
Pair<PackageViewDescriptor, BindingContext> javaPackageAndContext = compileJavaAndLoadTestPackageAndBindingContextFromBinary( Pair<PackageViewDescriptor, BindingContext> javaPackageAndContext = compileJavaAndLoadTestPackageAndBindingContextFromBinary(
srcFiles, compiledDir, ConfigurationKind.ALL srcFiles, compiledDir, ConfigurationKind.ALL
......
...@@ -50,7 +50,7 @@ public abstract class ExtensibleResolveTestCase extends KotlinTestWithEnvironmen ...@@ -50,7 +50,7 @@ public abstract class ExtensibleResolveTestCase extends KotlinTestWithEnvironmen
public KtFile create(@NotNull String fileName, @NotNull String text, @NotNull Directives directives) { public KtFile create(@NotNull String fileName, @NotNull String text, @NotNull Directives directives) {
return expectedResolveData.createFileFromMarkedUpText(fileName, text); return expectedResolveData.createFileFromMarkedUpText(fileName, text);
} }
}, ""); });
expectedResolveData.checkResult(ExpectedResolveData.analyze(files, getEnvironment())); expectedResolveData.checkResult(ExpectedResolveData.analyze(files, getEnvironment()));
} }
} }
...@@ -24,29 +24,15 @@ import java.util.* ...@@ -24,29 +24,15 @@ import java.util.*
import java.util.regex.Pattern import java.util.regex.Pattern
abstract class KotlinBaseTest<F : KotlinBaseTest.TestFile> : KtUsefulTestCase() { abstract class KotlinBaseTest<F : KotlinBaseTest.TestFile> : KtUsefulTestCase() {
@JvmField
protected var coroutinesPackage: String = ""
@Throws(Exception::class) @Throws(Exception::class)
override fun setUp() { override fun setUp() {
coroutinesPackage = ""
super.setUp() super.setUp()
} }
@Throws(java.lang.Exception::class)
protected open fun doTestWithCoroutinesPackageReplacement(filePath: String, coroutinesPackage: String) {
this.coroutinesPackage = coroutinesPackage
doTest(filePath)
}
@Throws(java.lang.Exception::class) @Throws(java.lang.Exception::class)
protected open fun doTest(filePath: String) { protected open fun doTest(filePath: String) {
val file = File(filePath) val file = File(filePath)
var expectedText = KotlinTestUtils.doLoadFile(file) val expectedText = KotlinTestUtils.doLoadFile(file)
if (coroutinesPackage.isNotEmpty()) {
expectedText = expectedText.replace("COROUTINES_PACKAGE", coroutinesPackage)
}
doMultiFileTest(file, createTestFilesFromFile(file, expectedText)) doMultiFileTest(file, createTestFilesFromFile(file, expectedText))
} }
...@@ -98,7 +84,6 @@ abstract class KotlinBaseTest<F : KotlinBaseTest.TestFile> : KtUsefulTestCase() ...@@ -98,7 +84,6 @@ abstract class KotlinBaseTest<F : KotlinBaseTest.TestFile> : KtUsefulTestCase()
updateConfigurationByDirectivesInTestFiles( updateConfigurationByDirectivesInTestFiles(
testFilesWithConfigurationDirectives, testFilesWithConfigurationDirectives,
configuration, configuration,
coroutinesPackage,
parseDirectivesPerFiles() parseDirectivesPerFiles()
) )
updateConfiguration(configuration) updateConfiguration(configuration)
...@@ -203,18 +188,16 @@ abstract class KotlinBaseTest<F : KotlinBaseTest.TestFile> : KtUsefulTestCase() ...@@ -203,18 +188,16 @@ abstract class KotlinBaseTest<F : KotlinBaseTest.TestFile> : KtUsefulTestCase()
testFilesWithConfigurationDirectives: List<TestFile>, testFilesWithConfigurationDirectives: List<TestFile>,
configuration: CompilerConfiguration configuration: CompilerConfiguration
) { ) {
updateConfigurationByDirectivesInTestFiles(testFilesWithConfigurationDirectives, configuration, "", false) updateConfigurationByDirectivesInTestFiles(testFilesWithConfigurationDirectives, configuration, false)
} }
private fun updateConfigurationByDirectivesInTestFiles( private fun updateConfigurationByDirectivesInTestFiles(
testFilesWithConfigurationDirectives: List<TestFile>, testFilesWithConfigurationDirectives: List<TestFile>,
configuration: CompilerConfiguration, configuration: CompilerConfiguration,
coroutinesPackage: String,
usePreparsedDirectives: Boolean usePreparsedDirectives: Boolean
) { ) {
var explicitLanguageVersionSettings: LanguageVersionSettings? = null var explicitLanguageVersionSettings: LanguageVersionSettings? = null
var disableReleaseCoroutines = false
var includeCompatExperimentalCoroutines = false var includeCompatExperimentalCoroutines = false
val kotlinConfigurationFlags: MutableList<String> = ArrayList(0) val kotlinConfigurationFlags: MutableList<String> = ArrayList(0)
for (testFile in testFilesWithConfigurationDirectives) { for (testFile in testFilesWithConfigurationDirectives) {
...@@ -247,13 +230,6 @@ abstract class KotlinBaseTest<F : KotlinBaseTest.TestFile> : KtUsefulTestCase() ...@@ -247,13 +230,6 @@ abstract class KotlinBaseTest<F : KotlinBaseTest.TestFile> : KtUsefulTestCase()
""".trimIndent() """.trimIndent()
) )
} }
if (directives.contains("COMMON_COROUTINES_TEST")) {
assert(!directives.contains("COROUTINES_PACKAGE")) { "Must replace COROUTINES_PACKAGE prior to tests compilation" }
if (StandardNames.COROUTINES_PACKAGE_FQ_NAME_EXPERIMENTAL.asString() == coroutinesPackage) {
disableReleaseCoroutines = true
includeCompatExperimentalCoroutines = true
}
}
if (content.contains(StandardNames.COROUTINES_PACKAGE_FQ_NAME_EXPERIMENTAL.asString())) { if (content.contains(StandardNames.COROUTINES_PACKAGE_FQ_NAME_EXPERIMENTAL.asString())) {
includeCompatExperimentalCoroutines = true includeCompatExperimentalCoroutines = true
} }
...@@ -263,13 +239,6 @@ abstract class KotlinBaseTest<F : KotlinBaseTest.TestFile> : KtUsefulTestCase() ...@@ -263,13 +239,6 @@ abstract class KotlinBaseTest<F : KotlinBaseTest.TestFile> : KtUsefulTestCase()
explicitLanguageVersionSettings = fileLanguageVersionSettings explicitLanguageVersionSettings = fileLanguageVersionSettings
} }
} }
if (disableReleaseCoroutines) {
explicitLanguageVersionSettings = CompilerTestLanguageVersionSettings(
Collections.singletonMap(LanguageFeature.ReleaseCoroutines, LanguageFeature.State.DISABLED),
ApiVersion.LATEST_STABLE,
LanguageVersion.LATEST_STABLE, emptyMap()
)
}
if (includeCompatExperimentalCoroutines) { if (includeCompatExperimentalCoroutines) {
configuration.addJvmClasspathRoot(ForTestCompileRuntime.coroutinesCompatForTests()) configuration.addJvmClasspathRoot(ForTestCompileRuntime.coroutinesCompatForTests())
} }
......
...@@ -574,7 +574,7 @@ public class KotlinTestUtils { ...@@ -574,7 +574,7 @@ public class KotlinTestUtils {
int firstLineEnd = text.indexOf('\n'); int firstLineEnd = text.indexOf('\n');
return StringUtil.trimTrailing(text.substring(firstLineEnd + 1)); return StringUtil.trimTrailing(text.substring(firstLineEnd + 1));
} }
}, ""); });
Assert.assertTrue("Exactly two files expected: ", files.size() == 2); Assert.assertTrue("Exactly two files expected: ", files.size() == 2);
......
...@@ -41,23 +41,18 @@ public class TestFiles { ...@@ -41,23 +41,18 @@ public class TestFiles {
@NotNull @NotNull
public static <M extends KotlinBaseTest.TestModule, F> List<F> createTestFiles(@Nullable String testFileName, String expectedText, TestFileFactory<M, F> factory) { public static <M extends KotlinBaseTest.TestModule, F> List<F> createTestFiles(@Nullable String testFileName, String expectedText, TestFileFactory<M, F> factory) {
return createTestFiles(testFileName, expectedText, factory, false, ""); return createTestFiles(testFileName, expectedText, factory, false);
}
@NotNull
public static <M extends KotlinBaseTest.TestModule, F> List<F> createTestFiles(@Nullable String testFileName, String expectedText, TestFileFactory<M, F> factory, String coroutinesPackage) {
return createTestFiles(testFileName, expectedText, factory, false, coroutinesPackage);
} }
@NotNull @NotNull
public static <M extends KotlinBaseTest.TestModule, F> List<F> createTestFiles(String testFileName, String expectedText, TestFileFactory<M , F> factory, public static <M extends KotlinBaseTest.TestModule, F> List<F> createTestFiles(String testFileName, String expectedText, TestFileFactory<M , F> factory,
boolean preserveLocations, String coroutinesPackage) { boolean preserveLocations) {
return createTestFiles(testFileName, expectedText, factory, preserveLocations, coroutinesPackage, false); return createTestFiles(testFileName, expectedText, factory, preserveLocations, false);
} }
@NotNull @NotNull
public static <M extends KotlinBaseTest.TestModule, F> List<F> createTestFiles(String testFileName, String expectedText, TestFileFactory<M , F> factory, public static <M extends KotlinBaseTest.TestModule, F> List<F> createTestFiles(String testFileName, String expectedText, TestFileFactory<M , F> factory,
boolean preserveLocations, String coroutinesPackage, boolean parseDirectivesPerFile) { boolean preserveLocations, boolean parseDirectivesPerFile) {
Map<String, M> modules = new HashMap<>(); Map<String, M> modules = new HashMap<>();
List<F> testFiles = Lists.newArrayList(); List<F> testFiles = Lists.newArrayList();
Matcher matcher = FILE_OR_MODULE_PATTERN.matcher(expectedText); Matcher matcher = FILE_OR_MODULE_PATTERN.matcher(expectedText);
...@@ -127,9 +122,7 @@ public class TestFiles { ...@@ -127,9 +122,7 @@ public class TestFiles {
assert oldValue == null : "Module with name " + supportModule.name + " already present in file"; assert oldValue == null : "Module with name " + supportModule.name + " already present in file";
} }
boolean isReleaseCoroutines = boolean isReleaseCoroutines = !isDirectiveDefined(expectedText, "!LANGUAGE: -ReleaseCoroutines");
!coroutinesPackage.contains("experimental") &&
!isDirectiveDefined(expectedText, "!LANGUAGE: -ReleaseCoroutines");
boolean checkStateMachine = isDirectiveDefined(expectedText, "CHECK_STATE_MACHINE"); boolean checkStateMachine = isDirectiveDefined(expectedText, "CHECK_STATE_MACHINE");
boolean checkTailCallOptimization = isDirectiveDefined(expectedText, "CHECK_TAIL_CALL_OPTIMIZATION"); boolean checkTailCallOptimization = isDirectiveDefined(expectedText, "CHECK_TAIL_CALL_OPTIMIZATION");
......
...@@ -122,8 +122,7 @@ abstract class AbstractJvmRuntimeDescriptorLoaderTest : TestCaseWithTmpdir() { ...@@ -122,8 +122,7 @@ abstract class AbstractJvmRuntimeDescriptorLoaderTest : TestCaseWithTmpdir() {
targetFile.writeText(adaptJavaSource(text)) targetFile.writeText(adaptJavaSource(text))
return targetFile return targetFile
} }
}, }
""
) )
LoadDescriptorUtil.compileJavaWithAnnotationsJar(sources, tmpdir, emptyList(), null) LoadDescriptorUtil.compileJavaWithAnnotationsJar(sources, tmpdir, emptyList(), null)
} }
......
...@@ -121,7 +121,7 @@ abstract class AbstractQuickFixMultiFileTest : KotlinLightCodeInsightFixtureTest ...@@ -121,7 +121,7 @@ abstract class AbstractQuickFixMultiFileTest : KotlinLightCodeInsightFixtureTest
} }
return TestFile(fileName, linesWithoutDirectives.joinToString(separator = "\n")) return TestFile(fileName, linesWithoutDirectives.joinToString(separator = "\n"))
} }
}, "" }
) )
val afterFile = subFiles.firstOrNull { file -> file.path.contains(".after") } val afterFile = subFiles.firstOrNull { file -> file.path.contains(".after") }
......
...@@ -44,7 +44,7 @@ abstract class AbstractJsLineNumberTest : KotlinTestWithEnvironment() { ...@@ -44,7 +44,7 @@ abstract class AbstractJsLineNumberTest : KotlinTestWithEnvironment() {
val sourceCode = file.readText() val sourceCode = file.readText()
TestFileFactoryImpl().use { testFactory -> TestFileFactoryImpl().use { testFactory ->
val inputFiles = TestFiles.createTestFiles(file.name, sourceCode, testFactory, true, "") val inputFiles = TestFiles.createTestFiles(file.name, sourceCode, testFactory, true)
val modules = inputFiles val modules = inputFiles
.map { it.module }.distinct() .map { it.module }.distinct()
.associateBy { it.name } .associateBy { it.name }
...@@ -175,4 +175,4 @@ abstract class AbstractJsLineNumberTest : KotlinTestWithEnvironment() { ...@@ -175,4 +175,4 @@ abstract class AbstractJsLineNumberTest : KotlinTestWithEnvironment() {
private val BASE_PATH = "${BasicBoxTest.TEST_DATA_DIR_PATH}/$DIR_NAME" private val BASE_PATH = "${BasicBoxTest.TEST_DATA_DIR_PATH}/$DIR_NAME"
private val OUT_PATH = "${BasicBoxTest.TEST_DATA_DIR_PATH}/out/$DIR_NAME" private val OUT_PATH = "${BasicBoxTest.TEST_DATA_DIR_PATH}/out/$DIR_NAME"
} }
} }
\ No newline at end of file
...@@ -141,8 +141,7 @@ abstract class BasicBoxTest( ...@@ -141,8 +141,7 @@ abstract class BasicBoxTest(
file.name, file.name,
fileContent, fileContent,
testFactory, testFactory,
true, true
coroutinesPackage
) )
val modules = inputFiles val modules = inputFiles
.map { it.module }.distinct() .map { it.module }.distinct()
......
...@@ -6,10 +6,6 @@ ...@@ -6,10 +6,6 @@
package org.jetbrains.kotlin.js.test package org.jetbrains.kotlin.js.test
import com.intellij.openapi.util.io.FileUtil import com.intellij.openapi.util.io.FileUtil
import com.intellij.openapi.vfs.StandardFileSystems
import com.intellij.openapi.vfs.VirtualFileManager
import com.intellij.psi.PsiManager
import junit.framework.TestCase
import org.jetbrains.kotlin.backend.common.phaser.PhaseConfig import org.jetbrains.kotlin.backend.common.phaser.PhaseConfig
import org.jetbrains.kotlin.backend.common.phaser.toPhaseMap import org.jetbrains.kotlin.backend.common.phaser.toPhaseMap
import org.jetbrains.kotlin.backend.wasm.compileWasm import org.jetbrains.kotlin.backend.wasm.compileWasm
...@@ -28,10 +24,8 @@ import org.jetbrains.kotlin.js.test.engines.SpiderMonkeyEngine ...@@ -28,10 +24,8 @@ import org.jetbrains.kotlin.js.test.engines.SpiderMonkeyEngine
import org.jetbrains.kotlin.library.resolver.impl.KotlinLibraryResolverResultImpl import org.jetbrains.kotlin.library.resolver.impl.KotlinLibraryResolverResultImpl
import org.jetbrains.kotlin.library.resolver.impl.KotlinResolvedLibraryImpl import org.jetbrains.kotlin.library.resolver.impl.KotlinResolvedLibraryImpl
import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.psi.KtFile
import org.jetbrains.kotlin.psi.KtNamedFunction import org.jetbrains.kotlin.psi.KtNamedFunction
import org.jetbrains.kotlin.psi.KtPsiFactory import org.jetbrains.kotlin.psi.KtPsiFactory
import org.jetbrains.kotlin.test.InTextDirectivesUtils
import org.jetbrains.kotlin.test.Directives import org.jetbrains.kotlin.test.Directives
import org.jetbrains.kotlin.test.KotlinTestUtils import org.jetbrains.kotlin.test.KotlinTestUtils
import org.jetbrains.kotlin.test.KotlinTestWithEnvironment import org.jetbrains.kotlin.test.KotlinTestWithEnvironment
...@@ -63,7 +57,7 @@ abstract class BasicWasmBoxTest( ...@@ -63,7 +57,7 @@ abstract class BasicWasmBoxTest(
val fileContent = KotlinTestUtils.doLoadFile(file) val fileContent = KotlinTestUtils.doLoadFile(file)
TestFileFactoryImpl().use { testFactory -> TestFileFactoryImpl().use { testFactory ->
val inputFiles: MutableList<TestFile> = TestFiles.createTestFiles(file.name, fileContent, testFactory, true, "") val inputFiles: MutableList<TestFile> = TestFiles.createTestFiles(file.name, fileContent, testFactory, true)
val testPackage = testFactory.testPackage val testPackage = testFactory.testPackage
val outputFileBase = outputDir.absolutePath + "/" + getTestName(true) val outputFileBase = outputDir.absolutePath + "/" + getTestName(true)
val outputWatFile = outputFileBase + ".wat" val outputWatFile = outputFileBase + ".wat"
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册