示例#1
0
int test_sky_cursor_object_iteration() {
    // Setup cursor.
    sky_cursor *cursor = sky_cursor_new(0, 1);
    cursor->next_object_func = next_obj;
    sky_cursor_set_ts_offset(cursor, offsetof(test2_t, ts));
    sky_cursor_set_timestamp_offset(cursor, offsetof(test2_t, timestamp));
    sky_cursor_set_property(cursor, 1, offsetof(test2_t, int_value), sizeof(int32_t), "integer");
    sky_cursor_set_data_sz(cursor, sizeof(test2_t));
    test2_t *obj = (test2_t*)cursor->data;

    // Loop over first object.
    mu_assert_bool(sky_cursor_next_object(cursor));
    mu_assert_bool(sky_lua_cursor_next_event(cursor));
    mu_assert_int64_equals(obj->int_value, 2LL);
    mu_assert_bool(sky_lua_cursor_next_event(cursor));
    mu_assert_int64_equals(obj->int_value, 3LL);
    mu_assert_bool(!sky_lua_cursor_next_event(cursor));

    // Loop over second object.
    mu_assert_bool(sky_cursor_next_object(cursor));
    mu_assert_int64_equals(obj->int_value, 0LL);
    mu_assert_bool(sky_lua_cursor_next_event(cursor));
    mu_assert_int64_equals(obj->int_value, 4LL);
    mu_assert_bool(!sky_lua_cursor_next_event(cursor));
    
    // End!
    mu_assert_bool(!sky_cursor_next_object(cursor));

    sky_cursor_free(cursor);
    return 0;
}
示例#2
0
文件: block_tests.c 项目: dasfaha/sky
int test_sky_block_unpack() {
    sky_block *block = sky_block_create(NULL);
    size_t sz;
    int rc = sky_block_unpack(block, &DATA, &sz);
    mu_assert_int_equals(rc, 0);
    mu_assert_long_equals(sz, SKY_BLOCK_HEADER_SIZE);
    mu_assert_int_equals(block->min_object_id, 10);
    mu_assert_int_equals(block->max_object_id, 20);
    mu_assert_int64_equals(block->min_timestamp, 30LL);
    mu_assert_int64_equals(block->max_timestamp, 40LL);
    sky_block_free(block);
    return 0;
}
示例#3
0
int test_sky_add_event_message_unpack() {
    FILE *file = fopen("tests/fixtures/add_event_message/0/message", "r");
    sky_add_event_message *message = sky_add_event_message_create();
    mu_assert_bool(sky_add_event_message_unpack(message, file) == 0);
    fclose(file);

    mu_assert_int_equals(message->object_id, 10);
    mu_assert_int64_equals(message->timestamp, 1000LL);
    mu_assert_bstring(message->action_name, "foo");
    sky_add_event_message_free(message);
    return 0;
}
示例#4
0
int test_sky_message_header_unpack() {
    FILE *file = fopen("tests/fixtures/message_header/0/message", "r");
    sky_message_header *header = sky_message_header_create();
    mu_assert_bool(sky_message_header_unpack(header, file) == 0);
    fclose(file);

    mu_assert_int64_equals(header->version, 1LL);
    mu_assert_bstring(header->name, "eadd");
    mu_assert_bstring(header->table_name, "bar");
    sky_message_header_free(header);
    return 0;
}
示例#5
0
int test_sky_cursor_set_integer() {
    size_t sz;
    sky_cursor *cursor = sky_cursor_new(0, 1);
    sky_cursor_set_property(cursor, 1, offsetof(test2_t, int_value), sizeof(int32_t), "integer");
    sky_cursor_set_data_sz(cursor, sizeof(test2_t));
    mu_assert_int_equals(cursor->property_zero_descriptor[1].offset, 8);
    sky_cursor_set_value(cursor, cursor->data, 1, INT_DATA, &sz);
    mu_assert_long_equals(sz, 3L);
    mu_assert_int64_equals(((test2_t*)cursor->data)->int_value, 1000LL);
    sky_cursor_free(cursor);
    return 0;
}
示例#6
0
// Action event.
int test_sky_event_action_event_unpack() {
    size_t sz;
    sky_event *event = sky_event_create(0, 0, 0);
    sky_event_unpack(event, &ACTION_EVENT_DATA, &sz);

    mu_assert_long_equals(sz, ACTION_EVENT_DATA_LENGTH);
    mu_assert_int64_equals(event->timestamp, 30LL);
    mu_assert(event->action_id == 20, "Expected action id to equal 20");
    mu_assert(event->object_id == 0, "Expected object id to equal 0");
    mu_assert(event->data == NULL, "Expected data to be NULL");
    mu_assert(event->data_count == 0, "Expected data count to be 0");

    sky_event_free(event);
    
    return 0;
}
示例#7
0
// Action+Data event.
int test_sky_event_action_data_event_unpack() {
    size_t sz;
    sky_event *event = sky_event_create(0, 0, 0);
    sky_event_unpack(event, &ACTION_DATA_EVENT_DATA, &sz);

    mu_assert_long_equals(sz, ACTION_DATA_EVENT_DATA_LENGTH);
    mu_assert_int64_equals(event->timestamp, 30LL);
    mu_assert(event->action_id == 20, "Expected action id to equal 20");
    mu_assert(event->object_id == 0, "Expected object id to equal 0");
    mu_assert(event->data != NULL, "Expected data to not be NULL");
    mu_assert(event->data_count == 2, "Expected data count to be 2");

    sky_event_data *data = NULL;
    sky_event_get_data(event, 1, &data);
    mu_assert(biseqcstr(data->string_value, "foo"), "Expected data 1 to equal 'foo'");
    sky_event_get_data(event, 2, &data);
    mu_assert(biseqcstr(data->string_value, "bar"), "Expected data 1 to equal 'bar'");

    sky_event_free(event);
    
    return 0;
}