Changeset View
Changeset View
Standalone View
Standalone View
libcxx/utils/libcxx/test/features.py
Show First 20 Lines • Show All 321 Lines • ▼ Show 20 Lines | |||||
# Define features for back-deployment testing. | # Define features for back-deployment testing. | ||||
# These features can be used to XFAIL tests that require features in the dylib that | # These features can be used to XFAIL tests that require features in the dylib that | ||||
# were not supported by a certain target. Vendors can tweak how those are defined | # were not supported by a certain target. Vendors can tweak how those are defined | ||||
# to match their own releases of the dylib. | # to match their own releases of the dylib. | ||||
DEFAULT_FEATURES += [ | DEFAULT_FEATURES += [ | ||||
# Tests that require std::to_chars(floating-point) in the built library | # Tests that require std::to_chars(floating-point) in the built library | ||||
Feature(name='availability-fp_to_chars-missing', | Feature(name='availability-fp_to_chars-missing', | ||||
when=lambda cfg: BooleanExpression.evaluate('use_system_cxx_lib && target={{.+}}-apple-macosx{{10.9|10.10|10.11|10.12|10.13|10.14|10.15|11.0}}', cfg.available_features)), | when=lambda cfg: BooleanExpression.evaluate('use_system_cxx_lib && target={{.+}}-apple-macosx{{(10.9|10.10|10.11|10.12|10.13|10.14|10.15|11.0)(.0)?}}', cfg.available_features)), | ||||
# Tests that require https://wg21.link/P0482 support in the built library | # Tests that require https://wg21.link/P0482 support in the built library | ||||
Feature(name='availability-char8_t_support-missing', | Feature(name='availability-char8_t_support-missing', | ||||
when=lambda cfg: BooleanExpression.evaluate('use_system_cxx_lib && target={{.+}}-apple-macosx{{10.9|10.10|10.11|10.12|10.13|10.14|10.15|11.0}}', cfg.available_features)), | when=lambda cfg: BooleanExpression.evaluate('use_system_cxx_lib && target={{.+}}-apple-macosx{{(10.9|10.10|10.11|10.12|10.13|10.14|10.15|11.0)(.0)?}}', cfg.available_features)), | ||||
# Tests that require __libcpp_verbose_abort support in the built library | # Tests that require __libcpp_verbose_abort support in the built library | ||||
Feature(name='availability-verbose_abort-missing', | Feature(name='availability-verbose_abort-missing', | ||||
when=lambda cfg: BooleanExpression.evaluate('use_system_cxx_lib && target={{.+}}-apple-macosx{{10.9|10.10|10.11|10.12|10.13|10.14|10.15|11.0|12.0}}', cfg.available_features)), | when=lambda cfg: BooleanExpression.evaluate('use_system_cxx_lib && target={{.+}}-apple-macosx{{(10.9|10.10|10.11|10.12|10.13|10.14|10.15|11.0|12.0)(.0)?}}', cfg.available_features)), | ||||
# Tests that require std::bad_variant_access in the built library | # Tests that require std::bad_variant_access in the built library | ||||
Feature(name='availability-bad_variant_access-missing', | Feature(name='availability-bad_variant_access-missing', | ||||
when=lambda cfg: BooleanExpression.evaluate('use_system_cxx_lib && target={{.+}}-apple-macosx10.{{9|10|11|12}}', cfg.available_features)), | when=lambda cfg: BooleanExpression.evaluate('use_system_cxx_lib && target={{.+}}-apple-macosx10.{{(9|10|11|12)(.0)?}}', cfg.available_features)), | ||||
# Tests that require std::bad_optional_access in the built library | # Tests that require std::bad_optional_access in the built library | ||||
Feature(name='availability-bad_optional_access-missing', | Feature(name='availability-bad_optional_access-missing', | ||||
when=lambda cfg: BooleanExpression.evaluate('use_system_cxx_lib && target={{.+}}-apple-macosx10.{{9|10|11|12}}', cfg.available_features)), | when=lambda cfg: BooleanExpression.evaluate('use_system_cxx_lib && target={{.+}}-apple-macosx10.{{(9|10|11|12)(.0)?}}', cfg.available_features)), | ||||
# Tests that require std::bad_any_cast in the built library | # Tests that require std::bad_any_cast in the built library | ||||
Feature(name='availability-bad_any_cast-missing', | Feature(name='availability-bad_any_cast-missing', | ||||
when=lambda cfg: BooleanExpression.evaluate('use_system_cxx_lib && target={{.+}}-apple-macosx10.{{9|10|11|12}}', cfg.available_features)), | when=lambda cfg: BooleanExpression.evaluate('use_system_cxx_lib && target={{.+}}-apple-macosx10.{{(9|10|11|12)(.0)?}}', cfg.available_features)), | ||||
# Tests that require std::pmr support in the built library | # Tests that require std::pmr support in the built library | ||||
Feature(name='availability-pmr-missing', | Feature(name='availability-pmr-missing', | ||||
when=lambda cfg: BooleanExpression.evaluate('use_system_cxx_lib && target={{.+}}-apple-macosx{{10.9|10.10|10.11|10.12|10.13|10.14|10.15|11.0|12.0}}', cfg.available_features)), | when=lambda cfg: BooleanExpression.evaluate('use_system_cxx_lib && target={{.+}}-apple-macosx{{(10.9|10.10|10.11|10.12|10.13|10.14|10.15|11.0|12.0)(.0)?}}', cfg.available_features)), | ||||
# Tests that require std::filesystem support in the built library | # Tests that require std::filesystem support in the built library | ||||
Feature(name='availability-filesystem-missing', | Feature(name='availability-filesystem-missing', | ||||
when=lambda cfg: BooleanExpression.evaluate('use_system_cxx_lib && target={{.+}}-apple-macosx10.{{9|10|11|12|13|14}}', cfg.available_features)), | when=lambda cfg: BooleanExpression.evaluate('use_system_cxx_lib && target={{.+}}-apple-macosx10.{{(9|10|11|12|13|14)(.0)?}}', cfg.available_features)), | ||||
# Tests that require the C++20 synchronization library (P1135R6 implemented by https://llvm.org/D68480) in the built library | # Tests that require the C++20 synchronization library (P1135R6 implemented by https://llvm.org/D68480) in the built library | ||||
Feature(name='availability-synchronization_library-missing', | Feature(name='availability-synchronization_library-missing', | ||||
when=lambda cfg: BooleanExpression.evaluate('use_system_cxx_lib && target={{.+}}-apple-macosx10.{{9|10|11|12|13|14|15}}', cfg.available_features)), | when=lambda cfg: BooleanExpression.evaluate('use_system_cxx_lib && target={{.+}}-apple-macosx10.{{(9|10|11|12|13|14|15)(.0)?}}', cfg.available_features)), | ||||
# Tests that require support for std::shared_mutex and std::shared_timed_mutex in the built library | # Tests that require support for std::shared_mutex and std::shared_timed_mutex in the built library | ||||
Feature(name='availability-shared_mutex-missing', | Feature(name='availability-shared_mutex-missing', | ||||
when=lambda cfg: BooleanExpression.evaluate('use_system_cxx_lib && target={{.+}}-apple-macosx10.{{9|10|11}}', cfg.available_features)), | when=lambda cfg: BooleanExpression.evaluate('use_system_cxx_lib && target={{.+}}-apple-macosx10.{{(9|10|11)(.0)?}}', cfg.available_features)), | ||||
# Tests that require support for aligned allocation in the built library. This is about `operator new(..., std::align_val_t, ...)` specifically, | # Tests that require support for aligned allocation in the built library. This is about `operator new(..., std::align_val_t, ...)` specifically, | ||||
# not other forms of aligned allocation. | # not other forms of aligned allocation. | ||||
Feature(name='availability-aligned_allocation-missing', | Feature(name='availability-aligned_allocation-missing', | ||||
when=lambda cfg: BooleanExpression.evaluate('use_system_cxx_lib && target={{.+}}-apple-macosx10.{{9|10|11|12}}', cfg.available_features)), | when=lambda cfg: BooleanExpression.evaluate('use_system_cxx_lib && target={{.+}}-apple-macosx10.{{(9|10|11|12)(.0)?}}', cfg.available_features)), | ||||
] | ] |