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_enum_get_size(void **state) { (void)state; srand(time(NULL)); ASSERT_EQUAL(kaa_enum_get_size(NULL), 0); test_enum_t enum_value = (test_enum_t)rand() % TEST_VAL_5; ASSERT_EQUAL(kaa_enum_get_size(&enum_value), avro_long_get_size(enum_value)); }
static void test_long_get_size(void **state) { (void)state; srand(time(NULL)); ASSERT_EQUAL(kaa_long_get_size(NULL), 0); int64_t long_value = rand(); ASSERT_EQUAL(kaa_long_get_size(&long_value), avro_long_get_size(long_value)); }
static void test_int_get_size(void **state) { (void)state; srand(time(NULL)); ASSERT_EQUAL(kaa_int_get_size(NULL), 0); int32_t int_value = rand(); ASSERT_EQUAL(kaa_int_get_size(&int_value), avro_long_get_size(int_value)); }
static void test_boolean_get_size(void **state) { (void)state; srand(time(NULL)); ASSERT_EQUAL(kaa_boolean_get_size(NULL), 0); int8_t boolean_value = true; ASSERT_EQUAL(kaa_boolean_get_size(&boolean_value), avro_long_get_size(boolean_value)); }
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); }
static void test_bytes_get_size(void **state) { (void)state; ASSERT_EQUAL(kaa_bytes_get_size(NULL), 0); const uint8_t plain_bytes1[] = { 0x0, 0x1, 0x2, 0x3, 0x4 }; size_t plain_bytes1_size = sizeof(plain_bytes1) / sizeof(char); kaa_bytes_t *kaa_bytes1 = kaa_bytes_copy_create(plain_bytes1, plain_bytes1_size); ASSERT_EQUAL(kaa_bytes_get_size(kaa_bytes1), avro_long_get_size(kaa_bytes1->size) + kaa_bytes1->size); kaa_bytes_destroy(kaa_bytes1); }
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 size_t kaa_union_null_or_fixed_get_size(void *data) { if (data) { kaa_union_t *kaa_union = (kaa_union_t *)data; size_t union_size = avro_long_get_size(kaa_union->type); switch (kaa_union->type) { case KAA_UNION_NULL_OR_FIXED_BRANCH_1: { if (kaa_union->data) { union_size += kaa_bytes_get_size(kaa_union->data); } break; } default: break; } return union_size; } return 0; }