[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
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)
* @version 1.0
*/
#include <string>
+#include <fstream>
#include <sys/smack.h>
#include <ckmc/ckmc-type.h>
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) {
#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>
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;
}
};
+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);