add the se-backend for db encryption
[platform/core/security/key-manager.git] / tests / CMakeLists.txt
1 PKG_CHECK_MODULES(KEY_MANAGER_TEST_DEP
2     REQUIRED
3     libxml-2.0
4     )
5
6 FIND_PACKAGE(Threads REQUIRED)
7 ADD_DEFINITIONS("-DBOOST_TEST_DYN_LINK")
8
9 SET(DB_TEST_DIR ${TEST_DIR}/db)
10 SET(SS_TEST_DIR ${TEST_DIR}/secure-storage)
11
12 ADD_DEFINITIONS("-DDB_TEST_DIR=\"${DB_TEST_DIR}\"")
13 ADD_DEFINITIONS("-DSS_TEST_DIR=\"${SS_TEST_DIR}\"")
14
15 SET(KEY_MANAGER_SRC_PATH ${PROJECT_SOURCE_DIR}/src)
16 SET(KEY_MANAGER_PATH ${PROJECT_SOURCE_DIR}/src/manager)
17
18 # encryption scheme tests #####################################################
19
20 PKG_CHECK_MODULES(ENCRYPTION_SCHEME_DEP
21     REQUIRED
22     openssl1.1
23     libsmack
24     sqlcipher)
25
26 SET(ENCRYPTION_SCHEME_SOURCES
27     ${CMAKE_CURRENT_SOURCE_DIR}/encryption-scheme/smack-access.cpp
28     ${CMAKE_CURRENT_SOURCE_DIR}/encryption-scheme/scheme-test.cpp
29
30     ${KEY_MANAGER_PATH}/dpl/db/src/naive_synchronization_object.cpp
31     ${KEY_MANAGER_PATH}/dpl/db/src/sql_connection.cpp
32     ${KEY_MANAGER_PATH}/service/db-crypto.cpp
33     ${KEY_MANAGER_PATH}/service/file-lock.cpp
34     ${KEY_MANAGER_PATH}/service/file-system.cpp
35     ${KEY_MANAGER_PATH}/service/for-each-file.cpp
36     ${KEY_MANAGER_PATH}/service/key-provider.cpp
37 )
38
39 INCLUDE_DIRECTORIES(SYSTEM ${ENCRYPTION_SCHEME_DEP_INCLUDE_DIRS})
40 INCLUDE_DIRECTORIES(
41     ${CMAKE_CURRENT_SOURCE_DIR}
42
43     ${KEY_MANAGER_PATH}/common
44     ${KEY_MANAGER_PATH}/dpl/core/include
45     ${KEY_MANAGER_PATH}/dpl/log/include
46     ${KEY_MANAGER_PATH}/dpl/db/include
47     ${KEY_MANAGER_PATH}/service
48     ${KEY_MANAGER_PATH}/crypto
49 )
50
51 LINK_DIRECTORIES(${ENCRYPTION_SCHEME_DEP_LIBRARY_DIRS})
52
53 # binary for filling db for testing
54 SET(TARGET_CKM_GENERATOR "ckm_generate_db")
55
56 SET(GENERATOR_SOURCES
57     ${CMAKE_CURRENT_SOURCE_DIR}/encryption-scheme/generate-db.cpp
58 )
59
60 IF(SE_BACKEND_ENABLED)
61 SET(ENCRYPTION_SCHEME_SOURCES
62     ${ENCRYPTION_SCHEME_SOURCES}
63     ${KEY_MANAGER_PATH}/crypto/se-backend/internals.cpp
64     )
65 SET(ENCRYPTION_SCHEME_DEP_LIBRARIES ${TEST_LINK_EXTRA_DEPS} key-manager-se-backend)
66 ENDIF()
67
68 ADD_EXECUTABLE(${TARGET_CKM_GENERATOR} ${GENERATOR_SOURCES} ${ENCRYPTION_SCHEME_SOURCES})
69
70 SET(SCHEME_TEST_LIBRARIES
71     ${ENCRYPTION_SCHEME_DEP_LIBRARIES}
72     ${TARGET_KEY_MANAGER_CLIENT}
73     ${TARGET_KEY_MANAGER_CONTROL_CLIENT}
74     ${CMAKE_THREAD_LIBS_INIT}
75     boost_unit_test_framework
76     -ldl
77     )
78
79 TARGET_LINK_LIBRARIES(${TARGET_CKM_GENERATOR} ${SCHEME_TEST_LIBRARIES}
80 )
81
82 INSTALL(TARGETS ${TARGET_CKM_GENERATOR} DESTINATION bin)
83
84 ################################################################################
85
86
87 SET(KEY_MANAGER_TEST_MERGED_SRC ${PROJECT_SOURCE_DIR}/tests)
88
89 INCLUDE_DIRECTORIES(
90     ${KEY_MANAGER_DEP_INCLUDE_DIRS}
91     ${KEY_MANAGER_PATH}/dpl/db/include
92     ${KEY_MANAGER_PATH}/dpl/core/include
93     ${KEY_MANAGER_PATH}/dpl/log/include
94     ${KEY_MANAGER_PATH}/service
95     ${KEY_MANAGER_PATH}/initial-values
96     ${KEY_MANAGER_PATH}/main
97     ${KEY_MANAGER_PATH}/common
98     ${KEY_MANAGER_PATH}/crypto
99     ${KEY_MANAGER_PATH}/client-async
100     ${KEY_MANAGER_SRC_PATH}/include
101     ${KEY_MANAGER_TEST_MERGED_SRC}
102     ${KEY_MANAGER_TEST_MERGED_SRC}/encryption-scheme
103     )
104
105 SET(TEST_MERGED_SOURCES
106     ${KEY_MANAGER_TEST_MERGED_SRC}/colour_log_formatter.cpp
107     ${KEY_MANAGER_TEST_MERGED_SRC}/DBFixture.cpp
108     ${KEY_MANAGER_TEST_MERGED_SRC}/main.cpp
109     ${KEY_MANAGER_TEST_MERGED_SRC}/test_async-observer.cpp
110     ${KEY_MANAGER_TEST_MERGED_SRC}/test_base64.cpp
111     ${KEY_MANAGER_TEST_MERGED_SRC}/test_binary-queue.cpp
112     ${KEY_MANAGER_TEST_MERGED_SRC}/test_certificate.cpp
113     ${KEY_MANAGER_TEST_MERGED_SRC}/test_comm-manager.cpp
114     ${KEY_MANAGER_TEST_MERGED_SRC}/test_common.cpp
115     ${KEY_MANAGER_TEST_MERGED_SRC}/test_crypto-logic.cpp
116     ${KEY_MANAGER_TEST_MERGED_SRC}/test_data-type.cpp
117     ${KEY_MANAGER_TEST_MERGED_SRC}/test_db_crypto.cpp
118     ${KEY_MANAGER_TEST_MERGED_SRC}/test_descriptor-set.cpp
119     ${KEY_MANAGER_TEST_MERGED_SRC}/test_dpl-db.cpp
120     ${KEY_MANAGER_TEST_MERGED_SRC}/test_dpl-exception.cpp
121     ${KEY_MANAGER_TEST_MERGED_SRC}/test_encryption-scheme.cpp
122     ${KEY_MANAGER_TEST_MERGED_SRC}/test_exception.cpp
123     ${KEY_MANAGER_TEST_MERGED_SRC}/test_for-each-file.cpp
124     ${KEY_MANAGER_TEST_MERGED_SRC}/test_generic-backend.cpp
125     ${KEY_MANAGER_TEST_MERGED_SRC}/test_key.cpp
126     ${KEY_MANAGER_TEST_MERGED_SRC}/test_key-provider.cpp
127     ${KEY_MANAGER_TEST_MERGED_SRC}/test_log-provider.cpp
128     ${KEY_MANAGER_TEST_MERGED_SRC}/test_safe-buffer.cpp
129     ${KEY_MANAGER_TEST_MERGED_SRC}/test_serialization.cpp
130     ${KEY_MANAGER_TEST_MERGED_SRC}/test_sql.cpp
131     ${KEY_MANAGER_TEST_MERGED_SRC}/test_stringify.cpp
132     ${KEY_MANAGER_TEST_MERGED_SRC}/test_ss-crypto.cpp
133     ${KEY_MANAGER_TEST_MERGED_SRC}/test_sw-backend.cpp
134     ${KEY_MANAGER_TEST_MERGED_SRC}/test_xml-parser.cpp
135
136     # duplicated srcs to test hidden symbols
137     ${KEY_MANAGER_PATH}/client-async/descriptor-set.cpp
138     ${KEY_MANAGER_PATH}/crypto/platform/decider.cpp
139     ${KEY_MANAGER_PATH}/crypto/sw-backend/internals.cpp
140     ${KEY_MANAGER_PATH}/crypto/sw-backend/obj.cpp
141     ${KEY_MANAGER_PATH}/crypto/sw-backend/store.cpp
142     ${KEY_MANAGER_PATH}/dpl/core/src/colors.cpp
143     ${KEY_MANAGER_PATH}/dpl/core/src/errno_string.cpp
144     ${KEY_MANAGER_PATH}/dpl/db/src/naive_synchronization_object.cpp
145     ${KEY_MANAGER_PATH}/dpl/db/src/sql_connection.cpp
146     ${KEY_MANAGER_PATH}/dpl/log/src/abstract_log_provider.cpp
147     ${KEY_MANAGER_PATH}/dpl/log/src/dlog_log_provider.cpp
148     ${KEY_MANAGER_PATH}/dpl/log/src/journal_log_provider.cpp
149     ${KEY_MANAGER_PATH}/dpl/log/src/log.cpp
150     ${KEY_MANAGER_PATH}/dpl/log/src/old_style_log_provider.cpp
151     ${KEY_MANAGER_PATH}/initial-values/parser.cpp
152     ${KEY_MANAGER_PATH}/initial-values/xml-utils.cpp
153     ${KEY_MANAGER_PATH}/service/crypto-logic.cpp
154     ${KEY_MANAGER_PATH}/service/db-crypto.cpp
155     ${KEY_MANAGER_PATH}/service/for-each-file.cpp
156     ${KEY_MANAGER_PATH}/service/key-provider.cpp
157     ${KEY_MANAGER_PATH}/service/ss-crypto.cpp
158     )
159
160 IF(TZ_BACKEND_ENABLED)
161 SET(TEST_MERGED_SOURCES
162     ${TEST_MERGED_SOURCES}
163
164     # duplicated srcs to test hidden symbols
165     ${KEY_MANAGER_PATH}/crypto/tz-backend/obj.cpp
166     ${KEY_MANAGER_PATH}/crypto/tz-backend/store.cpp
167     ${KEY_MANAGER_PATH}/crypto/tz-backend/internals.cpp
168     ${KEY_MANAGER_PATH}/crypto/tz-backend/tz-context.cpp
169     ${KEY_MANAGER_PATH}/crypto/tz-backend/tz-memory.cpp
170     ${KEY_MANAGER_PATH}/crypto/tz-backend/tz-serializer.cpp
171     )
172 ENDIF()
173
174 IF(SE_BACKEND_ENABLED)
175 SET(TEST_MERGED_SOURCES
176     ${TEST_MERGED_SOURCES}
177     ${KEY_MANAGER_PATH}/crypto/se-backend/internals.cpp
178     )
179 SET(TEST_LINK_EXTRA_DEPS ${TEST_LINK_EXTRA_DEPS} key-manager-se-backend)
180 ENDIF()
181
182 LINK_DIRECTORIES(${KEY_MANAGER_DEP_LIBRARY_DIRS})
183
184 ADD_EXECUTABLE(${TARGET_TEST_MERGED} ${TEST_MERGED_SOURCES} ${ENCRYPTION_SCHEME_SOURCES})
185
186
187 IF(TZ_BACKEND_ENABLED)
188 SET(TEST_LINK_EXTRA_DEPS
189     ${TEST_LINK_EXTRA_DEPS}
190     teec
191     km_serialization
192     )
193 ENDIF()
194
195 TARGET_LINK_LIBRARIES(${TARGET_TEST_MERGED}
196     ${KEY_MANAGER_DEP_LIBRARIES}
197     ${TEST_LINK_EXTRA_DEPS}
198     ${SCHEME_TEST_LIBRARIES}
199     )
200
201 INSTALL(TARGETS ${TARGET_TEST_MERGED} DESTINATION bin)
202 INSTALL(
203     FILES
204         resources/XML_1_okay.xml
205         resources/XML_1_okay.xsd
206         resources/XML_1_wrong.xml
207         resources/XML_1_wrong.xsd
208         resources/XML_2_structure.xml
209         resources/XML_3_encrypted.xml
210         resources/XML_3_encrypted.xsd
211         resources/XML_4_device_key.xml
212         resources/XML_4_device_key.xsd
213         resources/encryption-scheme.p12
214         resources/db-7654
215         resources/db-key-7654
216         resources/key-7654
217         resources/testme_ver1.db
218         resources/testme_ver2.db
219         resources/testme_ver3.db
220         resources/testme0_ver4.db
221     DESTINATION ${DB_TEST_DIR}
222     )
223
224 INSTALL(DIRECTORY resources/traverse DESTINATION ${DB_TEST_DIR})
225 INSTALL(DIRECTORY secure-storage-old-data/ DESTINATION ${SS_TEST_DIR})