1common:
2  tags: cpp
3  toolchain_exclude: xcc
4  integration_platforms:
5    - mps2/an385
6    - qemu_cortex_a53
7
8tests:
9  cpp.main.minimal:
10    extra_configs:
11      - CONFIG_MINIMAL_LIBC=y
12  cpp.main.newlib:
13    filter: TOOLCHAIN_HAS_NEWLIB == 1
14    min_ram: 32
15    extra_configs:
16      - CONFIG_NEWLIB_LIBC=y
17  cpp.main.newlib_nano:
18    filter: TOOLCHAIN_HAS_NEWLIB == 1 and CONFIG_HAS_NEWLIB_LIBC_NANO
19    min_ram: 24
20    extra_configs:
21      - CONFIG_NEWLIB_LIBC=y
22      - CONFIG_NEWLIB_LIBC_NANO=y
23  cpp.main.picolibc:
24    tags: picolibc
25    filter: CONFIG_PICOLIBC_SUPPORTED
26    extra_configs:
27      - CONFIG_PICOLIBC=y
28
29  # Note: the -std= variants below exclude the host compilers, which
30  # aren't part of the SDK and can't be managed as part of the test
31  # suite. (e.g. as of commit time the g++ used in CI didn't support
32  # C++20/2B and emits a command line error when presented with
33  # -Wno-pointer-sign or -Werror=implicit-int in C++ mode with
34  # -std=c++98)
35  cpp.main.cpp98:
36    arch_exclude: posix
37    # Exclude ARM cores from nRF54H, nRF92n and RF54L series as Nordic HAL is not
38    # compatible with C++98.
39    # Exclude CONFIG_HAS_RENESAS_RA_FSP and CONFIG_HAS_RENESAS_RZ_FSP as Renesas HALs are not
40    # compatible with C++98.
41    # Exclude CONFIG_HAS_SILABS_WISECONNECT as Wiseconnect is not compatible with C++98.
42    # Exclude CONFIG_SOC_FAMILY_AMBIQ as Ambiq HAL is not compatible with C++98.
43    filter: not CONFIG_HAS_RENESAS_RA_FSP and not CONFIG_HAS_RENESAS_RZ_FSP and
44            not CONFIG_HAS_SILABS_WISECONNECT and
45            not CONFIG_SOC_FAMILY_AMBIQ and
46            not (CONFIG_CPU_CORTEX_M and (CONFIG_NRF_PLATFORM_HALTIUM or CONFIG_SOC_SERIES_NRF54LX))
47    build_only: true
48    extra_configs:
49      - CONFIG_STD_CPP98=y
50  # Note: no "cpp.main.cpp11" as that's the default standard tested above
51  cpp.main.cpp14:
52    arch_exclude: posix
53    build_only: true
54    extra_configs:
55      - CONFIG_STD_CPP14=y
56  cpp.main.cpp17:
57    arch_exclude: posix
58    build_only: true
59    extra_configs:
60      - CONFIG_STD_CPP17=y
61  cpp.main.cpp2A:
62    arch_exclude: posix
63    build_only: true
64    extra_configs:
65      - CONFIG_STD_CPP2A=y
66  cpp.main.cpp20:
67    arch_exclude: posix
68    build_only: true
69    extra_configs:
70      - CONFIG_STD_CPP20=y
71  cpp.main.cpp2B:
72    arch_exclude: posix
73    build_only: true
74    extra_configs:
75      - CONFIG_STD_CPP2B=y
76  cpp.main.cpp23:
77    arch_exclude: posix
78    build_only: true
79    extra_configs:
80      - CONFIG_STD_CPP23=y
81