static void test_string_get_size(void **state) { (void)state; ASSERT_EQUAL(kaa_string_get_size(NULL), 0); const char *plain_test_str1 = "test"; kaa_string_t *kaa_str1 = kaa_string_copy_create(plain_test_str1); ASSERT_NOT_NULL(kaa_str1); size_t plain_test_str1_len = strlen(plain_test_str1); ASSERT_EQUAL(kaa_string_get_size(kaa_str1), avro_long_get_size(plain_test_str1_len) + plain_test_str1_len); kaa_string_destroy(kaa_str1); }
static void test_array_get_size(void **state) { (void)state; srand(time(NULL)); ASSERT_EQUAL(kaa_array_get_size(NULL, NULL), 0); ASSERT_EQUAL(kaa_array_get_size(NULL, (get_size_fn)kaa_null_get_size), avro_long_get_size(0)); const char *plain_str = "data"; kaa_string_t *reference_kaa_str = kaa_string_copy_create(plain_str); size_t element_size = kaa_string_get_size(reference_kaa_str); kaa_string_destroy(reference_kaa_str); size_t array_size = 1 + rand() % 10; kaa_list_t *avro_array = kaa_list_create(); size_t i = 0; for (i = 0; i < array_size; ++i) { kaa_list_push_back(avro_array, kaa_string_copy_create(plain_str)); } size_t expected_size = avro_long_get_size(array_size) + array_size * element_size + avro_long_get_size(0); ASSERT_EQUAL(kaa_array_get_size(avro_array, &kaa_string_get_size), expected_size); kaa_list_destroy(avro_array, kaa_string_destroy); }
static void test_string_deserialize(void **state) { (void)state; const char *plain_test_str1 = "test"; kaa_string_t *kaa_str1 = kaa_string_copy_create(plain_test_str1); ASSERT_NOT_NULL(kaa_str1); size_t expected_size = kaa_string_get_size(kaa_str1); char buffer[expected_size]; avro_writer_t avro_writer = avro_writer_memory(buffer, expected_size); kaa_string_serialize(avro_writer, kaa_str1); avro_reader_t avro_reader = avro_reader_memory(buffer, expected_size); kaa_string_t *kaa_str2 = kaa_string_deserialize(avro_reader); ASSERT_NOT_NULL(kaa_str2); ASSERT_EQUAL(strcmp(kaa_str2->data, plain_test_str1), 0); ASSERT_EQUAL(strcmp(kaa_str2->data, kaa_str1->data), 0); kaa_string_destroy(kaa_str2); avro_reader_free(avro_reader); avro_writer_free(avro_writer); kaa_string_destroy(kaa_str1); }
static size_t kaa_profile_basic_endpoint_profile_test_get_size(void *data) { if (data) { size_t record_size = 0; kaa_profile_basic_endpoint_profile_test_t *record = (kaa_profile_basic_endpoint_profile_test_t *)data; record_size += kaa_string_get_size(record->profile_body); return record_size; } return 0; }
static size_t kaa_configuration_root_record_get_size(void *data) { if (data) { size_t record_size = 0; kaa_configuration_root_record_t *record = (kaa_configuration_root_record_t *)data; record_size += kaa_string_get_size(record->data); record_size += record->__uuid->get_size(record->__uuid); return record_size; } return 0; }
static void test_string_serialize(void **state) { (void)state; const char *plain_test_str1 = "test"; kaa_string_t *kaa_str1 = kaa_string_copy_create(plain_test_str1); ASSERT_NOT_NULL(kaa_str1); size_t expected_size = kaa_string_get_size(kaa_str1); char auto_buffer[expected_size]; avro_writer_t auto_avro_writer = avro_writer_memory(auto_buffer, expected_size); char manual_buffer[expected_size]; avro_writer_t manual_avro_writer = avro_writer_memory(manual_buffer, expected_size); ASSERT_EQUAL(auto_avro_writer->buf, auto_buffer); ASSERT_EQUAL(auto_avro_writer->written, 0); ASSERT_EQUAL((size_t)auto_avro_writer->len, expected_size); kaa_string_serialize(auto_avro_writer, NULL); ASSERT_EQUAL(auto_avro_writer->buf, auto_buffer); ASSERT_EQUAL(auto_avro_writer->written, 0); ASSERT_EQUAL((size_t)auto_avro_writer->len, expected_size); kaa_string_t fake_kaa_str = { NULL, NULL}; kaa_string_serialize(auto_avro_writer, &fake_kaa_str); ASSERT_EQUAL(auto_avro_writer->buf, auto_buffer); ASSERT_EQUAL(auto_avro_writer->written, 0); ASSERT_EQUAL((size_t)auto_avro_writer->len, expected_size); /* * REAL DATA */ kaa_string_serialize(auto_avro_writer, kaa_str1); avro_binary_encoding.write_string(manual_avro_writer, plain_test_str1); ASSERT_EQUAL(memcmp(auto_buffer, manual_buffer, expected_size), 0); kaa_string_destroy(kaa_str1); avro_writer_free(manual_avro_writer); avro_writer_free(auto_avro_writer); }
static void test_array_serialize(void **state) { (void)state; const char *plain_str = "data"; kaa_string_t *reference_kaa_str = kaa_string_copy_create(plain_str); size_t element_size = kaa_string_get_size(reference_kaa_str); kaa_string_destroy(reference_kaa_str); size_t array_size = 1 + rand() % 10; size_t expected_size = avro_long_get_size(array_size) + array_size * element_size + avro_long_get_size(0); char manual_buffer[expected_size]; avro_writer_t manual_avro_writer = avro_writer_memory(manual_buffer, expected_size); avro_binary_encoding.write_long(manual_avro_writer, array_size); kaa_list_t *avro_array = kaa_list_create(); size_t i = 0; for (i = 0; i < array_size; ++i) { kaa_string_t *array_data = kaa_string_copy_create(plain_str); kaa_list_push_back(avro_array, array_data); avro_binary_encoding.write_string(manual_avro_writer, array_data->data); } avro_binary_encoding.write_long(manual_avro_writer, 0); size_t actual_size = kaa_array_get_size(avro_array, kaa_string_get_size); ASSERT_EQUAL(actual_size, expected_size); char auto_buffer[actual_size]; avro_writer_t auto_avro_writer = avro_writer_memory(auto_buffer, actual_size); kaa_array_serialize(auto_avro_writer, avro_array, kaa_string_serialize); ASSERT_EQUAL(memcmp(auto_buffer, manual_buffer, expected_size), 0); kaa_list_destroy(avro_array, kaa_string_destroy); avro_writer_free(manual_avro_writer); avro_writer_free(auto_avro_writer); }