diff options
author | 2017-04-04 18:32:23 +0000 | |
---|---|---|
committer | 2017-04-05 15:18:44 +0200 | |
commit | e5538add58a952c1ef660e417f3f38dabf73b768 (patch) | |
tree | 88798724db95efee2fca8ddf8adbe3cbcf93d35c /src/test/java | |
parent | 0e02f53599487ef44188cfad3c0115261d7cc993 (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/java')
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/analysis/config/ConfigSettingTest.java | 7 | ||||
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/packages/RuleClassTest.java | 1 |
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() |