diff --git a/compiler/testData/compileKotlinAgainstCustomBinaries/inlineFunWithoutDebugInfo/output.txt b/compiler/testData/compileKotlinAgainstCustomBinaries/inlineFunWithoutDebugInfo/output.txt new file mode 100644 index 00000000000..d86bac9de59 --- /dev/null +++ b/compiler/testData/compileKotlinAgainstCustomBinaries/inlineFunWithoutDebugInfo/output.txt @@ -0,0 +1 @@ +OK diff --git a/compiler/testData/compileKotlinAgainstCustomBinaries/inlineFunWithoutDebugInfo/sourceInline.kt b/compiler/testData/compileKotlinAgainstCustomBinaries/inlineFunWithoutDebugInfo/sourceInline.kt index 7e738e1c9ed..66de1f0a755 100644 --- a/compiler/testData/compileKotlinAgainstCustomBinaries/inlineFunWithoutDebugInfo/sourceInline.kt +++ b/compiler/testData/compileKotlinAgainstCustomBinaries/inlineFunWithoutDebugInfo/sourceInline.kt @@ -3,7 +3,7 @@ package test public class A { inline public fun test(s: () -> Unit) { - + s() } } \ No newline at end of file diff --git a/compiler/testData/compileKotlinAgainstCustomBinaries/noWarningsOnJavaKotlinInheritance/library/JavaInterface.java b/compiler/testData/compileKotlinAgainstCustomBinaries/noWarningsOnJavaKotlinInheritance/library/JavaInterface.java new file mode 100644 index 00000000000..b45fbf1744f --- /dev/null +++ b/compiler/testData/compileKotlinAgainstCustomBinaries/noWarningsOnJavaKotlinInheritance/library/JavaInterface.java @@ -0,0 +1,3 @@ +public interface JavaInterface { + void foo(int javaName); +} diff --git a/compiler/testData/compileKotlinAgainstCustomBinaries/noWarningsOnJavaKotlinInheritance/noWarningsOnJavaKotlinInheritance.java b/compiler/testData/compileKotlinAgainstCustomBinaries/noWarningsOnJavaKotlinInheritance/noWarningsOnJavaKotlinInheritance.java deleted file mode 100644 index f1122532b7d..00000000000 --- a/compiler/testData/compileKotlinAgainstCustomBinaries/noWarningsOnJavaKotlinInheritance/noWarningsOnJavaKotlinInheritance.java +++ /dev/null @@ -1,3 +0,0 @@ -interface JavaInterface { - void foo(int javaName); -} diff --git a/compiler/testData/compileKotlinAgainstCustomBinaries/rawTypes/output.txt b/compiler/testData/compileKotlinAgainstCustomBinaries/rawTypes/output.txt index bcaba862667..d86bac9de59 100644 --- a/compiler/testData/compileKotlinAgainstCustomBinaries/rawTypes/output.txt +++ b/compiler/testData/compileKotlinAgainstCustomBinaries/rawTypes/output.txt @@ -1,2 +1 @@ OK -OK \ No newline at end of file diff --git a/compiler/tests/org/jetbrains/kotlin/jvm/compiler/CompileKotlinAgainstCustomBinariesTest.kt b/compiler/tests/org/jetbrains/kotlin/jvm/compiler/CompileKotlinAgainstCustomBinariesTest.kt index 388bba820c4..574a2a63446 100644 --- a/compiler/tests/org/jetbrains/kotlin/jvm/compiler/CompileKotlinAgainstCustomBinariesTest.kt +++ b/compiler/tests/org/jetbrains/kotlin/jvm/compiler/CompileKotlinAgainstCustomBinariesTest.kt @@ -66,7 +66,7 @@ class CompileKotlinAgainstCustomBinariesTest : TestCaseWithTmpdir() { additionalOptions: List = emptyList(), vararg extraClassPath: File ): File { - val output = compileKotlin(sourcePath, destination, extraClassPath.toList(), compiler, additionalOptions) + val output = compileKotlin(sourcePath, destination, extraClassPath.toList(), compiler, additionalOptions, expectedFileName = null) assertEquals(normalizeOutput("" to ExitCode.OK), normalizeOutput(output)) return destination } @@ -116,7 +116,8 @@ class CompileKotlinAgainstCustomBinariesTest : TestCaseWithTmpdir() { output: File, classpath: List = emptyList(), compiler: CLICompiler<*> = K2JVMCompiler(), - additionalOptions: List = emptyList() + additionalOptions: List = emptyList(), + expectedFileName: String? = "output.txt" ): Pair { val args = mutableListOf() val sourceFile = File(testDataDirectory, fileName) @@ -146,23 +147,24 @@ class CompileKotlinAgainstCustomBinariesTest : TestCaseWithTmpdir() { args.addAll(additionalOptions) - return AbstractCliTest.executeCompilerGrabOutput(compiler, args) + val result = AbstractCliTest.executeCompilerGrabOutput(compiler, args) + if (expectedFileName != null) { + KotlinTestUtils.assertEqualsToFile(File(testDataDirectory, expectedFileName), normalizeOutput(result)) + } + return result } private fun doTestBrokenJavaLibrary(libraryName: String, vararg pathsToDelete: String) { // This function compiles a Java library, then deletes one class file and attempts to compile a Kotlin source against // this broken library. The expected result is an error message from the compiler val library = deletePaths(compileJava(libraryName), *pathsToDelete) - - val output = compileKotlin("source.kt", tmpdir, listOf(library)) - KotlinTestUtils.assertEqualsToFile(File(testDataDirectory, "output.txt"), normalizeOutput(output)) + compileKotlin("source.kt", tmpdir, listOf(library)) } private fun doTestBrokenKotlinLibrary(libraryName: String, vararg pathsToDelete: String) { // Analogous to doTestBrokenJavaLibrary, but with a Kotlin library compiled to a JAR file val library = copyJarFileWithoutEntry(compileLibrary(libraryName), *pathsToDelete) - val output = compileKotlin("source.kt", tmpdir, listOf(library)) - KotlinTestUtils.assertEqualsToFile(File(testDataDirectory, "output.txt"), normalizeOutput(output)) + compileKotlin("source.kt", tmpdir, listOf(library)) } private fun doTestKotlinLibraryWithWrongMetadataVersion( @@ -180,8 +182,7 @@ class CompileKotlinAgainstCustomBinariesTest : TestCaseWithTmpdir() { } } ) - val output = compileKotlin("source.kt", tmpdir, listOf(library), K2JVMCompiler(), additionalOptions.toList()) - KotlinTestUtils.assertEqualsToFile(File(testDataDirectory, "output.txt"), normalizeOutput(output)) + compileKotlin("source.kt", tmpdir, listOf(library), K2JVMCompiler(), additionalOptions.toList()) } private fun doTestKotlinLibraryWithWrongMetadataVersionJs(libraryName: String, vararg additionalOptions: String) { @@ -193,8 +194,7 @@ class CompileKotlinAgainstCustomBinariesTest : TestCaseWithTmpdir() { "(" + JsMetadataVersion(42, 0, 0).toInteger() + ", " ), Charsets.UTF_8) - val output = compileKotlin("source.kt", File(tmpdir, "usage.js"), listOf(library), K2JSCompiler(), additionalOptions.toList()) - KotlinTestUtils.assertEqualsToFile(File(testDataDirectory, "output.txt"), normalizeOutput(output)) + compileKotlin("source.kt", File(tmpdir, "usage.js"), listOf(library), K2JSCompiler(), additionalOptions.toList()) } private fun doTestPreReleaseKotlinLibrary( @@ -215,33 +215,21 @@ class CompileKotlinAgainstCustomBinariesTest : TestCaseWithTmpdir() { System.clearProperty(TEST_IS_PRE_RELEASE_SYSTEM_PROPERTY) } - val output: Pair try { System.setProperty(TEST_IS_PRE_RELEASE_SYSTEM_PROPERTY, "false") - output = compileKotlin("source.kt", usageDestination, listOf(result), compiler, additionalOptions.toList()) + compileKotlin("source.kt", usageDestination, listOf(result), compiler, additionalOptions.toList()) } finally { System.clearProperty(TEST_IS_PRE_RELEASE_SYSTEM_PROPERTY) } - - KotlinTestUtils.assertEqualsToFile(File(testDataDirectory, "output.txt"), normalizeOutput(output)) } // ------------------------------------------------------------------------------ fun testRawTypes() { - KotlinTestUtils.compileJavaFiles( - listOf(File(testDataDirectory.toString() + "/library/test/A.java")), - listOf("-d", tmpdir.path) - ) - - val outputLib = compileKotlin("library/test/lib.kt", tmpdir, listOf(tmpdir)) - - val outputMain = compileKotlin("main.kt", tmpdir, listOf(tmpdir)) - - KotlinTestUtils.assertEqualsToFile( - File(testDataDirectory, "output.txt"), normalizeOutput(outputLib) + "\n" + normalizeOutput(outputMain) - ) + val libraryOutput = compileJava("library") + compileKotlin("library", libraryOutput, listOf(libraryOutput)) + compileKotlin("main.kt", tmpdir, listOf(libraryOutput)) } fun testDuplicateObjectInBinaryAndSources() { @@ -271,12 +259,8 @@ class CompileKotlinAgainstCustomBinariesTest : TestCaseWithTmpdir() { // This test checks that there are no PARAMETER_NAME_CHANGED_ON_OVERRIDE or DIFFERENT_NAMES_FOR_THE_SAME_PARAMETER_IN_SUPERTYPES // warnings when subclassing in Kotlin from Java binaries (in case when no parameter names are available for Java classes) - KotlinTestUtils.compileJavaFiles( - listOf(getTestDataFileWithExtension("java")), - listOf("-d", tmpdir.path) - ) - - val environment = createEnvironment(listOf(tmpdir)) + val libraryOutput = compileJava("library") + val environment = createEnvironment(listOf(libraryOutput)) val ktFile = KotlinTestUtils.loadJetFile(environment.project, getTestDataFileWithExtension("kt")) val result = JvmResolveUtil.analyze(ktFile, environment) @@ -315,8 +299,7 @@ class CompileKotlinAgainstCustomBinariesTest : TestCaseWithTmpdir() { "a/A.class", "a/A\$Inner.class", "a/AA.class", "a/AA\$Inner.class") val library2 = copyJarFileWithoutEntry(compileLibrary("library2"), "a/A.class", "a/A\$Inner.class", "a/AA.class", "a/AA\$Inner.class") - val output = compileKotlin("source.kt", tmpdir, listOf(library1, library2)) - KotlinTestUtils.assertEqualsToFile(File(testDataDirectory, "output.txt"), normalizeOutput(output)) + compileKotlin("source.kt", tmpdir, listOf(library1, library2)) } fun testMissingDependencyJava() { @@ -326,8 +309,7 @@ class CompileKotlinAgainstCustomBinariesTest : TestCaseWithTmpdir() { fun testMissingDependencyJavaConflictingLibraries() { val library1 = deletePaths(compileJava("library1"), "test/A.class", "test/A\$Inner.class") val library2 = deletePaths(compileJava("library2"), "test/A.class", "test/A\$Inner.class") - val output = compileKotlin("source.kt", tmpdir, listOf(library1, library2)) - KotlinTestUtils.assertEqualsToFile(File(testDataDirectory, "output.txt"), normalizeOutput(output)) + compileKotlin("source.kt", tmpdir, listOf(library1, library2)) } fun testMissingDependencyJavaNestedAnnotation() { @@ -457,36 +439,20 @@ class CompileKotlinAgainstCustomBinariesTest : TestCaseWithTmpdir() { fun testProhibitNestedClassesByDollarName() { val library = compileLibrary("library") - - KotlinTestUtils.compileJavaFiles( - listOf(File(testDataDirectory.toString() + "/library/test/JavaOuter.java")), - listOf("-d", tmpdir.path) - ) - - val outputMain = compileKotlin("main.kt", tmpdir, listOf(tmpdir, library)) - - KotlinTestUtils.assertEqualsToFile( - File(testDataDirectory, "output.txt"), normalizeOutput(outputMain) - ) + val javaLibraryOutput = compileJava("library") + compileKotlin("main.kt", tmpdir, listOf(javaLibraryOutput, library)) } fun testTypeAliasesAreInvisibleInCompatibilityMode() { - compileKotlin("typeAliases.kt", tmpdir) - - val outputMain = compileKotlin("main.kt", tmpdir, listOf(tmpdir), K2JVMCompiler(), listOf("-language-version", "1.0")) - - KotlinTestUtils.assertEqualsToFile( - File(testDataDirectory, "output.txt"), normalizeOutput(outputMain) - ) + val library = compileLibrary("typeAliases.kt") + compileKotlin("main.kt", tmpdir, listOf(library), K2JVMCompiler(), listOf("-language-version", "1.0")) } fun testInnerClassPackageConflict() { - compileJava("library") - File(testDataDirectory, "library/test/Foo/x.txt").copyTo(File(tmpdir, "library/test/Foo/x.txt")) - MockLibraryUtil.createJarFile(tmpdir, File(tmpdir, "library"), null, "library", false) - val jarPath = File(tmpdir, "library.jar") - val output = compileKotlin("source.kt", tmpdir, listOf(jarPath)) - KotlinTestUtils.assertEqualsToFile(File(testDataDirectory, "output.txt"), normalizeOutput(output)) + val output = compileJava("library") + File(testDataDirectory, "library/test/Foo/x.txt").copyTo(File(output, "test/Foo/x.txt")) + MockLibraryUtil.createJarFile(tmpdir, output, null, "library", false) + compileKotlin("source.kt", tmpdir, listOf(File(tmpdir, "library.jar"))) } fun testInnerClassPackageConflict2() { @@ -505,18 +471,12 @@ class CompileKotlinAgainstCustomBinariesTest : TestCaseWithTmpdir() { true } - val output = compileKotlin("source.kt", tmpdir, listOf(library1)) - KotlinTestUtils.assertEqualsToFile(File(testDataDirectory, "output.txt"), normalizeOutput(output)) + compileKotlin("source.kt", tmpdir, listOf(library1)) } fun testWrongInlineTarget() { val library = compileLibrary("library", additionalOptions = listOf("-jvm-target", "1.8")) - - val outputMain = compileKotlin("source.kt", tmpdir, listOf(library)) - - KotlinTestUtils.assertEqualsToFile( - File(testDataDirectory, "output.txt"), normalizeOutput(outputMain) - ) + compileKotlin("source.kt", tmpdir, listOf(library)) } companion object {