From 4302cbd8164e62262aff4c4a35b1340ac371e38b Mon Sep 17 00:00:00 2001 From: Nikita Skvortsov Date: Tue, 13 Aug 2013 17:25:48 +0400 Subject: [PATCH 1/2] minor fix improvements and integration test --- .../kotlin/gradle/KotlinAndroidGradleIT.kt | 36 +++++++++++++++++++ .../gradle/test/androidalfa/MainActivity2.kt | 8 +++++ 2 files changed, 44 insertions(+) diff --git a/libraries/tools/kotlin-gradle-plugin/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinAndroidGradleIT.kt b/libraries/tools/kotlin-gradle-plugin/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinAndroidGradleIT.kt index 22965071ae1..58d571833ab 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinAndroidGradleIT.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinAndroidGradleIT.kt @@ -104,6 +104,42 @@ class KotlinAndroidGradleIT { assertTrue(up2dateBuildOutput.contains(":compileFlavor2Jnidebug UP-TO-DATE"), "Should contain ':compileFlavor2Jnidebug UP-TO-DATE'") assertTrue(up2dateBuildOutput.contains(":compileFlavor1Release UP-TO-DATE"), "Should contain ':compileFlavor1Release UP-TO-DATE'") assertTrue(up2dateBuildOutput.contains(":compileFlavor2Release UP-TO-DATE"), "Should contain ':compileFlavor2Release UP-TO-DATE'") + + // Run the build third time, re-run tasks + + val rebuilder = ProcessBuilder(cmd + "--rerun-tasks") + rebuilder.directory(projectDir) + rebuilder.redirectErrorStream(true) + val reprocess = rebuilder.start() + + val rescanner = Scanner(reprocess.getInputStream()!!) + val retext = StringBuilder() + while (rescanner.hasNextLine()) { + retext append rescanner.nextLine() + retext append "\n" + } + rescanner.close() + + val reresult = reprocess.waitFor() + val rebuildOutput = retext.toString() + + println(rebuildOutput) + + assertEquals(reresult, 0) + assertTrue(rebuildOutput.contains(":compileFlavor1DebugKotlin"), "Should contain ':compileFlavor1DebugKotlin'") + assertTrue(rebuildOutput.contains(":compileFlavor2DebugKotlin"), "Should contain ':compileFlavor2DebugKotlin'") + assertTrue(rebuildOutput.contains(":compileFlavor1JnidebugKotlin"), "Should contain ':compileFlavor1JnidebugKotlin'") + assertTrue(rebuildOutput.contains(":compileFlavor1ReleaseKotlin"), "Should contain ':compileFlavor1ReleaseKotlin'") + assertTrue(rebuildOutput.contains(":compileFlavor2JnidebugKotlin"), "Should contain ':compileFlavor2JnidebugKotlin'") + assertTrue(rebuildOutput.contains(":compileFlavor2ReleaseKotlin"), "Should contain ':compileFlavor2ReleaseKotlin'") + assertTrue(rebuildOutput.contains(":compileFlavor1Debug"), "Should contain ':compileFlavor1Debug'") + assertTrue(rebuildOutput.contains(":compileFlavor2Debug"), "Should contain ':compileFlavor2Debug'") + assertTrue(rebuildOutput.contains(":compileFlavor1Jnidebug"), "Should contain ':compileFlavor1Jnidebug'") + assertTrue(rebuildOutput.contains(":compileFlavor2Jnidebug"), "Should contain ':compileFlavor2Jnidebug'") + assertTrue(rebuildOutput.contains(":compileFlavor1Release"), "Should contain ':compileFlavor1Release'") + assertTrue(rebuildOutput.contains(":compileFlavor2Release"), "Should contain ':compileFlavor2Release'") + + } diff --git a/libraries/tools/kotlin-gradle-plugin/src/test/resources/testProject/AndroidAlfaProject/AndroidAlfa/src/main/kotlin/org/jetbrains/kotlin/gradle/test/androidalfa/MainActivity2.kt b/libraries/tools/kotlin-gradle-plugin/src/test/resources/testProject/AndroidAlfaProject/AndroidAlfa/src/main/kotlin/org/jetbrains/kotlin/gradle/test/androidalfa/MainActivity2.kt index fbc8bf81295..c9d1191e16f 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/test/resources/testProject/AndroidAlfaProject/AndroidAlfa/src/main/kotlin/org/jetbrains/kotlin/gradle/test/androidalfa/MainActivity2.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/test/resources/testProject/AndroidAlfaProject/AndroidAlfa/src/main/kotlin/org/jetbrains/kotlin/gradle/test/androidalfa/MainActivity2.kt @@ -31,3 +31,11 @@ open class MainActivity2: Activity() { } } + +fun foo() { + bar() +} + +fun bar() { + +} From f99f4bcf22719c7f3bebd4fc4ef18386cab45860 Mon Sep 17 00:00:00 2001 From: Nikita Skvortsov Date: Wed, 14 Aug 2013 14:01:24 +0400 Subject: [PATCH 2/2] fix to handle empty kotlin compilation output --- .../main/kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/libraries/tools/kotlin-gradle-plugin-core/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt b/libraries/tools/kotlin-gradle-plugin-core/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt index cffde83fbfa..abdc2b7435a 100644 --- a/libraries/tools/kotlin-gradle-plugin-core/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt +++ b/libraries/tools/kotlin-gradle-plugin-core/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt @@ -122,7 +122,10 @@ public open class KotlinCompile(): AbstractCompile() { } // Copy kotlin classes to all classes directory - FileUtils.copyDirectory(kotlinDestinationDir, getDestinationDir()) + val outputDirFile = File(args.outputDir!!) + if (outputDirFile.exists()) { + FileUtils.copyDirectory(outputDirFile, getDestinationDir()) + } } fun getAnnotations(): Collection {