aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test
diff options
context:
space:
mode:
authorGravatar cparsons <cparsons@google.com>2018-03-19 13:15:59 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-03-19 13:17:39 -0700
commitbff4ac081bd80f227cc0c3027f67e306d35699fa (patch)
treeb5af2374b8fb6f2cb011005716b57b0ac701030c /src/test
parent6590914692db2c4ee7d582d90b28dd1b11bfaa79 (diff)
Expose the j2objc configuration fragment, with field dead_code_report, matching build flag --j2objc_dead_code_report.
RELNOTES: The 'j2objc' configuration fragment is exposed to Skylark. PiperOrigin-RevId: 189630012
Diffstat (limited to 'src/test')
-rw-r--r--src/test/java/com/google/devtools/build/lib/rules/objc/ObjcSkylarkTest.java37
1 files changed, 37 insertions, 0 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcSkylarkTest.java b/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcSkylarkTest.java
index 9638eac2bb..1d3da5ef89 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcSkylarkTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcSkylarkTest.java
@@ -25,9 +25,11 @@ import com.google.common.collect.ObjectArrays;
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.actions.util.ActionsTestUtil;
import com.google.devtools.build.lib.analysis.ConfiguredTarget;
+import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.packages.SkylarkInfo;
import com.google.devtools.build.lib.rules.apple.AppleToolchain;
import com.google.devtools.build.lib.rules.apple.DottedVersion;
+import com.google.devtools.build.lib.syntax.Runtime;
import com.google.devtools.build.lib.syntax.SkylarkDict;
import com.google.devtools.build.lib.syntax.SkylarkNestedSet;
import com.google.devtools.build.lib.vfs.PathFragment;
@@ -528,6 +530,41 @@ public class ObjcSkylarkTest extends ObjcRuleTestCase {
}
@Test
+ public void testSkylarkCanAccessJ2objcConfiguration() throws Exception {
+ scratch.file("examples/rule/BUILD");
+ scratch.file(
+ "examples/rule/objc_rules.bzl",
+ "def test_rule_impl(ctx):",
+ " dead_code_report = ctx.fragments.j2objc.dead_code_report",
+ " return struct(",
+ " dead_code_report=dead_code_report,",
+ " )",
+ "test_rule = rule(",
+ " implementation = test_rule_impl,",
+ " fragments = ['j2objc']",
+ ")");
+
+ scratch.file(
+ "examples/objc_skylark/BUILD",
+ "package(default_visibility = ['//visibility:public'])",
+ "load('//examples/rule:objc_rules.bzl', 'test_rule')",
+ "test_rule(",
+ " name='my_target',",
+ ")");
+
+ useConfiguration();
+ ConfiguredTarget skylarkTarget = getConfiguredTarget("//examples/objc_skylark:my_target");
+ assertThat(skylarkTarget.get("dead_code_report")).isEqualTo(Runtime.NONE);
+
+ useConfiguration("--j2objc_dead_code_report=//foo:bar");
+ skylarkTarget = getConfiguredTarget("//examples/objc_skylark:my_target");
+
+ @SuppressWarnings("unchecked")
+ Label label = (Label) skylarkTarget.get("dead_code_report");
+ assertThat(label.getCanonicalForm()).isEqualTo("//foo:bar");
+ }
+
+ @Test
public void testSigningCertificateNameCanReturnNone() throws Exception {
scratch.file("examples/rule/BUILD");
scratch.file(