aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/shell/bazel/external_correctness_test.sh
diff options
context:
space:
mode:
authorGravatar Lukacs Berki <lberki@google.com>2016-01-14 11:56:32 +0000
committerGravatar Damien Martin-Guillerez <dmarting@google.com>2016-01-15 09:22:03 +0000
commitfc2a01bcedaf85c2a4fd7675f80e877203cc57cb (patch)
tree5c950de2cad89adb6bebc2f0b7ea9c8793d9d8f8 /src/test/shell/bazel/external_correctness_test.sh
parent85834ad350edb675d14daad71e878f74ce417353 (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/shell/bazel/external_correctness_test.sh')
-rwxr-xr-xsrc/test/shell/bazel/external_correctness_test.sh36
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"