Beispiel #1
0
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);
}
Beispiel #2
0
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));
}
Beispiel #3
0
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));
}
Beispiel #4
0
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));
}
Beispiel #5
0
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));
}
Beispiel #6
0
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);
}
Beispiel #7
0
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);
}
Beispiel #8
0
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);
}
Beispiel #9
0
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;
}