2021-11-30 14:51:24 +01:00

69 lines
2.1 KiB
CMake

include( ${MODULE_ROOT_DIR}/jobsFilePaths.cmake )
# ==================== Define your project name (edit) ========================
set(project_name "jobs")
# ===================== Create your mock here (edit) ========================
# ================= Create the library under test here (edit) ==================
# Base name for temporary files
set( TEMP_BASE ${CMAKE_BINARY_DIR}/${project_name} )
# Strip static constraints so unit tests may call internal functions
execute_process( COMMAND sed "s/^static //"
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
INPUT_FILE ${JOBS_SOURCES}
OUTPUT_FILE ${TEMP_BASE}.c
)
# Generate a header file for internal functions
execute_process( COMMAND sed -n "1s/.*/typedef int bool_;/p; /^static.*(/,/^{\$/{s/^static //; s/)\$/&;/; /{/d; p;}"
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
INPUT_FILE ${JOBS_SOURCES}
OUTPUT_FILE ${TEMP_BASE}_annex.h
)
# list the files you would like to test here
list(APPEND real_source_files
${TEMP_BASE}.c
)
# list the directories the module under test includes
list(APPEND real_include_directories
${JOBS_INCLUDE_PUBLIC_DIRS}
)
# ===================== Create UnitTest Code here (edit) =====================
# list the directories your test needs to include
list(APPEND test_include_directories
${JOBS_INCLUDE_PUBLIC_DIRS}
${UNIT_TEST_DIR}
${CMAKE_BINARY_DIR}
)
# ============================= (end edit) ===================================
set(real_name "${project_name}_real")
create_real_library(${real_name}
"${real_source_files}"
"${real_include_directories}"
)
list(APPEND utest_link_list
lib${real_name}.a
)
list(APPEND utest_dep_list
${real_name}
)
set(utest_name "${project_name}_utest")
set(utest_source "${project_name}_utest.c")
create_test(${utest_name}
${utest_source}
"${utest_link_list}"
"${utest_dep_list}"
"${test_include_directories}"
)