Add support for running kotlin tests on kotlin dev version
Bug: 200582899
Change-Id: If9cdcac5751ca275432d7734b669a6b7f3e44902
diff --git a/src/test/java/com/android/tools/r8/KotlinCompilerTool.java b/src/test/java/com/android/tools/r8/KotlinCompilerTool.java
index 9312cf8..94ceeb4 100644
--- a/src/test/java/com/android/tools/r8/KotlinCompilerTool.java
+++ b/src/test/java/com/android/tools/r8/KotlinCompilerTool.java
@@ -60,7 +60,8 @@
public enum KotlinCompilerVersion implements Ordered<KotlinCompilerVersion> {
KOTLINC_1_3_72("kotlin-compiler-1.3.72"),
KOTLINC_1_4_20("kotlin-compiler-1.4.20"),
- KOTLINC_1_5_0("kotlin-compiler-1.5.0");
+ KOTLINC_1_5_0("kotlin-compiler-1.5.0"),
+ KOTLIN_DEV("kotlin-compiler-dev");
public static final KotlinCompilerVersion MIN_SUPPORTED_VERSION = KOTLINC_1_4_20;
public static final KotlinCompilerVersion MAX_SUPPORTED_VERSION = KOTLINC_1_5_0;
diff --git a/src/test/java/com/android/tools/r8/KotlinTestParameters.java b/src/test/java/com/android/tools/r8/KotlinTestParameters.java
index 4869735..534a42c 100644
--- a/src/test/java/com/android/tools/r8/KotlinTestParameters.java
+++ b/src/test/java/com/android/tools/r8/KotlinTestParameters.java
@@ -6,9 +6,12 @@
import com.android.tools.r8.KotlinCompilerTool.KotlinCompiler;
import com.android.tools.r8.KotlinCompilerTool.KotlinCompilerVersion;
import com.android.tools.r8.KotlinCompilerTool.KotlinTargetVersion;
+import com.google.common.collect.ImmutableList;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.List;
import java.util.function.Predicate;
+import java.util.stream.Collectors;
public class KotlinTestParameters {
@@ -56,6 +59,8 @@
private Predicate<KotlinCompilerVersion> compilerFilter = c -> false;
private Predicate<KotlinTargetVersion> targetVersionFilter = t -> false;
+ private boolean withDevCompiler =
+ System.getProperty("com.android.tools.r8.kotlincompilerdev") != null;
private Builder() {}
@@ -83,6 +88,11 @@
return this;
}
+ public Builder withDevCompiler() {
+ this.withDevCompiler = true;
+ return this;
+ }
+
public Builder withAllTargetVersions() {
withTargetVersionFilter(t -> t != KotlinTargetVersion.NONE);
return this;
@@ -105,15 +115,24 @@
public KotlinTestParametersCollection build() {
List<KotlinTestParameters> testParameters = new ArrayList<>();
int index = 0;
- for (KotlinCompilerVersion kotlinVersion : KotlinCompilerVersion.values()) {
+ List<KotlinCompilerVersion> compilerVersions;
+ if (withDevCompiler) {
+ compilerVersions = ImmutableList.of(KotlinCompilerVersion.KOTLIN_DEV);
+ } else {
+ compilerVersions =
+ Arrays.stream(KotlinCompilerVersion.values())
+ .filter(c -> c != KotlinCompilerVersion.KOTLIN_DEV && compilerFilter.test(c))
+ .collect(Collectors.toList());
+ }
+ for (KotlinCompilerVersion kotlinVersion : compilerVersions) {
for (KotlinTargetVersion targetVersion : KotlinTargetVersion.values()) {
// KotlinTargetVersion java 6 is deprecated from kotlinc 1.5 and forward, no need to run
// tests on that target.
if (targetVersion == KotlinTargetVersion.JAVA_6
- && kotlinVersion.equals(KotlinCompilerVersion.KOTLINC_1_5_0)) {
+ && kotlinVersion.isGreaterThanOrEqualTo(KotlinCompilerVersion.KOTLINC_1_5_0)) {
continue;
}
- if (compilerFilter.test(kotlinVersion) && targetVersionFilter.test(targetVersion)) {
+ if (targetVersionFilter.test(targetVersion)) {
testParameters.add(
new KotlinTestParameters(
new KotlinCompiler(kotlinVersion), targetVersion, index++));
diff --git a/third_party/kotlin/kotlin-compiler-dev.tar.gz.sha1 b/third_party/kotlin/kotlin-compiler-dev.tar.gz.sha1
index 9ff5928..9aefa3f 100644
--- a/third_party/kotlin/kotlin-compiler-dev.tar.gz.sha1
+++ b/third_party/kotlin/kotlin-compiler-dev.tar.gz.sha1
@@ -1 +1 @@
-853bdb3640fd85a859d9baf3a972f71b037c5f8c
\ No newline at end of file
+d78e3bea626ae7f07cce1160a0af5c5c6812468e
\ No newline at end of file
diff --git a/tools/test.py b/tools/test.py
index c278251..2cab0e1 100755
--- a/tools/test.py
+++ b/tools/test.py
@@ -188,7 +188,7 @@
'--stacktrace',
help='Pass --stacktrace to the gradle run',
default=False, action='store_true')
- result.add_option('--kotlin-dev-compiler',
+ result.add_option('--kotlin-compiler-dev',
help='Specify to download a kotlin dev compiler and run '
'tests with that',
default=False, action='store_true')
@@ -281,6 +281,7 @@
if options.print_obfuscated_stacktraces:
gradle_args.append('-Pprint_obfuscated_stacktraces')
if options.kotlin_dev_compiler:
+ gradle_args.append('-Dcom.android.tools.r8.kotlincompilerdev=1')
download_kotlin_dev.download_newest()
if os.name == 'nt':
# temporary hack