aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com/google/devtools/build/lib/analysis/constraints
diff options
context:
space:
mode:
authorGravatar Greg Estren <gregce@google.com>2015-06-11 19:42:06 +0000
committerGravatar Philipp Wollermann <philwo@google.com>2015-06-12 11:46:51 +0000
commit49671f4881094755a8a9a751827c4ae88a921f38 (patch)
tree5816fd25ff9259a29540f2f86585447c7cc64665 /src/test/java/com/google/devtools/build/lib/analysis/constraints
parent52811e0c555b83aa9506bd1051547d2ded069441 (diff)
Have constraints' definition of implicit deps exactly match query's.
Before this change, constraints considered implicit deps anything from an attribute beginning with "$" or ":" (e.g. attributes that are completely hidden from BUILD files). Query agrees with this, but it also counts default values for *normal* attributes that aren't explicitly set in rules. By syncing the two up, depot migrations can figure out which rules need to be constraint-annotated by simply running a bazel query --no_host_deps --no_implicit_deps. -- MOS_MIGRATED_REVID=95766777
Diffstat (limited to 'src/test/java/com/google/devtools/build/lib/analysis/constraints')
-rw-r--r--src/test/java/com/google/devtools/build/lib/analysis/constraints/ConstraintsTest.java8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/constraints/ConstraintsTest.java b/src/test/java/com/google/devtools/build/lib/analysis/constraints/ConstraintsTest.java
index f87b939050..9ccd2a22ed 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/constraints/ConstraintsTest.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/constraints/ConstraintsTest.java
@@ -28,6 +28,7 @@ import com.google.devtools.build.lib.packages.Type;
import com.google.devtools.build.lib.syntax.Label;
import com.google.devtools.build.lib.testutil.TestRuleClassProvider;
import com.google.devtools.build.lib.testutil.UnknownRuleConfiguredTarget;
+import com.google.devtools.build.lib.util.FileTypeSet;
import java.util.Set;
@@ -42,7 +43,8 @@ public class ConstraintsTest extends AbstractConstraintsTest {
// Support files for RuleClassWithImplicitAndLateBoundDefaults:
scratch.file("helpers/BUILD",
"sh_library(name = 'implicit', srcs = ['implicit.sh'])",
- "sh_library(name = 'latebound', srcs = ['latebound.sh'])");
+ "sh_library(name = 'latebound', srcs = ['latebound.sh'])",
+ "sh_library(name = 'default', srcs = ['default.sh'])");
}
/**
@@ -110,6 +112,9 @@ public class ConstraintsTest extends AbstractConstraintsTest {
return Label.parseAbsoluteUnchecked("//helpers:latebound");
}
}))
+ .add(Attribute.attr("normal", Type.LABEL)
+ .allowedFileTypes(FileTypeSet.NO_FILE)
+ .value(Label.parseAbsoluteUnchecked("//helpers:default")))
.build();
}
@@ -633,6 +638,7 @@ public class ConstraintsTest extends AbstractConstraintsTest {
// because of the implementation of UnknownRuleConfiguredTarget.
assertDoesNotContainEvent(":implicit doesn't support expected environment");
assertDoesNotContainEvent(":latebound doesn't support expected environment");
+ assertDoesNotContainEvent("normal doesn't support expected environment");
}
public void testOutputFilesAreChecked() throws Exception {