mirror of
https://github.com/FreeRTOS/FreeRTOS-Kernel.git
synced 2026-10-10 08:02:57 -04:00
33 lines
1.6 KiB
CMake
33 lines
1.6 KiB
CMake
cmake_minimum_required(VERSION 3.15)
|
|
project(posix_port_tests C)
|
|
enable_testing()
|
|
find_package(Threads REQUIRED)
|
|
|
|
get_filename_component(KERNEL_ROOT "../../../../.." ABSOLUTE)
|
|
add_library(freertos_config INTERFACE)
|
|
target_include_directories(freertos_config INTERFACE "${CMAKE_CURRENT_SOURCE_DIR}")
|
|
set(FREERTOS_PORT GCC_POSIX CACHE STRING "" FORCE)
|
|
set(FREERTOS_HEAP 4 CACHE STRING "" FORCE)
|
|
add_subdirectory("${KERNEL_ROOT}" kernel)
|
|
|
|
foreach(assert_enabled 0 1)
|
|
set(target thread_marker_${assert_enabled})
|
|
add_executable(${target} thread_marker.c)
|
|
target_include_directories(${target} PRIVATE . .. "${KERNEL_ROOT}/include")
|
|
target_compile_definitions(${target} PRIVATE TEST_ASSERT_ENABLED=${assert_enabled})
|
|
target_compile_options(${target} PRIVATE -Wall -Wextra -Werror -ffunction-sections -fdata-sections)
|
|
target_link_libraries(${target} PRIVATE Threads::Threads)
|
|
target_link_options(${target} PRIVATE -Wl,--gc-sections
|
|
-Wl,--wrap=pthread_key_create -Wl,--wrap=pthread_setspecific
|
|
-Wl,--wrap=malloc -Wl,--wrap=free -Wl,--wrap=abort)
|
|
foreach(scenario success key_create key_query allocation setspecific)
|
|
add_test(NAME ${target}_${scenario} COMMAND ${target} ${scenario})
|
|
set_tests_properties(${target}_${scenario} PROPERTIES TIMEOUT 10)
|
|
endforeach()
|
|
endforeach()
|
|
|
|
add_executable(scheduler_smoke scheduler_smoke.c)
|
|
target_link_libraries(scheduler_smoke PRIVATE freertos_kernel)
|
|
target_compile_options(scheduler_smoke PRIVATE -Wall -Wextra -Werror)
|
|
add_test(NAME scheduler_smoke COMMAND scheduler_smoke)
|
|
set_tests_properties(scheduler_smoke PROPERTIES TIMEOUT 10)
|