blob: 94686a66b05a89fcf50a230caf2db1a1f1447a9e [file] [log] [blame]
#===----------------------------------------------------------------------===##
#
# 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
#
#===----------------------------------------------------------------------===##
from libcxx.test.dsl import *
_allStandards = ['c++03', 'c++11', 'c++14', 'c++17', 'c++2a']
DEFAULT_PARAMETERS = [
# Core parameters of the test suite
Parameter(name='std', choices=_allStandards, type=str,
help="The version of the standard to compile the test suite with.",
default=lambda cfg: next(s for s in reversed(_allStandards) if hasCompileFlag(cfg, '-std='+s)),
feature=lambda std:
Feature(name=std, compileFlag='-std={}'.format(std),
when=lambda cfg: hasCompileFlag(cfg, '-std={}'.format(std)))),
Parameter(name='enable_exceptions', choices=[True, False], type=bool, default=True,
help="Whether to enable exceptions when compiling the test suite.",
feature=lambda exceptions: None if exceptions else
Feature(name='no-exceptions', compileFlag='-fno-exceptions')),
Parameter(name='enable_rtti', choices=[True, False], type=bool, default=True,
help="Whether to enable RTTI when compiling the test suite.",
feature=lambda rtti: None if rtti else
Feature(name='no-rtti', compileFlag='-fno-rtti')),
Parameter(name='stdlib', choices=['libc++', 'libstdc++', 'msvc'], type=str, default='libc++',
help="The C++ Standard Library implementation being tested.",
feature=lambda stdlib: Feature(name=stdlib)),
# Parameters to enable or disable parts of the test suite
Parameter(name='enable_filesystem', choices=[True, False], type=bool, default=True,
help="Whether to enable tests for the C++ <filesystem> library.",
feature=lambda filesystem: None if filesystem else
Feature(name='c++filesystem-disabled')),
Parameter(name='enable_experimental', choices=[True, False], type=bool, default=False,
help="Whether to enable tests for experimental C++ libraries (typically Library Fundamentals TSes).",
feature=lambda experimental: None if not experimental else
Feature(name='c++experimental', linkFlag='-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.",
feature=lambda enabled: Feature(name='long_tests') if enabled else None),
Parameter(name='enable_debug_tests', choices=[True, False], type=bool, default=True,
help="Whether to enable tests that exercise the libc++ debugging mode.",
feature=lambda enabled: None if enabled else Feature(name='libcxx-no-debug-mode')),
]