Reorganize project structure and RPM packages 36/234236/12
authorKrzysztof Jackiewicz <k.jackiewicz@samsung.com>
Fri, 22 May 2020 14:47:26 +0000 (16:47 +0200)
committerKrzysztof Jackiewicz <k.jackiewicz@samsung.com>
Wed, 10 Jun 2020 10:37:47 +0000 (12:37 +0200)
* Internal tests package and binary renamed.
* Scheme test moved to a separate binary as they are not actual unit tests.
  They use internal API, client library and need a running server. These tests
  should be rewritten.
* New key-manager-misc RPM containing scheme test binary and helper tools.
* Project structure reorganized to better fit rpm packages.
* CMakeFiles.txt refactoring.

Change-Id: I4875f0a7189a960f193747591cc917fd5b9e2799

99 files changed:
CMakeLists.txt
common/boost_macros_wrapper.h [moved from tests/boost_macros_wrapper.h with 100% similarity]
common/colour_log_formatter.cpp [moved from tests/colour_log_formatter.cpp with 100% similarity]
common/colour_log_formatter.h [moved from tests/colour_log_formatter.h with 100% similarity]
misc/CMakeLists.txt [moved from tools/CMakeLists.txt with 84% similarity]
misc/ckm_db_tool/CMakeLists.txt [moved from tools/ckm_db_tool/CMakeLists.txt with 66% similarity]
misc/ckm_db_tool/ckm-logic-ext.cpp [moved from tools/ckm_db_tool/ckm-logic-ext.cpp with 97% similarity]
misc/ckm_db_tool/ckm-logic-ext.h [moved from tools/ckm_db_tool/ckm-logic-ext.h with 100% similarity]
misc/ckm_db_tool/ckm_db_merge.cpp [moved from tools/ckm_db_tool/ckm_db_merge.cpp with 99% similarity]
misc/ckm_db_tool/ckm_db_tool.cpp [moved from tools/ckm_db_tool/ckm_db_tool.cpp with 99% similarity]
misc/ckm_db_tool/db-crypto-ext.cpp [moved from tools/ckm_db_tool/db-crypto-ext.cpp with 98% similarity]
misc/ckm_db_tool/db-crypto-ext.h [moved from tools/ckm_db_tool/db-crypto-ext.h with 100% similarity]
misc/ckm_db_tool/db-wrapper.cpp [moved from tools/ckm_db_tool/db-wrapper.cpp with 99% similarity]
misc/ckm_db_tool/db-wrapper.h [moved from tools/ckm_db_tool/db-wrapper.h with 98% similarity]
misc/ckm_initial_values/CMakeLists.txt [moved from tools/ckm_initial_values/CMakeLists.txt with 100% similarity]
misc/ckm_initial_values/base64.cpp [moved from tools/ckm_initial_values/base64.cpp with 99% similarity]
misc/ckm_initial_values/base64.h [moved from tools/ckm_initial_values/base64.h with 100% similarity]
misc/ckm_initial_values/main.cpp [moved from tools/ckm_initial_values/main.cpp with 100% similarity]
misc/ckm_so_loader.cpp [moved from tools/ckm_so_loader.cpp with 100% similarity]
misc/ckm_tool.cpp [moved from tools/ckm_tool.cpp with 100% similarity]
misc/encryption_scheme/CMakeLists.txt [new file with mode: 0644]
misc/encryption_scheme/db-7654 [moved from tests/resources/db-7654 with 100% similarity]
misc/encryption_scheme/db-key-7654 [moved from tests/resources/db-key-7654 with 100% similarity]
misc/encryption_scheme/encryption-scheme.p12 [moved from tests/resources/encryption-scheme.p12 with 100% similarity]
misc/encryption_scheme/generate-db.cpp [moved from tests/encryption-scheme/generate-db.cpp with 97% similarity]
misc/encryption_scheme/key-7654 [moved from tests/resources/key-7654 with 100% similarity]
misc/encryption_scheme/scheme-test.cpp [moved from tests/encryption-scheme/scheme-test.cpp with 99% similarity]
misc/encryption_scheme/scheme-test.h [moved from tests/encryption-scheme/scheme-test.h with 100% similarity]
misc/encryption_scheme/smack-access.cpp [moved from tests/encryption-scheme/smack-access.cpp with 98% similarity]
misc/encryption_scheme/smack-access.h [moved from tests/encryption-scheme/smack-access.h with 100% similarity]
misc/encryption_scheme/test_encryption-scheme.cpp [moved from tests/test_encryption-scheme.cpp with 79% similarity]
packaging/key-manager-misc.manifest.in [moved from packaging/key-manager-tests.manifest.in with 74% similarity]
packaging/key-manager-unit-tests.manifest.in [new file with mode: 0644]
packaging/key-manager.spec
src/CMakeLists.txt
tests/CMakeLists.txt [deleted file]
unit-tests/CMakeLists.txt [new file with mode: 0644]
unit-tests/DBFixture.cpp [moved from tests/DBFixture.cpp with 100% similarity]
unit-tests/DBFixture.h [moved from tests/DBFixture.h with 100% similarity]
unit-tests/main.cpp [moved from tests/main.cpp with 94% similarity]
unit-tests/resources/XML_1_okay.xml [moved from tests/resources/XML_1_okay.xml with 100% similarity]
unit-tests/resources/XML_1_okay.xsd [moved from tests/resources/XML_1_okay.xsd with 100% similarity]
unit-tests/resources/XML_1_wrong.xml [moved from tests/resources/XML_1_wrong.xml with 100% similarity]
unit-tests/resources/XML_1_wrong.xsd [moved from tests/resources/XML_1_wrong.xsd with 100% similarity]
unit-tests/resources/XML_2_structure.xml [moved from tests/resources/XML_2_structure.xml with 100% similarity]
unit-tests/resources/XML_3_encrypted.xml [moved from tests/resources/XML_3_encrypted.xml with 100% similarity]
unit-tests/resources/XML_3_encrypted.xsd [moved from tests/resources/XML_3_encrypted.xsd with 100% similarity]
unit-tests/resources/XML_4_device_key.xml [moved from tests/resources/XML_4_device_key.xml with 100% similarity]
unit-tests/resources/XML_4_device_key.xsd [moved from tests/resources/XML_4_device_key.xsd with 100% similarity]
unit-tests/resources/testme0_ver4.db [moved from tests/resources/testme0_ver4.db with 100% similarity]
unit-tests/resources/testme_ver1.db [moved from tests/resources/testme_ver1.db with 100% similarity]
unit-tests/resources/testme_ver2.db [moved from tests/resources/testme_ver2.db with 100% similarity]
unit-tests/resources/testme_ver3.db [moved from tests/resources/testme_ver3.db with 100% similarity]
unit-tests/resources/traverse/res-1 [moved from tests/resources/traverse/res-1 with 100% similarity]
unit-tests/resources/traverse/res-10 [moved from tests/resources/traverse/res-10 with 100% similarity]
unit-tests/resources/traverse/res-2 [moved from tests/resources/traverse/res-2 with 100% similarity]
unit-tests/resources/traverse/res-3 [moved from tests/resources/traverse/res-3 with 100% similarity]
unit-tests/resources/traverse/res-4 [moved from tests/resources/traverse/res-4 with 100% similarity]
unit-tests/resources/traverse/res-5 [moved from tests/resources/traverse/res-5 with 100% similarity]
unit-tests/resources/traverse/res-6 [moved from tests/resources/traverse/res-6 with 100% similarity]
unit-tests/resources/traverse/res-7 [moved from tests/resources/traverse/res-7 with 100% similarity]
unit-tests/resources/traverse/res-8 [moved from tests/resources/traverse/res-8 with 100% similarity]
unit-tests/resources/traverse/res-9 [moved from tests/resources/traverse/res-9 with 100% similarity]
unit-tests/secure-storage-old-data/README [moved from tests/secure-storage-old-data/README with 100% similarity]
unit-tests/secure-storage-old-data/push-data.sh [moved from tests/secure-storage-old-data/push-data.sh with 100% similarity]
unit-tests/secure-storage-old-data/secure-storage/salt [moved from tests/secure-storage-old-data/secure-storage/salt with 100% similarity]
unit-tests/secure-storage-old-data/secure-storage::test1/test-data-1 [moved from tests/secure-storage-old-data/secure-storage::test1/test-data-1 with 100% similarity]
unit-tests/secure-storage-old-data/secure-storage::test1/test-data-2 [moved from tests/secure-storage-old-data/secure-storage::test1/test-data-2 with 100% similarity]
unit-tests/secure-storage-old-data/secure-storage::test1/test-data-3 [moved from tests/secure-storage-old-data/secure-storage::test1/test-data-3 with 100% similarity]
unit-tests/secure-storage-old-data/secure-storage::test2/test-data-1 [moved from tests/secure-storage-old-data/secure-storage::test2/test-data-1 with 100% similarity]
unit-tests/secure-storage-old-data/secure-storage::test2/test-data-2 [moved from tests/secure-storage-old-data/secure-storage::test2/test-data-2 with 100% similarity]
unit-tests/secure-storage-old-data/secure-storage::test2/test-data-3 [moved from tests/secure-storage-old-data/secure-storage::test2/test-data-3 with 100% similarity]
unit-tests/test_async-observer.cpp [moved from tests/test_async-observer.cpp with 100% similarity]
unit-tests/test_base64.cpp [moved from tests/test_base64.cpp with 100% similarity]
unit-tests/test_binary-queue.cpp [moved from tests/test_binary-queue.cpp with 100% similarity]
unit-tests/test_certificate.cpp [moved from tests/test_certificate.cpp with 100% similarity]
unit-tests/test_comm-manager.cpp [moved from tests/test_comm-manager.cpp with 100% similarity]
unit-tests/test_common.cpp [moved from tests/test_common.cpp with 100% similarity]
unit-tests/test_common.h [moved from tests/test_common.h with 100% similarity]
unit-tests/test_crypto-logic.cpp [moved from tests/test_crypto-logic.cpp with 100% similarity]
unit-tests/test_data-type.cpp [moved from tests/test_data-type.cpp with 100% similarity]
unit-tests/test_db_crypto.cpp [moved from tests/test_db_crypto.cpp with 100% similarity]
unit-tests/test_descriptor-set.cpp [moved from tests/test_descriptor-set.cpp with 100% similarity]
unit-tests/test_dpl-db.cpp [moved from tests/test_dpl-db.cpp with 100% similarity]
unit-tests/test_dpl-exception.cpp [moved from tests/test_dpl-exception.cpp with 100% similarity]
unit-tests/test_exception.cpp [moved from tests/test_exception.cpp with 100% similarity]
unit-tests/test_for-each-file.cpp [moved from tests/test_for-each-file.cpp with 100% similarity]
unit-tests/test_generic-backend.cpp [moved from tests/test_generic-backend.cpp with 100% similarity]
unit-tests/test_key-provider.cpp [moved from tests/test_key-provider.cpp with 99% similarity]
unit-tests/test_key.cpp [moved from tests/test_key.cpp with 100% similarity]
unit-tests/test_log-provider.cpp [moved from tests/test_log-provider.cpp with 100% similarity]
unit-tests/test_safe-buffer.cpp [moved from tests/test_safe-buffer.cpp with 100% similarity]
unit-tests/test_serialization.cpp [moved from tests/test_serialization.cpp with 100% similarity]
unit-tests/test_sql.cpp [moved from tests/test_sql.cpp with 100% similarity]
unit-tests/test_ss-crypto.cpp [moved from tests/test_ss-crypto.cpp with 100% similarity]
unit-tests/test_stringify.cpp [moved from tests/test_stringify.cpp with 100% similarity]
unit-tests/test_sw-backend.cpp [moved from tests/test_sw-backend.cpp with 100% similarity]
unit-tests/test_watched-thread.h [moved from tests/test_watched-thread.h with 100% similarity]
unit-tests/test_xml-parser.cpp [moved from tests/test_xml-parser.cpp with 100% similarity]

index 20309dd..6764fbb 100644 (file)
@@ -67,16 +67,29 @@ ADD_DEFINITIONS("-DINITIAL_VALUES_DIR_RW=\"${INITIAL_VALUES_DIR_RW}\"")
 ADD_DEFINITIONS("-DCA_CERTS_DIR=\"${CA_CERTS_DIR}\"")
 ADD_DEFINITIONS("-DSYSTEMD_ENV_FILE=\"${SYSTEMD_ENV_FILE}\"")
 
+SET(KEY_MANAGER_PATH ${PROJECT_SOURCE_DIR}/src/manager)
+
 IF (TZ_BACKEND_ENABLED)
     ADD_DEFINITIONS("-DTZ_BACKEND_ENABLED")
+    SET(EXTRA_KM_DEPS ${EXTRA_KM_DEPS} tef-libteec)
+    SET(KM_LINK_EXTRA_DEPS km_serialization)
+    SET(TZ_BACKEND_SOURCES
+        ${KEY_MANAGER_PATH}/crypto/tz-backend/internals.cpp
+        ${KEY_MANAGER_PATH}/crypto/tz-backend/obj.cpp
+        ${KEY_MANAGER_PATH}/crypto/tz-backend/store.cpp
+        ${KEY_MANAGER_PATH}/crypto/tz-backend/tz-context.cpp
+        ${KEY_MANAGER_PATH}/crypto/tz-backend/tz-memory.cpp
+        ${KEY_MANAGER_PATH}/crypto/tz-backend/tz-serializer.cpp
+    )
 ENDIF()
 
 IF (DEFINED WATCHDOG_ENABLED)
-    MESSAGE("WATCHDOG ENABELD!")
+    MESSAGE("WATCHDOG ENABLED!")
     ADD_DEFINITIONS("-DWATCHDOG_ENABLED")
     ADD_DEFINITIONS("-DWATCHDOG_TIMEOUT_SEC=${WATCHDOG_TIMEOUT_SEC}")
     ADD_DEFINITIONS("-DWATCHDOG_NOTIFY_SEC=${WATCHDOG_NOTIFY_SEC}")
     SET(WATCHDOG_DECLARE "NotifyAccess=main")
+    SET(EXTRA_KM_DEPS ${EXTRA_KM_DEPS} argos_watchdog)
 ENDIF (DEFINED WATCHDOG_ENABLED)
 
 IF (CMAKE_BUILD_TYPE MATCHES "DEBUG")
@@ -92,16 +105,32 @@ SET(TARGET_KEY_MANAGER_CONTROL_CLIENT "key-manager-control-client")
 SET(TARGET_KEY_MANAGER_COMMON "key-manager-common")
 SET(TARGET_PAM_KEY_MANAGER_PLUGIN "pam_key_manager_plugin")
 
-SET(TARGET_TEST_MERGED "ckm-tests-internal")
-
-CONFIGURE_FILE(packaging/key-manager.manifest.in key-manager.manifest @ONLY)
-CONFIGURE_FILE(packaging/key-manager-tests.manifest.in key-manager-tests.manifest @ONLY)
+SET(TARGET_UNIT_TESTS "ckm-unit-tests")
+
+PKG_CHECK_MODULES(KEY_MANAGER_DEP
+    REQUIRED
+    dlog
+    glib-2.0
+    openssl1.1
+    libsmack
+    libsystemd-daemon
+    capi-base-common
+    capi-system-info
+    libxml-2.0
+    security-manager
+    cynara-client-async
+    cynara-creds-socket
+    pkgmgr
+    vconf
+    sqlcipher
+    ${EXTRA_KM_DEPS}
+)
 
 ADD_SUBDIRECTORY(data)
 ADD_SUBDIRECTORY(doc)
 ADD_SUBDIRECTORY(src)
 ADD_SUBDIRECTORY(build)
 ADD_SUBDIRECTORY(systemd)
-ADD_SUBDIRECTORY(tests)
-ADD_SUBDIRECTORY(tools)
+ADD_SUBDIRECTORY(misc)
 ADD_SUBDIRECTORY(upgrade)
+ADD_SUBDIRECTORY(unit-tests)
\ No newline at end of file
similarity index 84%
rename from tools/CMakeLists.txt
rename to misc/CMakeLists.txt
index 9d12bb7..1dcd73f 100644 (file)
@@ -1,6 +1,6 @@
 SET(CKM_SO_LOADER "ckm_so_loader")
 
-SET(CKM_SO_LOADER_SOURCES ${PROJECT_SOURCE_DIR}/tools/ckm_so_loader.cpp)
+SET(CKM_SO_LOADER_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/ckm_so_loader.cpp)
 SET(KEY_MANAGER_SRC_PATH ${PROJECT_SOURCE_DIR}/src)
 ADD_EXECUTABLE( ${CKM_SO_LOADER} ${CKM_SO_LOADER_SOURCES} )
 
@@ -21,7 +21,7 @@ INSTALL(TARGETS ${CKM_SO_LOADER}
 
 
 SET(CKM_TOOL "ckm_tool")
-SET(CKM_TOOL_SOURCES ${PROJECT_SOURCE_DIR}/tools/ckm_tool.cpp)
+SET(CKM_TOOL_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/ckm_tool.cpp)
 
 INCLUDE_DIRECTORIES(
     ${KEY_MANAGER_SRC_PATH}/include
@@ -46,4 +46,5 @@ INSTALL(TARGETS ${CKM_TOOL}
                 WORLD_EXECUTE
      )
 ADD_SUBDIRECTORY(ckm_db_tool)
-ADD_SUBDIRECTORY(ckm_initial_values)
\ No newline at end of file
+ADD_SUBDIRECTORY(ckm_initial_values)
+ADD_SUBDIRECTORY(encryption_scheme)
\ No newline at end of file
similarity index 66%
rename from tools/ckm_db_tool/CMakeLists.txt
rename to misc/ckm_db_tool/CMakeLists.txt
index e282e79..117cc80 100644 (file)
@@ -2,31 +2,11 @@ SET(CKM_DB_TOOL "ckm_db_tool")
 SET(CKM_DB_MERGE "ckm_db_merge")
 SET(KEY_MANAGER_PATH ${PROJECT_SOURCE_DIR}/src/manager)
 
-IF (TZ_BACKEND_ENABLED)
-SET(CKM_DB_TOOL_EXTRA_DEP
-    tef-libteec
-    )
-ENDIF()
-
-PKG_CHECK_MODULES(CKM_DB_TOOL_DEP
-    REQUIRED
-    openssl1.1
-    libsmack
-    capi-base-common
-    capi-system-info
-    libxml-2.0
-    cynara-client-async
-    cynara-creds-socket
-    security-manager
-    sqlcipher
-    ${CKM_DB_TOOL_EXTRA_DEP}
-    )
-
 FIND_PACKAGE(Threads REQUIRED)
 
 INCLUDE_DIRECTORIES(
-    ${CKM_DB_TOOL_DEP_INCLUDE_DIRS}
-    ${PROJECT_SOURCE_DIR}/tools/ckm_db_tool/
+    ${KEY_MANAGER_DEP_INCLUDE_DIRS}
+    ${CMAKE_CURRENT_SOURCE_DIR}
     ${KEY_MANAGER_PATH}/main
     ${KEY_MANAGER_PATH}/common
     ${KEY_MANAGER_PATH}/service
@@ -38,9 +18,9 @@ INCLUDE_DIRECTORIES(
     )
 
 SET(CKM_DB_TOOLS_SOURCES
-    ${PROJECT_SOURCE_DIR}/tools/ckm_db_tool/db-crypto-ext.cpp
-    ${PROJECT_SOURCE_DIR}/tools/ckm_db_tool/ckm-logic-ext.cpp
-    ${PROJECT_SOURCE_DIR}/tools/ckm_db_tool/db-wrapper.cpp
+    ${CMAKE_CURRENT_SOURCE_DIR}/db-crypto-ext.cpp
+    ${CMAKE_CURRENT_SOURCE_DIR}/ckm-logic-ext.cpp
+    ${CMAKE_CURRENT_SOURCE_DIR}/db-wrapper.cpp
     ${KEY_MANAGER_PATH}/common/ckm-error.cpp
     ${KEY_MANAGER_PATH}/crypto/platform/decider.cpp
     ${KEY_MANAGER_PATH}/crypto/sw-backend/internals.cpp
@@ -77,47 +57,28 @@ SET(CKM_DB_TOOLS_SOURCES
     ${KEY_MANAGER_PATH}/service/ss-migrate.cpp
     ${KEY_MANAGER_PATH}/service/ss-crypto.cpp
     ${KEY_MANAGER_PATH}/service/permission.cpp
+    ${TZ_BACKEND_SOURCES}
     )
 
-IF(TZ_BACKEND_ENABLED)
-SET(CKM_DB_TOOLS_SOURCES
-    ${CKM_DB_TOOLS_SOURCES}
-    ${KEY_MANAGER_PATH}/crypto/tz-backend/internals.cpp
-    ${KEY_MANAGER_PATH}/crypto/tz-backend/obj.cpp
-    ${KEY_MANAGER_PATH}/crypto/tz-backend/store.cpp
-    ${KEY_MANAGER_PATH}/crypto/tz-backend/tz-context.cpp
-    ${KEY_MANAGER_PATH}/crypto/tz-backend/tz-memory.cpp
-    ${KEY_MANAGER_PATH}/crypto/tz-backend/tz-serializer.cpp
-    )
-ENDIF()
-
 LINK_DIRECTORIES(${CKM_DB_TOOL_DEP_LIBRARY_DIRS})
 
-ADD_EXECUTABLE(${CKM_DB_TOOL} ${CKM_DB_TOOLS_SOURCES} ${PROJECT_SOURCE_DIR}/tools/ckm_db_tool/ckm_db_tool.cpp)
-
-IF(TZ_BACKEND_ENABLED)
-SET(CKM_DB_TOOL_LINK_EXTRA_DEPS
-    ${CKM_DB_TOOL_LINK_EXTRA_DEPS}
-    teec
-    km_serialization
-    )
-ENDIF()
+ADD_EXECUTABLE(${CKM_DB_TOOL} ${CKM_DB_TOOLS_SOURCES} ${CMAKE_CURRENT_SOURCE_DIR}/ckm_db_tool.cpp)
 
 TARGET_LINK_LIBRARIES(${CKM_DB_TOOL}
     ${CMAKE_THREAD_LIBS_INIT}
-    ${CKM_DB_TOOL_DEP_LIBRARIES}
+    ${KEY_MANAGER_DEP_LIBRARIES}
+    ${KM_LINK_EXTRA_DEPS}
     ${TARGET_KEY_MANAGER_COMMON}
-    ${CKM_DB_TOOL_LINK_EXTRA_DEPS}
     -ldl
     )
 
-ADD_EXECUTABLE(${CKM_DB_MERGE} ${CKM_DB_TOOLS_SOURCES} ${PROJECT_SOURCE_DIR}/tools/ckm_db_tool/ckm_db_merge.cpp)
+ADD_EXECUTABLE(${CKM_DB_MERGE} ${CKM_DB_TOOLS_SOURCES} ${CMAKE_CURRENT_SOURCE_DIR}/ckm_db_merge.cpp)
 
 TARGET_LINK_LIBRARIES(${CKM_DB_MERGE}
     ${CMAKE_THREAD_LIBS_INIT}
-    ${CKM_DB_TOOL_DEP_LIBRARIES}
+    ${KEY_MANAGER_DEP_LIBRARIES}
+    ${KM_LINK_EXTRA_DEPS}
     ${TARGET_KEY_MANAGER_COMMON}
-    ${CKM_DB_TOOL_LINK_EXTRA_DEPS}
     -ldl
     )
 
similarity index 97%
rename from tools/ckm_db_tool/ckm-logic-ext.cpp
rename to misc/ckm_db_tool/ckm-logic-ext.cpp
index 6d64fc4..2eba078 100644 (file)
@@ -19,8 +19,9 @@
  * @version    1.0
  */
 
-#include <ckm-logic-ext.h>
-#include <db-crypto-ext.h>
+#include "ckm-logic-ext.h"
+
+#include "db-crypto-ext.h"
 
 namespace CKM {
 
similarity index 99%
rename from tools/ckm_db_tool/ckm_db_merge.cpp
rename to misc/ckm_db_tool/ckm_db_merge.cpp
index fe82bb7..5248b4c 100644 (file)
@@ -28,7 +28,7 @@
 #include <getopt.h>
 #include <unistd.h>
 
-#include <db-wrapper.h>
+#include "db-wrapper.h"
 
 using namespace std;
 using namespace CKM;
similarity index 99%
rename from tools/ckm_db_tool/ckm_db_tool.cpp
rename to misc/ckm_db_tool/ckm_db_tool.cpp
index 0de240d..e1a4fa6 100644 (file)
@@ -26,7 +26,7 @@
 #include <getopt.h>
 #include <unistd.h>
 
-#include <db-wrapper.h>
+#include "db-wrapper.h"
 
 using namespace std;
 using namespace CKM;
similarity index 98%
rename from tools/ckm_db_tool/db-crypto-ext.cpp
rename to misc/ckm_db_tool/db-crypto-ext.cpp
index 90d5a4f..df28078 100644 (file)
@@ -20,7 +20,8 @@
  * @brief       Limited implementation of encrypted db access layer
  */
 
-#include <db-crypto-ext.h>
+#include "db-crypto-ext.h"
+
 #include <dpl/exception.h>
 
 namespace CKM {
similarity index 99%
rename from tools/ckm_db_tool/db-wrapper.cpp
rename to misc/ckm_db_tool/db-wrapper.cpp
index 66f3188..aa09810 100644 (file)
  * @author     Bartlomiej Grzelewski (b.grzelewski@samsung.com)
  * @version    1.0
  */
+#include "db-wrapper.h"
+
 #include <string>
 #include <algorithm>
 
 #include <base64.h>
 
-#include <db-wrapper.h>
-
 namespace {
 
 const size_t MAX_LEN = 64;
similarity index 98%
rename from tools/ckm_db_tool/db-wrapper.h
rename to misc/ckm_db_tool/db-wrapper.h
index 2fa6653..70aa3cf 100644 (file)
@@ -27,9 +27,8 @@
 #include <ckm/ckm-error.h>
 #include <message-buffer.h>
 #include <dpl/db/sql_connection.h>
-#include <ckm-logic-ext.h>
-
 #include <exception.h>
+#include "ckm-logic-ext.h"
 
 namespace CKM {
 
similarity index 99%
rename from tools/ckm_initial_values/base64.cpp
rename to misc/ckm_initial_values/base64.cpp
index aa1520a..1c0d497 100644 (file)
@@ -13,6 +13,8 @@
  *    See the License for the specific language governing permissions and
  *    limitations under the License.
  */
+#include "base64.h"
+
 #include <algorithm>
 #include <memory>
 
@@ -21,7 +23,6 @@
 #include <openssl/evp.h>
 #include <openssl/buffer.h>
 
-#include "base64.h"
 
 namespace CKM {
 
similarity index 100%
rename from tools/ckm_tool.cpp
rename to misc/ckm_tool.cpp
diff --git a/misc/encryption_scheme/CMakeLists.txt b/misc/encryption_scheme/CMakeLists.txt
new file mode 100644 (file)
index 0000000..2a1bd82
--- /dev/null
@@ -0,0 +1,96 @@
+# common stuff
+FIND_PACKAGE(Threads REQUIRED)
+ADD_DEFINITIONS("-DBOOST_TEST_DYN_LINK")
+ADD_DEFINITIONS("-DMISC_DIR=\"${MISC_DIR}\"")
+
+SET(MANAGER_PATH ${PROJECT_SOURCE_DIR}/src/manager)
+
+INCLUDE_DIRECTORIES(SYSTEM ${KEY_MANAGER_DEP_INCLUDE_DIRS})
+
+INCLUDE_DIRECTORIES(
+    ${MANAGER_PATH}/dpl/db/include
+    ${MANAGER_PATH}/dpl/core/include
+    ${MANAGER_PATH}/dpl/log/include
+    ${MANAGER_PATH}/service
+    ${MANAGER_PATH}/common
+    ${PROJECT_SOURCE_DIR}/src/include
+    ${PROJECT_SOURCE_DIR}/common
+    ${CMAKE_CURRENT_SOURCE_DIR}
+)
+
+LINK_DIRECTORIES(${KEY_MANAGER_DEP_LIBRARY_DIRS})
+
+SET(ENCRYPTION_SCHEME_COMMON_LINK_OPTIONS
+    ${TARGET_KEY_MANAGER_CLIENT}
+    ${TARGET_KEY_MANAGER_CONTROL_CLIENT}
+    ${KEY_MANAGER_DEP_LIBRARIES}
+    ${KM_LINK_EXTRA_DEPS}
+    ${CMAKE_THREAD_LIBS_INIT}
+    boost_unit_test_framework
+    -ldl
+)
+
+SET(ENCRYPTION_SCHEME_COMMON_SOURCES
+    ${CMAKE_CURRENT_SOURCE_DIR}/smack-access.cpp
+    ${CMAKE_CURRENT_SOURCE_DIR}/scheme-test.cpp
+
+    ${PROJECT_SOURCE_DIR}/common/colour_log_formatter.cpp
+
+    ${MANAGER_PATH}/dpl/core/src/colors.cpp
+    ${MANAGER_PATH}/dpl/db/src/naive_synchronization_object.cpp
+    ${MANAGER_PATH}/dpl/db/src/sql_connection.cpp
+    ${MANAGER_PATH}/service/db-crypto.cpp
+    ${MANAGER_PATH}/service/file-lock.cpp
+    ${MANAGER_PATH}/service/file-system.cpp
+    ${MANAGER_PATH}/service/for-each-file.cpp
+    ${MANAGER_PATH}/service/key-provider.cpp
+)
+
+# binary for filling db for scheme migration testing
+SET(TARGET_CKM_GENERATOR "ckm_generate_db")
+
+ADD_EXECUTABLE(
+    ${TARGET_CKM_GENERATOR}
+    ${ENCRYPTION_SCHEME_COMMON_SOURCES}
+    ${CMAKE_CURRENT_SOURCE_DIR}/generate-db.cpp
+)
+
+TARGET_LINK_LIBRARIES(
+    ${TARGET_CKM_GENERATOR}
+    ${ENCRYPTION_SCHEME_COMMON_LINK_OPTIONS}
+)
+
+INSTALL(TARGETS ${TARGET_CKM_GENERATOR} DESTINATION bin)
+
+
+# binary for testing encryption scheme migration
+SET(TARGET_SCHEME_TEST "ckm-scheme-test")
+
+ADD_EXECUTABLE(
+    ${TARGET_SCHEME_TEST}
+    ${ENCRYPTION_SCHEME_COMMON_SOURCES}
+    ${CMAKE_CURRENT_SOURCE_DIR}/test_encryption-scheme.cpp
+)
+
+TARGET_LINK_LIBRARIES(
+    ${TARGET_SCHEME_TEST}
+    ${ENCRYPTION_SCHEME_COMMON_LINK_OPTIONS}
+)
+
+INSTALL(TARGETS ${TARGET_SCHEME_TEST} DESTINATION bin)
+
+
+# resources
+INSTALL(
+    FILES
+        encryption-scheme.p12
+        db-7654
+        db-key-7654
+        key-7654
+    DESTINATION ${MISC_DIR}
+)
+
+CONFIGURE_FILE(
+    ${PROJECT_SOURCE_DIR}/packaging/key-manager-misc.manifest.in
+    ${PROJECT_SOURCE_DIR}/key-manager-misc.manifest @ONLY
+)
similarity index 97%
rename from tests/encryption-scheme/generate-db.cpp
rename to misc/encryption_scheme/generate-db.cpp
index 8bb6e3c..9182a8a 100644 (file)
@@ -22,7 +22,7 @@
 #include <iostream>
 #include <stdexcept>
 
-#include <scheme-test.h>
+#include "scheme-test.h"
 
 int main()
 {
similarity index 99%
rename from tests/encryption-scheme/scheme-test.cpp
rename to misc/encryption_scheme/scheme-test.cpp
index bfaaef9..4aa19f1 100644 (file)
@@ -18,7 +18,7 @@
  * @author     Krzysztof Jackiewicz (k.jackiewicz@samsung.com)
  * @version    1.0
  */
-#include <scheme-test.h>
+#include "scheme-test.h"
 
 #include <sys/smack.h>
 #include <sys/types.h>
 
 #include <boost/test/unit_test.hpp>
 
-#include <smack-access.h>
-
 #include <db-crypto.h>
 #include <file-system.h>
 #include <key-provider.h>
 #include <db-row.h>
 #include <crypto-init.h>
 #include <dpl/errno_string.h>
+#include "smack-access.h"
 
 using namespace CKM;
 using namespace std;
@@ -337,7 +336,7 @@ void restoreFile(const string &filename)
 {
        static uid_t CKM_UID = getUid(USER_NAME);
        static gid_t CKM_GID = getGid(GROUP_NAME);
-       string sourcePath = string(DB_TEST_DIR) + "/" + filename;
+       string sourcePath = string(MISC_DIR) + "/" + filename;
        string targetPath = string(RW_DATA_DIR) + "/" + filename;
 
        int err, ret;
@@ -478,7 +477,7 @@ void SchemeTest::SwitchToRoot()
 void SchemeTest::FillDb()
 {
        // pkcs
-       ifstream is(DB_TEST_DIR "/encryption-scheme.p12");
+       ifstream is(MISC_DIR "/encryption-scheme.p12");
 
        if (!is)
                throw runtime_error("Failed to read pkcs");
similarity index 98%
rename from tests/encryption-scheme/smack-access.cpp
rename to misc/encryption_scheme/smack-access.cpp
index 41a8ec0..c1c4a31 100644 (file)
@@ -20,9 +20,9 @@
  * @version    1.0
  */
 
-#include <stdexcept>
+#include "smack-access.h"
 
-#include <smack-access.h>
+#include <stdexcept>
 
 #include <sys/smack.h>
 
similarity index 79%
rename from tests/test_encryption-scheme.cpp
rename to misc/encryption_scheme/test_encryption-scheme.cpp
index b16bc5b..53c5683 100644 (file)
 
 #include <fstream>
 #include <string>
+#include <iostream>
 
+#define BOOST_TEST_MODULE KEY_MANAGER_SCHEME_TEST
 #include <boost_macros_wrapper.h>
 #include <boost/test/results_reporter.hpp>
+#include <boost/test/unit_test.hpp>
+#include <boost/test/unit_test_log.hpp>
 
-#include <scheme-test.h>
+#include <exception.h>
+#include <key-provider.h>
+#include <dpl/log/log.h>
+#include <log-setup.h>
+
+#include <colour_log_formatter.h>
+#include "scheme-test.h"
 
 using namespace CKM;
 
@@ -59,8 +69,52 @@ private:
        std::string m_oldOnlycap;
 };
 
+struct TestConfig {
+       TestConfig()
+       {
+               boost::unit_test::unit_test_log.set_threshold_level(
+                       boost::unit_test::log_test_units);
+               boost::unit_test::results_reporter::set_level(boost::unit_test::SHORT_REPORT);
+               boost::unit_test::unit_test_log.set_formatter(new CKM::colour_log_formatter);
+       }
+       ~TestConfig()
+       {
+       }
+};
+
+struct KeyProviderLib {
+       KeyProviderLib()
+       {
+               try {
+                       KeyProvider::initializeLibrary();
+               } catch (const Exc::Exception &) {
+                       std::cout << "Library initialization failed!" << std::endl;
+               }
+       }
+       ~KeyProviderLib()
+       {
+               try {
+                       KeyProvider::closeLibrary();
+               } catch (const Exc::Exception &) {
+                       std::cout << "Library deinitialization failed!" << std::endl;
+               }
+       }
+};
+
+struct LogSetup {
+       LogSetup()
+       {
+               SetupClientLogSystem();
+               Singleton<Log::LogSystem>::Instance().SetTag("CKM_SCHEME_TESTS");
+       }
+       ~LogSetup() {}
+};
+
 } // namespace anonymous
 
+BOOST_GLOBAL_FIXTURE(KeyProviderLib);
+BOOST_GLOBAL_FIXTURE(TestConfig);
+BOOST_GLOBAL_FIXTURE(LogSetup);
 BOOST_FIXTURE_TEST_SUITE(ENCRYPTION_SCHEME_TEST, OnlycapFixture)
 
 // Test database should have the old scheme
similarity index 74%
rename from packaging/key-manager-tests.manifest.in
rename to packaging/key-manager-misc.manifest.in
index d302dcc..32cd142 100644 (file)
@@ -3,7 +3,7 @@
                <domain name="_" />
        </request>
        <assign>
-               <filesystem path="@BIN_DIR@/ckm-tests-internal" exec_label="System::Privileged" />
+               <filesystem path="@BIN_DIR@/ckm-scheme-test" exec_label="System::Privileged" />
                <filesystem path="@BIN_DIR@/ckm_db_tool" exec_label="@SMACK_DOMAIN_NAME@" />
                <filesystem path="@BIN_DIR@/ckm_generate_db" exec_label="System::Privileged" />
        </assign>
diff --git a/packaging/key-manager-unit-tests.manifest.in b/packaging/key-manager-unit-tests.manifest.in
new file mode 100644 (file)
index 0000000..1d62276
--- /dev/null
@@ -0,0 +1,8 @@
+<manifest>
+       <request>
+               <domain name="_" />
+       </request>
+       <assign>
+               <filesystem path="@BIN_DIR@/ckm-unit-tests" exec_label="System::Privileged" />
+       </assign>
+</manifest>
index b0ac6ca..ed6495f 100644 (file)
@@ -2,6 +2,7 @@
 %global watchdog_timeout_sec 60
 %global watchdog_notify_sec  20
 %global tz_backend_enabled %{?tz_backend:%tz_backend}%{!?tz_backend:OFF}
+%{!?build_type:%global build_type RELEASE}
 
 Name:       key-manager
 Summary:    Central Key Manager and utilities
@@ -42,7 +43,7 @@ BuildRequires: key-manager-ta-devel
 BuildRequires: key-manager-ta-serialization-devel
 BuildRequires: pkgconfig(tef-libteec)
 %endif
-Requires: libkey-manager-common = %{version}-%{release}
+Requires:      libkey-manager-common = %{version}-%{release}
 
 %{?systemd_requires}
 
@@ -54,7 +55,8 @@ Requires: libkey-manager-common = %{version}-%{release}
 %global old_rw_data_dir /opt/data/ckm
 %global rw_data_dir %{?TZ_SYS_DATA:%TZ_SYS_DATA/ckm}%{!?TZ_SYS_DATA:%old_rw_data_dir}
 %global ro_data_dir %{?TZ_SYS_RO_SHARE:%TZ_SYS_RO_SHARE/ckm}%{!?TZ_SYS_RO_SHARE:%_datadir/ckm}
-%global test_dir %{?TZ_SYS_DATA:%TZ_SYS_DATA/ckm-tests-internal}%{!?TZ_SYS_DATA:%/opt/data/ckm-tests-internal}
+%global unit_tests_dir %{?TZ_SYS_DATA:%TZ_SYS_DATA/ckm-unit-tests}%{!?TZ_SYS_DATA:%/opt/data/ckm-unit-tests}
+%global misc_dir %{?TZ_SYS_DATA:%TZ_SYS_DATA/ckm-misc}%{!?TZ_SYS_DATA:%/opt/data/ckm-misc}
 %global bin_dir %{?TZ_SYS_BIN:%TZ_SYS_BIN}%{!?TZ_SYS_BIN:%_bindir}
 # image creation error occured if /usr/sbin used for ldconfig
 #%global sbin_dir %{?TZ_SYS_SBIN:%TZ_SYS_SBIN}%{!?TZ_SYS_SBIN:%_sbindir}
@@ -104,16 +106,26 @@ Requires:   libkey-manager-client = %{version}-%{release}
 %description -n libkey-manager-client-devel
 Central Key Manager package (client-devel)
 
-%package -n key-manager-tests
-Summary:    Internal test for key-manager
+%package -n key-manager-unit-tests
+Summary:    Unit tests for key-manager
 Group:      Security/Testing
 License:    Apache-2.0 and BSL-1.0
 BuildRequires: pkgconfig(libxml-2.0)
 Requires:   boost-test
 Requires:   key-manager = %{version}-%{release}
 
-%description -n key-manager-tests
-Internal test for key-manager implementation.
+%description -n key-manager-unit-tests
+Unit tests for key-manager.
+
+%package -n key-manager-misc
+Summary:    Miscellaneous tools and tests for key-manager
+Group:      Security/Testing
+License:    Apache-2.0 and BSL-1.0
+Requires:   boost-test
+Requires:   key-manager = %{version}-%{release}
+
+%description -n key-manager-misc
+Miscellaneous tools and tests for key-manager.
 
 %package -n key-manager-pam-plugin
 Summary:    CKM login/password module to PAM
@@ -153,7 +165,7 @@ Includes ckm_initial_values tool for initial values XML generation
 export LDFLAGS+="-Wl,--rpath=%{_libdir},-Bsymbolic-functions"
 
 %cmake . -DVERSION=%{version} \
-        -DCMAKE_BUILD_TYPE=%{?build_type:%build_type}%{!?build_type:RELEASE} \
+        -DCMAKE_BUILD_TYPE=%{build_type} \
         -DCMAKE_VERBOSE_MAKEFILE=ON \
         -DSYSTEMD_UNIT_DIR=%{_unitdir} \
         -DSYSTEMD_ENV_FILE=%{ro_etc_dir}"/sysconfig/central-key-manager" \
@@ -182,7 +194,8 @@ export LDFLAGS+="-Wl,--rpath=%{_libdir},-Bsymbolic-functions"
 %else
         -DTZ_BACKEND_ENABLED=OFF \
 %endif
-        -DTEST_DIR=%{test_dir} \
+        -DUNIT_TESTS_DIR=%{unit_tests_dir} \
+        -DMISC_DIR=%{misc_dir} \
         -DDUMP_LEGACY_DB_LIBNAME=%{dump_legacy_db_libname}
 
 make %{?jobs:-j%jobs}
@@ -331,17 +344,24 @@ fi
 %{_includedir}/ckm/ckmc/ckmc-type.h
 %{_libdir}/pkgconfig/*.pc
 
-%files -n key-manager-tests
-%manifest key-manager-tests.manifest
+%files -n key-manager-initial-values
+%license LICENSE
+%{bin_dir}/ckm_initial_values
+
+%files -n key-manager-misc
+%manifest key-manager-misc.manifest
 %license LICENSE
 %license LICENSE.BSL-1.0
-%{bin_dir}/ckm-tests-internal
+%{bin_dir}/ckm-scheme-test
 %{bin_dir}/ckm_so_loader
 %{bin_dir}/ckm_db_tool
 %{bin_dir}/ckm_db_merge
 %{bin_dir}/ckm_generate_db
-%test_dir
+%misc_dir
 
-%files -n key-manager-initial-values
+%files -n key-manager-unit-tests
+%manifest key-manager-unit-tests.manifest
 %license LICENSE
-%{bin_dir}/ckm_initial_values
+%license LICENSE.BSL-1.0
+%{bin_dir}/ckm-unit-tests
+%unit_tests_dir
index 7369a67..88f8a37 100644 (file)
@@ -1,34 +1,3 @@
-IF (DEFINED WATCHDOG_ENABLED)
-SET(EXTRA_KM_DEPS argos_watchdog)
-ELSE (DEFINED WATCHDOG_ENABLED)
-SET(EXTRA_KM_DEPS)
-ENDIF (DEFINED WATCHDOG_ENABLED)
-
-IF (TZ_BACKEND_ENABLED)
-SET(EXTRA_KM_DEPS
-    ${EXTRA_KM_DEPS}
-    tef-libteec
-    )
-ENDIF()
-
-PKG_CHECK_MODULES(KEY_MANAGER_DEP
-    REQUIRED
-    dlog
-    glib-2.0
-    openssl1.1
-    libsmack
-    libsystemd-daemon
-    capi-base-common
-    capi-system-info
-    libxml-2.0
-    security-manager
-    cynara-client-async
-    cynara-creds-socket
-    pkgmgr
-    vconf
-    sqlcipher
-    ${EXTRA_KM_DEPS}
-    )
 FIND_PACKAGE(Threads REQUIRED)
 
 SET(KEY_MANAGER_SRC_PATH ${PROJECT_SOURCE_DIR}/src)
@@ -82,20 +51,9 @@ SET(KEY_MANAGER_SOURCES
     ${KEY_MANAGER_PATH}/crypto/platform/decider.cpp
     ${SECURITY_MANAGER_WRAPPER_PATH}
     ${CYNARA_WRAPPER_PATH}
+    ${TZ_BACKEND_SOURCES}
     )
 
-IF(TZ_BACKEND_ENABLED)
-SET(KEY_MANAGER_SOURCES
-    ${KEY_MANAGER_SOURCES}
-    ${KEY_MANAGER_PATH}/crypto/tz-backend/obj.cpp
-    ${KEY_MANAGER_PATH}/crypto/tz-backend/store.cpp
-    ${KEY_MANAGER_PATH}/crypto/tz-backend/internals.cpp
-    ${KEY_MANAGER_PATH}/crypto/tz-backend/tz-context.cpp
-    ${KEY_MANAGER_PATH}/crypto/tz-backend/tz-memory.cpp
-    ${KEY_MANAGER_PATH}/crypto/tz-backend/tz-serializer.cpp
-    )
-ENDIF()
-
 SET_SOURCE_FILES_PROPERTIES(
     ${KEY_MANAGER_SOURCES}
     PROPERTIES
@@ -121,13 +79,6 @@ LINK_DIRECTORIES(${KEY_MANAGER_DEP_LIBRARY_DIRS})
 
 ADD_EXECUTABLE(${TARGET_KEY_MANAGER} ${KEY_MANAGER_SOURCES})
 
-IF(TZ_BACKEND_ENABLED)
-SET(KM_LINK_EXTRA_DEPS
-    ${KM_LINK_EXTRA_DEPS}
-    km_serialization
-    )
-ENDIF()
-
 TARGET_LINK_LIBRARIES(${TARGET_KEY_MANAGER}
     ${CMAKE_THREAD_LIBS_INIT}
     ${KEY_MANAGER_DEP_LIBRARIES}
@@ -214,7 +165,7 @@ ADD_LIBRARY(${TARGET_KEY_MANAGER_CONTROL_CLIENT} SHARED ${KEY_MANAGER_CONTROL_CL
 SET_TARGET_PROPERTIES(
     ${TARGET_KEY_MANAGER_CONTROL_CLIENT}
     PROPERTIES
-        COMPILE_FLAGS "-D_GNU_SOURCE -fvisibility=hidden  -Wno-deprecated-declarations"
+        COMPILE_FLAGS "-D_GNU_SOURCE -fvisibility=hidden -Wno-deprecated-declarations"
         SOVERSION ${KEY_MANAGER_CONTROL_CLIENT_VERSION_MAJOR}
         VERSION ${KEY_MANAGER_CONTROL_CLIENT_VERSION}
     )
@@ -254,5 +205,10 @@ INSTALL(FILES
     )
 ################################################################################
 
+CONFIGURE_FILE(
+    ${PROJECT_SOURCE_DIR}/packaging/key-manager.manifest.in
+    ${PROJECT_SOURCE_DIR}/key-manager.manifest @ONLY
+)
+
 ADD_SUBDIRECTORY(manager)
 ADD_SUBDIRECTORY(pam_plugin)
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
deleted file mode 100644 (file)
index 27078e4..0000000
+++ /dev/null
@@ -1,209 +0,0 @@
-PKG_CHECK_MODULES(KEY_MANAGER_TEST_DEP
-    REQUIRED
-    libxml-2.0
-    )
-
-FIND_PACKAGE(Threads REQUIRED)
-ADD_DEFINITIONS("-DBOOST_TEST_DYN_LINK")
-
-SET(DB_TEST_DIR ${TEST_DIR}/db)
-SET(SS_TEST_DIR ${TEST_DIR}/secure-storage)
-
-ADD_DEFINITIONS("-DDB_TEST_DIR=\"${DB_TEST_DIR}\"")
-ADD_DEFINITIONS("-DSS_TEST_DIR=\"${SS_TEST_DIR}\"")
-
-SET(KEY_MANAGER_SRC_PATH ${PROJECT_SOURCE_DIR}/src)
-SET(KEY_MANAGER_PATH ${PROJECT_SOURCE_DIR}/src/manager)
-
-# encryption scheme tests #####################################################
-
-PKG_CHECK_MODULES(ENCRYPTION_SCHEME_DEP
-    REQUIRED
-    openssl1.1
-    libsmack
-    sqlcipher)
-
-SET(ENCRYPTION_SCHEME_SOURCES
-    ${CMAKE_CURRENT_SOURCE_DIR}/encryption-scheme/smack-access.cpp
-    ${CMAKE_CURRENT_SOURCE_DIR}/encryption-scheme/scheme-test.cpp
-
-    ${KEY_MANAGER_PATH}/dpl/db/src/naive_synchronization_object.cpp
-    ${KEY_MANAGER_PATH}/dpl/db/src/sql_connection.cpp
-    ${KEY_MANAGER_PATH}/service/db-crypto.cpp
-    ${KEY_MANAGER_PATH}/service/file-lock.cpp
-    ${KEY_MANAGER_PATH}/service/file-system.cpp
-    ${KEY_MANAGER_PATH}/service/for-each-file.cpp
-    ${KEY_MANAGER_PATH}/service/key-provider.cpp
-)
-
-INCLUDE_DIRECTORIES(SYSTEM ${ENCRYPTION_SCHEME_DEP_INCLUDE_DIRS})
-INCLUDE_DIRECTORIES(
-    ${CMAKE_CURRENT_SOURCE_DIR}
-
-    ${KEY_MANAGER_PATH}/common
-    ${KEY_MANAGER_PATH}/dpl/core/include
-    ${KEY_MANAGER_PATH}/dpl/log/include
-    ${KEY_MANAGER_PATH}/dpl/db/include
-    ${KEY_MANAGER_PATH}/service
-    ${KEY_MANAGER_PATH}/crypto
-)
-
-LINK_DIRECTORIES(${ENCRYPTION_SCHEME_DEP_LIBRARY_DIRS})
-
-# binary for filling db for testing
-SET(TARGET_CKM_GENERATOR "ckm_generate_db")
-
-SET(GENERATOR_SOURCES
-    ${CMAKE_CURRENT_SOURCE_DIR}/encryption-scheme/generate-db.cpp
-)
-
-ADD_EXECUTABLE(${TARGET_CKM_GENERATOR} ${GENERATOR_SOURCES} ${ENCRYPTION_SCHEME_SOURCES})
-
-SET(SCHEME_TEST_LIBRARIES
-    ${ENCRYPTION_SCHEME_DEP_LIBRARIES}
-    ${TARGET_KEY_MANAGER_CLIENT}
-    ${TARGET_KEY_MANAGER_CONTROL_CLIENT}
-    ${CMAKE_THREAD_LIBS_INIT}
-    boost_unit_test_framework
-    -ldl
-    )
-
-TARGET_LINK_LIBRARIES(${TARGET_CKM_GENERATOR} ${SCHEME_TEST_LIBRARIES}
-)
-
-INSTALL(TARGETS ${TARGET_CKM_GENERATOR} DESTINATION bin)
-
-################################################################################
-
-
-SET(KEY_MANAGER_TEST_MERGED_SRC ${PROJECT_SOURCE_DIR}/tests)
-
-INCLUDE_DIRECTORIES(
-    ${KEY_MANAGER_DEP_INCLUDE_DIRS}
-    ${KEY_MANAGER_PATH}/dpl/db/include
-    ${KEY_MANAGER_PATH}/dpl/core/include
-    ${KEY_MANAGER_PATH}/dpl/log/include
-    ${KEY_MANAGER_PATH}/service
-    ${KEY_MANAGER_PATH}/initial-values
-    ${KEY_MANAGER_PATH}/main
-    ${KEY_MANAGER_PATH}/common
-    ${KEY_MANAGER_PATH}/crypto
-    ${KEY_MANAGER_PATH}/client-async
-    ${KEY_MANAGER_SRC_PATH}/include
-    ${KEY_MANAGER_TEST_MERGED_SRC}
-    ${KEY_MANAGER_TEST_MERGED_SRC}/encryption-scheme
-    )
-
-SET(TEST_MERGED_SOURCES
-    ${KEY_MANAGER_TEST_MERGED_SRC}/colour_log_formatter.cpp
-    ${KEY_MANAGER_TEST_MERGED_SRC}/DBFixture.cpp
-    ${KEY_MANAGER_TEST_MERGED_SRC}/main.cpp
-    ${KEY_MANAGER_TEST_MERGED_SRC}/test_async-observer.cpp
-    ${KEY_MANAGER_TEST_MERGED_SRC}/test_base64.cpp
-    ${KEY_MANAGER_TEST_MERGED_SRC}/test_binary-queue.cpp
-    ${KEY_MANAGER_TEST_MERGED_SRC}/test_certificate.cpp
-    ${KEY_MANAGER_TEST_MERGED_SRC}/test_comm-manager.cpp
-    ${KEY_MANAGER_TEST_MERGED_SRC}/test_common.cpp
-    ${KEY_MANAGER_TEST_MERGED_SRC}/test_crypto-logic.cpp
-    ${KEY_MANAGER_TEST_MERGED_SRC}/test_data-type.cpp
-    ${KEY_MANAGER_TEST_MERGED_SRC}/test_db_crypto.cpp
-    ${KEY_MANAGER_TEST_MERGED_SRC}/test_descriptor-set.cpp
-    ${KEY_MANAGER_TEST_MERGED_SRC}/test_dpl-db.cpp
-    ${KEY_MANAGER_TEST_MERGED_SRC}/test_dpl-exception.cpp
-    ${KEY_MANAGER_TEST_MERGED_SRC}/test_encryption-scheme.cpp
-    ${KEY_MANAGER_TEST_MERGED_SRC}/test_exception.cpp
-    ${KEY_MANAGER_TEST_MERGED_SRC}/test_for-each-file.cpp
-    ${KEY_MANAGER_TEST_MERGED_SRC}/test_generic-backend.cpp
-    ${KEY_MANAGER_TEST_MERGED_SRC}/test_key.cpp
-    ${KEY_MANAGER_TEST_MERGED_SRC}/test_key-provider.cpp
-    ${KEY_MANAGER_TEST_MERGED_SRC}/test_log-provider.cpp
-    ${KEY_MANAGER_TEST_MERGED_SRC}/test_safe-buffer.cpp
-    ${KEY_MANAGER_TEST_MERGED_SRC}/test_serialization.cpp
-    ${KEY_MANAGER_TEST_MERGED_SRC}/test_sql.cpp
-    ${KEY_MANAGER_TEST_MERGED_SRC}/test_stringify.cpp
-    ${KEY_MANAGER_TEST_MERGED_SRC}/test_ss-crypto.cpp
-    ${KEY_MANAGER_TEST_MERGED_SRC}/test_sw-backend.cpp
-    ${KEY_MANAGER_TEST_MERGED_SRC}/test_xml-parser.cpp
-
-    # duplicated srcs to test hidden symbols
-    ${KEY_MANAGER_PATH}/client-async/descriptor-set.cpp
-    ${KEY_MANAGER_PATH}/crypto/platform/decider.cpp
-    ${KEY_MANAGER_PATH}/crypto/sw-backend/internals.cpp
-    ${KEY_MANAGER_PATH}/crypto/sw-backend/obj.cpp
-    ${KEY_MANAGER_PATH}/crypto/sw-backend/store.cpp
-    ${KEY_MANAGER_PATH}/dpl/core/src/colors.cpp
-    ${KEY_MANAGER_PATH}/dpl/core/src/errno_string.cpp
-    ${KEY_MANAGER_PATH}/dpl/db/src/naive_synchronization_object.cpp
-    ${KEY_MANAGER_PATH}/dpl/db/src/sql_connection.cpp
-    ${KEY_MANAGER_PATH}/dpl/log/src/abstract_log_provider.cpp
-    ${KEY_MANAGER_PATH}/dpl/log/src/dlog_log_provider.cpp
-    ${KEY_MANAGER_PATH}/dpl/log/src/journal_log_provider.cpp
-    ${KEY_MANAGER_PATH}/dpl/log/src/log.cpp
-    ${KEY_MANAGER_PATH}/dpl/log/src/old_style_log_provider.cpp
-    ${KEY_MANAGER_PATH}/initial-values/parser.cpp
-    ${KEY_MANAGER_PATH}/initial-values/xml-utils.cpp
-    ${KEY_MANAGER_PATH}/service/crypto-logic.cpp
-    ${KEY_MANAGER_PATH}/service/db-crypto.cpp
-    ${KEY_MANAGER_PATH}/service/for-each-file.cpp
-    ${KEY_MANAGER_PATH}/service/key-provider.cpp
-    ${KEY_MANAGER_PATH}/service/ss-crypto.cpp
-    )
-
-IF(TZ_BACKEND_ENABLED)
-SET(TEST_MERGED_SOURCES
-    ${TEST_MERGED_SOURCES}
-
-    # duplicated srcs to test hidden symbols
-    ${KEY_MANAGER_PATH}/crypto/tz-backend/obj.cpp
-    ${KEY_MANAGER_PATH}/crypto/tz-backend/store.cpp
-    ${KEY_MANAGER_PATH}/crypto/tz-backend/internals.cpp
-    ${KEY_MANAGER_PATH}/crypto/tz-backend/tz-context.cpp
-    ${KEY_MANAGER_PATH}/crypto/tz-backend/tz-memory.cpp
-    ${KEY_MANAGER_PATH}/crypto/tz-backend/tz-serializer.cpp
-    )
-ENDIF()
-
-LINK_DIRECTORIES(${KEY_MANAGER_DEP_LIBRARY_DIRS})
-
-ADD_EXECUTABLE(${TARGET_TEST_MERGED} ${TEST_MERGED_SOURCES} ${ENCRYPTION_SCHEME_SOURCES})
-
-
-IF(TZ_BACKEND_ENABLED)
-SET(TEST_LINK_EXTRA_DEPS
-    ${TEST_LINK_EXTRA_DEPS}
-    teec
-    km_serialization
-    )
-ENDIF()
-
-TARGET_LINK_LIBRARIES(${TARGET_TEST_MERGED}
-    ${KEY_MANAGER_DEP_LIBRARIES}
-    ${TEST_LINK_EXTRA_DEPS}
-    ${SCHEME_TEST_LIBRARIES}
-    )
-
-INSTALL(TARGETS ${TARGET_TEST_MERGED} DESTINATION bin)
-INSTALL(
-    FILES
-        resources/XML_1_okay.xml
-        resources/XML_1_okay.xsd
-        resources/XML_1_wrong.xml
-        resources/XML_1_wrong.xsd
-        resources/XML_2_structure.xml
-        resources/XML_3_encrypted.xml
-        resources/XML_3_encrypted.xsd
-        resources/XML_4_device_key.xml
-        resources/XML_4_device_key.xsd
-        resources/encryption-scheme.p12
-        resources/db-7654
-        resources/db-key-7654
-        resources/key-7654
-        resources/testme_ver1.db
-        resources/testme_ver2.db
-        resources/testme_ver3.db
-        resources/testme0_ver4.db
-    DESTINATION ${DB_TEST_DIR}
-    )
-
-INSTALL(DIRECTORY resources/traverse DESTINATION ${DB_TEST_DIR})
-INSTALL(DIRECTORY secure-storage-old-data/ DESTINATION ${SS_TEST_DIR})
diff --git a/unit-tests/CMakeLists.txt b/unit-tests/CMakeLists.txt
new file mode 100644 (file)
index 0000000..83d7fea
--- /dev/null
@@ -0,0 +1,142 @@
+FIND_PACKAGE(Threads REQUIRED)
+
+SET(DB_TEST_DIR ${UNIT_TESTS_DIR}/db)
+SET(SS_TEST_DIR ${UNIT_TESTS_DIR}/secure-storage)
+
+ADD_DEFINITIONS("-DDB_TEST_DIR=\"${DB_TEST_DIR}\"")
+ADD_DEFINITIONS("-DSS_TEST_DIR=\"${SS_TEST_DIR}\"")
+ADD_DEFINITIONS("-DBOOST_TEST_DYN_LINK")
+
+SET(MANAGER_PATH ${PROJECT_SOURCE_DIR}/src/manager)
+
+INCLUDE_DIRECTORIES(SYSTEM ${KEY_MANAGER_DEP_INCLUDE_DIRS})
+
+INCLUDE_DIRECTORIES(
+    ${MANAGER_PATH}/dpl/db/include
+    ${MANAGER_PATH}/dpl/core/include
+    ${MANAGER_PATH}/dpl/log/include
+    ${MANAGER_PATH}/service
+    ${MANAGER_PATH}/initial-values
+    ${MANAGER_PATH}/main
+    ${MANAGER_PATH}/common
+    ${MANAGER_PATH}/crypto
+    ${MANAGER_PATH}/client
+    ${MANAGER_PATH}/client-async
+    ${MANAGER_PATH}/client-capi
+    ${PROJECT_SOURCE_DIR}/src/include
+    ${PROJECT_SOURCE_DIR}/common
+    ${CMAKE_CURRENT_SOURCE_DIR}
+)
+
+LINK_DIRECTORIES(${KEY_MANAGER_DEP_LIBRARY_DIRS})
+
+SET(UNIT_TESTS_SOURCES
+    ${PROJECT_SOURCE_DIR}/common/colour_log_formatter.cpp
+    ${CMAKE_CURRENT_SOURCE_DIR}/DBFixture.cpp
+    ${CMAKE_CURRENT_SOURCE_DIR}/main.cpp
+    ${CMAKE_CURRENT_SOURCE_DIR}/test_async-observer.cpp
+    ${CMAKE_CURRENT_SOURCE_DIR}/test_base64.cpp
+    ${CMAKE_CURRENT_SOURCE_DIR}/test_binary-queue.cpp
+    ${CMAKE_CURRENT_SOURCE_DIR}/test_certificate.cpp
+    ${CMAKE_CURRENT_SOURCE_DIR}/test_comm-manager.cpp
+    ${CMAKE_CURRENT_SOURCE_DIR}/test_common.cpp
+    ${CMAKE_CURRENT_SOURCE_DIR}/test_crypto-logic.cpp
+    ${CMAKE_CURRENT_SOURCE_DIR}/test_data-type.cpp
+    ${CMAKE_CURRENT_SOURCE_DIR}/test_db_crypto.cpp
+    ${CMAKE_CURRENT_SOURCE_DIR}/test_descriptor-set.cpp
+    ${CMAKE_CURRENT_SOURCE_DIR}/test_dpl-db.cpp
+    ${CMAKE_CURRENT_SOURCE_DIR}/test_dpl-exception.cpp
+    ${CMAKE_CURRENT_SOURCE_DIR}/test_exception.cpp
+    ${CMAKE_CURRENT_SOURCE_DIR}/test_for-each-file.cpp
+    ${CMAKE_CURRENT_SOURCE_DIR}/test_generic-backend.cpp
+    ${CMAKE_CURRENT_SOURCE_DIR}/test_key.cpp
+    ${CMAKE_CURRENT_SOURCE_DIR}/test_key-provider.cpp
+    ${CMAKE_CURRENT_SOURCE_DIR}/test_log-provider.cpp
+    ${CMAKE_CURRENT_SOURCE_DIR}/test_safe-buffer.cpp
+    ${CMAKE_CURRENT_SOURCE_DIR}/test_serialization.cpp
+    ${CMAKE_CURRENT_SOURCE_DIR}/test_sql.cpp
+    ${CMAKE_CURRENT_SOURCE_DIR}/test_stringify.cpp
+    ${CMAKE_CURRENT_SOURCE_DIR}/test_ss-crypto.cpp
+    ${CMAKE_CURRENT_SOURCE_DIR}/test_sw-backend.cpp
+    ${CMAKE_CURRENT_SOURCE_DIR}/test_xml-parser.cpp
+
+    ${MANAGER_PATH}/client-async/descriptor-set.cpp
+    ${MANAGER_PATH}/common/algo-param.cpp
+    ${MANAGER_PATH}/common/base64.cpp
+    ${MANAGER_PATH}/common/certificate-impl.cpp
+    ${MANAGER_PATH}/common/ckm-zero-memory.cpp
+    ${MANAGER_PATH}/common/crypto-init.cpp
+    ${MANAGER_PATH}/common/data-type.cpp
+    ${MANAGER_PATH}/common/exception.cpp
+    ${MANAGER_PATH}/common/key-impl.cpp
+    ${MANAGER_PATH}/common/key-aes-impl.cpp
+    ${MANAGER_PATH}/common/log-setup.cpp
+    ${MANAGER_PATH}/common/message-buffer.cpp
+    ${MANAGER_PATH}/common/openssl-error-handler.cpp
+    ${MANAGER_PATH}/common/pkcs12-impl.cpp
+    ${MANAGER_PATH}/common/protocols.cpp
+    ${MANAGER_PATH}/crypto/platform/decider.cpp
+    ${MANAGER_PATH}/crypto/sw-backend/internals.cpp
+    ${MANAGER_PATH}/crypto/sw-backend/obj.cpp
+    ${MANAGER_PATH}/crypto/sw-backend/store.cpp
+    ${MANAGER_PATH}/dpl/core/src/binary_queue.cpp
+    ${MANAGER_PATH}/dpl/core/src/colors.cpp
+    ${MANAGER_PATH}/dpl/core/src/errno_string.cpp
+    ${MANAGER_PATH}/dpl/core/src/exception.cpp
+    ${MANAGER_PATH}/dpl/db/src/naive_synchronization_object.cpp
+    ${MANAGER_PATH}/dpl/db/src/sql_connection.cpp
+    ${MANAGER_PATH}/dpl/log/src/abstract_log_provider.cpp
+    ${MANAGER_PATH}/dpl/log/src/dlog_log_provider.cpp
+    ${MANAGER_PATH}/dpl/log/src/journal_log_provider.cpp
+    ${MANAGER_PATH}/dpl/log/src/log.cpp
+    ${MANAGER_PATH}/dpl/log/src/old_style_log_provider.cpp
+    ${MANAGER_PATH}/initial-values/parser.cpp
+    ${MANAGER_PATH}/initial-values/xml-utils.cpp
+    ${MANAGER_PATH}/service/crypto-logic.cpp
+    ${MANAGER_PATH}/service/db-crypto.cpp
+    ${MANAGER_PATH}/service/for-each-file.cpp
+    ${MANAGER_PATH}/service/key-provider.cpp
+    ${MANAGER_PATH}/service/ss-crypto.cpp
+)
+
+ADD_EXECUTABLE(
+    ${TARGET_UNIT_TESTS}
+    ${UNIT_TESTS_SOURCES}
+    ${TZ_BACKEND_SOURCES}
+)
+
+TARGET_LINK_LIBRARIES(
+    ${TARGET_UNIT_TESTS}
+    ${KEY_MANAGER_DEP_LIBRARIES}
+    ${KM_LINK_EXTRA_DEPS}
+    ${CMAKE_THREAD_LIBS_INIT}
+    boost_unit_test_framework
+    -ldl
+)
+
+INSTALL(TARGETS ${TARGET_UNIT_TESTS} DESTINATION bin)
+INSTALL(
+    FILES
+        resources/XML_1_okay.xml
+        resources/XML_1_okay.xsd
+        resources/XML_1_wrong.xml
+        resources/XML_1_wrong.xsd
+        resources/XML_2_structure.xml
+        resources/XML_3_encrypted.xml
+        resources/XML_3_encrypted.xsd
+        resources/XML_4_device_key.xml
+        resources/XML_4_device_key.xsd
+        resources/testme_ver1.db
+        resources/testme_ver2.db
+        resources/testme_ver3.db
+        resources/testme0_ver4.db
+    DESTINATION ${DB_TEST_DIR}
+)
+
+INSTALL(DIRECTORY resources/traverse DESTINATION ${DB_TEST_DIR})
+INSTALL(DIRECTORY secure-storage-old-data/ DESTINATION ${SS_TEST_DIR})
+
+CONFIGURE_FILE(
+    ${PROJECT_SOURCE_DIR}/packaging/key-manager-unit-tests.manifest.in
+    ${PROJECT_SOURCE_DIR}/key-manager-unit-tests.manifest @ONLY
+)
similarity index 100%
rename from tests/DBFixture.cpp
rename to unit-tests/DBFixture.cpp
similarity index 100%
rename from tests/DBFixture.h
rename to unit-tests/DBFixture.h
similarity index 94%
rename from tests/main.cpp
rename to unit-tests/main.cpp
index bfafe9c..0a2c09d 100644 (file)
@@ -21,6 +21,8 @@
 
 #include <iostream>
 #include <key-provider.h>
+
+#define BOOST_TEST_MODULE KEY_MANAGER_UNIT_TESTS
 #include <boost/test/unit_test.hpp>
 #include <boost/test/unit_test_log.hpp>
 #include <boost/test/results_reporter.hpp>
@@ -69,7 +71,7 @@ struct LogSetup {
        LogSetup()
        {
                CKM::SetupClientLogSystem();
-               CKM::Singleton<CKM::Log::LogSystem>::Instance().SetTag("CKM_INTERNAL_TESTS");
+               CKM::Singleton<CKM::Log::LogSystem>::Instance().SetTag("CKM_UNIT_TESTS");
        }
        ~LogSetup() {}
 };
similarity index 100%
rename from tests/test_common.h
rename to unit-tests/test_common.h
similarity index 99%
rename from tests/test_key-provider.cpp
rename to unit-tests/test_key-provider.cpp
index ea369d1..deeb1aa 100644 (file)
@@ -20,7 +20,7 @@
  * @version
  * @brief
  */
-#define BOOST_TEST_MODULE KEY_MANAGER_TEST
+
 #include <boost_macros_wrapper.h>
 #include <exception.h>
 #include <key-provider.h>
similarity index 100%
rename from tests/test_key.cpp
rename to unit-tests/test_key.cpp
similarity index 100%
rename from tests/test_sql.cpp
rename to unit-tests/test_sql.cpp