From: Krzysztof Jackiewicz Date: Thu, 21 May 2015 09:03:54 +0000 (+0200) Subject: CKM: Update common test utilities X-Git-Tag: security-manager_5.5_testing~9^2~77 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F04%2F39704%2F9;p=platform%2Fcore%2Ftest%2Fsecurity-tests.git CKM: Update common test utilities [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 --- diff --git a/src/ckm/algo-params.cpp b/src/ckm/algo-params.cpp index 9b130ad..0a12313 100644 --- a/src/ckm/algo-params.cpp +++ b/src/ckm/algo-params.cpp @@ -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 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 RawBufferPtr; -ckmc_raw_buffer_s* createRandomBuffer(size_t len) -{ - ckmc_raw_buffer_s* buffer = NULL; - char* data = static_cast(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(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(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) diff --git a/src/ckm/ckm-common.cpp b/src/ckm/ckm-common.cpp index 281c378..e5d993c 100644 --- a/src/ckm/ckm-common.cpp +++ b/src/ckm/ckm-common.cpp @@ -19,6 +19,7 @@ * @version 1.0 */ #include +#include #include #include @@ -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(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(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(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) { diff --git a/src/ckm/ckm-common.h b/src/ckm/ckm-common.h index 8b9090a..b453ba0 100644 --- a/src/ckm/ckm-common.h +++ b/src/ckm/ckm-common.h @@ -29,12 +29,18 @@ #include #include +// support for error printing +const char * CKMCErrorToString(int error); +std::string CKMCReadableError(int error); + // RUNNER_ASSERT wrappers template 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 @@ -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 CharPtr; @@ -206,4 +209,11 @@ public: } }; +ckmc_raw_buffer_s* createRandomBuffer(size_t len); + +typedef std::shared_ptr RawBufferPtr; +typedef std::shared_ptr ParamListPtr; + +ParamListPtr createParamListPtr(); + void assert_buffers_equal(const ckmc_raw_buffer_s b1, const ckmc_raw_buffer_s b2, bool equal=true);