blob: e902fa626deae275cb1a4132c21af60a93c3414c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
macro (M_SET_CONFIG_OPTIONS)
if (${SerialPortSpeed})
set (CONFIG_OPTIONS "${CONFIG_OPTIONS} -s ${SerialPortSpeed}")
endif ()
if (${DefaultSerialPortName})
set (CONFIG_OPTIONS "${CONFIG_OPTIONS} -p ${DefaultSerialPortName}")
endif ()
if (NOT "${McuCpuFrequency}" STREQUAL "")
set (CONFIG_OPTIONS "${CONFIG_OPTIONS} -f ${McuCpuFrequency}")
endif ()
endmacro ()
macro (M_ADD_TEST SCRIPT)
add_test(NAME ${TestNamespace}${NAME}
CONFIGURATIONS ${TestConfigurations}
COMMAND ${CMAKE_COMMAND}
-DTestFunctions=${CMAKE_SOURCE_DIR}/tests/functions.cmake
-DTestArgs=${ARGS}
-DTestConfigOptions=${CONFIG_OPTIONS}
-DTestExitCode=${EXITCODE}
-DTestBlessedFile=${BLESSEDFILE}
-DTestFile=${FILE}
-P ${SCRIPT}
)
endmacro ()
function (ADD_WITHOUT_CONFIG_TEST NAME ARGS EXITCODE)
m_add_test (${CMAKE_SOURCE_DIR}/tests/other_operations.cmake)
endfunction ()
function (ADD_NORMAL_TEST NAME ARGS EXITCODE)
m_set_config_options ()
m_add_test (${CMAKE_SOURCE_DIR}/tests/other_operations.cmake)
endfunction ()
function (ADD_ERASE_TEST NAME ARGS EXITCODE BLESSEDFILE FILE)
m_set_config_options ()
m_add_test (${CMAKE_SOURCE_DIR}/tests/erase.cmake)
endfunction ()
function (ADD_WRITE_TEST NAME ARGS EXITCODE BLESSEDFILE FILE)
m_set_config_options ()
m_add_test (${CMAKE_SOURCE_DIR}/tests/write.cmake)
endfunction ()
function (ADD_READ_TEST NAME ARGS EXITCODE FILE)
m_set_config_options ()
m_add_test (${CMAKE_SOURCE_DIR}/tests/read.cmake)
endfunction ()
# -------------------------------------------------------
function (EXEC_TEST ARGS EXITCODE)
string (REPLACE " " ";" ARGS_LIST "${ARGS}")
execute_process (
COMMAND ${CMAKE_BINARY_DIR}/main ${ARGS_LIST}
RESULT_VARIABLE MAIN_RESULT
TIMEOUT 120
)
if (NOT ${MAIN_RESULT} EQUAL ${EXITCODE})
message(FATAL_ERROR "Unexpected exit code ${MAIN_RESULT}, expected ${EXITCODE}")
endif()
set (RETVAL ${MAIN_RESULT} PARENT_SCOPE)
endfunction ()
function(COMPARE_FILES F1 F2)
execute_process (
COMMAND ${CMAKE_COMMAND} -E compare_files ${F1} ${F2}
RESULT_VARIABLE CMP_RESULT
)
if(CMP_RESULT)
message(FATAL_ERROR "Files do not match: ${F1} ${F2}")
endif()
endfunction()
|