| # Copyright 2024 The Bazel Authors. All rights reserved. |
| # |
| # Licensed under the Apache License, Version 2.0 (the "License"); |
| # you may not use this file except in compliance with the License. |
| # You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| |
| load("@bazel_skylib//rules:diff_test.bzl", "diff_test") |
| |
| # Do bazel query for the following targets and put the results into a file |
| _TARGETS = [ |
| "is_python_3.12.0", |
| "is_python_3.12.1", |
| "_is_python_3.12.1", |
| "_python_version_flag_equals_3.12.1", |
| "_python_version_flag_equals_3.12", |
| ] |
| |
| [ |
| genquery( |
| name = target, |
| expression = "//python/config_settings:" + target, |
| opts = ["--output=build"], |
| scope = ["//python/config_settings:" + target], |
| ) |
| for target in _TARGETS |
| ] |
| |
| genrule( |
| name = "config_settings_query", |
| srcs = _TARGETS, |
| outs = ["config_settings_query.txt"], |
| # Strip comments that are specific to the host it is being run on and make the |
| # expectation output more maintainable. |
| cmd = "sed -e '/^#/d' -e '/^ generator_/d' $(SRCS) >$@", |
| target_compatible_with = select({ |
| # We don't have sed available on Windows |
| "@platforms//os:windows": ["@platforms//:incompatible"], |
| "//conditions:default": [], |
| }), |
| ) |
| |
| diff_test( |
| name = "config_settings_test", |
| file1 = "want", |
| file2 = "config_settings_query", |
| ) |