1# ====================  Define your project name (edit) ========================
2set(project_name "mqtt_agent")
3
4# =====================  Create your mock here  (edit)  ========================
5
6# list the files to mock here
7list(APPEND mock_list
8            "${MODULE_ROOT_DIR}/source/dependency/coreMQTT/source/include/core_mqtt.h"
9            "${MODULE_ROOT_DIR}/source/dependency/coreMQTT/source/include/core_mqtt_state.h"
10            "${MODULE_ROOT_DIR}/source/include/core_mqtt_agent_command_functions.h"
11        )
12
13list(APPEND mock_list_command_functions
14            "${MODULE_ROOT_DIR}/source/dependency/coreMQTT/source/include/core_mqtt.h"
15            "${MODULE_ROOT_DIR}/source/dependency/coreMQTT/source/include/core_mqtt_state.h"
16            "${MODULE_ROOT_DIR}/source/include/core_mqtt_agent.h"
17        )
18
19# list the directories your mocks need
20list(APPEND mock_include_list
21            .
22            ${CMAKE_CURRENT_LIST_DIR}/logging
23            ${CMAKE_CURRENT_LIST_DIR}/config
24            ${MQTT_AGENT_INCLUDE_PUBLIC_DIRS}
25            ${MQTT_INCLUDE_PUBLIC_DIRS}
26        )
27
28#list the definitions of your mocks to control what to be included
29list(APPEND mock_define_list
30            ""
31       )
32
33# ================= Create the library under test here (edit) ==================
34
35# list the files you would like to test here
36list(APPEND real_source_files
37            ${MQTT_AGENT_SOURCES}
38        )
39# list the directories the module under test includes
40list(APPEND real_include_directories
41            .
42            ${CMAKE_CURRENT_LIST_DIR}/logging
43            ${CMAKE_CURRENT_LIST_DIR}/config
44            ${MQTT_AGENT_INCLUDE_PUBLIC_DIRS}
45            ${MQTT_INCLUDE_PUBLIC_DIRS}
46        )
47
48# =====================  Create UnitTest Code here (edit)  =====================
49
50# list the directories your test needs to include
51list(APPEND test_include_directories
52            .
53            ${MQTT_AGENT_INCLUDE_PUBLIC_DIRS}
54        )
55
56# =============================  (end edit)  ===================================
57
58set(mock_name "${project_name}_mock")
59set(real_name "${project_name}_real")
60
61create_mock_list(${mock_name}
62                "${mock_list}"
63                "${MODULE_ROOT_DIR}/tools/cmock/project.yml"
64                "${mock_include_list}"
65                "${mock_define_list}"
66        )
67
68create_real_library(${real_name}
69                    "${real_source_files}"
70                    "${real_include_directories}"
71                    "${mock_name}"
72        )
73
74list(APPEND utest_link_list
75            -l${mock_name}
76            lib${real_name}.a
77        )
78
79list(APPEND utest_dep_list
80            ${real_name}
81        )
82
83
84# mqtt_agent_utest
85set(utest_name "${project_name}_utest")
86set(utest_source "${project_name}_utest.c")
87create_test(${utest_name}
88            ${utest_source}
89            "${utest_link_list}"
90            "${utest_dep_list}"
91            "${test_include_directories}"
92        )
93
94# mqtt_agent_command_functions_utest
95set(mock_name "${project_name}_command_functions_mock")
96set(real_name "${project_name}_command_functions_real")
97create_mock_list(${mock_name}
98                "${mock_list_command_functions}"
99                "${MODULE_ROOT_DIR}/tools/cmock/project.yml"
100                "${mock_include_list}"
101                "${mock_define_list}"
102        )
103
104create_real_library(${real_name}
105                    "${real_source_files}"
106                    "${real_include_directories}"
107                    "${mock_name}"
108        )
109
110set(utest_link_list "")
111list(APPEND utest_link_list
112            -l${mock_name}
113            lib${real_name}.a
114        )
115
116set(utest_dep_list "")
117list(APPEND utest_dep_list
118            ${real_name}
119        )
120set(utest_name "${project_name}_command_functions_utest")
121set(utest_source "${project_name}_command_functions_utest.c")
122create_test(${utest_name}
123            ${utest_source}
124            "${utest_link_list}"
125            "${utest_dep_list}"
126            "${test_include_directories}"
127        )
128