X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=tests%2Flib%2Ftest_simple_sink.c;h=641aaed13ae2420d057c8632eb8160824ad9eca9;hb=68e2deedb3317cbe11bef0d4b45803a60d386edb;hp=13519ddd8eaab3184a8f4a138b357e7baa77ad94;hpb=4175c1d52f91f7e5d66a12135ad8ec6ec736a539;p=babeltrace.git diff --git a/tests/lib/test_simple_sink.c b/tests/lib/test_simple_sink.c index 13519ddd..641aaed1 100644 --- a/tests/lib/test_simple_sink.c +++ b/tests/lib/test_simple_sink.c @@ -20,7 +20,7 @@ #include #include "tap/tap.h" -#define NR_TESTS 60 +#define NR_TESTS 68 struct test_data { bt_graph_simple_sink_component_initialize_func_status init_status; @@ -72,17 +72,18 @@ bt_component_class_initialize_method_status src_init( } static -bt_component_class_message_iterator_next_method_status src_iter_next( +bt_message_iterator_class_next_method_status src_iter_next( bt_self_message_iterator *message_iterator, bt_message_array_const msgs, uint64_t capacity, uint64_t *count) { - return BT_COMPONENT_CLASS_MESSAGE_ITERATOR_NEXT_METHOD_STATUS_END; + return BT_MESSAGE_ITERATOR_CLASS_NEXT_METHOD_STATUS_END; } static bt_graph *create_graph_with_source(const bt_port_output **out_port) { + bt_message_iterator_class *msg_iter_cls; bt_component_class_source *src_comp_cls; bt_graph *graph; const bt_component_source *src_comp = NULL; @@ -90,7 +91,11 @@ bt_graph *create_graph_with_source(const bt_port_output **out_port) bt_component_class_set_method_status set_method_status; BT_ASSERT(out_port); - src_comp_cls = bt_component_class_source_create("src", src_iter_next); + + msg_iter_cls = bt_message_iterator_class_create(src_iter_next); + BT_ASSERT(msg_iter_cls); + + src_comp_cls = bt_component_class_source_create("src", msg_iter_cls); BT_ASSERT(src_comp_cls); set_method_status = bt_component_class_source_set_initialize_method( src_comp_cls, src_init); @@ -106,6 +111,7 @@ bt_graph *create_graph_with_source(const bt_port_output **out_port) BT_ASSERT(*out_port); bt_component_source_put_ref(src_comp); bt_component_class_source_put_ref(src_comp_cls); + bt_message_iterator_class_put_ref(msg_iter_cls); return graph; } @@ -126,29 +132,42 @@ void test_simple_expect_run_once_status( .init_status = init_status, .consume_status = consume_status, }; + const struct bt_error *err; graph = create_graph_with_source(&src_out_port); BT_ASSERT(graph); BT_ASSERT(src_out_port); + add_comp_status = bt_graph_add_simple_sink_component(graph, "sink", simple_INITIALIZE_func, simple_consume_func, simple_fini_func, &test_data, &sink_comp); BT_ASSERT(add_comp_status == BT_GRAPH_ADD_COMPONENT_STATUS_OK); BT_ASSERT(sink_comp); + sink_in_port = bt_component_sink_borrow_input_port_by_name_const( sink_comp, "in"); ok(sink_in_port, "Simple sink component has an input port named \"in\""); + connect_status = bt_graph_connect_ports(graph, src_out_port, sink_in_port, NULL); ok(connect_status == BT_GRAPH_CONNECT_PORTS_STATUS_OK, "Simple sink component's \"in\" port is connectable"); + run_once_status = bt_graph_run_once(graph); ok(run_once_status == exp_run_once_status, "Graph \"run once\" status is the expected one (status code: %d)", run_once_status); + + err = bt_current_thread_take_error(); + ok((run_once_status < 0) == (err != NULL), + "Current thread error is set if bt_graph_run_once returned an error"); + bt_component_sink_put_ref(sink_comp); bt_graph_put_ref(graph); + if (err) { + bt_error_release(err); + } } int main(void)