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_bytes_deserialize(void **state) { (void)state; 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_NOT_NULL(kaa_bytes1); size_t expected_size = kaa_bytes_get_size(kaa_bytes1); char buffer[expected_size]; avro_writer_t avro_writer = avro_writer_memory(buffer, expected_size); kaa_bytes_serialize(avro_writer, kaa_bytes1); avro_reader_t avro_reader = avro_reader_memory(buffer, expected_size); kaa_bytes_t *kaa_bytes2 = kaa_bytes_deserialize(avro_reader); ASSERT_NOT_NULL(kaa_bytes2); ASSERT_EQUAL(memcmp(kaa_bytes2->buffer, plain_bytes1, plain_bytes1_size), 0); ASSERT_EQUAL(memcmp(kaa_bytes2->buffer, kaa_bytes1->buffer, plain_bytes1_size), 0); kaa_bytes_destroy(kaa_bytes2); avro_reader_free(avro_reader); avro_writer_free(avro_writer); kaa_bytes_destroy(kaa_bytes1); }
static void test_bytes_serialize(void **state) { (void)state; 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); size_t expected_size = kaa_bytes_get_size(kaa_bytes1); 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_bytes_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_bytes_t fake_kaa_bytes = { NULL, 0, NULL }; kaa_bytes_serialize(auto_avro_writer, &fake_kaa_bytes); 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_bytes_serialize(auto_avro_writer, kaa_bytes1); avro_binary_encoding.write_bytes(manual_avro_writer, (const char *)plain_bytes1, plain_bytes1_size); ASSERT_EQUAL(memcmp(auto_buffer, manual_buffer, expected_size), 0); kaa_bytes_destroy(kaa_bytes1); avro_writer_free(manual_avro_writer); avro_writer_free(auto_avro_writer); }
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; }