Release 0.1.66
[platform/core/security/key-manager.git] / unit-tests / CMakeLists.txt
1 IF (CMAKE_BUILD_TYPE MATCHES "COVERAGE")
2
3     # coverage data
4     SET(COVERAGE_BUILD_DIR
5         ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/${TARGET_UNIT_TESTS}.dir/
6     )
7
8     # install gcno files
9     INSTALL(
10         DIRECTORY ${COVERAGE_BUILD_DIR}/
11         DESTINATION ${COVERAGE_DIR}
12         FILES_MATCHING PATTERN "*.gcno"
13     )
14
15     # install code coverage automation script
16     CONFIGURE_FILE(key-manager-coverage.sh.in key-manager-coverage.sh @ONLY)
17     INSTALL(
18         PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/key-manager-coverage.sh
19         DESTINATION ${BIN_DIR}
20     )
21
22 ENDIF (CMAKE_BUILD_TYPE MATCHES "COVERAGE")
23
24
25 FIND_PACKAGE(Threads REQUIRED)
26
27 SET(DB_TEST_DIR ${UNIT_TESTS_DIR}/db)
28 SET(SS_TEST_DIR ${UNIT_TESTS_DIR}/secure-storage)
29 SET(PKCS12_TEST_DIR ${UNIT_TESTS_DIR}/pkcs12/)
30
31 ADD_DEFINITIONS("-DDB_TEST_DIR=\"${DB_TEST_DIR}\"")
32 ADD_DEFINITIONS("-DSS_TEST_DIR=\"${SS_TEST_DIR}\"")
33 ADD_DEFINITIONS("-DPKCS12_TEST_DIR=\"${PKCS12_TEST_DIR}\"")
34
35 ADD_DEFINITIONS("-DBOOST_TEST_DYN_LINK")
36 ADD_DEFINITIONS("-DOVERRIDE_SOCKET_TIMEOUT=10")
37 ADD_DEFINITIONS("-Wno-self-move")
38 ADD_DEFINITIONS("-Wno-stringop-truncation")
39
40 SET(MANAGER_PATH ${PROJECT_SOURCE_DIR}/src/manager)
41
42 INCLUDE_DIRECTORIES(SYSTEM ${KEY_MANAGER_DEP_INCLUDE_DIRS})
43
44 INCLUDE_DIRECTORIES(
45     ${MANAGER_PATH}/dpl/db/include
46     ${MANAGER_PATH}/dpl/core/include
47     ${MANAGER_PATH}/dpl/log/include
48     ${MANAGER_PATH}/service
49     ${MANAGER_PATH}/initial-values
50     ${MANAGER_PATH}/main
51     ${MANAGER_PATH}/common
52     ${MANAGER_PATH}/crypto
53     ${MANAGER_PATH}/client
54     ${MANAGER_PATH}/client-async
55     ${MANAGER_PATH}/client-capi
56     ${PROJECT_SOURCE_DIR}/src/include
57     ${PROJECT_SOURCE_DIR}/common
58     ${CMAKE_CURRENT_SOURCE_DIR}
59 )
60
61 LINK_DIRECTORIES(${KEY_MANAGER_DEP_LIBRARY_DIRS})
62
63 SET(UNIT_TESTS_SOURCES
64     ${PROJECT_SOURCE_DIR}/common/base64_generic.cpp
65     ${PROJECT_SOURCE_DIR}/common/colour_log_formatter.cpp
66     ${PROJECT_SOURCE_DIR}/common/DBFixture.cpp
67     ${PROJECT_SOURCE_DIR}/common/test_common.cpp
68     ${CMAKE_CURRENT_SOURCE_DIR}/main.cpp
69     ${CMAKE_CURRENT_SOURCE_DIR}/test_async-observer.cpp
70     ${CMAKE_CURRENT_SOURCE_DIR}/test_base64.cpp
71     ${CMAKE_CURRENT_SOURCE_DIR}/test_binary-queue.cpp
72     ${CMAKE_CURRENT_SOURCE_DIR}/test_certificate.cpp
73     ${CMAKE_CURRENT_SOURCE_DIR}/test_ckmc_converter.cpp
74     ${CMAKE_CURRENT_SOURCE_DIR}/test_client-common.cpp
75     ${CMAKE_CURRENT_SOURCE_DIR}/test_comm-manager.cpp
76     ${CMAKE_CURRENT_SOURCE_DIR}/test_crypto-logic.cpp
77     ${CMAKE_CURRENT_SOURCE_DIR}/test_data-type.cpp
78     ${CMAKE_CURRENT_SOURCE_DIR}/test_db_crypto.cpp
79     ${CMAKE_CURRENT_SOURCE_DIR}/test_decider.cpp
80     ${CMAKE_CURRENT_SOURCE_DIR}/test_descriptor-set.cpp
81     ${CMAKE_CURRENT_SOURCE_DIR}/test_dpl-db.cpp
82     ${CMAKE_CURRENT_SOURCE_DIR}/test_dpl-exception.cpp
83     ${CMAKE_CURRENT_SOURCE_DIR}/test_exception.cpp
84     ${CMAKE_CURRENT_SOURCE_DIR}/test_for-each-file.cpp
85     ${CMAKE_CURRENT_SOURCE_DIR}/test_generic-backend.cpp
86     ${CMAKE_CURRENT_SOURCE_DIR}/test_kbkdf.cpp
87     ${CMAKE_CURRENT_SOURCE_DIR}/test_key.cpp
88     ${CMAKE_CURRENT_SOURCE_DIR}/test_key-provider.cpp
89     ${CMAKE_CURRENT_SOURCE_DIR}/test_log-provider.cpp
90     ${CMAKE_CURRENT_SOURCE_DIR}/test_pkcs12.cpp
91     ${CMAKE_CURRENT_SOURCE_DIR}/test_safe-buffer.cpp
92     ${CMAKE_CURRENT_SOURCE_DIR}/test_serialization.cpp
93     ${CMAKE_CURRENT_SOURCE_DIR}/test_socket-manager.cpp
94     ${CMAKE_CURRENT_SOURCE_DIR}/test_sql.cpp
95     ${CMAKE_CURRENT_SOURCE_DIR}/test_stringify.cpp
96     ${CMAKE_CURRENT_SOURCE_DIR}/test_ss-crypto.cpp
97     ${CMAKE_CURRENT_SOURCE_DIR}/test_sw-backend.cpp
98     ${CMAKE_CURRENT_SOURCE_DIR}/test_xml-parser.cpp
99     ${CMAKE_CURRENT_SOURCE_DIR}/test_xml-utils.cpp
100
101     ${MANAGER_PATH}/client/client-common.cpp
102     ${MANAGER_PATH}/client-async/descriptor-set.cpp
103     ${MANAGER_PATH}/client-capi/ckmc-type-converter.cpp
104     ${MANAGER_PATH}/common/algo-param.cpp
105     ${MANAGER_PATH}/common/certificate-impl.cpp
106     ${MANAGER_PATH}/common/ckm-zero-memory.cpp
107     ${MANAGER_PATH}/common/data-type.cpp
108     ${MANAGER_PATH}/common/exception.cpp
109     ${MANAGER_PATH}/common/key-impl.cpp
110     ${MANAGER_PATH}/common/key-aes-impl.cpp
111     ${MANAGER_PATH}/common/log-setup.cpp
112     ${MANAGER_PATH}/common/message-buffer.cpp
113     ${MANAGER_PATH}/common/openssl-error-handler.cpp
114     ${MANAGER_PATH}/common/pkcs12-impl.cpp
115     ${MANAGER_PATH}/common/protocols.cpp
116     ${MANAGER_PATH}/crypto/platform/decider.cpp
117     ${MANAGER_PATH}/crypto/sw-backend/internals.cpp
118     ${MANAGER_PATH}/crypto/sw-backend/obj.cpp
119     ${MANAGER_PATH}/crypto/sw-backend/store.cpp
120     ${MANAGER_PATH}/crypto/sw-backend/kbkdf.cpp
121     ${MANAGER_PATH}/crypto/sw-backend/ctx.cpp
122     ${MANAGER_PATH}/dpl/core/src/binary_queue.cpp
123     ${MANAGER_PATH}/dpl/core/src/colors.cpp
124     ${MANAGER_PATH}/dpl/core/src/errno_string.cpp
125     ${MANAGER_PATH}/dpl/core/src/exception.cpp
126     ${MANAGER_PATH}/dpl/db/src/naive_synchronization_object.cpp
127     ${MANAGER_PATH}/dpl/db/src/sql_connection.cpp
128     ${MANAGER_PATH}/dpl/log/src/abstract_log_provider.cpp
129     ${MANAGER_PATH}/dpl/log/src/dlog_log_provider.cpp
130     ${MANAGER_PATH}/dpl/log/src/journal_log_provider.cpp
131     ${MANAGER_PATH}/dpl/log/src/log.cpp
132     ${MANAGER_PATH}/dpl/log/src/old_style_log_provider.cpp
133     ${MANAGER_PATH}/initial-values/parser.cpp
134     ${MANAGER_PATH}/initial-values/xml-utils.cpp
135     ${MANAGER_PATH}/main/cynara.cpp
136     ${MANAGER_PATH}/main/smack-check.cpp
137     ${MANAGER_PATH}/main/socket-2-id.cpp
138     ${MANAGER_PATH}/main/socket-manager.cpp
139     ${MANAGER_PATH}/service/crypto-logic.cpp
140     ${MANAGER_PATH}/service/db-crypto.cpp
141     ${MANAGER_PATH}/service/for-each-file.cpp
142     ${MANAGER_PATH}/service/key-provider.cpp
143     ${MANAGER_PATH}/service/ss-crypto.cpp
144     ${SE_BACKEND_SOURCES}
145 )
146
147 ADD_EXECUTABLE(
148     ${TARGET_UNIT_TESTS}
149     ${UNIT_TESTS_SOURCES}
150     ${TZ_BACKEND_SOURCES}
151 )
152
153 TARGET_LINK_LIBRARIES(
154     ${TARGET_UNIT_TESTS}
155     ${KEY_MANAGER_DEP_LIBRARIES}
156     ${KM_LINK_EXTRA_DEPS}
157     ${CMAKE_THREAD_LIBS_INIT}
158     boost_unit_test_framework
159     -ldl
160 )
161
162 INSTALL(TARGETS ${TARGET_UNIT_TESTS} DESTINATION bin)
163 INSTALL(
164     FILES
165         resources/XML_1_okay.xml
166         resources/XML_1_okay.xsd
167         resources/XML_1_wrong.xml
168         resources/XML_1_wrong.xsd
169         resources/XML_2_structure.xml
170         resources/XML_3_encrypted.xml
171         resources/XML_3_encrypted.xsd
172         resources/XML_4_device_key.xml
173         resources/XML_4_device_key.xsd
174         resources/testme_ver1.db
175         resources/testme_ver2.db
176         resources/testme_ver3.db
177         resources/testme0_ver4.db
178         resources/testme0_ver5.db
179         resources/KDFCTR_gen.rsp
180     DESTINATION ${DB_TEST_DIR}
181 )
182
183 INSTALL(DIRECTORY resources/traverse DESTINATION ${DB_TEST_DIR})
184 INSTALL(DIRECTORY secure-storage-old-data/ DESTINATION ${SS_TEST_DIR})
185 INSTALL(
186         FILES
187                 resources/rsa.p12
188                 resources/dsa.p12
189                 resources/ecdsa.p12
190         DESTINATION ${PKCS12_TEST_DIR}
191 )
192
193 CONFIGURE_FILE(
194     ${PROJECT_SOURCE_DIR}/packaging/key-manager-unit-tests.manifest.in
195     ${PROJECT_SOURCE_DIR}/key-manager-unit-tests.manifest @ONLY
196 )