aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com/google
diff options
context:
space:
mode:
authorGravatar allevato <allevato@google.com>2017-03-30 20:45:52 +0000
committerGravatar Philipp Wollermann <philwo@google.com>2017-03-31 17:11:22 +0200
commit060a448e92136a5b5174918b2d985f686b1a7fa6 (patch)
tree0e013be38bf6815abd532433372c455203203dcf /src/test/java/com/google
parent1520edbba81f3c61723be0ac792601d0299fa5f8 (diff)
Add ctx.experimental_new_directory (undocumented) to create tree artifacts in Skylark.
RELNOTES: None. PiperOrigin-RevId: 151744710
Diffstat (limited to 'src/test/java/com/google')
-rw-r--r--src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleContextTest.java26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleContextTest.java b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleContextTest.java
index 720cb12654..961eee63d5 100644
--- a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleContextTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleContextTest.java
@@ -19,6 +19,7 @@ import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertSame;
+import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import com.google.common.collect.ImmutableList;
@@ -753,6 +754,31 @@ public class SkylarkRuleContextTest extends SkylarkTestCase {
}
@Test
+ public void testDeriveTreeArtifact() throws Exception {
+ SkylarkRuleContext ruleContext = createRuleContext("//foo:foo");
+ Object result =
+ evalRuleContextCode(ruleContext, "ruleContext.experimental_new_directory('a/b')");
+ Artifact artifact = (Artifact) result;
+ PathFragment fragment = artifact.getRootRelativePath();
+ assertEquals("foo/a/b", fragment.getPathString());
+ assertTrue(artifact.isTreeArtifact());
+ }
+
+ @Test
+ public void testDeriveTreeArtifactNextToSibling() throws Exception {
+ SkylarkRuleContext ruleContext = createRuleContext("//foo:foo");
+ Object result =
+ evalRuleContextCode(
+ ruleContext,
+ "b = ruleContext.experimental_new_directory('a/b')\n"
+ + "ruleContext.experimental_new_directory('c', sibling=b)");
+ Artifact artifact = (Artifact) result;
+ PathFragment fragment = artifact.getRootRelativePath();
+ assertEquals("foo/a/c", fragment.getPathString());
+ assertTrue(artifact.isTreeArtifact());
+ }
+
+ @Test
public void testParamFileLegacy() throws Exception {
SkylarkRuleContext ruleContext = createRuleContext("//foo:foo");
Object result =