CKM: Update common test utilities 04/39704/9
authorKrzysztof Jackiewicz <k.jackiewicz@samsung.com>
Thu, 21 May 2015 09:03:54 +0000 (11:03 +0200)
committerKrzysztof Jackiewicz <k.jackiewicz@samsung.com>
Thu, 11 Jun 2015 13:06:55 +0000 (15:06 +0200)
[Problem] Utility functions should be accessible to other test suites.
Assert helpers don't show error name.
[Solution] Utilities moved to common file. Helpers updated.

[Verification] Run all tests.

Change-Id: I70d6239c0304284735496007500f18e348e14a51

src/ckm/algo-params.cpp
src/ckm/ckm-common.cpp
src/ckm/ckm-common.h

index 9b130ad..0a12313 100644 (file)
@@ -43,32 +43,6 @@ ckmc_param_list_s* EMPTY_LIST = NULL;
 const size_t DEFAULT_IV_LEN = 16;
 const size_t DEFAULT_IV_LEN_BITS = 8*DEFAULT_IV_LEN;
 
-typedef std::unique_ptr<ckmc_param_list_s, void(*)(ckmc_param_list_s*)> ParamListPtr;
-ParamListPtr createParamListPtr()
-{
-    ckmc_param_list_s* list = NULL;
-    assert_positive(ckmc_param_list_new, &list);
-    return ParamListPtr(list, ckmc_param_list_free);
-}
-
-typedef std::unique_ptr<ckmc_raw_buffer_s, void(*)(ckmc_raw_buffer_s*)> RawBufferPtr;
-ckmc_raw_buffer_s* createRandomBuffer(size_t len)
-{
-    ckmc_raw_buffer_s* buffer = NULL;
-    char* data = static_cast<char*>(malloc(len*sizeof(char)));
-    std::ifstream is("/dev/urandom", std::ifstream::binary);
-    RUNNER_ASSERT_MSG(is, "Failed to read /dev/urandom");
-    is.read(data, len);
-    if(static_cast<std::streamsize>(len) != is.gcount()) {
-        free(data);
-        RUNNER_ASSERT_MSG(false,
-                          "Not enough bytes read from /dev/urandom: " << len << "!=" <<
-                          is.gcount());
-    }
-    int ret = ckmc_buffer_new(reinterpret_cast<unsigned char*>(data), len, &buffer);
-    RUNNER_ASSERT_MSG(ret == CKMC_ERROR_NONE, "Buffer creation failed: " << CKMCErrorToString(ret));
-    return buffer;
-}
 RawBufferPtr IV(createRandomBuffer(DEFAULT_IV_LEN), ckmc_buffer_free);
 
 void assert_list_empty(const ckmc_param_list_s* list)
index 281c378..e5d993c 100644 (file)
@@ -19,6 +19,7 @@
  * @version    1.0
  */
 #include <string>
+#include <fstream>
 
 #include <sys/smack.h>
 #include <ckmc/ckmc-type.h>
@@ -457,6 +458,31 @@ std::string sharedDatabase(const CKM::Alias & alias)
     return aliasWithLabel(ckmc_label_shared_owner, alias.c_str());
 }
 
+ckmc_raw_buffer_s* createRandomBuffer(size_t len)
+{
+    ckmc_raw_buffer_s* buffer = NULL;
+    char* data = static_cast<char*>(malloc(len*sizeof(char)));
+    std::ifstream is("/dev/urandom", std::ifstream::binary);
+    RUNNER_ASSERT_MSG(is, "Failed to read /dev/urandom");
+    is.read(data, len);
+    if(static_cast<std::streamsize>(len) != is.gcount()) {
+        free(data);
+        RUNNER_ASSERT_MSG(false,
+                          "Not enough bytes read from /dev/urandom: " << len << "!=" <<
+                          is.gcount());
+    }
+    int ret = ckmc_buffer_new(reinterpret_cast<unsigned char*>(data), len, &buffer);
+    RUNNER_ASSERT_MSG(ret == CKMC_ERROR_NONE, "Buffer creation failed: " << CKMCErrorToString(ret));
+    return buffer;
+}
+
+ParamListPtr createParamListPtr()
+{
+    ckmc_param_list_s* list = NULL;
+    assert_positive(ckmc_param_list_new, &list);
+    return ParamListPtr(list, ckmc_param_list_free);
+}
+
 void assert_buffers_equal(const ckmc_raw_buffer_s b1, const ckmc_raw_buffer_s b2, bool equal)
 {
     if(equal) {
index 8b9090a..b453ba0 100644 (file)
 #include <tests_common.h>
 #include <sys/types.h>
 
+// support for error printing
+const char * CKMCErrorToString(int error);
+std::string CKMCReadableError(int error);
+
 // RUNNER_ASSERT wrappers
 template <typename F, typename... Args>
 void assert_result(int expected, F&& func, Args... args)
 {
     int ret = func(args...);
-    RUNNER_ASSERT_MSG(ret == expected, "Expected " << expected << " got: " << ret);
+    RUNNER_ASSERT_MSG(ret == expected,
+                      "Expected: " << CKMCErrorToString(expected) << "(" << expected << ")"
+                      " got: " << CKMCErrorToString(ret) << "(" << ret << ")");
 }
 
 template <typename F, typename... Args>
@@ -71,9 +77,6 @@ enum ServiceIdx {
 void start_service(ServiceIdx idx);
 void stop_service(ServiceIdx idx);
 
-// support for error printing
-const char * CKMCErrorToString(int error);
-std::string CKMCReadableError(int error);
 
 // scoped free
 typedef std::unique_ptr<char, void (*)(void *)> CharPtr;
@@ -206,4 +209,11 @@ public:
     }
 };
 
+ckmc_raw_buffer_s* createRandomBuffer(size_t len);
+
+typedef std::shared_ptr<ckmc_raw_buffer_s> RawBufferPtr;
+typedef std::shared_ptr<ckmc_param_list_s> ParamListPtr;
+
+ParamListPtr createParamListPtr();
+
 void assert_buffers_equal(const ckmc_raw_buffer_s b1, const ckmc_raw_buffer_s b2, bool equal=true);