Example #1
0
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);
}
Example #2
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);
}
Example #3
0
static void test_bytes_move_create(void **state)
{
    (void)state;

    const uint8_t unused_bytes[] = { 0x0, 0x1, 0x2, 0x3, 0x4 };

    ASSERT_NULL(kaa_bytes_move_create(NULL, 0, NULL));
    ASSERT_NULL(kaa_bytes_move_create(NULL, 1 + rand(), NULL));
    ASSERT_NULL(kaa_bytes_move_create(unused_bytes, 0, NULL));

    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_move_create(plain_bytes1, plain_bytes1_size, NULL);

    ASSERT_NOT_NULL(kaa_bytes1);
    ASSERT_EQUAL((size_t)kaa_bytes1->size, plain_bytes1_size);
    ASSERT_NULL(kaa_bytes1->destroy);
    ASSERT_EQUAL(memcmp(kaa_bytes1->buffer, plain_bytes1, plain_bytes1_size), 0);

    kaa_bytes_destroy(kaa_bytes1);
    kaa_bytes1 = NULL;

    uint8_t *plain_bytes2 = (uint8_t *)KAA_MALLOC(plain_bytes1_size);
    ASSERT_NOT_NULL(plain_bytes2);
    memcpy(plain_bytes2, plain_bytes1, plain_bytes1_size);

    kaa_bytes_t *kaa_bytes2 = kaa_bytes_move_create(plain_bytes2, plain_bytes1_size, &kaa_data_destroy);

    ASSERT_NOT_NULL(kaa_bytes2);
    ASSERT_EQUAL((size_t)kaa_bytes2->size, plain_bytes1_size);
    ASSERT_EQUAL(kaa_bytes2->destroy, &kaa_data_destroy);
    ASSERT_EQUAL(memcmp(kaa_bytes2->buffer, plain_bytes1, plain_bytes1_size), 0);

    kaa_bytes_destroy(kaa_bytes2);
}
Example #4
0
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);
}
Example #5
0
static void kaa_union_null_or_fixed_destroy(void *data)
{
    if (data) {
        kaa_union_t *kaa_union = (kaa_union_t *)data;

        switch (kaa_union->type) {
        case KAA_UNION_NULL_OR_FIXED_BRANCH_1:
        {
            if (kaa_union->data) {
                kaa_bytes_destroy(kaa_union->data);
            }
            break;
        }
        default:
            break;
        }

        kaa_data_destroy(kaa_union);
    }
}
Example #6
0
static void test_bytes_copy_create(void **state)
{
    (void)state;

    const uint8_t unused_bytes[] = { 0x0, 0x1, 0x2, 0x3, 0x4 };

    ASSERT_NULL(kaa_bytes_copy_create(NULL, 1 + rand()));
    ASSERT_NULL(kaa_bytes_copy_create(unused_bytes, 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_NOT_NULL(kaa_bytes1);
    ASSERT_EQUAL((size_t)kaa_bytes1->size, plain_bytes1_size);
    ASSERT_EQUAL(kaa_bytes1->destroy, &kaa_data_destroy);
    ASSERT_EQUAL(memcmp(kaa_bytes1->buffer, plain_bytes1, plain_bytes1_size), 0);

    kaa_bytes_destroy(kaa_bytes1);
}