aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/java_tools/buildjar/javatests/com/google/devtools/build
diff options
context:
space:
mode:
authorGravatar Liam Miller-Cushon <cushon@google.com>2017-01-05 23:56:06 +0000
committerGravatar John Cater <jcater@google.com>2017-01-06 01:22:16 +0000
commit1ad8a901567b91d3d3d03e945a0fcd85e859621f (patch)
tree40a2c53a1f93b39a680d7dd9fa1f7b026eb87712 /src/java_tools/buildjar/javatests/com/google/devtools/build
parent2a561da4e966d0fe8be4d98f1700f6b286e97ed2 (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')
-rw-r--r--src/java_tools/buildjar/javatests/com/google/devtools/build/java/turbine/BUILD14
-rw-r--r--src/java_tools/buildjar/javatests/com/google/devtools/build/java/turbine/TurbineOptionsTest.java246
-rw-r--r--src/java_tools/buildjar/javatests/com/google/devtools/build/java/turbine/javac/BUILD2
-rw-r--r--src/java_tools/buildjar/javatests/com/google/devtools/build/java/turbine/javac/JavacTurbineTest.java29
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)));