aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com/google/devtools/build/lib
diff options
context:
space:
mode:
authorGravatar dannark <dannark@google.com>2018-06-12 09:28:45 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-06-12 09:30:48 -0700
commitf4b9ff40b8f1612571cc711560177af240d034d0 (patch)
tree2b2bf5415d7b4a0ab5db78d916cebfec0775f810 /src/test/java/com/google/devtools/build/lib
parent1b94e64ee8a1d385e92a8d9f4c9a06e2d99c82bf (diff)
Remap repository names inside load statements in BUILD files if the repository name is remapped.
For example if main/WORKSPACE contains: local_repository( name = "a", path = "../a", repo_mapping = {"@x" : "@y"}, ) a/BUILD load("@x//:sample.bzl", "sample") Then the load in a/BUILD will be resolved as "@y//:sample.bzl" RELNOTES: None PiperOrigin-RevId: 200227431
Diffstat (limited to 'src/test/java/com/google/devtools/build/lib')
-rw-r--r--src/test/java/com/google/devtools/build/lib/syntax/SkylarkImportsTest.java24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/syntax/SkylarkImportsTest.java b/src/test/java/com/google/devtools/build/lib/syntax/SkylarkImportsTest.java
index c1168dd380..cb8629c143 100644
--- a/src/test/java/com/google/devtools/build/lib/syntax/SkylarkImportsTest.java
+++ b/src/test/java/com/google/devtools/build/lib/syntax/SkylarkImportsTest.java
@@ -16,7 +16,9 @@ package com.google.devtools.build.lib.syntax;
import static com.google.common.truth.Truth.assertThat;
import static org.hamcrest.CoreMatchers.startsWith;
+import com.google.common.collect.ImmutableMap;
import com.google.devtools.build.lib.cmdline.Label;
+import com.google.devtools.build.lib.cmdline.RepositoryName;
import com.google.devtools.build.lib.skyframe.serialization.testutils.SerializationTester;
import com.google.devtools.build.lib.syntax.SkylarkImports.SkylarkImportSyntaxException;
import com.google.devtools.build.lib.vfs.PathFragment;
@@ -66,6 +68,28 @@ public class SkylarkImportsTest {
/*expected path*/ "/some/skylark/file.bzl");
}
+ @Test
+ public void testValidAbsoluteLabelWithRepoRemapped() throws Exception {
+ String labelString = "@orig_repo//some/skylark:file.bzl";
+ String remappedLabelString = "@new_repo//some/skylark:file.bzl";
+ String expectedPath = "/some/skylark/file.bzl";
+ ImmutableMap<RepositoryName, RepositoryName> repositoryMapping =
+ ImmutableMap.of(RepositoryName.create("@orig_repo"), RepositoryName.create("@new_repo"));
+ SkylarkImport importForLabel = SkylarkImports.create(labelString, repositoryMapping);
+
+ assertThat(importForLabel.hasAbsolutePath()).named("hasAbsolutePath()").isFalse();
+ assertThat(importForLabel.getImportString()).named("getImportString()").isEqualTo(labelString);
+
+ Label irrelevantContainingFile = Label.parseAbsoluteUnchecked("//another/path:BUILD");
+ assertThat(importForLabel.getLabel(irrelevantContainingFile))
+ .named("getLabel()")
+ .isEqualTo(Label.parseAbsoluteUnchecked(remappedLabelString));
+
+ assertThat(importForLabel.asPathFragment())
+ .named("asPathFragment()")
+ .isEqualTo(PathFragment.create(expectedPath));
+ }
+
private void validRelativeLabelTest(String labelString,
String containingLabelString, String expectedLabelString, String expectedPathString)
throws Exception {