aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com/google/devtools/build/lib
diff options
context:
space:
mode:
authorGravatar elenairina <elenairina@google.com>2017-09-19 13:20:17 +0200
committerGravatar László Csomor <laszlocsomor@google.com>2017-09-19 14:45:01 +0200
commit655a529db693e0d3c89a68ca81fc4858147b90f0 (patch)
treeb6b266a4076e8ea7ebc15e145db36a64b3bfa5a4 /src/test/java/com/google/devtools/build/lib
parentf20ae6b20816df6a393c6e8352befba9b158fdf4 (diff)
Expose full compile time jars in Skylark
There are several use cases for using full compile time jars instead of ijars (scala macros cannot use ijar, kotlin dependencies, etc). This change allows creating a provider with or without creating interface jars for compile time, exposing the right full/interface jars on target[JavaInfo].compile_jars and target[JavaInfo].full_compile_jars. For more details see https://github.com/bazelbuild/bazel/issues/3528. Fixes #3528 RELNOTES: java_common.create_provider is now supported with creating ijars by default. This introduces incompatibilities for existing users. Please set use_ijar=False if you don't want to use ijars. PiperOrigin-RevId: 169222793
Diffstat (limited to 'src/test/java/com/google/devtools/build/lib')
-rw-r--r--src/test/java/com/google/devtools/build/lib/rules/java/JavaSkylarkApiTest.java12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/rules/java/JavaSkylarkApiTest.java b/src/test/java/com/google/devtools/build/lib/rules/java/JavaSkylarkApiTest.java
index fe486d6bf0..4ed01420ba 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/java/JavaSkylarkApiTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/java/JavaSkylarkApiTest.java
@@ -272,6 +272,7 @@ public class JavaSkylarkApiTest extends BuildViewTestCase {
"def _impl(ctx):",
" my_provider = java_common.create_provider(",
" compile_time_jars = ctx.files.compile_time_jars,",
+ " use_ijar = False,",
" runtime_jars = ctx.files.runtime_jars,",
" transitive_compile_time_jars = ctx.files.transitive_compile_time_jars,",
" transitive_runtime_jars = ctx.files.transitive_runtime_jars,",
@@ -280,6 +281,7 @@ public class JavaSkylarkApiTest extends BuildViewTestCase {
"my_rule = rule(_impl, ",
" attrs = { ",
" 'compile_time_jars' : attr.label_list(allow_files=['.jar']),",
+ " 'full_compile_time_jars' : attr.label_list(allow_files=['.jar']),",
" 'runtime_jars': attr.label_list(allow_files=['.jar']),",
" 'transitive_compile_time_jars': attr.label_list(allow_files=['.jar']),",
" 'transitive_runtime_jars': attr.label_list(allow_files=['.jar']),",
@@ -300,6 +302,10 @@ public class JavaSkylarkApiTest extends BuildViewTestCase {
SkylarkNestedSet compileJars = info.getCompileTimeJars();
assertThat(prettyJarNames(compileJars.getSet(Artifact.class))).containsExactly("foo/liba.jar");
+ SkylarkNestedSet fullCompileJars = info.getFullCompileTimeJars();
+ assertThat(
+ prettyJarNames(fullCompileJars.getSet(Artifact.class))).containsExactly("foo/liba.jar");
+
SkylarkNestedSet transitiveCompileTimeJars = info.getTransitiveCompileTimeJars();
assertThat(prettyJarNames(
transitiveCompileTimeJars.getSet(Artifact.class))).containsExactly("foo/libc.jar");
@@ -316,6 +322,7 @@ public class JavaSkylarkApiTest extends BuildViewTestCase {
"def _impl(ctx):",
" my_provider = java_common.create_provider(",
" compile_time_jars = ctx.files.compile_time_jars,",
+ " use_ijar = False,",
" runtime_jars = [],",
" transitive_compile_time_jars = [],",
" transitive_runtime_jars = ctx.files.transitive_runtime_jars)",
@@ -339,7 +346,8 @@ public class JavaSkylarkApiTest extends BuildViewTestCase {
assertThat(prettyJarNames(compileJars.getSet(Artifact.class))).containsExactly("foo/liba.jar");
SkylarkNestedSet transitiveCompileTimeJars = info.getTransitiveCompileTimeJars();
- assertThat(prettyJarNames(transitiveCompileTimeJars.getSet(Artifact.class))).isEmpty();
+ assertThat(prettyJarNames(
+ transitiveCompileTimeJars.getSet(Artifact.class))).containsExactly("foo/liba.jar");
SkylarkNestedSet transitiveRuntimeJars = info.getTransitiveRuntimeJars();
assertThat(prettyJarNames(
@@ -353,6 +361,7 @@ public class JavaSkylarkApiTest extends BuildViewTestCase {
"def _impl(ctx):",
" my_provider = java_common.create_provider(",
" compile_time_jars = depset(ctx.files.compile_time_jars),",
+ " use_ijar = False,",
" runtime_jars = depset(ctx.files.runtime_jars),",
" transitive_compile_time_jars = depset(ctx.files.transitive_compile_time_jars),",
" transitive_runtime_jars = depset(ctx.files.transitive_runtime_jars),",
@@ -409,6 +418,7 @@ public class JavaSkylarkApiTest extends BuildViewTestCase {
" [dep[JavaInfo] for dep in ctx.attr.deps])",
" my_provider = java_common.create_provider(",
" compile_time_jars = depset(ctx.files.compile_time_jars),",
+ " use_ijar = False,",
" runtime_jars = depset(ctx.files.runtime_jars))",
" return [java_common.merge([my_provider, transitive_provider])]",
"my_rule = rule(_impl, ",