예제 #1
0
int test_pack_int16() {
    size_t sz;
    uint8_t data[] = {0x00, 0x00, 0x00};

    minipack_pack_int16(data, 0, &sz);
    mu_assert_mem(data, 3, "\xD1\x00\x00");
    mu_assert(sz == 3);

    minipack_pack_int16(data, 2, &sz);
    mu_assert_mem(data, 3, "\xD1\x00\x02");
    mu_assert(sz == 3);

    minipack_pack_int16(data, 1000, &sz);
    mu_assert_mem(data, 3, "\xD1\x03\xE8");
    mu_assert(sz == 3);

    minipack_pack_int16(data, 32767, &sz);
    mu_assert_mem(data, 3, "\xD1\x7F\xFF");
    mu_assert(sz == 3);

    minipack_pack_int16(data, 32768, &sz);
    mu_assert_mem(data, 3, "\xD1\x80\x00");
    mu_assert(sz == 3);

    return 0;
}
예제 #2
0
int test_pack_raw32() {
    size_t sz;
    uint8_t data[] = {0x00, 0x00, 0x00, 0x00, 0x00};

    minipack_pack_raw32(data, 0, &sz);
    mu_assert_mem(data, 5, "\xDB\x00\x00\x00\x00");

    minipack_pack_raw32(data, 5, &sz);
    mu_assert_mem(data, 5, "\xDB\x00\x00\x00\x05");

    return 0;
}
예제 #3
0
int test_pack_bool() {
    size_t sz;
    uint8_t data[] = {0x00};

    minipack_pack_bool(data, true, &sz);
    mu_assert_mem(data, 1, "\xC3");
    mu_assert(sz == 1);

    minipack_pack_bool(data, false, &sz);
    mu_assert_mem(data, 1, "\xC2");
    mu_assert(sz == 1);

    return 0;
}
예제 #4
0
int test() {
    pthread_t thread;
    importtmp_n("tests/functional/fixtures/add_event/0/data.json", 4);
    start_server(1, &thread);
    send_msg("tests/functional/fixtures/add_event/0/input");
    pthread_join(thread, NULL);

    mu_assert_msg("tests/functional/fixtures/add_event/0/output");

    void *data;
    size_t data_length;
    sky_table *table = sky_table_create();
    table->path = bfromcstr("tmp");
    sky_table_open(table);
    sky_tablet_get_path(table->tablets[2], 10, &data, &data_length);
    mu_assert_mem(data, 
        "\x03\xe8\x03\x00\x00\x00\x00\x00\x00\x05\x00\x1f\x00\x00\x00\xff"
        "\xa6\x7a\x7a\x7a\x7a\x7a\x7a\xfe\x0a\x01\xa3\x78\x79\x7a\x02\xd1"
        "\x00\xc8\x03\xcb\x40\x59\x0c\xcc\xcc\xcc\xcc\xcd\x04\xc3\x01\x00"
        "\x00\x10\x00\x00\x00\x00\x00\x01\x00\x01\x00\x00\x20\x00\x00\x00"
        "\x00\x00\x02\x00\x01\x00\x00\x30\x00\x00\x00\x00\x00\x03\x00",
        data_length
    );
    sky_table_free(table);
    free(data);
    return 0;
}
예제 #5
0
int test_pack_nil() {
    size_t sz;
    uint8_t data[] = {0x00};
    minipack_pack_nil(data, &sz);
    mu_assert_mem(data, 1, "\xC0");
    mu_assert_msgpack_nil(1, "\xC0");
    mu_assert(sz == 1);
    return 0;
}
예제 #6
0
// Action event.
int test_sky_event_action_event_pack() {
    size_t sz;
    void *addr = calloc(ACTION_EVENT_DATA_LENGTH, 1);
    sky_event *event = sky_event_create(0, 30LL, 20);
    sky_event_pack(event, addr, &sz);
    sky_event_free(event);
    mu_assert_long_equals(sz, ACTION_EVENT_DATA_LENGTH);
    mu_assert_mem(addr, &ACTION_EVENT_DATA, ACTION_EVENT_DATA_LENGTH);
    free(addr);
    return 0;
}
예제 #7
0
// Data event.
int test_sky_event_data_event_pack() {
    size_t sz;
    void *addr = calloc(DATA_EVENT_DATA_LENGTH, 1);
    sky_event *event = sky_event_create(0, 30LL, 0);
    sky_event_set_data(event, 1, &foo);
    sky_event_set_data(event, 2, &bar);
    sky_event_pack(event, addr, &sz);
    sky_event_free(event);
    mu_assert_long_equals(sz, DATA_EVENT_DATA_LENGTH);
    mu_assert_mem(addr, &DATA_EVENT_DATA, DATA_EVENT_DATA_LENGTH);
    free(addr);
    return 0;
}
예제 #8
0
파일: block_tests.c 프로젝트: dasfaha/sky
int test_sky_block_pack() {
    sky_block *block = sky_block_create(NULL);
    block->min_object_id = 10;
    block->max_object_id = 20;
    block->min_timestamp = 30LL;
    block->max_timestamp = 40LL;
    
    size_t sz;
    uint8_t *buffer[SKY_BLOCK_HEADER_SIZE];
    int rc = sky_block_pack(block, buffer, &sz);
    mu_assert_int_equals(rc, 0);
    mu_assert_long_equals(sz, SKY_BLOCK_HEADER_SIZE);
    mu_assert_mem(buffer, &DATA, SKY_BLOCK_HEADER_SIZE);
    sky_block_free(block);
    return 0;
}
예제 #9
0
int test_sky_add_event_message_worker_map() {
    importtmp("tests/fixtures/add_event_message/1/import.json");
    sky_table *table = sky_table_create();
    table->path = bfromcstr("tmp");
    table->default_tablet_count = 1;
    sky_table_open(table);

    struct tagbstring XYZ_STR = bsStatic("xyz");
    sky_add_event_message *message = sky_add_event_message_create();
    message->event = sky_event_create(10, 1000L, 20);
    message->event->data_count = 4;
    message->event->data = calloc(message->event->data_count, sizeof(*message->event->data));
    message->event->data[0] = sky_event_data_create_string(1, &XYZ_STR);
    message->event->data[1] = sky_event_data_create_int(2, 200);
    message->event->data[2] = sky_event_data_create_double(3, 100.2);
    message->event->data[3] = sky_event_data_create_boolean(4, true);
    sky_worker *worker = sky_worker_create();
    worker->data = (void*)message;

    void *null = NULL;
    int rc = sky_add_event_message_worker_map(worker, table->tablets[0], &null);
    mu_assert_int_equals(rc, 0);

    void *data;
    size_t data_length;
    sky_tablet_get_path(table->tablets[0], 10, &data, &data_length);
    mu_assert_int_equals(rc, 0);
    mu_assert_mem(
        data, 
        "\x03\xE8\x03\x00\x00\x00\x00\x00\x00\x14\x00\x15\x00\x00\x00\x01"
        "\xA3\x78\x79\x7A\x02\xD1\x00\xC8\x03\xCB\x40\x59\x0C\xCC\xCC\xCC"
        "\xCC\xCD\x04\xC3",
        data_length
    );

    free(data);
    sky_add_event_message_free(message);
    sky_worker_free(worker);
    sky_table_free(table);
    return 0;
}