diff --git a/tests/cmake/overlays/soc_folder_overlay/CMakeLists.txt b/tests/cmake/overlays/soc_folder_overlay/CMakeLists.txt new file mode 100644 index 0000000000..dbd1fab670 --- /dev/null +++ b/tests/cmake/overlays/soc_folder_overlay/CMakeLists.txt @@ -0,0 +1,9 @@ +# SPDX-License-Identifier: Apache-2.0 + +cmake_minimum_required(VERSION 3.20.0) + +find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE}) +project(overlays_soc_folder_overlay) + +FILE(GLOB app_sources src/*.c) +target_sources(app PRIVATE ${app_sources}) diff --git a/tests/cmake/overlays/soc_folder_overlay/Kconfig b/tests/cmake/overlays/soc_folder_overlay/Kconfig new file mode 100644 index 0000000000..a49375710f --- /dev/null +++ b/tests/cmake/overlays/soc_folder_overlay/Kconfig @@ -0,0 +1,31 @@ +# Copyright (c) 2024 Nordic Semiconductor ASA +# SPDX-License-Identifier: Apache-2.0 + +config SOC_FOLDER_TEST_INCLUDE_APP + bool + default "$(dt_alias_enabled,test-app)" + +config SOC_FOLDER_TEST_INCLUDE_BOARD + bool + default "$(dt_alias_enabled,test-board)" + +config SOC_FOLDER_TEST_INCLUDE_BOARD_SUFFIX + bool + default "$(dt_alias_enabled,test-board-suffix)" + +config SOC_FOLDER_TEST_INCLUDE_BOARD_QUALIFIERS + bool + default "$(dt_alias_enabled,test-board-qualifiers)" + +config SOC_FOLDER_TEST_INCLUDE_SOC + bool + default "$(dt_alias_enabled,test-soc)" + +config SOC_FOLDER_TEST_INCLUDE_SOC_SUFFIX + bool + default "$(dt_alias_enabled,test-soc-suffix)" + +config TEST_TYPE + int "Test type" + +source "Kconfig.zephyr" diff --git a/tests/cmake/overlays/soc_folder_overlay/app.overlay b/tests/cmake/overlays/soc_folder_overlay/app.overlay new file mode 100644 index 0000000000..ad861b3e46 --- /dev/null +++ b/tests/cmake/overlays/soc_folder_overlay/app.overlay @@ -0,0 +1,5 @@ +/ { + aliases { + test-app = &uart0; + }; +}; diff --git a/tests/cmake/overlays/soc_folder_overlay/boards/native_sim_native.overlay b/tests/cmake/overlays/soc_folder_overlay/boards/native_sim_native.overlay new file mode 100644 index 0000000000..126168af11 --- /dev/null +++ b/tests/cmake/overlays/soc_folder_overlay/boards/native_sim_native.overlay @@ -0,0 +1,5 @@ +/ { + aliases { + test-board = &uart0; + }; +}; diff --git a/tests/cmake/overlays/soc_folder_overlay/boards/native_sim_native_64.overlay b/tests/cmake/overlays/soc_folder_overlay/boards/native_sim_native_64.overlay new file mode 100644 index 0000000000..5db22cfdfc --- /dev/null +++ b/tests/cmake/overlays/soc_folder_overlay/boards/native_sim_native_64.overlay @@ -0,0 +1,5 @@ +/ { + aliases { + test-board-qualifiers = &uart0; + }; +}; diff --git a/tests/cmake/overlays/soc_folder_overlay/boards/native_sim_native_64_somesuffix.overlay b/tests/cmake/overlays/soc_folder_overlay/boards/native_sim_native_64_somesuffix.overlay new file mode 100644 index 0000000000..79d904a717 --- /dev/null +++ b/tests/cmake/overlays/soc_folder_overlay/boards/native_sim_native_64_somesuffix.overlay @@ -0,0 +1,5 @@ +/ { + aliases { + test-board-suffix = &uart0; + }; +}; diff --git a/tests/cmake/overlays/soc_folder_overlay/boards/native_sim_native_somesuffix.overlay b/tests/cmake/overlays/soc_folder_overlay/boards/native_sim_native_somesuffix.overlay new file mode 100644 index 0000000000..79d904a717 --- /dev/null +++ b/tests/cmake/overlays/soc_folder_overlay/boards/native_sim_native_somesuffix.overlay @@ -0,0 +1,5 @@ +/ { + aliases { + test-board-suffix = &uart0; + }; +}; diff --git a/tests/cmake/overlays/soc_folder_overlay/prj.conf b/tests/cmake/overlays/soc_folder_overlay/prj.conf new file mode 100644 index 0000000000..9467c29268 --- /dev/null +++ b/tests/cmake/overlays/soc_folder_overlay/prj.conf @@ -0,0 +1 @@ +CONFIG_ZTEST=y diff --git a/tests/cmake/overlays/soc_folder_overlay/socs/native.overlay b/tests/cmake/overlays/soc_folder_overlay/socs/native.overlay new file mode 100644 index 0000000000..240f4f9780 --- /dev/null +++ b/tests/cmake/overlays/soc_folder_overlay/socs/native.overlay @@ -0,0 +1,5 @@ +/ { + aliases { + test-soc = &uart0; + }; +}; diff --git a/tests/cmake/overlays/soc_folder_overlay/socs/native_64.overlay b/tests/cmake/overlays/soc_folder_overlay/socs/native_64.overlay new file mode 100644 index 0000000000..240f4f9780 --- /dev/null +++ b/tests/cmake/overlays/soc_folder_overlay/socs/native_64.overlay @@ -0,0 +1,5 @@ +/ { + aliases { + test-soc = &uart0; + }; +}; diff --git a/tests/cmake/overlays/soc_folder_overlay/socs/native_64_somesuffix.overlay b/tests/cmake/overlays/soc_folder_overlay/socs/native_64_somesuffix.overlay new file mode 100644 index 0000000000..be46f68675 --- /dev/null +++ b/tests/cmake/overlays/soc_folder_overlay/socs/native_64_somesuffix.overlay @@ -0,0 +1,5 @@ +/ { + aliases { + test-soc-suffix = &uart0; + }; +}; diff --git a/tests/cmake/overlays/soc_folder_overlay/socs/native_somesuffix.overlay b/tests/cmake/overlays/soc_folder_overlay/socs/native_somesuffix.overlay new file mode 100644 index 0000000000..be46f68675 --- /dev/null +++ b/tests/cmake/overlays/soc_folder_overlay/socs/native_somesuffix.overlay @@ -0,0 +1,5 @@ +/ { + aliases { + test-soc-suffix = &uart0; + }; +}; diff --git a/tests/cmake/overlays/soc_folder_overlay/src/main.c b/tests/cmake/overlays/soc_folder_overlay/src/main.c new file mode 100644 index 0000000000..b4e1f22b6a --- /dev/null +++ b/tests/cmake/overlays/soc_folder_overlay/src/main.c @@ -0,0 +1,96 @@ +/* + * Copyright (c) 2024 Nordic Semiconductor ASA + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include + +#ifndef CONFIG_TEST_TYPE +#error "Invalid test configuration" +#endif + +#ifdef CONFIG_SOC_FOLDER_TEST_INCLUDE_APP +#define INCLUDED_APP 1 +#else +#define INCLUDED_APP 0 +#endif + +#ifdef CONFIG_SOC_FOLDER_TEST_INCLUDE_BOARD +#define INCLUDED_BOARD 1 +#else +#define INCLUDED_BOARD 0 +#endif + +#ifdef CONFIG_SOC_FOLDER_TEST_INCLUDE_BOARD_SUFFIX +#define INCLUDED_BOARD_SUFFIX 1 +#else +#define INCLUDED_BOARD_SUFFIX 0 +#endif + +#ifdef CONFIG_SOC_FOLDER_TEST_INCLUDE_BOARD_QUALIFIERS +#define INCLUDED_BOARD_QUALIFIERS 1 +#else +#define INCLUDED_BOARD_QUALIFIERS 0 +#endif + +#ifdef CONFIG_SOC_FOLDER_TEST_INCLUDE_SOC +#define INCLUDED_SOC 1 +#else +#define INCLUDED_SOC 0 +#endif + +#ifdef CONFIG_SOC_FOLDER_TEST_INCLUDE_SOC_SUFFIX +#define INCLUDED_SOC_SUFFIX 1 +#else +#define INCLUDED_SOC_SUFFIX 0 +#endif + +#if CONFIG_TEST_TYPE == 0 +/* Default test */ +ZTEST(soc_folder_overlay, test_default) +{ + zassert_false(INCLUDED_APP, "Did not expect app overlay to be present"); + zassert_false(INCLUDED_BOARD_SUFFIX, "Did not expect board suffix overlay to be present"); + +#ifdef CONFIG_BOARD_NATIVE_SIM_NATIVE_64 + zassert_false(INCLUDED_BOARD, "Did not expect board overlay to be present"); + zassert_true(INCLUDED_BOARD_QUALIFIERS, "Expected board qualifier overlay to be present"); +#else + zassert_true(INCLUDED_BOARD, "Expected board overlay to be present"); + zassert_false(INCLUDED_BOARD_QUALIFIERS, + "Did not expect board qualifier overlay to be present"); +#endif + + zassert_true(INCLUDED_SOC, "Expect soc overlay to be present"); + zassert_false(INCLUDED_SOC_SUFFIX, "Did not expect soc suffix overlay to be present"); +} +#elif CONFIG_TEST_TYPE == 1 +/* File suffix test */ +ZTEST(soc_folder_overlay, test_suffix) +{ + zassert_false(INCLUDED_APP, "Did not expect app overlay to be present"); + zassert_true(INCLUDED_BOARD_SUFFIX, "Expected board suffix overlay to be present"); + zassert_false(INCLUDED_BOARD, "Did not expect board overlay to be present"); + zassert_false(INCLUDED_BOARD_QUALIFIERS, + "Did not expect board qualifier overlay to be present"); + zassert_false(INCLUDED_SOC, "Did not expect soc overlay to be present"); + zassert_true(INCLUDED_SOC_SUFFIX, "Expected soc suffix overlay to be present"); +} +#elif CONFIG_TEST_TYPE == 2 +/* App overlay test */ +ZTEST(soc_folder_overlay, test_app) +{ + zassert_true(INCLUDED_APP, "Expected app overlay to be present"); + zassert_false(INCLUDED_BOARD_SUFFIX, "Did not expect board suffix overlay to be present"); + zassert_false(INCLUDED_BOARD, "Did not expect board overlay to be present"); + zassert_false(INCLUDED_BOARD_QUALIFIERS, + "Did not expect board qualifier overlay to be present"); + zassert_false(INCLUDED_SOC, "Did not expect soc overlay to be present"); + zassert_false(INCLUDED_SOC_SUFFIX, "Did not epect soc suffix overlay to be present"); +} +#else +#error "Invalid test type" +#endif + +ZTEST_SUITE(soc_folder_overlay, NULL, NULL, NULL, NULL, NULL); diff --git a/tests/cmake/overlays/soc_folder_overlay/testcase.yaml b/tests/cmake/overlays/soc_folder_overlay/testcase.yaml new file mode 100644 index 0000000000..659560cf83 --- /dev/null +++ b/tests/cmake/overlays/soc_folder_overlay/testcase.yaml @@ -0,0 +1,30 @@ +common: + tags: + - cmake +tests: + cmake.overlays.soc_folder_overlay.default: + platform_allow: + - native_sim + - native_sim/native/64 + integration_platforms: + - native_sim + - native_sim/native/64 + extra_args: + - CONFIG_TEST_TYPE=0 + cmake.overlays.soc_folder_overlay.suffix: + platform_allow: + - native_sim + - native_sim/native/64 + integration_platforms: + - native_sim + - native_sim/native/64 + extra_args: + - CONFIG_TEST_TYPE=1 + - FILE_SUFFIX=somesuffix + cmake.overlays.soc_folder_overlay.app: + platform_allow: + - qemu_cortex_m3 + integration_platforms: + - qemu_cortex_m3 + extra_args: + - CONFIG_TEST_TYPE=2