diff --git a/libraries/.idea/runConfigurations/Binary_compatibility_tests__overwrite_results.xml b/libraries/.idea/runConfigurations/Binary_compatibility_tests__overwrite_results.xml index 67d6f4b6c4d..25cb4f84521 100644 --- a/libraries/.idea/runConfigurations/Binary_compatibility_tests__overwrite_results.xml +++ b/libraries/.idea/runConfigurations/Binary_compatibility_tests__overwrite_results.xml @@ -1,26 +1,21 @@ - - - - - - - - + + + + + + \ No newline at end of file diff --git a/libraries/settings.gradle b/libraries/settings.gradle index 71ff64c26ac..36f97229137 100644 --- a/libraries/settings.gradle +++ b/libraries/settings.gradle @@ -11,6 +11,7 @@ include ':kotlin-stdlib' include ':kotlin-stdlib-js' include ':kotlin-stdlib-jre7' include ':kotlin-stdlib-jre8' +include ':tools:binary-compatibility-validator' //include ':kotlin-reflect' //include ':kotlin-compiler' diff --git a/libraries/stdlib/build.gradle b/libraries/stdlib/build.gradle index eed20d05be6..3e80edf269e 100644 --- a/libraries/stdlib/build.gradle +++ b/libraries/stdlib/build.gradle @@ -32,6 +32,11 @@ dependencies { testCompile project(':kotlin-test:kotlin-test-junit') } +task originalStdlibJar(type: Jar) { + baseName = 'original-kotlin-stdlib' + from sourceSets.main.output +} + jar { manifestAttributes(manifest, project, 'Core') from("${rootDir}/../dist/builtins") diff --git a/libraries/tools/binary-compatibility-validator/build.gradle b/libraries/tools/binary-compatibility-validator/build.gradle new file mode 100644 index 00000000000..9069d7857ad --- /dev/null +++ b/libraries/tools/binary-compatibility-validator/build.gradle @@ -0,0 +1,30 @@ +apply plugin: 'kotlin' + +dependencies { + compile project(':kotlin-stdlib') + compile 'org.ow2.asm:asm-debug-all:5.0.4' + compile 'com.google.code.gson:gson:2.6.2' + testCompile project(':kotlin-test:kotlin-test-junit') +} + +sourceSets { + test { + java { + srcDir "src/test/kotlin" + } + } +} + +compileTestKotlin { + kotlinOptions { + freeCompilerArgs = ['-Xdump-declarations-to', "${buildDir}/cases-declarations.json"] + } +} + +test { + dependsOn cleanCompileTestKotlin + dependsOn(':kotlin-stdlib:originalStdlibJar') + + systemProperties['overwrite.output'] = System.getProperty("overwrite.output", "false") + jvmArgs '-ea' +} \ No newline at end of file diff --git a/libraries/tools/binary-compatibility-validator/src/test/kotlin/org.jetbrains.kotlin.tools.tests/CasesPublicAPITest.kt b/libraries/tools/binary-compatibility-validator/src/test/kotlin/org.jetbrains.kotlin.tools.tests/CasesPublicAPITest.kt index ac9038db0e6..32b3fb83c27 100644 --- a/libraries/tools/binary-compatibility-validator/src/test/kotlin/org.jetbrains.kotlin.tools.tests/CasesPublicAPITest.kt +++ b/libraries/tools/binary-compatibility-validator/src/test/kotlin/org.jetbrains.kotlin.tools.tests/CasesPublicAPITest.kt @@ -8,8 +8,8 @@ import java.io.File class CasesPublicAPITest { companion object { - val visibilities = readKotlinVisibilities(File("target/cases-declarations.json")) - val baseClassPath = File("target/test-classes/cases").absoluteFile + val visibilities = readKotlinVisibilities(File("build/cases-declarations.json")) + val baseClassPath = File("build/classes/test/cases").absoluteFile val baseOutputPath = File("src/test/kotlin/cases") } diff --git a/libraries/tools/binary-compatibility-validator/src/test/kotlin/org.jetbrains.kotlin.tools.tests/RuntimePublicAPITest.kt b/libraries/tools/binary-compatibility-validator/src/test/kotlin/org.jetbrains.kotlin.tools.tests/RuntimePublicAPITest.kt index 370c34e07e8..030b94ced82 100644 --- a/libraries/tools/binary-compatibility-validator/src/test/kotlin/org.jetbrains.kotlin.tools.tests/RuntimePublicAPITest.kt +++ b/libraries/tools/binary-compatibility-validator/src/test/kotlin/org.jetbrains.kotlin.tools.tests/RuntimePublicAPITest.kt @@ -30,15 +30,16 @@ class RuntimePublicAPITest { val testName = TestName() @Test fun kotlinRuntime() { - snapshotAPIAndCompare("../../tools/runtime/target", "kotlin-runtime", listOf("runtime-declarations.json"), listOf("kotlin.jvm.internal")) + snapshotAPIAndCompare("../../tools/runtime/build/libs", "kotlin-runtime", listOf("../runtime-declarations.json"), listOf("kotlin.jvm.internal")) } + //@Ignore("No more original stdlib jar is produced") @Test fun kotlinStdlib() { - snapshotAPIAndCompare("../../stdlib/target", "original-kotlin-stdlib", listOf("stdlib-declarations.json")) + snapshotAPIAndCompare("../../stdlib/build/libs", "original-kotlin-stdlib", listOf("../stdlib-declarations.json")) } @Test fun kotlinStdlibRuntimeMerged() { - snapshotAPIAndCompare("../../stdlib/target", "kotlin-stdlib", listOf("stdlib-declarations.json", "../../tools/runtime/target/runtime-declarations.json"), listOf("kotlin.jvm.internal")) + snapshotAPIAndCompare("../../stdlib/build/libs", "kotlin-stdlib", listOf("../stdlib-declarations.json", "../runtime-declarations.json"), listOf("kotlin.jvm.internal")) } /*