Move runtime file path computation logic into DesugarRuleBuilder. - Dedupe and unify file path calculations. PiperOrigin-RevId: 293053363
diff --git a/src/test/java/com/google/devtools/build/android/desugar/nest/ClassFileFormatTest.java b/src/test/java/com/google/devtools/build/android/desugar/nest/ClassFileFormatTest.java index 07701c6..78f0123 100644 --- a/src/test/java/com/google/devtools/build/android/desugar/nest/ClassFileFormatTest.java +++ b/src/test/java/com/google/devtools/build/android/desugar/nest/ClassFileFormatTest.java
@@ -18,15 +18,12 @@ import static com.google.common.truth.Truth.assertThat; -import com.google.common.base.Splitter; import com.google.devtools.build.android.desugar.testing.junit.AsmNode; import com.google.devtools.build.android.desugar.testing.junit.DesugarRule; import com.google.devtools.build.android.desugar.testing.junit.DesugarRunner; import com.google.devtools.build.android.desugar.testing.junit.JdkSuppress; import com.google.devtools.build.android.desugar.testing.junit.JdkVersion; import java.lang.invoke.MethodHandles; -import java.nio.file.Path; -import java.nio.file.Paths; import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; @@ -46,19 +43,13 @@ @SuppressWarnings("SplitterToStream") // Pending bazel guava update. public final DesugarRule desugarRule = DesugarRule.builder(this, lookup) - .addSourceInputs(getInputSourceFilesFromJvmOption("input_srcs")) + .addSourceInputsFromJvmFlag("input_srcs") .addJavacOptions("-source 11", "-target 11") .setWorkingJavaPackage( "com.google.devtools.build.android.desugar.nest.testsrc.simpleunit.classfileformat") .addCommandOptions("desugar_nest_based_private_access", "true") .build(); - private static Path[] getInputSourceFilesFromJvmOption(String jvmOptionKey) { - return Splitter.on(" ").trimResults().splitToList(System.getProperty(jvmOptionKey)).stream() - .map(Paths::get) - .toArray(Path[]::new); - } - @Test public void classFileMajorVersions( @AsmNode(className = "NestOuterInterfaceA", round = 0) ClassNode beforeDesugarClassNode,
diff --git a/src/test/java/com/google/devtools/build/android/desugar/nest/NestAnalyzerTest.java b/src/test/java/com/google/devtools/build/android/desugar/nest/NestAnalyzerTest.java index 980992c..b240c67 100644 --- a/src/test/java/com/google/devtools/build/android/desugar/nest/NestAnalyzerTest.java +++ b/src/test/java/com/google/devtools/build/android/desugar/nest/NestAnalyzerTest.java
@@ -30,7 +30,6 @@ import java.io.IOException; import java.io.InputStream; import java.lang.invoke.MethodHandles; -import java.nio.file.Paths; import java.util.jar.JarEntry; import java.util.jar.JarFile; import org.junit.Rule; @@ -45,7 +44,7 @@ @Rule public final DesugarRule desugarRule = DesugarRule.builder(this, MethodHandles.lookup()) - .addSourceInputs(Paths.get(System.getProperty("input_srcs"))) + .addSourceInputsFromJvmFlag("input_srcs") .addJavacOptions("-source 11", "-target 11") .setWorkingJavaPackage( "com.google.devtools.build.android.desugar.nest.testsrc.nestanalyzer")
diff --git a/src/test/java/com/google/devtools/build/android/desugar/nest/NestDesugaringComplexCasesTest.java b/src/test/java/com/google/devtools/build/android/desugar/nest/NestDesugaringComplexCasesTest.java index 62b0adc..7b33a25 100644 --- a/src/test/java/com/google/devtools/build/android/desugar/nest/NestDesugaringComplexCasesTest.java +++ b/src/test/java/com/google/devtools/build/android/desugar/nest/NestDesugaringComplexCasesTest.java
@@ -18,7 +18,6 @@ import static com.google.common.truth.Truth.assertThat; -import com.google.common.base.Splitter; import com.google.devtools.build.android.desugar.testing.junit.AsmNode; import com.google.devtools.build.android.desugar.testing.junit.DesugarRule; import com.google.devtools.build.android.desugar.testing.junit.DesugarRunner; @@ -27,8 +26,6 @@ import com.google.devtools.build.android.desugar.testing.junit.RuntimeMethodHandle; import java.lang.invoke.MethodHandle; import java.lang.invoke.MethodHandles; -import java.nio.file.Path; -import java.nio.file.Paths; import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; @@ -47,10 +44,7 @@ @Rule public final DesugarRule desugarRule = DesugarRule.builder(this, lookup) - .addSourceInputs( - Splitter.on(" ").trimResults().splitToList(System.getProperty("input_srcs")).stream() - .map(Paths::get) - .toArray(Path[]::new)) + .addSourceInputsFromJvmFlag("input_srcs") .addJavacOptions("-source 11", "-target 11") .setWorkingJavaPackage( "com.google.devtools.build.android.desugar.nest.testsrc.complexcase")
diff --git a/src/test/java/com/google/devtools/build/android/desugar/nest/NestDesugaringConstructorAccessTest.java b/src/test/java/com/google/devtools/build/android/desugar/nest/NestDesugaringConstructorAccessTest.java index 304ac73..0e08492 100644 --- a/src/test/java/com/google/devtools/build/android/desugar/nest/NestDesugaringConstructorAccessTest.java +++ b/src/test/java/com/google/devtools/build/android/desugar/nest/NestDesugaringConstructorAccessTest.java
@@ -18,7 +18,6 @@ import static com.google.common.truth.Truth.assertThat; -import com.google.common.base.Splitter; import com.google.devtools.build.android.desugar.testing.junit.AsmNode; import com.google.devtools.build.android.desugar.testing.junit.DesugarRule; import com.google.devtools.build.android.desugar.testing.junit.DesugarRunner; @@ -31,8 +30,6 @@ import java.lang.invoke.MethodHandles.Lookup; import java.lang.reflect.Constructor; import java.lang.reflect.Modifier; -import java.nio.file.Path; -import java.nio.file.Paths; import javax.inject.Inject; import org.junit.Rule; import org.junit.Test; @@ -50,19 +47,13 @@ @Rule public final DesugarRule desugarRule = DesugarRule.builder(this, lookup) - .addSourceInputs(getInputSourceFilesFromJvmOption("input_srcs")) + .addSourceInputsFromJvmFlag("input_srcs") .addJavacOptions("-source 11", "-target 11") .setWorkingJavaPackage( "com.google.devtools.build.android.desugar.nest.testsrc.simpleunit.constructor") .addCommandOptions("desugar_nest_based_private_access", "true") .build(); - private static Path[] getInputSourceFilesFromJvmOption(String jvmOptionKey) { - return Splitter.on(" ").trimResults().splitToList(System.getProperty(jvmOptionKey)).stream() - .map(Paths::get) - .toArray(Path[]::new); - } - @Inject @DynamicClassLiteral("ConstructorNest$ConstructorServiceMate") private Class<?> mate;
diff --git a/src/test/java/com/google/devtools/build/android/desugar/nest/NestDesugaringFieldAccessTest.java b/src/test/java/com/google/devtools/build/android/desugar/nest/NestDesugaringFieldAccessTest.java index bd61940..44010b5 100644 --- a/src/test/java/com/google/devtools/build/android/desugar/nest/NestDesugaringFieldAccessTest.java +++ b/src/test/java/com/google/devtools/build/android/desugar/nest/NestDesugaringFieldAccessTest.java
@@ -29,7 +29,6 @@ import java.lang.invoke.MethodHandles; import java.lang.reflect.Field; import java.lang.reflect.Method; -import java.nio.file.Paths; import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; @@ -51,7 +50,7 @@ @Rule public final DesugarRule desugarRule = DesugarRule.builder(this, MethodHandles.lookup()) - .addSourceInputs(Paths.get(System.getProperty("input_srcs"))) + .addSourceInputsFromJvmFlag("input_srcs") .setWorkingJavaPackage( "com.google.devtools.build.android.desugar.nest.testsrc.simpleunit.field") .addJavacOptions("-source 11", "-target 11")
diff --git a/src/test/java/com/google/devtools/build/android/desugar/nest/NestDesugaringInterfaceMethodAccessTest.java b/src/test/java/com/google/devtools/build/android/desugar/nest/NestDesugaringInterfaceMethodAccessTest.java index 48b4618..7307b89 100644 --- a/src/test/java/com/google/devtools/build/android/desugar/nest/NestDesugaringInterfaceMethodAccessTest.java +++ b/src/test/java/com/google/devtools/build/android/desugar/nest/NestDesugaringInterfaceMethodAccessTest.java
@@ -29,7 +29,6 @@ import java.lang.invoke.MethodHandle; import java.lang.invoke.MethodHandles; import java.lang.reflect.Method; -import java.nio.file.Paths; import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; @@ -48,7 +47,7 @@ @Rule public final DesugarRule desugarRule = DesugarRule.builder(this, MethodHandles.lookup()) - .addSourceInputs(Paths.get(System.getProperty("input_srcs"))) + .addSourceInputsFromJvmFlag("input_srcs") .addJavacOptions("-source 11", "-target 11") .setWorkingJavaPackage( "com.google.devtools.build.android.desugar.nest.testsrc.simpleunit.interfacemethod")
diff --git a/src/test/java/com/google/devtools/build/android/desugar/nest/NestDesugaringMethodAccessTest.java b/src/test/java/com/google/devtools/build/android/desugar/nest/NestDesugaringMethodAccessTest.java index 3994726..5411b3d 100644 --- a/src/test/java/com/google/devtools/build/android/desugar/nest/NestDesugaringMethodAccessTest.java +++ b/src/test/java/com/google/devtools/build/android/desugar/nest/NestDesugaringMethodAccessTest.java
@@ -29,7 +29,6 @@ import java.lang.invoke.MethodHandle; import java.lang.invoke.MethodHandles; import java.lang.reflect.Method; -import java.nio.file.Paths; import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; @@ -48,7 +47,7 @@ @Rule public final DesugarRule desugarRule = DesugarRule.builder(this, MethodHandles.lookup()) - .addSourceInputs(Paths.get(System.getProperty("input_srcs"))) + .addSourceInputsFromJvmFlag("input_srcs") .addJavacOptions("-source 11", "-target 11") .setWorkingJavaPackage( "com.google.devtools.build.android.desugar.nest.testsrc.simpleunit.method") @@ -77,7 +76,6 @@ } @Test - public void inputClassFileMajorVersions( @AsmNode(className = "MethodNest", round = 0) ClassNode beforeDesugarClassNode, @AsmNode(className = "MethodNest", round = 1) ClassNode afterDesugarClassNode) {
diff --git a/src/test/java/com/google/devtools/build/android/desugar/testing/junit/DesugarRuleTest.java b/src/test/java/com/google/devtools/build/android/desugar/testing/junit/DesugarRuleTest.java index 920a3cf..7f4355a 100644 --- a/src/test/java/com/google/devtools/build/android/desugar/testing/junit/DesugarRuleTest.java +++ b/src/test/java/com/google/devtools/build/android/desugar/testing/junit/DesugarRuleTest.java
@@ -43,7 +43,7 @@ public final DesugarRule desugarRule = DesugarRule.builder(this, MethodHandles.lookup()) .addInputs(Paths.get(System.getProperty("input_jar"))) - .addSourceInputs(Paths.get(System.getProperty("input_srcs"))) + .addSourceInputsFromJvmFlag("input_srcs") .addJavacOptions("-source 11", "-target 11") .enableIterativeTransformation(3) .setWorkingJavaPackage("com.google.devtools.build.android.desugar.testing.junit")
diff --git a/src/tools/android/java/com/google/devtools/build/android/desugar/testing/junit/DesugarRuleBuilder.java b/src/tools/android/java/com/google/devtools/build/android/desugar/testing/junit/DesugarRuleBuilder.java index 5c37c33..e7005c7 100644 --- a/src/tools/android/java/com/google/devtools/build/android/desugar/testing/junit/DesugarRuleBuilder.java +++ b/src/tools/android/java/com/google/devtools/build/android/desugar/testing/junit/DesugarRuleBuilder.java
@@ -16,6 +16,7 @@ package com.google.devtools.build.android.desugar.testing.junit; +import com.google.common.base.Splitter; import com.google.common.base.Strings; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableListMultimap; @@ -152,6 +153,26 @@ } /** + * Add JVM-flag-specified Java source files subject to be compiled during test execution. It is + * expected the value associated with `jvmFlagKey` to be a space-separated Strings. E.g. on the + * command line you would set it like: -Dinput_srcs="path1 path2 path3", and use <code> + * .addSourceInputsFromJvmFlag("input_srcs").</code> in your test class. + */ + public DesugarRuleBuilder addSourceInputsFromJvmFlag(String jvmFlagKey) { + return addSourceInputs(getRuntimePathsFromJvmFlag(jvmFlagKey)); + } + + /** + * A helper method that reads file paths into an array from the JVM flag value associated with + * {@param jvmFlagKey}. + */ + private static Path[] getRuntimePathsFromJvmFlag(String jvmFlagKey) { + return Splitter.on(" ").trimResults().splitToList(System.getProperty(jvmFlagKey)).stream() + .map(Paths::get) + .toArray(Path[]::new); + } + + /** * Add javac options used for compilation, with the same support of `javacopts` attribute in * java_binary rule. */