| # ===----------------------------------------------------------------------===## |
| # |
| # Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. |
| # See https://llvm.org/LICENSE.txt for license information. |
| # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
| # |
| # ===----------------------------------------------------------------------===## |
| |
| # RUN: %{python} %s %{libcxx-dir}/utils %{libcxx-dir}/test/libcxx/feature_test_macro/test_data.json |
| |
| import sys |
| |
| sys.path.append(sys.argv[1]) |
| from generate_feature_test_macro_components import FeatureTestMacros |
| |
| |
| def test(output, expected): |
| assert output == expected, f"expected\n{expected}\n\noutput\n{output}" |
| |
| |
| ftm = FeatureTestMacros(sys.argv[2]) |
| test( |
| ftm.ftm_metadata, |
| { |
| "__cpp_lib_any": { |
| "headers": ["any"], |
| "test_suite_guard": None, |
| "libcxx_guard": None, |
| }, |
| "__cpp_lib_barrier": { |
| "headers": ["barrier"], |
| "test_suite_guard": "!defined(_LIBCPP_HAS_NO_THREADS) && (!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_SYNC)", |
| "libcxx_guard": "!defined(_LIBCPP_HAS_NO_THREADS) && _LIBCPP_AVAILABILITY_HAS_SYNC", |
| }, |
| "__cpp_lib_format": { |
| "headers": ["format"], |
| "test_suite_guard": None, |
| "libcxx_guard": None, |
| }, |
| "__cpp_lib_parallel_algorithm": { |
| "headers": ["algorithm", "numeric"], |
| "test_suite_guard": None, |
| "libcxx_guard": None, |
| }, |
| "__cpp_lib_variant": { |
| "headers": ["variant"], |
| "test_suite_guard": None, |
| "libcxx_guard": None, |
| }, |
| }, |
| ) |