aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test
diff options
context:
space:
mode:
authorGravatar mstaib <mstaib@google.com>2017-04-04 18:32:23 +0000
committerGravatar Damien Martin-Guillerez <dmarting@google.com>2017-04-05 15:18:44 +0200
commite5538add58a952c1ef660e417f3f38dabf73b768 (patch)
tree88798724db95efee2fca8ddf8adbe3cbcf93d35c /src/test
parent0e02f53599487ef44188cfad3c0115261d7cc993 (diff)
Generalize ConfigSetting's special options handling.
Currently ConfigSetting is treated specially; TransitiveTargetFunction identifies it by name, then runs a special function on it. This change makes ConfigSetting use a new options reference function in RuleClass, which TransitiveTargetFunction will evaluate over the rule and use with the options-to-fragments map to figure out which fragments are needed. Although this is still a hack and not really a new feature on RuleClass, this avoids a dependency on ConfigSettingRule from TransitiveTargetFunction, which is necessary for ConfigSettingRule to be moved to rules/config. RELNOTES: None. PiperOrigin-RevId: 152156905
Diffstat (limited to 'src/test')
-rw-r--r--src/test/java/com/google/devtools/build/lib/analysis/config/ConfigSettingTest.java7
-rw-r--r--src/test/java/com/google/devtools/build/lib/packages/RuleClassTest.java1
2 files changed, 4 insertions, 4 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/config/ConfigSettingTest.java b/src/test/java/com/google/devtools/build/lib/analysis/config/ConfigSettingTest.java
index 44a15dee20..c277b31ddc 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/config/ConfigSettingTest.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/config/ConfigSettingTest.java
@@ -21,7 +21,6 @@ import static org.junit.Assert.assertTrue;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;
import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider;
-import com.google.devtools.build.lib.analysis.config.ConfigRuleClasses.ConfigSettingRule;
import com.google.devtools.build.lib.analysis.util.BuildViewTestCase;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.packages.Rule;
@@ -328,8 +327,8 @@ public class ConfigSettingTest extends BuildViewTestCase {
"unused", PythonConfiguration.class,
"javacopt", Jvm.class
);
- assertThat(
- ConfigSettingRule.requiresConfigurationFragments((Rule) getTarget("//test:match"), map))
- .containsExactly(CppConfiguration.class, Jvm.class);
+ Rule target = (Rule) getTarget("//test:match");
+ assertThat(target.getRuleClassObject().getOptionReferenceFunction().apply(target))
+ .containsExactly("copt", "javacopt");
}
}
diff --git a/src/test/java/com/google/devtools/build/lib/packages/RuleClassTest.java b/src/test/java/com/google/devtools/build/lib/packages/RuleClassTest.java
index 38a8e0ab3c..dab6130013 100644
--- a/src/test/java/com/google/devtools/build/lib/packages/RuleClassTest.java
+++ b/src/test/java/com/google/devtools/build/lib/packages/RuleClassTest.java
@@ -896,6 +896,7 @@ public class RuleClassTest extends PackageLoadingTestCase {
advertisedProviders,
configuredTargetFunction,
externalBindingsFunction,
+ /*optionReferenceFunction=*/ RuleClass.NO_OPTION_REFERENCE,
ruleDefinitionEnvironment,
ruleDefinitionEnvironmentHashCode,
new ConfigurationFragmentPolicy.Builder()