Fix type parsing errors on "always true" conditions. (#239)
Specifically: selects.config_setting_group( name = "always_true", match_any = ["//conditions:default"], ) and selects.config_setting_group( name = "always_true", match_all = ["//conditions:default"], ) These should, as expected, always evaluate to True. Their implementation had a bug that failed the build outright.
This commit is contained in:
parent
2d620ba1f8
commit
dfcfe82500
|
@ -234,11 +234,11 @@ def _config_setting_always_true(name, visibility):
|
||||||
name_off = name + "_stamp_binary_off_check"
|
name_off = name + "_stamp_binary_off_check"
|
||||||
native.config_setting(
|
native.config_setting(
|
||||||
name = name_on,
|
name = name_on,
|
||||||
values = {"stamp": True},
|
values = {"stamp": "1"},
|
||||||
)
|
)
|
||||||
native.config_setting(
|
native.config_setting(
|
||||||
name = name_off,
|
name = name_off,
|
||||||
values = {"stamp": False},
|
values = {"stamp": "0"},
|
||||||
)
|
)
|
||||||
return _config_setting_or_group(name, [":" + name_on, ":" + name_off], visibility)
|
return _config_setting_or_group(name, [":" + name_on, ":" + name_off], visibility)
|
||||||
|
|
||||||
|
|
|
@ -540,6 +540,54 @@ def _or_config_setting_group_single_setting_fails_test():
|
||||||
target_under_test = ":or_config_setting_group_single_setting_fails_rule",
|
target_under_test = ":or_config_setting_group_single_setting_fails_rule",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
###################################################
|
||||||
|
# always_true_match_all_test
|
||||||
|
###################################################
|
||||||
|
always_true_match_all_test = analysistest.make(_expect_matches)
|
||||||
|
|
||||||
|
def _always_true_match_all_test():
|
||||||
|
"""Tests that "match_all=['//conditions:default']" always matches."""
|
||||||
|
selects.config_setting_group(
|
||||||
|
name = "all_always_match",
|
||||||
|
match_all = ["//conditions:default"],
|
||||||
|
)
|
||||||
|
boolean_attr_rule(
|
||||||
|
name = "match_always_true_rule",
|
||||||
|
myboolean = select(
|
||||||
|
{
|
||||||
|
":all_always_match": True,
|
||||||
|
},
|
||||||
|
),
|
||||||
|
)
|
||||||
|
always_true_match_all_test(
|
||||||
|
name = "always_true_match_all_test",
|
||||||
|
target_under_test = ":match_always_true_rule",
|
||||||
|
)
|
||||||
|
|
||||||
|
###################################################
|
||||||
|
# always_true_match_any_test
|
||||||
|
###################################################
|
||||||
|
always_true_match_any_test = analysistest.make(_expect_matches)
|
||||||
|
|
||||||
|
def _always_true_match_any_test():
|
||||||
|
"""Tests that "match_any=['//conditions:default']" always matches."""
|
||||||
|
selects.config_setting_group(
|
||||||
|
name = "any_always_match",
|
||||||
|
match_any = ["//conditions:default"],
|
||||||
|
)
|
||||||
|
boolean_attr_rule(
|
||||||
|
name = "match_any_always_true_rule",
|
||||||
|
myboolean = select(
|
||||||
|
{
|
||||||
|
":any_always_match": True,
|
||||||
|
},
|
||||||
|
),
|
||||||
|
)
|
||||||
|
always_true_match_any_test(
|
||||||
|
name = "always_true_match_any_test",
|
||||||
|
target_under_test = ":match_any_always_true_rule",
|
||||||
|
)
|
||||||
|
|
||||||
###################################################
|
###################################################
|
||||||
# empty_config_setting_group_not_allowed_test
|
# empty_config_setting_group_not_allowed_test
|
||||||
###################################################
|
###################################################
|
||||||
|
@ -587,5 +635,8 @@ def selects_test_suite():
|
||||||
_or_config_setting_group_single_setting_matches_test()
|
_or_config_setting_group_single_setting_matches_test()
|
||||||
_or_config_setting_group_single_setting_fails_test()
|
_or_config_setting_group_single_setting_fails_test()
|
||||||
|
|
||||||
|
_always_true_match_all_test()
|
||||||
|
_always_true_match_any_test()
|
||||||
|
|
||||||
# _empty_config_setting_group_not_allowed_test()
|
# _empty_config_setting_group_not_allowed_test()
|
||||||
# _and_and_or_not_allowed_together_test()
|
# _and_and_or_not_allowed_together_test()
|
||||||
|
|
Loading…
Reference in New Issue