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; }
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; }
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; }
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; }
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; }
// 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; }
// 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; }