CKM: Add C compilation test 83/42483/5
authorKrzysztof Jackiewicz <k.jackiewicz@samsung.com>
Mon, 29 Jun 2015 09:20:46 +0000 (11:20 +0200)
committerKrzysztof Jackiewicz <k.jackiewicz@samsung.com>
Tue, 7 Jul 2015 11:25:07 +0000 (04:25 -0700)
[Problem] All tests are compiled using C++ so we can't detect C-compiler errors
[Solution] Add C compilation test.

[Verification] Successfull compilation.

Change-Id: I650a464fef6ea1874201c2e53a4086fba6188e13

src/ckm/CMakeLists.txt
src/ckm/c-compilation.c [new file with mode: 0644]

index 554749c..560e706 100644 (file)
@@ -74,3 +74,18 @@ INSTALL(FILES
     XML_3_wrong.xml
     DESTINATION /usr/share/ckm-test
     )
+
+# C compilation
+SET(TARGET_C_COMPILATION_TEST "ckm-c-compilation-test")
+
+SET(C_COMPILATION_SOURCES
+    ${PROJECT_SOURCE_DIR}/src/ckm/c-compilation.c
+)
+
+PKG_CHECK_MODULES(CKM_C_COMPILATION_DEP
+    key-manager
+    REQUIRED)
+
+ADD_EXECUTABLE(${TARGET_C_COMPILATION_TEST} ${C_COMPILATION_SOURCES})
+
+TARGET_LINK_LIBRARIES(${TARGET_C_COMPILATION_TEST} ${CKM_C_COMPILATION_DEP_LIBRARIES})
diff --git a/src/ckm/c-compilation.c b/src/ckm/c-compilation.c
new file mode 100644 (file)
index 0000000..89cf38a
--- /dev/null
@@ -0,0 +1,51 @@
+/*
+ *  Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License
+ */
+/*
+ * @file       c-compilation.c
+ * @author     Krzysztof Jackiewicz (k.jackiewicz@samsung.com)
+ * @version    1.0
+ */
+
+#include <ckmc/ckmc-manager.h>
+#include <ckmc/ckmc-type.h>
+
+static unsigned char iv[] = { "rewrewrewgegsrtbhns" };
+
+void algo_param() {
+    ckmc_param_list_s* list = NULL;
+    ckmc_raw_buffer_s* buffer = NULL;
+
+    if(CKMC_ERROR_NONE != ckmc_param_list_new(&list))
+        goto finish;
+    if(CKMC_ERROR_NONE != ckmc_buffer_new(iv, sizeof(iv), &buffer))
+        goto finish;
+    if(CKMC_ERROR_NONE != ckmc_param_list_add_integer(list, CKMC_PARAM_ALGO_TYPE, CKMC_ALGO_AES_GCM))
+        goto finish;
+    if(CKMC_ERROR_NONE != ckmc_param_list_add_buffer(list, CKMC_PARAM_ED_IV, buffer))
+        goto finish;
+
+finish:
+    ckmc_buffer_free(buffer);
+    ckmc_param_list_free(list);
+}
+
+
+int main()
+{
+    algo_param();
+    // TODO test other API
+    return 0;
+}