zephyr/tests/lib/cpp/cxx/testcase.yaml
Andy Ross 3d9c428d57 tests/lib/cpp/cxx: Add compatibility cases for C++ standards
Add some cases to enumerate all the C++ standard variants that the SDK
gcc supports (there are MANY) to prevent compatibility regressions in
the OS headers.

Signed-off-by: Andy Ross <andyross@google.com>
2023-03-01 19:42:32 -05:00

66 lines
1.8 KiB
YAML

common:
tags: cpp
toolchain_exclude: xcc
integration_platforms:
- mps2_an385
- qemu_cortex_a53
tests:
cpp.main.minimal:
extra_configs:
- CONFIG_MINIMAL_LIBC=y
cpp.main.newlib:
filter: TOOLCHAIN_HAS_NEWLIB == 1
min_ram: 32
extra_configs:
- CONFIG_NEWLIB_LIBC=y
cpp.main.newlib_nano:
filter: TOOLCHAIN_HAS_NEWLIB == 1 and CONFIG_HAS_NEWLIB_LIBC_NANO
min_ram: 24
extra_configs:
- CONFIG_NEWLIB_LIBC=y
- CONFIG_NEWLIB_LIBC_NANO=y
cpp.main.picolibc:
tags: picolibc
filter: CONFIG_PICOLIBC_SUPPORTED
extra_configs:
- CONFIG_PICOLIBC=y
# Note: the -std= variants below exclude the host compilers, which
# aren't part of the SDK and can't be managed as part of the test
# suite. (e.g. as of commit time the g++ used in CI didn't support
# C++20/2B and emits a command line error when presented with
# -Wno-pointer-sign or -Werror=implicit-int in C++ mode with
# -std=c++98)
cpp.main.cpp98:
platform_exclude: native_posix native_posix_64
build_only: true
extra_configs:
- CONFIG_STD_CPP98=y
# Note: no "cpp.main.cpp11" as that's the default standard tested above
cpp.main.cpp14:
platform_exclude: native_posix native_posix_64
build_only: true
extra_configs:
- CONFIG_STD_CPP14=y
cpp.main.cpp17:
platform_exclude: native_posix native_posix_64
build_only: true
extra_configs:
- CONFIG_STD_CPP17=y
cpp.main.cpp2A:
platform_exclude: native_posix native_posix_64
build_only: true
extra_configs:
- CONFIG_STD_CPP2A=y
cpp.main.cpp20:
platform_exclude: native_posix native_posix_64
build_only: true
extra_configs:
- CONFIG_STD_CPP20=y
cpp.main.cpp2B:
platform_exclude: native_posix native_posix_64
build_only: true
extra_configs:
- CONFIG_STD_CPP2B=y