aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--src/main/java/com/google/devtools/build/lib/actions/Artifact.java7
-rw-r--r--src/test/java/com/google/devtools/build/lib/actions/ArtifactTest.java6
2 files changed, 13 insertions, 0 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/actions/Artifact.java b/src/main/java/com/google/devtools/build/lib/actions/Artifact.java
index 5c69ce5cfd..4e8989f9ba 100644
--- a/src/main/java/com/google/devtools/build/lib/actions/Artifact.java
+++ b/src/main/java/com/google/devtools/build/lib/actions/Artifact.java
@@ -295,6 +295,13 @@ public class Artifact
return owner;
}
+ @SkylarkCallable(name = "owner", structField = true, allowReturnNones = true,
+ doc = "A label of a target that produces this File. Can be None."
+ )
+ public Label getOwnerLabel() {
+ return owner.getLabel();
+ }
+
/**
* Returns the root beneath which this Artifact resides, if any. This may be one of the
* package-path entries (for source Artifacts), or one of the bin, genfiles or includes dirs
diff --git a/src/test/java/com/google/devtools/build/lib/actions/ArtifactTest.java b/src/test/java/com/google/devtools/build/lib/actions/ArtifactTest.java
index c0c992f2b5..37f57c87df 100644
--- a/src/test/java/com/google/devtools/build/lib/actions/ArtifactTest.java
+++ b/src/test/java/com/google/devtools/build/lib/actions/ArtifactTest.java
@@ -79,6 +79,12 @@ public class ArtifactTest {
}
@Test
+ public void testEmptyLabelIsNone() throws Exception {
+ Artifact artifact = new Artifact(new PathFragment("src/a"), rootDir);
+ assertThat(artifact.getOwnerLabel()).isNull();
+ }
+
+ @Test
public void testComparison() throws Exception {
PathFragment aPath = new PathFragment("src/a");
PathFragment bPath = new PathFragment("src/b");