Custom KBKDF HMAC implementation
[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
38 SET(MANAGER_PATH ${PROJECT_SOURCE_DIR}/src/manager)
39
40 INCLUDE_DIRECTORIES(SYSTEM ${KEY_MANAGER_DEP_INCLUDE_DIRS})
41
42 INCLUDE_DIRECTORIES(
43     ${MANAGER_PATH}/dpl/db/include
44     ${MANAGER_PATH}/dpl/core/include
45     ${MANAGER_PATH}/dpl/log/include
46     ${MANAGER_PATH}/service
47     ${MANAGER_PATH}/initial-values
48     ${MANAGER_PATH}/main
49     ${MANAGER_PATH}/common
50     ${MANAGER_PATH}/crypto
51     ${MANAGER_PATH}/client
52     ${MANAGER_PATH}/client-async
53     ${MANAGER_PATH}/client-capi
54     ${PROJECT_SOURCE_DIR}/src/include
55     ${PROJECT_SOURCE_DIR}/common
56     ${CMAKE_CURRENT_SOURCE_DIR}
57 )
58
59 LINK_DIRECTORIES(${KEY_MANAGER_DEP_LIBRARY_DIRS})
60
61 SET(UNIT_TESTS_SOURCES
62     ${PROJECT_SOURCE_DIR}/common/base64_generic.cpp
63     ${PROJECT_SOURCE_DIR}/common/colour_log_formatter.cpp
64     ${PROJECT_SOURCE_DIR}/common/DBFixture.cpp
65     ${PROJECT_SOURCE_DIR}/common/test_common.cpp
66     ${CMAKE_CURRENT_SOURCE_DIR}/main.cpp
67     ${CMAKE_CURRENT_SOURCE_DIR}/test_async-observer.cpp
68     ${CMAKE_CURRENT_SOURCE_DIR}/test_base64.cpp
69     ${CMAKE_CURRENT_SOURCE_DIR}/test_binary-queue.cpp
70     ${CMAKE_CURRENT_SOURCE_DIR}/test_certificate.cpp
71     ${CMAKE_CURRENT_SOURCE_DIR}/test_ckmc_converter.cpp
72     ${CMAKE_CURRENT_SOURCE_DIR}/test_client-common.cpp
73     ${CMAKE_CURRENT_SOURCE_DIR}/test_comm-manager.cpp
74     ${CMAKE_CURRENT_SOURCE_DIR}/test_crypto-logic.cpp
75     ${CMAKE_CURRENT_SOURCE_DIR}/test_data-type.cpp
76     ${CMAKE_CURRENT_SOURCE_DIR}/test_db_crypto.cpp
77     ${CMAKE_CURRENT_SOURCE_DIR}/test_descriptor-set.cpp
78     ${CMAKE_CURRENT_SOURCE_DIR}/test_dpl-db.cpp
79     ${CMAKE_CURRENT_SOURCE_DIR}/test_dpl-exception.cpp
80     ${CMAKE_CURRENT_SOURCE_DIR}/test_exception.cpp
81     ${CMAKE_CURRENT_SOURCE_DIR}/test_for-each-file.cpp
82     ${CMAKE_CURRENT_SOURCE_DIR}/test_generic-backend.cpp
83     ${CMAKE_CURRENT_SOURCE_DIR}/test_kbkdf.cpp
84     ${CMAKE_CURRENT_SOURCE_DIR}/test_key.cpp
85     ${CMAKE_CURRENT_SOURCE_DIR}/test_key-provider.cpp
86     ${CMAKE_CURRENT_SOURCE_DIR}/test_log-provider.cpp
87     ${CMAKE_CURRENT_SOURCE_DIR}/test_pkcs12.cpp
88     ${CMAKE_CURRENT_SOURCE_DIR}/test_safe-buffer.cpp
89     ${CMAKE_CURRENT_SOURCE_DIR}/test_serialization.cpp
90     ${CMAKE_CURRENT_SOURCE_DIR}/test_socket-manager.cpp
91     ${CMAKE_CURRENT_SOURCE_DIR}/test_sql.cpp
92     ${CMAKE_CURRENT_SOURCE_DIR}/test_stringify.cpp
93     ${CMAKE_CURRENT_SOURCE_DIR}/test_ss-crypto.cpp
94     ${CMAKE_CURRENT_SOURCE_DIR}/test_sw-backend.cpp
95     ${CMAKE_CURRENT_SOURCE_DIR}/test_xml-parser.cpp
96     ${CMAKE_CURRENT_SOURCE_DIR}/test_xml-utils.cpp
97
98     ${MANAGER_PATH}/client/client-common.cpp
99     ${MANAGER_PATH}/client-async/descriptor-set.cpp
100     ${MANAGER_PATH}/client-capi/ckmc-type-converter.cpp
101     ${MANAGER_PATH}/common/algo-param.cpp
102     ${MANAGER_PATH}/common/certificate-impl.cpp
103     ${MANAGER_PATH}/common/ckm-zero-memory.cpp
104     ${MANAGER_PATH}/common/data-type.cpp
105     ${MANAGER_PATH}/common/exception.cpp
106     ${MANAGER_PATH}/common/key-impl.cpp
107     ${MANAGER_PATH}/common/key-aes-impl.cpp
108     ${MANAGER_PATH}/common/log-setup.cpp
109     ${MANAGER_PATH}/common/message-buffer.cpp
110     ${MANAGER_PATH}/common/openssl-error-handler.cpp
111     ${MANAGER_PATH}/common/pkcs12-impl.cpp
112     ${MANAGER_PATH}/common/protocols.cpp
113     ${MANAGER_PATH}/crypto/platform/decider.cpp
114     ${MANAGER_PATH}/crypto/sw-backend/internals.cpp
115     ${MANAGER_PATH}/crypto/sw-backend/obj.cpp
116     ${MANAGER_PATH}/crypto/sw-backend/store.cpp
117     ${MANAGER_PATH}/crypto/sw-backend/kbkdf.cpp
118     ${MANAGER_PATH}/dpl/core/src/binary_queue.cpp
119     ${MANAGER_PATH}/dpl/core/src/colors.cpp
120     ${MANAGER_PATH}/dpl/core/src/errno_string.cpp
121     ${MANAGER_PATH}/dpl/core/src/exception.cpp
122     ${MANAGER_PATH}/dpl/db/src/naive_synchronization_object.cpp
123     ${MANAGER_PATH}/dpl/db/src/sql_connection.cpp
124     ${MANAGER_PATH}/dpl/log/src/abstract_log_provider.cpp
125     ${MANAGER_PATH}/dpl/log/src/dlog_log_provider.cpp
126     ${MANAGER_PATH}/dpl/log/src/journal_log_provider.cpp
127     ${MANAGER_PATH}/dpl/log/src/log.cpp
128     ${MANAGER_PATH}/dpl/log/src/old_style_log_provider.cpp
129     ${MANAGER_PATH}/initial-values/parser.cpp
130     ${MANAGER_PATH}/initial-values/xml-utils.cpp
131     ${MANAGER_PATH}/main/cynara.cpp
132     ${MANAGER_PATH}/main/smack-check.cpp
133     ${MANAGER_PATH}/main/socket-2-id.cpp
134     ${MANAGER_PATH}/main/socket-manager.cpp
135     ${MANAGER_PATH}/service/crypto-logic.cpp
136     ${MANAGER_PATH}/service/db-crypto.cpp
137     ${MANAGER_PATH}/service/for-each-file.cpp
138     ${MANAGER_PATH}/service/key-provider.cpp
139     ${MANAGER_PATH}/service/ss-crypto.cpp
140     ${SE_BACKEND_SOURCES}
141 )
142
143 ADD_EXECUTABLE(
144     ${TARGET_UNIT_TESTS}
145     ${UNIT_TESTS_SOURCES}
146     ${TZ_BACKEND_SOURCES}
147 )
148
149 TARGET_LINK_LIBRARIES(
150     ${TARGET_UNIT_TESTS}
151     ${KEY_MANAGER_DEP_LIBRARIES}
152     ${KM_LINK_EXTRA_DEPS}
153     ${CMAKE_THREAD_LIBS_INIT}
154     boost_unit_test_framework
155     -ldl
156 )
157
158 INSTALL(TARGETS ${TARGET_UNIT_TESTS} DESTINATION bin)
159 INSTALL(
160     FILES
161         resources/XML_1_okay.xml
162         resources/XML_1_okay.xsd
163         resources/XML_1_wrong.xml
164         resources/XML_1_wrong.xsd
165         resources/XML_2_structure.xml
166         resources/XML_3_encrypted.xml
167         resources/XML_3_encrypted.xsd
168         resources/XML_4_device_key.xml
169         resources/XML_4_device_key.xsd
170         resources/testme_ver1.db
171         resources/testme_ver2.db
172         resources/testme_ver3.db
173         resources/testme0_ver4.db
174         resources/KDFCTR_gen.rsp
175     DESTINATION ${DB_TEST_DIR}
176 )
177
178 INSTALL(DIRECTORY resources/traverse DESTINATION ${DB_TEST_DIR})
179 INSTALL(DIRECTORY secure-storage-old-data/ DESTINATION ${SS_TEST_DIR})
180 INSTALL(
181         FILES
182                 resources/rsa.p12
183                 resources/dsa.p12
184                 resources/ecdsa.p12
185         DESTINATION ${PKCS12_TEST_DIR}
186 )
187
188 CONFIGURE_FILE(
189     ${PROJECT_SOURCE_DIR}/packaging/key-manager-unit-tests.manifest.in
190     ${PROJECT_SOURCE_DIR}/key-manager-unit-tests.manifest @ONLY
191 )