diff options
author | 2016-01-14 11:56:32 +0000 | |
---|---|---|
committer | 2016-01-15 09:22:03 +0000 | |
commit | fc2a01bcedaf85c2a4fd7675f80e877203cc57cb (patch) | |
tree | 5c950de2cad89adb6bebc2f0b7ea9c8793d9d8f8 /src/test | |
parent | 85834ad350edb675d14daad71e878f74ce417353 (diff) |
Add a few other Label.resolveRepositoryRelative() calls to make select() statements work in remote repositories.
This work is somewhat sisyphean; the principled thing to do would be to just do this resolution when labels are parsed.
Fixes #783.
--
MOS_MIGRATED_REVID=112137996
Diffstat (limited to 'src/test')
-rwxr-xr-x | src/test/shell/bazel/external_correctness_test.sh | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/src/test/shell/bazel/external_correctness_test.sh b/src/test/shell/bazel/external_correctness_test.sh index 5d0874c7df..a9033ea1cb 100755 --- a/src/test/shell/bazel/external_correctness_test.sh +++ b/src/test/shell/bazel/external_correctness_test.sh @@ -235,4 +235,40 @@ EOF } +function test_select_in_external_repo() { + REMOTE=$TEST_TMPDIR/r + mkdir -p $REMOTE/a $REMOTE/c + + cat > $REMOTE/a/BUILD <<'EOF' +genrule( + name = "gr", + srcs = [], + outs = ["gro"], + cmd = select({ + "//c:one": "echo one > $@", + ":two": "echo two > $@", + "//conditions:default": "echo default > $@", + })) + +config_setting(name = "two", values = { "define": "ARG=two" }) +EOF + + cat > $REMOTE/c/BUILD <<EOF +package(default_visibility=["//visibility:public"]) +config_setting(name = "one", values = { "define": "ARG=one" }) +EOF + + cat > WORKSPACE <<EOF +local_repository(name="r", path="$REMOTE") +EOF + + bazel build @r//a:gr || fail "build failed" + assert_contains "default" bazel-genfiles/external/r/a/gro + bazel build @r//a:gr --define=ARG=one|| fail "build failed" + assert_contains "one" bazel-genfiles/external/r/a/gro + bazel build @r//a:gr --define=ARG=two || fail "build failed" + assert_contains "two" bazel-genfiles/external/r/a/gro + +} + run_suite "//external correctness tests" |