| # SPDX-License-Identifier: Apache-2.0 |
| |
| # Add a few copies of the same image, so that we can configure |
| # multiple instances of the same test suite with minor tweaks, |
| # including different arguments given to them via testcase.yaml. |
| foreach(suffix "2nd" "3rd") |
| set(image ${DEFAULT_IMAGE}_${suffix}) |
| if(NOT TARGET ${image}) |
| ExternalZephyrProject_Add( |
| APPLICATION ${image} |
| SOURCE_DIR ${APP_DIR} |
| ) |
| list(APPEND IMAGES ${image}) |
| endif() |
| endforeach() |
| |
| function(test_report) |
| set(failures "") |
| foreach(image ${IMAGES}) |
| sysbuild_get(ASSERT_FAIL_COUNT IMAGE ${image} CACHE) |
| if(ASSERT_FAIL_COUNT GREATER 0) |
| set(failures "${failures}\n - ${image}: ${ASSERT_FAIL_COUNT} assertion(s) failed") |
| endif() |
| unset(ASSERT_FAIL_COUNT) |
| endforeach() |
| |
| if(failures) |
| message(FATAL_ERROR "Test failures per sysbuild image: ${failures}") |
| endif() |
| endfunction() |
| |
| if(NOT DEFERRED_TEST_REPORT) |
| # Defer until all test suite copies have been executed. |
| cmake_language(DEFER ID_VAR DEFERRED_TEST_REPORT CALL test_report) |
| endif() |