blob: a5f4b027820a0a641e47f19ba9f6b5c15b194feb [file]
#
# Copyright 2019, Data61, CSIRO (ABN 41 687 119 230)
#
# SPDX-License-Identifier: BSD-2-Clause
#
cmake_minimum_required(VERSION 3.8.2)
project(camkes-tests NONE)
enable_testing()
set(test_platforms sabre_sim ia32_sim spike64_sim)
set(sabre_sim_cmake "-DPLATFORM=sabre -DSIMULATION=ON -DCAmkESCapDLStaticAlloc=TRUE")
set(ia32_sim_cmake "-DPLATFORM=ia32 -DSIMULATION=ON")
set(spike64_sim_cmake "-DPLATFORM=spike -DRISCV64=ON -DSIMULATION=ON")
set(x86_64_sim_cmake "-DPLATFORM=x86_64 -DSIMULATION=ON")
file(GLOB apps ${CMAKE_CURRENT_LIST_DIR}/../apps/*)
macro(add_test_variant app_name test_platform test_variant)
if(NOT "${test_variant}" STREQUAL "")
set(test_name ${app_name}-${test_platform}-${test_variant})
else()
set(test_name ${app_name}-${test_platform})
endif()
add_test(
${test_name}
${CMAKE_CURRENT_LIST_DIR}/test_launcher.sh
${${test_platform}_cmake}
${${test_variant}_cmake}
-DCAMKES_APP=${app_name}
-C
${CMAKE_CURRENT_LIST_DIR}/../settings.cmake
${CMAKE_CURRENT_LIST_DIR}/../
)
endmacro()
foreach(
app
IN
ITEMS
aeroplage
alignment
keyboard
pit
serialserver_polling
serialserver_interrupt
testhwdataportlrgpages
timeserver
vgatest
)
add_test_variant(${app} ia32_sim "")
list(APPEND exclude_apps ${app})
endforeach()
add_test_variant(alignment x86_64_sim "")
set(largeframe_cmake "-DCAmkESLargeFramePromotion=ON")
add_test_variant(dma-example ia32_sim largeframe)
add_test_variant(dma-example sabre_sim largeframe)
add_test_variant(dma-example spike64_sim largeframe)
set(cakeml_cmake "-DCAKEMLDIR=/cakeml -DCAKEML_BIN=/cake-x64-64/cake")
add_test_variant(cakeml_hello x86_64_sim cakeml)
add_test_variant(cakeml_tipc x86_64_sim cakeml)
foreach(app IN ITEMS fdtgen epit swapcounter testhwdataportlrgpages testnto1mmio uart_cogent)
add_test_variant(${app} sabre_sim "")
list(APPEND exclude_apps ${app})
endforeach()
list(
APPEND
exclude_apps
cakeml_hello
cakeml_regex
cakeml_tipc
debug-simple
hellorust
uart
serialserver_loopback
rumprun_rust
rumprun_pthreads
rumprun_hello
rumprun_ethernet
picoserver
picotcp_tcp_echo
picotcp_single_component
mcs-scheduling
)
foreach(app IN LISTS apps)
if(NOT IS_DIRECTORY ${app})
continue()
endif()
get_filename_component(app ${app} NAME_WE)
if(app IN_LIST exclude_apps)
continue()
endif()
foreach(test_platform IN LISTS test_platforms)
add_test_variant(${app} ${test_platform} "")
endforeach()
endforeach()