diff options
author | 2017-01-05 23:56:06 +0000 | |
---|---|---|
committer | 2017-01-06 01:22:16 +0000 | |
commit | 1ad8a901567b91d3d3d03e945a0fcd85e859621f (patch) | |
tree | 40a2c53a1f93b39a680d7dd9fa1f7b026eb87712 /src/java_tools/buildjar/javatests/com/google/devtools/build | |
parent | 2a561da4e966d0fe8be4d98f1700f6b286e97ed2 (diff) |
Use the new turbine implementation with Bazel
This improves performance with --java_header_compilation enabled compared to
javac-turbine, and lays groundwork for some future optimizations.
--
PiperOrigin-RevId: 143719507
MOS_MIGRATED_REVID=143719507
Diffstat (limited to 'src/java_tools/buildjar/javatests/com/google/devtools/build')
4 files changed, 15 insertions, 276 deletions
diff --git a/src/java_tools/buildjar/javatests/com/google/devtools/build/java/turbine/BUILD b/src/java_tools/buildjar/javatests/com/google/devtools/build/java/turbine/BUILD index 32c3611eeb..48379e30d9 100644 --- a/src/java_tools/buildjar/javatests/com/google/devtools/build/java/turbine/BUILD +++ b/src/java_tools/buildjar/javatests/com/google/devtools/build/java/turbine/BUILD @@ -10,17 +10,3 @@ package_group( ) package(default_visibility = [":packages"]) - -java_test( - name = "TurbineOptionsTest", - srcs = ["TurbineOptionsTest.java"], - tags = ["jdk8"], - deps = [ - "//src/java_tools/buildjar/java/com/google/devtools/build/buildjar:JarOwner", - "//src/java_tools/buildjar/java/com/google/devtools/build/java/turbine:turbine_options", - "//src/java_tools/buildjar/java/com/google/devtools/build/java/turbine:turbine_options_parser", - "//third_party:guava", - "//third_party:junit4", - "//third_party:truth", - ], -) diff --git a/src/java_tools/buildjar/javatests/com/google/devtools/build/java/turbine/TurbineOptionsTest.java b/src/java_tools/buildjar/javatests/com/google/devtools/build/java/turbine/TurbineOptionsTest.java deleted file mode 100644 index ef2fa0e417..0000000000 --- a/src/java_tools/buildjar/javatests/com/google/devtools/build/java/turbine/TurbineOptionsTest.java +++ /dev/null @@ -1,246 +0,0 @@ -// Copyright 2016 The Bazel Authors. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package com.google.devtools.build.java.turbine; - -import static com.google.common.truth.Truth.assertThat; -import static org.junit.Assert.fail; - -import com.google.devtools.build.buildjar.JarOwner; -import com.google.common.collect.ImmutableList; -import com.google.common.collect.ImmutableMap; -import com.google.common.collect.Iterables; - -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.TemporaryFolder; -import org.junit.runner.RunWith; -import org.junit.runners.JUnit4; - -import java.nio.charset.StandardCharsets; -import java.nio.file.Files; -import java.nio.file.Path; -import java.util.Arrays; - -@RunWith(JUnit4.class) -public class TurbineOptionsTest { - - @Rule public final TemporaryFolder tmpFolder = new TemporaryFolder(); - - static final ImmutableList<String> BASE_ARGS = - ImmutableList.of( - "--output", - "out.jar", - "--temp_dir", - "_tmp", - "--target_label", - "//java/com/google/test", - "--rule_kind", - "java_library"); - - @Test - public void exhaustiveArgs() throws Exception { - String[] lines = { - "--output", - "out.jar", - "--source_jars", - "sources1.srcjar", - "sources2.srcjar", - "--temp_dir", - "_tmp", - "--processors", - "com.foo.MyProcessor", - "com.foo.OtherProcessor", - "--processorpath", - "libproc1.jar:libproc2.jar", - "--classpath", - "lib1.jar:lib2.jar", - "--bootclasspath", - "rt.jar:zipfs.jar", - "--javacopts", - "-source", - "8", - "-target", - "8", - "--sources", - "Source1.java", - "Source2.java", - "--output_deps", - "out.jdeps", - "--target_label", - "//java/com/google/test", - "--rule_kind", - "java_library", - }; - - TurbineOptions options = - TurbineOptionsParser.parse(Iterables.concat(BASE_ARGS, Arrays.asList(lines))); - - assertThat(options.outputFile()).isEqualTo("out.jar"); - assertThat(options.sourceJars()) - .containsExactly("sources1.srcjar", "sources2.srcjar") - .inOrder(); - assertThat(options.tempDir()).isEqualTo("_tmp"); - assertThat(options.processors()) - .containsExactly("com.foo.MyProcessor", "com.foo.OtherProcessor") - .inOrder(); - assertThat(options.processorPath()).containsExactly("libproc1.jar", "libproc2.jar").inOrder(); - assertThat(options.classPath()).containsExactly("lib1.jar", "lib2.jar").inOrder(); - assertThat(options.bootClassPath()).containsExactly("rt.jar", "zipfs.jar").inOrder(); - assertThat(options.javacOpts()).containsExactly("-source", "8", "-target", "8").inOrder(); - assertThat(options.sources()).containsExactly("Source1.java", "Source2.java"); - assertThat(options.outputDeps()).hasValue("out.jdeps"); - assertThat(options.targetLabel()).hasValue("//java/com/google/test"); - assertThat(options.ruleKind()).hasValue("java_library"); - } - - @Test - public void strictJavaDepsArgs() throws Exception { - String[] lines = { - "--strict_java_deps", - "OFF", - "--direct_dependency", - "blaze-out/foo/libbar.jar", - "//foo/bar", - "--indirect_dependency", - "blaze-out/foo/libbaz1.jar", - "//foo/baz1", - "--indirect_dependency", - "blaze-out/foo/libbaz2.jar", - "//foo/baz2", - "--deps_artifacts", - "foo.jdeps", - "bar.jdeps", - "", - }; - - TurbineOptions options = - TurbineOptionsParser.parse(Iterables.concat(BASE_ARGS, Arrays.asList(lines))); - - assertThat(options.targetLabel()).hasValue("//java/com/google/test"); - assertThat(options.directJarsToTargets()) - .containsExactlyEntriesIn( - ImmutableMap.of("blaze-out/foo/libbar.jar", JarOwner.create("//foo/bar"))); - assertThat(options.indirectJarsToTargets()) - .containsExactlyEntriesIn( - ImmutableMap.of( - "blaze-out/foo/libbaz1.jar", JarOwner.create("//foo/baz1"), - "blaze-out/foo/libbaz2.jar", JarOwner.create("//foo/baz2"))); - assertThat(options.depsArtifacts()).containsExactly("foo.jdeps", "bar.jdeps"); - } - - @Test - public void classpathArgs() throws Exception { - String[] lines = { - "--classpath", - "liba.jar:libb.jar:libc.jar", - "--processorpath", - "libpa.jar:libpb.jar:libpc.jar", - }; - - TurbineOptions options = - TurbineOptionsParser.parse(Iterables.concat(BASE_ARGS, Arrays.asList(lines))); - - assertThat(options.classPath()).containsExactly("liba.jar", "libb.jar", "libc.jar").inOrder(); - assertThat(options.processorPath()) - .containsExactly("libpa.jar", "libpb.jar", "libpc.jar") - .inOrder(); - } - - @Test - public void repeatedClasspath() throws Exception { - String[] lines = { - "--classpath", - "liba.jar", - "libb.jar:libc.jar", - "--processorpath", - "libpa.jar", - "libpb.jar", - "libpc.jar", - }; - - TurbineOptions options = - TurbineOptionsParser.parse(Iterables.concat(BASE_ARGS, Arrays.asList(lines))); - - assertThat(options.classPath()).containsExactly("liba.jar", "libb.jar", "libc.jar").inOrder(); - assertThat(options.processorPath()) - .containsExactly("libpa.jar", "libpb.jar", "libpc.jar") - .inOrder(); - } - - @Test - public void optionalTargetLabelAndRuleKind() throws Exception { - String[] lines = { - "--output", - "out.jar", - "--temp_dir", - "_tmp", - "--classpath", - "liba.jar:libb.jar:libc.jar", - "--processorpath", - "libpa.jar:libpb.jar:libpc.jar", - }; - - TurbineOptions options = TurbineOptionsParser.parse(Arrays.asList(lines)); - - assertThat(options.ruleKind()).isAbsent(); - assertThat(options.targetLabel()).isAbsent(); - } - - - @Test - public void paramsFile() throws Exception { - Iterable<String> paramsArgs = - Iterables.concat(BASE_ARGS, Arrays.asList("--javacopts", "-source", "8", "-target", "8")); - Path params = tmpFolder.newFile("params.txt").toPath(); - Files.write(params, paramsArgs, StandardCharsets.UTF_8); - - // @ is a prefix for external repository targets, and the prefix for params files. Targets - // are disambiguated by prepending an extra @. - String[] lines = { - "@" + params.toAbsolutePath(), "--target_label", "//custom/label", - }; - - TurbineOptions options = TurbineOptionsParser.parse(Arrays.asList(lines)); - - // assert that options were read from params file - assertThat(options.javacOpts()).containsExactly("-source", "8", "-target", "8").inOrder(); - // ... and directly from the command line - assertThat(options.targetLabel()).hasValue("//custom/label"); - } - - @Test - public void escapedExternalRepositoryLabel() throws Exception { - // @ is a prefix for external repository targets, and the prefix for params files. Targets - // are disambiguated by prepending an extra @. - String[] lines = { - "--target_label", "@@other-repo//foo:local-jam", - }; - - TurbineOptions options = - TurbineOptionsParser.parse(Iterables.concat(BASE_ARGS, Arrays.asList(lines))); - - assertThat(options.targetLabel()).hasValue("@@other-repo//foo:local-jam"); - } - - @Test - public void failIfMissingExpectedArgs() throws Exception { - try { - TurbineOptions.builder().build(); - fail(); - } catch (NullPointerException e) { - assertThat(e).hasMessage("output must not be null"); - } - } -} diff --git a/src/java_tools/buildjar/javatests/com/google/devtools/build/java/turbine/javac/BUILD b/src/java_tools/buildjar/javatests/com/google/devtools/build/java/turbine/javac/BUILD index 9e2cd2be1a..6ee685c078 100644 --- a/src/java_tools/buildjar/javatests/com/google/devtools/build/java/turbine/javac/BUILD +++ b/src/java_tools/buildjar/javatests/com/google/devtools/build/java/turbine/javac/BUILD @@ -17,7 +17,6 @@ java_test( tags = ["jdk8"], deps = [ "//src/java_tools/buildjar/java/com/google/devtools/build/buildjar:JarOwner", - "//src/java_tools/buildjar/java/com/google/devtools/build/java/turbine:turbine_options", "//src/java_tools/buildjar/java/com/google/devtools/build/java/turbine/javac:javac_turbine", "//src/main/protobuf:deps_java_proto", "//third_party:asm", @@ -25,6 +24,7 @@ java_test( "//third_party:guava", "//third_party:junit4", "//third_party:truth", + "//third_party:turbine", "//third_party/java/jdk/langtools:javac", ], ) diff --git a/src/java_tools/buildjar/javatests/com/google/devtools/build/java/turbine/javac/JavacTurbineTest.java b/src/java_tools/buildjar/javatests/com/google/devtools/build/java/turbine/javac/JavacTurbineTest.java index 7a248c4cb8..a6e9c5f841 100644 --- a/src/java_tools/buildjar/javatests/com/google/devtools/build/java/turbine/javac/JavacTurbineTest.java +++ b/src/java_tools/buildjar/javatests/com/google/devtools/build/java/turbine/javac/JavacTurbineTest.java @@ -24,11 +24,10 @@ import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.Iterables; import com.google.common.io.ByteStreams; -import com.google.devtools.build.buildjar.JarOwner; -import com.google.devtools.build.java.turbine.TurbineOptions; import com.google.devtools.build.java.turbine.javac.JavacTurbine.Result; import com.google.devtools.build.lib.view.proto.Deps; import com.google.devtools.build.lib.view.proto.Deps.Dependency; +import com.google.turbine.options.TurbineOptions; import com.sun.source.tree.LiteralTree; import com.sun.source.util.JavacTask; import com.sun.source.util.TaskEvent; @@ -388,9 +387,9 @@ public class JavacTurbineTest { optionsBuilder.addClassPathEntries( ImmutableList.of(libA.toString(), libB.toString(), libC.toString())); optionsBuilder.addAllDepsArtifacts(ImmutableList.of(depsA.toString())); - optionsBuilder.addDirectJarToTarget(libA.toString(), JarOwner.create("//lib:a")); - optionsBuilder.addDirectJarToTarget(libB.toString(), JarOwner.create("//lib:b")); - optionsBuilder.addIndirectJarToTarget(libC.toString(), JarOwner.create("//lib:c")); + optionsBuilder.addDirectJarToTarget(libA.toString(), "//lib:a"); + optionsBuilder.addDirectJarToTarget(libB.toString(), "//lib:b"); + optionsBuilder.addIndirectJarToTarget(libC.toString(), "//lib:c"); optionsBuilder.setTargetLabel("//my:target"); addSourceLines( @@ -529,10 +528,10 @@ public class JavacTurbineTest { optionsBuilder.addClassPathEntries( ImmutableList.of(libA.toString(), libB.toString(), libC.toString(), libD.toString())); optionsBuilder.addAllDepsArtifacts(ImmutableList.of(depsA.toString())); - optionsBuilder.addDirectJarToTarget(libA.toString(), JarOwner.create("//lib:a")); - optionsBuilder.addIndirectJarToTarget(libB.toString(), JarOwner.create("//lib:b")); - optionsBuilder.addIndirectJarToTarget(libC.toString(), JarOwner.create("//lib:c")); - optionsBuilder.addIndirectJarToTarget(libD.toString(), JarOwner.create("//lib:d")); + optionsBuilder.addDirectJarToTarget(libA.toString(), "//lib:a"); + optionsBuilder.addIndirectJarToTarget(libB.toString(), "//lib:b"); + optionsBuilder.addIndirectJarToTarget(libC.toString(), "//lib:c"); + optionsBuilder.addIndirectJarToTarget(libD.toString(), "//lib:d"); optionsBuilder.setTargetLabel("//my:target"); addSourceLines( @@ -623,10 +622,10 @@ public class JavacTurbineTest { optionsBuilder.addClassPathEntries( ImmutableList.of(libA.toString(), libB.toString(), libC.toString(), libD.toString())); optionsBuilder.addAllDepsArtifacts(ImmutableList.of(depsA.toString())); - optionsBuilder.addDirectJarToTarget(libA.toString(), JarOwner.create("//lib:a")); - optionsBuilder.addIndirectJarToTarget(libB.toString(), JarOwner.create("//lib:b")); - optionsBuilder.addIndirectJarToTarget(libC.toString(), JarOwner.create("//lib:c")); - optionsBuilder.addIndirectJarToTarget(libD.toString(), JarOwner.create("//lib:d")); + optionsBuilder.addDirectJarToTarget(libA.toString(), "//lib:a"); + optionsBuilder.addIndirectJarToTarget(libB.toString(), "//lib:b"); + optionsBuilder.addIndirectJarToTarget(libC.toString(), "//lib:c"); + optionsBuilder.addIndirectJarToTarget(libD.toString(), "//lib:d"); optionsBuilder.setTargetLabel("//my:target"); addSourceLines( @@ -1213,7 +1212,7 @@ public class JavacTurbineTest { "}"); optionsBuilder.addClassPathEntries(Collections.singleton(deps.toString())); - optionsBuilder.addDirectJarToTarget(deps.toString(), JarOwner.create("//deps")); + optionsBuilder.addDirectJarToTarget(deps.toString(), "//deps"); compile(); Map<String, byte[]> outputs = collectOutputs(); @@ -1230,7 +1229,7 @@ public class JavacTurbineTest { addSourceLines( "Hello.java", "import " + Lib.class.getCanonicalName() + ";", "class Hello extends Lib {}"); - optionsBuilder.addIndirectJarToTarget(lib.toString(), JarOwner.create("//lib")); + optionsBuilder.addIndirectJarToTarget(lib.toString(), "//lib"); optionsBuilder.addClassPathEntries(ImmutableList.of(lib.toString())); optionsBuilder.addSources(ImmutableList.copyOf(Iterables.transform(sources, TO_STRING))); |