])), Parameter( name='enable_experimental', choices=[True, False], type=bool, default=True, help="Whether to enable tests for experimental C++ Library features.", actions=lambda experimental: [ # When linking in MSVC mode via the Clang driver, a -l<foo> # maps to <foo>.lib, so we need to use -llibc++experimental here # to make it link against the static libc++experimental.lib. # We can't check for the feature 'msvc' in available_features # as those features are added after processing parameters. AddFeature('c++experimental'), PrependLinkFlag(lambda cfg: '-llibc++experimental' if _isMSVC(cfg) else '-lc++experimental'), AddCompileFlag('-D_LIBCPP_ENABLE_EXPERIMENTAL'), ] if experimental else [ AddFeature('libcpp-has-no-incomplete-format'), AddFeature('libcpp-has-no-incomplete-ranges') ]), Parameter( name='long_tests', choices=[True, False], type=bool, default=True, help= "Whether to enable tests that take longer to run. This can be useful when running on a very slow device.", actions=lambda enabled: [] if not enabled else [AddFeature('long_tests')]),
Parameter( name='enable_experimental', choices=[True, False], type=bool, default=True, help= "Whether to enable tests for experimental C++ libraries (typically Library Fundamentals TSes).", actions=lambda experimental: [] if not experimental else [ AddFeature('c++experimental'), # When linking in MSVC mode via the Clang driver, a -l<foo> # maps to <foo>.lib, so we need to use -llibc++experimental here # to make it link against the static libc++experimental.lib. # We can't check for the feature 'msvc' in available_features # as those features are added after processing parameters. PrependLinkFlag(lambda config: '-llibc++experimental' if _isMSVC(config) else '-lc++experimental') ]), Parameter( name='long_tests', choices=[True, False], type=bool, default=True, help= "Whether to enable tests that take longer to run. This can be useful when running on a very slow device.", actions=lambda enabled: [] if not enabled else [AddFeature('long_tests')]), Parameter( name='enable_debug_tests', choices=[True, False],
AddFlag('-fsanitize=leaks') if sanitizer == 'Leaks' else None, AddFeature('sanitizer-new-delete') if sanitizer in ['Address', 'Memory', 'MemoryWithOrigins', 'Thread'] else None, ])), # Parameters to enable or disable parts of the test suite Parameter(name='enable_experimental', choices=[True, False], type=bool, default=True, help="Whether to enable tests for experimental C++ libraries (typically Library Fundamentals TSes).", actions=lambda experimental: [] if not experimental else [ AddFeature('c++experimental'), # When linking in MSVC mode via the Clang driver, a -l<foo> # maps to <foo>.lib, so we need to use -llibc++experimental here # to make it link against the static libc++experimental.lib. # We can't check for the feature 'msvc' in available_features # as those features are added after processing parameters. PrependLinkFlag(lambda config: '-llibc++experimental' if _isMSVC(config) else '-lc++experimental') ]), Parameter(name='long_tests', choices=[True, False], type=bool, default=True, help="Whether to enable tests that take longer to run. This can be useful when running on a very slow device.", actions=lambda enabled: [] if not enabled else [ AddFeature('long_tests') ]), Parameter(name='enable_debug_tests', choices=[True, False], type=bool, default=True, help="Whether to enable tests that exercise the libc++ debugging mode.", actions=lambda enabled: [] if enabled else [ AddFeature('libcxx-no-debug-mode') ]), ]