diff options
author | Greg <gregestren@users.noreply.github.com> | 2020-03-25 14:05:24 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-03-25 14:05:24 -0400 |
commit | dfcfe825005ffba4a7c15cd9ddac737d040d2506 (patch) | |
tree | f3b52e3aec8ae5d7a6ea6f6f73786d0a1cb35278 /tests | |
parent | 2d620ba1f8284695181fa092ec4064724ea99a9a (diff) | |
download | bazel-skylib-dfcfe825005ffba4a7c15cd9ddac737d040d2506.tar.gz |
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.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/selects_tests.bzl | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/tests/selects_tests.bzl b/tests/selects_tests.bzl index b2bda92..ceefa03 100644 --- a/tests/selects_tests.bzl +++ b/tests/selects_tests.bzl @@ -541,6 +541,54 @@ def _or_config_setting_group_single_setting_fails_test(): ) ################################################### +# 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 ################################################### @@ -587,5 +635,8 @@ def selects_test_suite(): _or_config_setting_group_single_setting_matches_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() # _and_and_or_not_allowed_together_test() |