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 nRF54L series, nRF54H20 and nRF9280 as Nordic HAL is not compatible with C++98.
38    # Exclude CONFIG_HAS_RENESAS_RA_FSP and CONFIG_HAS_RENESAS_RZ_FSP as Renesas HALs are not
39    # compatible with C++98.
40    platform_exclude:
41      - nrf54l15dk/nrf54l05/cpuapp
42      - nrf54l15dk/nrf54l10/cpuapp
43      - nrf54l15dk/nrf54l15/cpuapp
44      - nrf54l20pdk/nrf54l20/cpuapp
45      - nrf54h20dk/nrf54h20/cpuapp
46      - nrf54h20dk/nrf54h20/cpurad
47      - nrf9280pdk/nrf9280/cpuapp
48      - nrf9280pdk/nrf9280/cpurad
49    filter: not CONFIG_HAS_RENESAS_RA_FSP and not CONFIG_HAS_RENESAS_RZ_FSP
50    build_only: true
51    extra_configs:
52      - CONFIG_STD_CPP98=y
53  # Note: no "cpp.main.cpp11" as that's the default standard tested above
54  cpp.main.cpp14:
55    arch_exclude: posix
56    build_only: true
57    extra_configs:
58      - CONFIG_STD_CPP14=y
59  cpp.main.cpp17:
60    arch_exclude: posix
61    build_only: true
62    extra_configs:
63      - CONFIG_STD_CPP17=y
64  cpp.main.cpp2A:
65    arch_exclude: posix
66    build_only: true
67    extra_configs:
68      - CONFIG_STD_CPP2A=y
69  cpp.main.cpp20:
70    arch_exclude: posix
71    build_only: true
72    extra_configs:
73      - CONFIG_STD_CPP20=y
74  cpp.main.cpp2B:
75    arch_exclude: posix
76    toolchain_exclude:
77      - xt-clang
78    build_only: true
79    extra_configs:
80      - CONFIG_STD_CPP2B=y
81