36 lines
1.0 KiB
CMake
36 lines
1.0 KiB
CMake
|
# 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()
|