aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com/google/devtools/build/lib/skylark
diff options
context:
space:
mode:
authorGravatar vladmos <vladmos@google.com>2017-06-21 18:38:23 +0200
committerGravatar Philipp Wollermann <philwo@google.com>2017-06-22 12:34:15 +0200
commit36da18a6c8f4e9281eca1c9643a59fe16ab03c7c (patch)
tree2ae2c130f8f1f4ab246c6576b357e388142da081 /src/test/java/com/google/devtools/build/lib/skylark
parent89659810e3048782dfb5e308e39aa8a0727e464e (diff)
Update testSpecialMandatoryProviderMissing to cover more cases
The test didn't check for rules from the //external virtual package, that caused Bazel to be broken at some point: https://stackoverflow.com/questions/44398080/cc-grpc-library-for-bazel-0-5-1-fails-due-to-mandatory-files-to-run-provider-m/44671719 The original problem has been fixed in https://github.com/bazelbuild/bazel/commit/211a3ba2303c1df97383c810e17a031106c7271b. PiperOrigin-RevId: 159703445
Diffstat (limited to 'src/test/java/com/google/devtools/build/lib/skylark')
-rw-r--r--src/test/java/com/google/devtools/build/lib/skylark/SkylarkIntegrationTest.java23
1 files changed, 17 insertions, 6 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkIntegrationTest.java b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkIntegrationTest.java
index fb30097765..eeb39003f3 100644
--- a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkIntegrationTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkIntegrationTest.java
@@ -44,6 +44,7 @@ import com.google.devtools.build.lib.syntax.Runtime;
import com.google.devtools.build.lib.syntax.SkylarkList;
import com.google.devtools.build.lib.syntax.SkylarkList.MutableList;
import com.google.devtools.build.lib.syntax.SkylarkNestedSet;
+import com.google.devtools.build.lib.vfs.FileSystemUtils;
import com.google.devtools.build.skyframe.InMemoryMemoizingEvaluator;
import com.google.devtools.build.skyframe.SkyFunction;
import com.google.devtools.build.skyframe.SkyFunctionName;
@@ -692,27 +693,37 @@ public class SkylarkIntegrationTest extends BuildViewTestCase {
@Test
public void testSpecialMandatoryProviderMissing() throws Exception {
+ // Test that rules satisfy `providers = [...]` condition if a special provider that always
+ // exists for all rules is requested. Also check external rules.
+
+ FileSystemUtils.appendIsoLatin1(scratch.resolve("WORKSPACE"),
+ "bind(name = 'bar', actual = '//test/ext:bar')");
+ scratch.file(
+ "test/ext/BUILD",
+ "load('//test/skylark:extension.bzl', 'foobar')",
+ "",
+ "foobar(name = 'bar', visibility = ['//visibility:public'],)");
scratch.file(
"test/skylark/extension.bzl",
"def rule_impl(ctx):",
" pass",
"",
- "dependent_rule = rule(implementation = rule_impl)",
+ "foobar = rule(implementation = rule_impl)",
"main_rule = rule(implementation = rule_impl, attrs = {",
" 'deps': attr.label_list(providers = [",
" 'files', 'data_runfiles', 'default_runfiles',",
" 'files_to_run', 'label', 'output_groups',",
" ])",
"})");
-
scratch.file(
"test/skylark/BUILD",
- "load('/test/skylark/extension', 'dependent_rule', 'main_rule')",
+ "load(':extension.bzl', 'foobar', 'main_rule')",
"",
- "dependent_rule(name = 'a')",
- "main_rule(name = 'b', deps = [':a'])");
+ "foobar(name = 'foo')",
+ "main_rule(name = 'main', deps = [':foo', '//external:bar'])");
- getConfiguredTarget("//test/skylark:b");
+ invalidatePackages();
+ getConfiguredTarget("//test/skylark:main");
}
@Test