X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=tests%2Flib%2Ftest_graph_topo.c;h=d3d45818d224531517935b4318aa328549c6e9da;hb=a3f0c7db90f4cfc81090a83a7442b7bc624d5789;hp=4f04fb48892f649d3ab6a17389410e11f2f7db9f;hpb=c5b9b4417bedfbec9b5dd23b8395ccdd4eeffc44;p=babeltrace.git diff --git a/tests/lib/test_graph_topo.c b/tests/lib/test_graph_topo.c index 4f04fb48..d3d45818 100644 --- a/tests/lib/test_graph_topo.c +++ b/tests/lib/test_graph_topo.c @@ -17,8 +17,8 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ -#include -#include +#include +#include "common/assert.h" #include #include #include @@ -26,21 +26,13 @@ #include "tap/tap.h" -#define NR_TESTS 99 +#define NR_TESTS 26 enum event_type { - SRC_COMP_ACCEPT_OUTPUT_PORT_CONNECTION, - SINK_COMP_ACCEPT_INPUT_PORT_CONNECTION, SRC_COMP_OUTPUT_PORT_CONNECTED, SINK_COMP_INPUT_PORT_CONNECTED, - SRC_COMP_OUTPUT_PORT_DISCONNECTED, - SINK_COMP_INPUT_PORT_DISCONNECTED, GRAPH_SRC_OUTPUT_PORT_ADDED, GRAPH_SINK_INPUT_PORT_ADDED, - GRAPH_SRC_OUTPUT_PORT_REMOVED, - GRAPH_SINK_INPUT_PORT_REMOVED, - GRAPH_SRC_SINK_PORTS_CONNECTED, - GRAPH_SRC_SINK_PORTS_DISCONNECTED, }; enum test { @@ -49,8 +41,6 @@ enum test { TEST_SRC_PORT_CONNECTED_ERROR, TEST_SINK_PORT_CONNECTED_ERROR, TEST_SRC_ADDS_PORT_IN_PORT_CONNECTED, - TEST_SINK_REMOVES_PORT_IN_CONSUME, - TEST_SINK_REMOVES_PORT_IN_CONSUME_THEN_SRC_REMOVES_DISCONNECTED_PORT, }; struct event { @@ -58,78 +48,33 @@ struct event { union { struct { - const struct bt_component *comp; - const struct bt_port *self_port; - const struct bt_port *other_port; - } src_comp_accept_output_port_connection; - - struct { - const struct bt_component *comp; - const struct bt_port *self_port; - const struct bt_port *other_port; - } sink_comp_accept_input_port_connection; - - struct { - const struct bt_component *comp; - const struct bt_port *self_port; - const struct bt_port *other_port; + const bt_component *comp; + const bt_port *self_port; + const bt_port *other_port; } src_comp_output_port_connected; struct { - const struct bt_component *comp; - const struct bt_port *self_port; - const struct bt_port *other_port; + const bt_component *comp; + const bt_port *self_port; + const bt_port *other_port; } sink_comp_input_port_connected; struct { - const struct bt_component *comp; - const struct bt_port *self_port; - } src_comp_output_port_disconnected; - - struct { - const struct bt_component *comp; - const struct bt_port *self_port; - } sink_comp_input_port_disconnected; - - struct { - const struct bt_component *comp; - const struct bt_port *port; + const bt_component *comp; + const bt_port *port; } graph_src_output_port_added; struct { - const struct bt_component *comp; - const struct bt_port *port; + const bt_component *comp; + const bt_port *port; } graph_sink_input_port_added; - - struct { - const struct bt_component *comp; - const struct bt_port *port; - } graph_src_output_port_removed; - - struct { - const struct bt_component *comp; - const struct bt_port *port; - } graph_sink_input_port_removed; - - struct { - const struct bt_component *upstream_comp; - const struct bt_component *downstream_comp; - const struct bt_port *upstream_port; - const struct bt_port *downstream_port; - } graph_src_sink_ports_connected; - - struct { - const struct bt_component *upstream_comp; - const struct bt_component *downstream_comp; - const struct bt_port *upstream_port; - const struct bt_port *downstream_port; - } graph_src_sink_ports_disconnected; } data; }; static GArray *events; -static struct bt_component_class_source *src_comp_class; -static struct bt_component_class_sink *sink_comp_class; +static bt_message_iterator_class *msg_iter_class; +static bt_component_class_source *src_comp_class; +static bt_component_class_sink *sink_comp_class; static enum test current_test; static @@ -152,38 +97,6 @@ bool compare_events(struct event *ev_a, struct event *ev_b) } switch (ev_a->type) { - case SRC_COMP_ACCEPT_OUTPUT_PORT_CONNECTION: - if (ev_a->data.src_comp_accept_output_port_connection.comp != - ev_b->data.src_comp_accept_output_port_connection.comp) { - return false; - } - - if (ev_a->data.src_comp_accept_output_port_connection.self_port != - ev_b->data.src_comp_accept_output_port_connection.self_port) { - return false; - } - - if (ev_a->data.src_comp_accept_output_port_connection.other_port != - ev_b->data.src_comp_accept_output_port_connection.other_port) { - return false; - } - break; - case SINK_COMP_ACCEPT_INPUT_PORT_CONNECTION: - if (ev_a->data.sink_comp_accept_input_port_connection.comp != - ev_b->data.sink_comp_accept_input_port_connection.comp) { - return false; - } - - if (ev_a->data.sink_comp_accept_input_port_connection.self_port != - ev_b->data.sink_comp_accept_input_port_connection.self_port) { - return false; - } - - if (ev_a->data.sink_comp_accept_input_port_connection.other_port != - ev_b->data.sink_comp_accept_input_port_connection.other_port) { - return false; - } - break; case SRC_COMP_OUTPUT_PORT_CONNECTED: if (ev_a->data.src_comp_output_port_connected.comp != ev_b->data.src_comp_output_port_connected.comp) { @@ -216,28 +129,6 @@ bool compare_events(struct event *ev_a, struct event *ev_b) return false; } break; - case SRC_COMP_OUTPUT_PORT_DISCONNECTED: - if (ev_a->data.src_comp_output_port_disconnected.comp != - ev_b->data.src_comp_output_port_disconnected.comp) { - return false; - } - - if (ev_a->data.src_comp_output_port_disconnected.self_port != - ev_b->data.src_comp_output_port_disconnected.self_port) { - return false; - } - break; - case SINK_COMP_INPUT_PORT_DISCONNECTED: - if (ev_a->data.sink_comp_input_port_disconnected.comp != - ev_b->data.sink_comp_input_port_disconnected.comp) { - return false; - } - - if (ev_a->data.sink_comp_input_port_disconnected.self_port != - ev_b->data.sink_comp_input_port_disconnected.self_port) { - return false; - } - break; case GRAPH_SRC_OUTPUT_PORT_ADDED: if (ev_a->data.graph_src_output_port_added.comp != ev_b->data.graph_src_output_port_added.comp) { @@ -260,70 +151,6 @@ bool compare_events(struct event *ev_a, struct event *ev_b) return false; } break; - case GRAPH_SRC_OUTPUT_PORT_REMOVED: - if (ev_a->data.graph_src_output_port_removed.comp != - ev_b->data.graph_src_output_port_removed.comp) { - return false; - } - - if (ev_a->data.graph_src_output_port_removed.port != - ev_b->data.graph_src_output_port_removed.port) { - return false; - } - break; - case GRAPH_SINK_INPUT_PORT_REMOVED: - if (ev_a->data.graph_sink_input_port_removed.comp != - ev_b->data.graph_sink_input_port_removed.comp) { - return false; - } - - if (ev_a->data.graph_sink_input_port_removed.port != - ev_b->data.graph_sink_input_port_removed.port) { - return false; - } - break; - case GRAPH_SRC_SINK_PORTS_CONNECTED: - if (ev_a->data.graph_src_sink_ports_connected.upstream_comp != - ev_b->data.graph_src_sink_ports_connected.upstream_comp) { - return false; - } - - if (ev_a->data.graph_src_sink_ports_connected.downstream_comp != - ev_b->data.graph_src_sink_ports_connected.downstream_comp) { - return false; - } - - if (ev_a->data.graph_src_sink_ports_connected.upstream_port != - ev_b->data.graph_src_sink_ports_connected.upstream_port) { - return false; - } - - if (ev_a->data.graph_src_sink_ports_connected.downstream_port != - ev_b->data.graph_src_sink_ports_connected.downstream_port) { - return false; - } - break; - case GRAPH_SRC_SINK_PORTS_DISCONNECTED: - if (ev_a->data.graph_src_sink_ports_disconnected.upstream_comp != - ev_b->data.graph_src_sink_ports_disconnected.upstream_comp) { - return false; - } - - if (ev_a->data.graph_src_sink_ports_disconnected.downstream_comp != - ev_b->data.graph_src_sink_ports_disconnected.downstream_comp) { - return false; - } - - if (ev_a->data.graph_src_sink_ports_disconnected.upstream_port != - ev_b->data.graph_src_sink_ports_disconnected.upstream_port) { - return false; - } - - if (ev_a->data.graph_src_sink_ports_disconnected.downstream_port != - ev_b->data.graph_src_sink_ports_disconnected.downstream_port) { - return false; - } - break; default: abort(); } @@ -364,65 +191,19 @@ size_t event_pos(struct event *event) } static -enum bt_self_notification_iterator_status src_iter_next( - struct bt_self_notification_iterator *self_iterator, - bt_notification_array_const notifs, uint64_t capacity, +bt_message_iterator_class_next_method_status src_iter_next( + bt_self_message_iterator *self_iterator, + bt_message_array_const msgs, uint64_t capacity, uint64_t *count) { - return BT_SELF_NOTIFICATION_ITERATOR_STATUS_ERROR; -} - -static -enum bt_self_component_status src_accept_output_port_connection( - struct bt_self_component_source *self_comp, - struct bt_self_component_port_output *self_comp_port, - const struct bt_port_input *other_port) -{ - struct event event = { - .type = SRC_COMP_ACCEPT_OUTPUT_PORT_CONNECTION, - .data.src_comp_accept_output_port_connection = { - .comp = bt_self_component_as_component( - bt_self_component_source_as_self_component( - self_comp)), - .self_port = bt_self_component_port_as_port( - bt_self_component_port_output_as_self_component_port( - self_comp_port)), - .other_port = bt_port_input_as_port_const(other_port), - }, - }; - - append_event(&event); - return BT_SELF_COMPONENT_STATUS_OK; -} - -static -enum bt_self_component_status sink_accept_input_port_connection( - struct bt_self_component_sink *self_comp, - struct bt_self_component_port_input *self_comp_port, - const struct bt_port_output *other_port) -{ - struct event event = { - .type = SINK_COMP_ACCEPT_INPUT_PORT_CONNECTION, - .data.sink_comp_accept_input_port_connection = { - .comp = bt_self_component_as_component( - bt_self_component_sink_as_self_component( - self_comp)), - .self_port = bt_self_component_port_as_port( - bt_self_component_port_input_as_self_component_port( - self_comp_port)), - .other_port = bt_port_output_as_port_const(other_port), - }, - }; - - append_event(&event); - return BT_SELF_COMPONENT_STATUS_OK; + return BT_MESSAGE_ITERATOR_CLASS_NEXT_METHOD_STATUS_ERROR; } static -enum bt_self_component_status src_output_port_connected( - struct bt_self_component_source *self_comp, - struct bt_self_component_port_output *self_comp_port, - const struct bt_port_input *other_port) +bt_component_class_port_connected_method_status src_output_port_connected( + bt_self_component_source *self_comp, + bt_self_component_port_output *self_comp_port, + const bt_port_input *other_port) { int ret; struct event event = { @@ -447,19 +228,19 @@ enum bt_self_component_status src_output_port_connected( BT_ASSERT(ret == 0); break; case TEST_SRC_PORT_CONNECTED_ERROR: - return BT_SELF_COMPONENT_STATUS_ERROR; + return BT_COMPONENT_CLASS_PORT_CONNECTED_METHOD_STATUS_ERROR; default: break; } - return BT_SELF_COMPONENT_STATUS_OK; + return BT_COMPONENT_CLASS_PORT_CONNECTED_METHOD_STATUS_OK; } static -enum bt_self_component_status sink_input_port_connected( - struct bt_self_component_sink *self_comp, - struct bt_self_component_port_input *self_comp_port, - const struct bt_port_output *other_port) +bt_component_class_port_connected_method_status sink_input_port_connected( + bt_self_component_sink *self_comp, + bt_self_component_port_input *self_comp_port, + const bt_port_output *other_port) { struct event event = { .type = SINK_COMP_INPUT_PORT_CONNECTED, @@ -477,115 +258,51 @@ enum bt_self_component_status sink_input_port_connected( append_event(&event); if (current_test == TEST_SINK_PORT_CONNECTED_ERROR) { - return BT_SELF_COMPONENT_STATUS_ERROR; + return BT_COMPONENT_CLASS_PORT_CONNECTED_METHOD_STATUS_ERROR; } else { - return BT_SELF_COMPONENT_STATUS_OK; + return BT_COMPONENT_CLASS_PORT_CONNECTED_METHOD_STATUS_OK; } } static -void src_output_port_disconnected(struct bt_self_component_source *self_comp, - struct bt_self_component_port_output *self_comp_port) -{ - int ret; - struct event event = { - .type = SRC_COMP_OUTPUT_PORT_DISCONNECTED, - .data.src_comp_output_port_disconnected = { - .comp = bt_self_component_as_component( - bt_self_component_source_as_self_component( - self_comp)), - .self_port = bt_self_component_port_as_port( - bt_self_component_port_output_as_self_component_port( - self_comp_port)), - }, - }; - - append_event(&event); - - switch (current_test) { - case TEST_SINK_REMOVES_PORT_IN_CONSUME_THEN_SRC_REMOVES_DISCONNECTED_PORT: - ret = bt_self_component_port_remove_from_component( - bt_self_component_port_output_as_self_component_port( - self_comp_port)); - BT_ASSERT(ret == 0); - default: - break; - } -} - -static -void sink_input_port_disconnected(struct bt_self_component_sink *self_comp, - struct bt_self_component_port_input *self_comp_port) -{ - struct event event = { - .type = SINK_COMP_INPUT_PORT_DISCONNECTED, - .data.sink_comp_input_port_disconnected = { - .comp = bt_self_component_as_component( - bt_self_component_sink_as_self_component( - self_comp)), - .self_port = bt_self_component_port_as_port( - bt_self_component_port_input_as_self_component_port( - self_comp_port)), - }, - }; - - append_event(&event); -} - -static -enum bt_self_component_status src_init( - struct bt_self_component_source *self_comp, - const struct bt_value *params, void *init_method_data) +bt_component_class_initialize_method_status src_init( + bt_self_component_source *self_comp, + bt_self_component_source_configuration *config, + const bt_value *params, void *init_method_data) { int ret; ret = bt_self_component_source_add_output_port( self_comp, "out", NULL, NULL); BT_ASSERT(ret == 0); - return BT_SELF_COMPONENT_STATUS_OK; + return BT_COMPONENT_CLASS_INITIALIZE_METHOD_STATUS_OK; } static -enum bt_self_component_status sink_init( - struct bt_self_component_sink *self_comp, - const struct bt_value *params, void *init_method_data) +bt_component_class_initialize_method_status sink_init( + bt_self_component_sink *self_comp, + bt_self_component_sink_configuration *config, + const bt_value *params, void *init_method_data) { int ret; ret = bt_self_component_sink_add_input_port(self_comp, "in", NULL, NULL); BT_ASSERT(ret == 0); - return BT_SELF_COMPONENT_STATUS_OK; + return BT_COMPONENT_CLASS_INITIALIZE_METHOD_STATUS_OK; } static -enum bt_self_component_status sink_consume( - struct bt_self_component_sink *self_comp) +bt_component_class_sink_consume_method_status sink_consume( + bt_self_component_sink *self_comp) { - struct bt_self_component_port_input *def_port; - int ret; - - switch (current_test) { - case TEST_SINK_REMOVES_PORT_IN_CONSUME: - case TEST_SINK_REMOVES_PORT_IN_CONSUME_THEN_SRC_REMOVES_DISCONNECTED_PORT: - def_port = bt_self_component_sink_borrow_input_port_by_name( - self_comp, "in"); - BT_ASSERT(def_port); - ret = bt_self_component_port_remove_from_component( - bt_self_component_port_input_as_self_component_port( - def_port)); - BT_ASSERT(ret == 0); - break; - default: - break; - } - - return BT_SELF_COMPONENT_STATUS_OK; + return BT_COMPONENT_CLASS_SINK_CONSUME_METHOD_STATUS_OK; } static -void graph_src_output_port_added(const struct bt_component_source *comp, - const struct bt_port_output *port, void *data) +bt_graph_listener_func_status graph_src_output_port_added( + const bt_component_source *comp, const bt_port_output *port, + void *data) { struct event event = { .type = GRAPH_SRC_OUTPUT_PORT_ADDED, @@ -596,11 +313,14 @@ void graph_src_output_port_added(const struct bt_component_source *comp, }; append_event(&event); + + return BT_GRAPH_LISTENER_FUNC_STATUS_OK; } static -void graph_sink_input_port_added(const struct bt_component_sink *comp, - const struct bt_port_input *port, void *data) +bt_graph_listener_func_status graph_sink_input_port_added( + const bt_component_sink *comp, const bt_port_input *port, + void *data) { struct event event = { .type = GRAPH_SINK_INPUT_PORT_ADDED, @@ -611,82 +331,8 @@ void graph_sink_input_port_added(const struct bt_component_sink *comp, }; append_event(&event); -} - -static -void graph_src_output_port_removed(const struct bt_component_source *comp, - const struct bt_port_output *port, void *data) -{ - struct event event = { - .type = GRAPH_SRC_OUTPUT_PORT_REMOVED, - .data.graph_src_output_port_removed = { - .comp = bt_component_source_as_component_const(comp), - .port = bt_port_output_as_port_const(port), - }, - }; - - append_event(&event); -} -static -void graph_sink_input_port_removed(const struct bt_component_sink *comp, - const struct bt_port_input *port, void *data) -{ - struct event event = { - .type = GRAPH_SINK_INPUT_PORT_REMOVED, - .data.graph_sink_input_port_removed = { - .comp = bt_component_sink_as_component_const(comp), - .port = bt_port_input_as_port_const(port), - }, - }; - - append_event(&event); -} - -static -void graph_src_sink_ports_connected(const struct bt_component_source *upstream_comp, - const struct bt_component_sink *downstream_comp, - const struct bt_port_output *upstream_port, - const struct bt_port_input *downstream_port, void *data) -{ - struct event event = { - .type = GRAPH_SRC_SINK_PORTS_CONNECTED, - .data.graph_src_sink_ports_connected = { - .upstream_comp = - bt_component_source_as_component_const(upstream_comp), - .downstream_comp = - bt_component_sink_as_component_const(downstream_comp), - .upstream_port = - bt_port_output_as_port_const(upstream_port), - .downstream_port = - bt_port_input_as_port_const(downstream_port), - }, - }; - - append_event(&event); -} - -static -void graph_src_sink_ports_disconnected(const struct bt_component_source *upstream_comp, - const struct bt_component_sink *downstream_comp, - const struct bt_port_output *upstream_port, - const struct bt_port_input *downstream_port, void *data) -{ - struct event event = { - .type = GRAPH_SRC_SINK_PORTS_DISCONNECTED, - .data.graph_src_sink_ports_disconnected = { - .upstream_comp = - bt_component_source_as_component_const(upstream_comp), - .downstream_comp = - bt_component_sink_as_component_const(downstream_comp), - .upstream_port = - bt_port_output_as_port_const(upstream_port), - .downstream_port = - bt_port_input_as_port_const(downstream_port), - }, - }; - - append_event(&event); + return BT_GRAPH_LISTENER_FUNC_STATUS_OK; } static @@ -694,36 +340,27 @@ void init_test(void) { int ret; + msg_iter_class = bt_message_iterator_class_create(src_iter_next); + BT_ASSERT(msg_iter_class); + src_comp_class = bt_component_class_source_create( - "src", src_iter_next); + "src", msg_iter_class); BT_ASSERT(src_comp_class); - ret = bt_component_class_source_set_init_method( + ret = bt_component_class_source_set_initialize_method( src_comp_class, src_init); BT_ASSERT(ret == 0); - ret = bt_component_class_source_set_accept_output_port_connection_method( - src_comp_class, src_accept_output_port_connection); - BT_ASSERT(ret == 0); ret = bt_component_class_source_set_output_port_connected_method( src_comp_class, src_output_port_connected); BT_ASSERT(ret == 0); - ret = bt_component_class_source_set_output_port_disconnected_method( - src_comp_class, src_output_port_disconnected); - BT_ASSERT(ret == 0); sink_comp_class = bt_component_class_sink_create("sink", sink_consume); BT_ASSERT(sink_comp_class); - ret = bt_component_class_sink_set_init_method(sink_comp_class, + ret = bt_component_class_sink_set_initialize_method(sink_comp_class, sink_init); BT_ASSERT(ret == 0); - ret = bt_component_class_sink_set_accept_input_port_connection_method( - sink_comp_class, sink_accept_input_port_connection); - BT_ASSERT(ret == 0); ret = bt_component_class_sink_set_input_port_connected_method( sink_comp_class, sink_input_port_connected); BT_ASSERT(ret == 0); - ret = bt_component_class_sink_set_input_port_disconnected_method( - sink_comp_class, sink_input_port_disconnected); - BT_ASSERT(ret == 0); events = g_array_new(FALSE, TRUE, sizeof(struct event)); BT_ASSERT(events); } @@ -737,53 +374,41 @@ void fini_test(void) } static -const struct bt_component_source *create_src(struct bt_graph *graph) +const bt_component_source *create_src(bt_graph *graph) { - const struct bt_component_source *comp; + const bt_component_source *comp; int ret; ret = bt_graph_add_source_component(graph, src_comp_class, - "src-comp", NULL, &comp); + "src-comp", NULL, BT_LOGGING_LEVEL_NONE, &comp); BT_ASSERT(ret == 0); return comp; } static -const struct bt_component_sink *create_sink(struct bt_graph *graph) +const bt_component_sink *create_sink(bt_graph *graph) { - const struct bt_component_sink *comp; + const bt_component_sink *comp; int ret; ret = bt_graph_add_sink_component(graph, sink_comp_class, - "sink-comp", NULL, &comp); + "sink-comp", NULL, BT_LOGGING_LEVEL_NONE, &comp); BT_ASSERT(ret == 0); return comp; } static -struct bt_graph *create_graph(void) +bt_graph *create_graph(void) { - struct bt_graph *graph = bt_graph_create(); + bt_graph *graph = bt_graph_create(0); int ret; BT_ASSERT(graph); ret = bt_graph_add_source_component_output_port_added_listener( - graph, graph_src_output_port_added, NULL, NULL, NULL); + graph, graph_src_output_port_added, NULL, NULL); BT_ASSERT(ret >= 0); ret = bt_graph_add_sink_component_input_port_added_listener( - graph, graph_sink_input_port_added, NULL, NULL, NULL); - BT_ASSERT(ret >= 0); - ret = bt_graph_add_source_component_output_port_removed_listener( - graph, graph_src_output_port_removed, NULL, NULL, NULL); - BT_ASSERT(ret >= 0); - ret = bt_graph_add_sink_component_input_port_removed_listener( - graph, graph_sink_input_port_removed, NULL, NULL, NULL); - BT_ASSERT(ret >= 0); - ret = bt_graph_add_source_sink_component_ports_connected_listener( - graph, graph_src_sink_ports_connected, NULL, NULL, NULL); - BT_ASSERT(ret >= 0); - ret = bt_graph_add_source_sink_component_ports_disconnected_listener( - graph, graph_src_sink_ports_disconnected, NULL, NULL, NULL); + graph, graph_sink_input_port_added, NULL, NULL); BT_ASSERT(ret >= 0); return graph; } @@ -796,375 +421,23 @@ void prepare_test(enum test test, const char *name) diag("test: %s", name); } -static -void test_sink_removes_port_in_consume_then_src_removes_disconnected_port(void) -{ - int ret; - const struct bt_component_source *src; - const struct bt_component_sink *sink; - const struct bt_component *gsrc; - const struct bt_component *gsink; - struct bt_graph *graph; - const struct bt_port_output *src_def_port; - const struct bt_port_input *sink_def_port; - const struct bt_port *gsrc_def_port; - const struct bt_port *gsink_def_port; - struct event event; - enum bt_graph_status status; - size_t src_accept_port_connection_pos; - size_t sink_accept_port_connection_pos; - size_t src_port_connected_pos; - size_t sink_port_connected_pos; - size_t graph_ports_connected_pos; - size_t src_port_disconnected_pos; - size_t sink_port_disconnected_pos; - size_t graph_ports_disconnected_pos; - size_t graph_port_removed_src_pos; - size_t graph_port_removed_sink_pos; - - prepare_test(TEST_SINK_REMOVES_PORT_IN_CONSUME_THEN_SRC_REMOVES_DISCONNECTED_PORT, - "sink removes port in consume, then source removes disconnected port"); - graph = create_graph(); - BT_ASSERT(graph); - src = create_src(graph); - sink = create_sink(graph); - src_def_port = bt_component_source_borrow_output_port_by_name_const(src, - "out"); - BT_ASSERT(src_def_port); - sink_def_port = bt_component_sink_borrow_input_port_by_name_const(sink, - "in"); - BT_ASSERT(sink_def_port); - status = bt_graph_connect_ports(graph, src_def_port, - sink_def_port, NULL); - BT_ASSERT(status == 0); - gsrc = bt_component_source_as_component_const(src); - gsink = bt_component_sink_as_component_const(sink); - gsrc_def_port = bt_port_output_as_port_const(src_def_port); - gsink_def_port = bt_port_input_as_port_const(sink_def_port); - - /* We're supposed to have 7 events so far */ - ok(events->len == 7, "we have the expected number of events (before consume)"); - - /* Source's port added */ - event.type = GRAPH_SRC_OUTPUT_PORT_ADDED; - event.data.graph_src_output_port_added.comp = gsrc; - event.data.graph_src_output_port_added.port = gsrc_def_port; - ok(has_event(&event), "got the expected graph's port added event (for source, initial)"); - - /* Sink's port added */ - event.type = GRAPH_SINK_INPUT_PORT_ADDED; - event.data.graph_sink_input_port_added.comp = gsink; - event.data.graph_sink_input_port_added.port = gsink_def_port; - ok(has_event(&event), "got the expected graph's port added event (for sink, initial)"); - - /* Source's accept port connection */ - event.type = SRC_COMP_ACCEPT_OUTPUT_PORT_CONNECTION; - event.data.src_comp_accept_output_port_connection.comp = gsrc; - event.data.src_comp_accept_output_port_connection.self_port = gsrc_def_port; - event.data.src_comp_accept_output_port_connection.other_port = gsink_def_port; - ok(has_event(&event), "got the expected source's accept port connection event"); - src_accept_port_connection_pos = event_pos(&event); - - /* Sink's accept port connection */ - event.type = SINK_COMP_ACCEPT_INPUT_PORT_CONNECTION; - event.data.sink_comp_accept_input_port_connection.comp = gsink; - event.data.sink_comp_accept_input_port_connection.self_port = gsink_def_port; - event.data.sink_comp_accept_input_port_connection.other_port = gsrc_def_port; - ok(has_event(&event), "got the expected sink's accept port connection event"); - sink_accept_port_connection_pos = event_pos(&event); - - /* Source's port connected */ - event.type = SRC_COMP_OUTPUT_PORT_CONNECTED; - event.data.src_comp_output_port_connected.comp = gsrc; - event.data.src_comp_output_port_connected.self_port = gsrc_def_port; - event.data.src_comp_output_port_connected.other_port = gsink_def_port; - ok(has_event(&event), "got the expected source's port connected event"); - src_port_connected_pos = event_pos(&event); - - /* Sink's port connected */ - event.type = SINK_COMP_INPUT_PORT_CONNECTED; - event.data.sink_comp_input_port_connected.comp = gsink; - event.data.sink_comp_input_port_connected.self_port = gsink_def_port; - event.data.sink_comp_input_port_connected.other_port = gsrc_def_port; - ok(has_event(&event), "got the expected sink's port connected event"); - sink_port_connected_pos = event_pos(&event); - - /* Graph's ports connected */ - event.type = GRAPH_SRC_SINK_PORTS_CONNECTED; - event.data.graph_src_sink_ports_connected.upstream_comp = gsrc; - event.data.graph_src_sink_ports_connected.downstream_comp = gsink; - event.data.graph_src_sink_ports_connected.upstream_port = gsrc_def_port; - event.data.graph_src_sink_ports_connected.downstream_port = gsink_def_port; - ok(has_event(&event), "got the expected graph's ports connected event"); - graph_ports_connected_pos = event_pos(&event); - - /* Order of events */ - ok(src_port_connected_pos < graph_ports_connected_pos, - "event order is good (1)"); - ok(sink_port_connected_pos < graph_ports_connected_pos, - "event order is good (2)"); - ok(src_accept_port_connection_pos < src_port_connected_pos, - "event order is good (3)"); - ok(sink_accept_port_connection_pos < sink_port_connected_pos, - "event order is good (4)"); - - /* Consume sink once */ - clear_events(); - ret = bt_graph_consume(graph); - BT_ASSERT(ret == 0); - - /* We're supposed to have 5 new events */ - ok(events->len == 5, "we have the expected number of events (after consume)"); - - /* Source's port disconnected */ - event.type = SRC_COMP_OUTPUT_PORT_DISCONNECTED; - event.data.src_comp_output_port_disconnected.comp = gsrc; - event.data.src_comp_output_port_disconnected.self_port = gsrc_def_port; - ok(has_event(&event), "got the expected source's port disconnected event"); - src_port_disconnected_pos = event_pos(&event); - - /* Sink's port disconnected */ - event.type = SINK_COMP_INPUT_PORT_DISCONNECTED; - event.data.sink_comp_input_port_disconnected.comp = gsink; - event.data.sink_comp_input_port_disconnected.self_port = gsink_def_port; - ok(has_event(&event), "got the expected sink's port disconnected event"); - sink_port_disconnected_pos = event_pos(&event); - - /* Graph's ports disconnected */ - event.type = GRAPH_SRC_SINK_PORTS_DISCONNECTED; - event.data.graph_src_sink_ports_disconnected.upstream_comp = gsrc; - event.data.graph_src_sink_ports_disconnected.downstream_comp = gsink; - event.data.graph_src_sink_ports_disconnected.upstream_port = gsrc_def_port; - event.data.graph_src_sink_ports_disconnected.downstream_port = gsink_def_port; - ok(has_event(&event), "got the expected graph's ports disconnected event"); - graph_ports_disconnected_pos = event_pos(&event); - - /* Graph's port removed (sink) */ - event.type = GRAPH_SINK_INPUT_PORT_REMOVED; - event.data.graph_sink_input_port_removed.comp = gsink; - event.data.graph_sink_input_port_removed.port = gsink_def_port; - ok(has_event(&event), "got the expected graph's port removed event (for sink)"); - graph_port_removed_sink_pos = event_pos(&event); - - /* Graph's port removed (source) */ - event.type = GRAPH_SRC_OUTPUT_PORT_REMOVED; - event.data.graph_src_output_port_removed.comp = gsrc; - event.data.graph_src_output_port_removed.port = gsrc_def_port; - ok(has_event(&event), "got the expected graph's port removed event (for source)"); - graph_port_removed_src_pos = event_pos(&event); - - /* Order of events */ - ok(src_port_disconnected_pos < graph_ports_disconnected_pos, - "event order is good (5)"); - ok(src_port_disconnected_pos < graph_port_removed_sink_pos, - "event order is good (6)"); - ok(src_port_disconnected_pos < graph_port_removed_src_pos, - "event order is good (7)"); - ok(sink_port_disconnected_pos < graph_ports_disconnected_pos, - "event order is good (8)"); - ok(sink_port_disconnected_pos < graph_port_removed_sink_pos, - "event order is good (9)"); - ok(sink_port_disconnected_pos < graph_port_removed_src_pos, - "event order is good (10)"); - ok(graph_ports_disconnected_pos < graph_port_removed_sink_pos, - "event order is good (11)"); - ok(graph_port_removed_src_pos < graph_ports_disconnected_pos, - "event order is good (12)"); - ok(graph_port_removed_src_pos < graph_port_removed_sink_pos, - "event order is good (13)"); - - bt_graph_put_ref(graph); - bt_component_sink_put_ref(sink); - bt_component_source_put_ref(src); -} - -static -void test_sink_removes_port_in_consume(void) -{ - int ret; - const struct bt_component_source *src; - const struct bt_component_sink *sink; - const struct bt_component *gsrc; - const struct bt_component *gsink; - struct bt_graph *graph; - const struct bt_port_output *src_def_port; - const struct bt_port_input *sink_def_port; - const struct bt_port *gsrc_def_port; - const struct bt_port *gsink_def_port; - struct event event; - enum bt_graph_status status; - size_t src_accept_port_connection_pos; - size_t sink_accept_port_connection_pos; - size_t src_port_connected_pos; - size_t sink_port_connected_pos; - size_t graph_ports_connected_pos; - size_t src_port_disconnected_pos; - size_t sink_port_disconnected_pos; - size_t graph_ports_disconnected_pos; - size_t graph_port_removed_sink_pos; - - prepare_test(TEST_SINK_REMOVES_PORT_IN_CONSUME, - "sink removes port in consume"); - graph = create_graph(); - BT_ASSERT(graph); - src = create_src(graph); - sink = create_sink(graph); - src_def_port = bt_component_source_borrow_output_port_by_name_const(src, - "out"); - BT_ASSERT(src_def_port); - sink_def_port = bt_component_sink_borrow_input_port_by_name_const(sink, - "in"); - BT_ASSERT(sink_def_port); - status = bt_graph_connect_ports(graph, src_def_port, - sink_def_port, NULL); - BT_ASSERT(status == 0); - gsrc = bt_component_source_as_component_const(src); - gsink = bt_component_sink_as_component_const(sink); - gsrc_def_port = bt_port_output_as_port_const(src_def_port); - gsink_def_port = bt_port_input_as_port_const(sink_def_port); - - /* We're supposed to have 7 events so far */ - ok(events->len == 7, "we have the expected number of events (before consume)"); - - /* Source's port added */ - event.type = GRAPH_SRC_OUTPUT_PORT_ADDED; - event.data.graph_src_output_port_added.comp = gsrc; - event.data.graph_src_output_port_added.port = gsrc_def_port; - ok(has_event(&event), "got the expected graph's port added event (for source, initial)"); - - /* Sink's port added */ - event.type = GRAPH_SINK_INPUT_PORT_ADDED; - event.data.graph_sink_input_port_added.comp = gsink; - event.data.graph_sink_input_port_added.port = gsink_def_port; - ok(has_event(&event), "got the expected graph's port added event (for sink, initial)"); - - /* Source's accept port connection */ - event.type = SRC_COMP_ACCEPT_OUTPUT_PORT_CONNECTION; - event.data.src_comp_accept_output_port_connection.comp = gsrc; - event.data.src_comp_accept_output_port_connection.self_port = gsrc_def_port; - event.data.src_comp_accept_output_port_connection.other_port = gsink_def_port; - ok(has_event(&event), "got the expected source's accept port connection event"); - src_accept_port_connection_pos = event_pos(&event); - - /* Sink's accept port connection */ - event.type = SINK_COMP_ACCEPT_INPUT_PORT_CONNECTION; - event.data.sink_comp_accept_input_port_connection.comp = gsink; - event.data.sink_comp_accept_input_port_connection.self_port = gsink_def_port; - event.data.sink_comp_accept_input_port_connection.other_port = gsrc_def_port; - ok(has_event(&event), "got the expected sink's accept port connection event"); - sink_accept_port_connection_pos = event_pos(&event); - - /* Source's port connected */ - event.type = SRC_COMP_OUTPUT_PORT_CONNECTED; - event.data.src_comp_output_port_connected.comp = gsrc; - event.data.src_comp_output_port_connected.self_port = gsrc_def_port; - event.data.src_comp_output_port_connected.other_port = gsink_def_port; - ok(has_event(&event), "got the expected source's port connected event"); - src_port_connected_pos = event_pos(&event); - - /* Sink's port connected */ - event.type = SINK_COMP_INPUT_PORT_CONNECTED; - event.data.sink_comp_input_port_connected.comp = gsink; - event.data.sink_comp_input_port_connected.self_port = gsink_def_port; - event.data.sink_comp_input_port_connected.other_port = gsrc_def_port; - ok(has_event(&event), "got the expected sink's port connected event"); - sink_port_connected_pos = event_pos(&event); - - /* Graph's ports connected */ - event.type = GRAPH_SRC_SINK_PORTS_CONNECTED; - event.data.graph_src_sink_ports_connected.upstream_comp = gsrc; - event.data.graph_src_sink_ports_connected.downstream_comp = gsink; - event.data.graph_src_sink_ports_connected.upstream_port = gsrc_def_port; - event.data.graph_src_sink_ports_connected.downstream_port = gsink_def_port; - ok(has_event(&event), "got the expected graph's ports connected event"); - graph_ports_connected_pos = event_pos(&event); - - /* Order of events */ - ok(src_port_connected_pos < graph_ports_connected_pos, - "event order is good (1)"); - ok(sink_port_connected_pos < graph_ports_connected_pos, - "event order is good (2)"); - ok(src_accept_port_connection_pos < src_port_connected_pos, - "event order is good (3)"); - ok(sink_accept_port_connection_pos < sink_port_connected_pos, - "event order is good (4)"); - - /* Consume sink once */ - clear_events(); - ret = bt_graph_consume(graph); - BT_ASSERT(ret == 0); - - /* We're supposed to have 4 new events */ - ok(events->len == 4, "we have the expected number of events (after consume)"); - - /* Source's port disconnected */ - event.type = SRC_COMP_OUTPUT_PORT_DISCONNECTED; - event.data.src_comp_output_port_disconnected.comp = gsrc; - event.data.src_comp_output_port_disconnected.self_port = gsrc_def_port; - ok(has_event(&event), "got the expected source's port disconnected event"); - src_port_disconnected_pos = event_pos(&event); - - /* Sink's port disconnected */ - event.type = SINK_COMP_INPUT_PORT_DISCONNECTED; - event.data.sink_comp_input_port_disconnected.comp = gsink; - event.data.sink_comp_input_port_disconnected.self_port = gsink_def_port; - ok(has_event(&event), "got the expected sink's port disconnected event"); - sink_port_disconnected_pos = event_pos(&event); - - /* Graph's ports disconnected */ - event.type = GRAPH_SRC_SINK_PORTS_DISCONNECTED; - event.data.graph_src_sink_ports_disconnected.upstream_comp = gsrc; - event.data.graph_src_sink_ports_disconnected.downstream_comp = gsink; - event.data.graph_src_sink_ports_disconnected.upstream_port = gsrc_def_port; - event.data.graph_src_sink_ports_disconnected.downstream_port = gsink_def_port; - ok(has_event(&event), "got the expected graph's ports disconnected event"); - graph_ports_disconnected_pos = event_pos(&event); - - /* Graph's port removed (sink) */ - event.type = GRAPH_SINK_INPUT_PORT_REMOVED; - event.data.graph_sink_input_port_removed.comp = gsink; - event.data.graph_sink_input_port_removed.port = gsink_def_port; - ok(has_event(&event), "got the expected graph's port removed event (for sink)"); - graph_port_removed_sink_pos = event_pos(&event); - - /* Order of events */ - ok(src_port_disconnected_pos < graph_ports_disconnected_pos, - "event order is good (5)"); - ok(src_port_disconnected_pos < graph_port_removed_sink_pos, - "event order is good (7)"); - ok(sink_port_disconnected_pos < graph_ports_disconnected_pos, - "event order is good (8)"); - ok(sink_port_disconnected_pos < graph_port_removed_sink_pos, - "event order is good (10)"); - ok(graph_ports_disconnected_pos < graph_port_removed_sink_pos, - "event order is good (11)"); - - bt_component_sink_put_ref(sink); - bt_component_source_put_ref(src); - bt_graph_put_ref(graph); -} - static void test_src_adds_port_in_port_connected(void) { - const struct bt_component_source *src; - const struct bt_component_sink *sink; - const struct bt_component *gsrc; - const struct bt_component *gsink; - struct bt_graph *graph; - const struct bt_port_output *src_def_port; - const struct bt_port_output *src_hello_port; - const struct bt_port_input *sink_def_port; - const struct bt_port *gsrc_def_port; - const struct bt_port *gsrc_hello_port; - const struct bt_port *gsink_def_port; + const bt_component_source *src; + const bt_component_sink *sink; + const bt_component *gsrc; + const bt_component *gsink; + bt_graph *graph; + const bt_port_output *src_def_port; + const bt_port_output *src_hello_port; + const bt_port_input *sink_def_port; + const bt_port *gsrc_def_port; + const bt_port *gsrc_hello_port; + const bt_port *gsink_def_port; struct event event; - enum bt_graph_status status; - size_t src_accept_port_connection_pos; - size_t sink_accept_port_connection_pos; + bt_graph_connect_ports_status status; size_t src_port_connected_pos; - size_t sink_port_connected_pos; - size_t graph_ports_connected_pos; size_t graph_port_added_src_pos; prepare_test(TEST_SRC_ADDS_PORT_IN_PORT_CONNECTED, @@ -1191,8 +464,8 @@ void test_src_adds_port_in_port_connected(void) gsrc_hello_port = bt_port_output_as_port_const(src_hello_port); gsink_def_port = bt_port_input_as_port_const(sink_def_port); - /* We're supposed to have 8 events */ - ok(events->len == 8, "we have the expected number of events"); + /* We're supposed to have 5 events */ + ok(events->len == 5, "we have the expected number of events"); /* Source's port added */ event.type = GRAPH_SRC_OUTPUT_PORT_ADDED; @@ -1206,22 +479,6 @@ void test_src_adds_port_in_port_connected(void) event.data.graph_sink_input_port_added.port = gsink_def_port; ok(has_event(&event), "got the expected graph's port added event (for sink, initial)"); - /* Source's accept port connection */ - event.type = SRC_COMP_ACCEPT_OUTPUT_PORT_CONNECTION; - event.data.src_comp_accept_output_port_connection.comp = gsrc; - event.data.src_comp_accept_output_port_connection.self_port = gsrc_def_port; - event.data.src_comp_accept_output_port_connection.other_port = gsink_def_port; - ok(has_event(&event), "got the expected source's accept port connection event"); - src_accept_port_connection_pos = event_pos(&event); - - /* Sink's accept port connection */ - event.type = SINK_COMP_ACCEPT_INPUT_PORT_CONNECTION; - event.data.sink_comp_accept_input_port_connection.comp = gsink; - event.data.sink_comp_accept_input_port_connection.self_port = gsink_def_port; - event.data.sink_comp_accept_input_port_connection.other_port = gsrc_def_port; - ok(has_event(&event), "got the expected sink's accept port connection event"); - sink_accept_port_connection_pos = event_pos(&event); - /* Source's port connected */ event.type = SRC_COMP_OUTPUT_PORT_CONNECTED; event.data.src_comp_output_port_connected.comp = gsrc; @@ -1243,30 +500,10 @@ void test_src_adds_port_in_port_connected(void) event.data.sink_comp_input_port_connected.self_port = gsink_def_port; event.data.sink_comp_input_port_connected.other_port = gsrc_def_port; ok(has_event(&event), "got the expected sink's port connected event"); - sink_port_connected_pos = event_pos(&event); - - /* Graph's ports connected */ - event.type = GRAPH_SRC_SINK_PORTS_CONNECTED; - event.data.graph_src_sink_ports_connected.upstream_comp = gsrc; - event.data.graph_src_sink_ports_connected.downstream_comp = gsink; - event.data.graph_src_sink_ports_connected.upstream_port = gsrc_def_port; - event.data.graph_src_sink_ports_connected.downstream_port = gsink_def_port; - ok(has_event(&event), "got the expected graph's ports connected event"); - graph_ports_connected_pos = event_pos(&event); /* Order of events */ - ok(src_port_connected_pos < graph_ports_connected_pos, - "event order is good (1)"); - ok(sink_port_connected_pos < graph_ports_connected_pos, - "event order is good (2)"); - ok(src_accept_port_connection_pos < src_port_connected_pos, - "event order is good (3)"); - ok(sink_accept_port_connection_pos < sink_port_connected_pos, - "event order is good (4)"); ok(src_port_connected_pos < graph_port_added_src_pos, - "event order is good (5)"); - ok(graph_port_added_src_pos < graph_ports_connected_pos, - "event order is good (6)"); + "event order is good"); bt_component_source_put_ref(src); bt_component_sink_put_ref(sink); @@ -1276,22 +513,17 @@ void test_src_adds_port_in_port_connected(void) static void test_simple(void) { - const struct bt_component_source *src; - const struct bt_component_sink *sink; - const struct bt_component *gsrc; - const struct bt_component *gsink; - struct bt_graph *graph; - const struct bt_port_output *src_def_port; - const struct bt_port_input *sink_def_port; - const struct bt_port *gsrc_def_port; - const struct bt_port *gsink_def_port; + const bt_component_source *src; + const bt_component_sink *sink; + const bt_component *gsrc; + const bt_component *gsink; + bt_graph *graph; + const bt_port_output *src_def_port; + const bt_port_input *sink_def_port; + const bt_port *gsrc_def_port; + const bt_port *gsink_def_port; struct event event; - enum bt_graph_status status; - size_t src_accept_port_connection_pos; - size_t sink_accept_port_connection_pos; - size_t src_port_connected_pos; - size_t sink_port_connected_pos; - size_t graph_ports_connected_pos; + bt_graph_connect_ports_status status; prepare_test(TEST_SIMPLE, "simple"); graph = create_graph(); @@ -1312,8 +544,8 @@ void test_simple(void) gsrc_def_port = bt_port_output_as_port_const(src_def_port); gsink_def_port = bt_port_input_as_port_const(sink_def_port); - /* We're supposed to have 7 events */ - ok(events->len == 7, "we have the expected number of events"); + /* We're supposed to have 4 events */ + ok(events->len == 4, "we have the expected number of events"); /* Source's port added */ event.type = GRAPH_SRC_OUTPUT_PORT_ADDED; @@ -1327,29 +559,12 @@ void test_simple(void) event.data.graph_sink_input_port_added.port = gsink_def_port; ok(has_event(&event), "got the expected graph's port added event (for sink, initial)"); - /* Source's accept port connection */ - event.type = SRC_COMP_ACCEPT_OUTPUT_PORT_CONNECTION; - event.data.src_comp_accept_output_port_connection.comp = gsrc; - event.data.src_comp_accept_output_port_connection.self_port = gsrc_def_port; - event.data.src_comp_accept_output_port_connection.other_port = gsink_def_port; - ok(has_event(&event), "got the expected source's accept port connection event"); - src_accept_port_connection_pos = event_pos(&event); - - /* Sink's accept port connection */ - event.type = SINK_COMP_ACCEPT_INPUT_PORT_CONNECTION; - event.data.sink_comp_accept_input_port_connection.comp = gsink; - event.data.sink_comp_accept_input_port_connection.self_port = gsink_def_port; - event.data.sink_comp_accept_input_port_connection.other_port = gsrc_def_port; - ok(has_event(&event), "got the expected sink's accept port connection event"); - sink_accept_port_connection_pos = event_pos(&event); - /* Source's port connected */ event.type = SRC_COMP_OUTPUT_PORT_CONNECTED; event.data.src_comp_output_port_connected.comp = gsrc; event.data.src_comp_output_port_connected.self_port = gsrc_def_port; event.data.src_comp_output_port_connected.other_port = gsink_def_port; ok(has_event(&event), "got the expected source's port connected event"); - src_port_connected_pos = event_pos(&event); /* Sink's port connected */ event.type = SINK_COMP_INPUT_PORT_CONNECTED; @@ -1357,26 +572,6 @@ void test_simple(void) event.data.sink_comp_input_port_connected.self_port = gsink_def_port; event.data.sink_comp_input_port_connected.other_port = gsrc_def_port; ok(has_event(&event), "got the expected sink's port connected event"); - sink_port_connected_pos = event_pos(&event); - - /* Graph's ports connected */ - event.type = GRAPH_SRC_SINK_PORTS_CONNECTED; - event.data.graph_src_sink_ports_connected.upstream_comp = gsrc; - event.data.graph_src_sink_ports_connected.downstream_comp = gsink; - event.data.graph_src_sink_ports_connected.upstream_port = gsrc_def_port; - event.data.graph_src_sink_ports_connected.downstream_port = gsink_def_port; - ok(has_event(&event), "got the expected graph's ports connected event"); - graph_ports_connected_pos = event_pos(&event); - - /* Order of events */ - ok(src_port_connected_pos < graph_ports_connected_pos, - "event order is good (1)"); - ok(sink_port_connected_pos < graph_ports_connected_pos, - "event order is good (2)"); - ok(src_accept_port_connection_pos < src_port_connected_pos, - "event order is good (3)"); - ok(sink_accept_port_connection_pos < sink_port_connected_pos, - "event order is good (4)"); bt_component_sink_put_ref(sink); bt_graph_put_ref(graph); @@ -1386,20 +581,18 @@ void test_simple(void) static void test_src_port_connected_error(void) { - const struct bt_component_source *src; - const struct bt_component_sink *sink; - const struct bt_component *gsrc; - const struct bt_component *gsink; - struct bt_graph *graph; - const struct bt_port_output *src_def_port; - const struct bt_port_input *sink_def_port; - const struct bt_port *gsrc_def_port; - const struct bt_port *gsink_def_port; - const struct bt_connection *conn = NULL; + const bt_component_source *src; + const bt_component_sink *sink; + const bt_component *gsrc; + const bt_component *gsink; + bt_graph *graph; + const bt_port_output *src_def_port; + const bt_port_input *sink_def_port; + const bt_port *gsrc_def_port; + const bt_port *gsink_def_port; + const bt_connection *conn = NULL; struct event event; - enum bt_graph_status status; - size_t src_accept_port_connection_pos; - size_t src_port_connected_pos; + bt_graph_connect_ports_status status; prepare_test(TEST_SRC_PORT_CONNECTED_ERROR, "port connected error: source"); graph = create_graph(); @@ -1414,16 +607,17 @@ void test_src_port_connected_error(void) BT_ASSERT(sink_def_port); status = bt_graph_connect_ports(graph, src_def_port, sink_def_port, &conn); - ok(status != BT_GRAPH_STATUS_OK, + ok(status != BT_GRAPH_CONNECT_PORTS_STATUS_OK, "bt_graph_connect_ports() returns an error"); + bt_current_thread_clear_error(); ok(!conn, "returned connection is still NULL"); gsrc = bt_component_source_as_component_const(src); gsink = bt_component_sink_as_component_const(sink); gsrc_def_port = bt_port_output_as_port_const(src_def_port); gsink_def_port = bt_port_input_as_port_const(sink_def_port); - /* We're supposed to have 5 events */ - ok(events->len == 5, "we have the expected number of events"); + /* We're supposed to have 3 events */ + ok(events->len == 3, "we have the expected number of events"); /* Source's port added */ event.type = GRAPH_SRC_OUTPUT_PORT_ADDED; @@ -1437,32 +631,12 @@ void test_src_port_connected_error(void) event.data.graph_sink_input_port_added.port = gsink_def_port; ok(has_event(&event), "got the expected graph's port added event (for sink, initial)"); - /* Source's accept port connection */ - event.type = SRC_COMP_ACCEPT_OUTPUT_PORT_CONNECTION; - event.data.src_comp_accept_output_port_connection.comp = gsrc; - event.data.src_comp_accept_output_port_connection.self_port = gsrc_def_port; - event.data.src_comp_accept_output_port_connection.other_port = gsink_def_port; - ok(has_event(&event), "got the expected source's accept port connection event"); - src_accept_port_connection_pos = event_pos(&event); - - /* Sink's accept port connection */ - event.type = SINK_COMP_ACCEPT_INPUT_PORT_CONNECTION; - event.data.sink_comp_accept_input_port_connection.comp = gsink; - event.data.sink_comp_accept_input_port_connection.self_port = gsink_def_port; - event.data.sink_comp_accept_input_port_connection.other_port = gsrc_def_port; - ok(has_event(&event), "got the expected sink's accept port connection event"); - /* Source's port connected */ event.type = SRC_COMP_OUTPUT_PORT_CONNECTED; event.data.src_comp_output_port_connected.comp = gsrc; event.data.src_comp_output_port_connected.self_port = gsrc_def_port; event.data.src_comp_output_port_connected.other_port = gsink_def_port; ok(has_event(&event), "got the expected source's port connected event"); - src_port_connected_pos = event_pos(&event); - - /* Order of events */ - ok(src_accept_port_connection_pos < src_port_connected_pos, - "event order is good (1)"); bt_graph_put_ref(graph); bt_component_sink_put_ref(sink); @@ -1473,23 +647,18 @@ void test_src_port_connected_error(void) static void test_sink_port_connected_error(void) { - const struct bt_component_source *src; - const struct bt_component_sink *sink; - const struct bt_component *gsrc; - const struct bt_component *gsink; - struct bt_graph *graph; - const struct bt_port_output *src_def_port; - const struct bt_port_input *sink_def_port; - const struct bt_port *gsrc_def_port; - const struct bt_port *gsink_def_port; - const struct bt_connection *conn = NULL; + const bt_component_source *src; + const bt_component_sink *sink; + const bt_component *gsrc; + const bt_component *gsink; + bt_graph *graph; + const bt_port_output *src_def_port; + const bt_port_input *sink_def_port; + const bt_port *gsrc_def_port; + const bt_port *gsink_def_port; + const bt_connection *conn = NULL; struct event event; - enum bt_graph_status status; - size_t src_accept_port_connection_pos; - size_t sink_accept_port_connection_pos; - size_t src_port_connected_pos; - size_t src_port_disconnected_pos; - size_t sink_port_connected_pos; + bt_graph_connect_ports_status status; prepare_test(TEST_SINK_PORT_CONNECTED_ERROR, "port connected error: sink"); graph = create_graph(); @@ -1504,16 +673,17 @@ void test_sink_port_connected_error(void) BT_ASSERT(sink_def_port); status = bt_graph_connect_ports(graph, src_def_port, sink_def_port, &conn); - ok(status != BT_GRAPH_STATUS_OK, + ok(status != BT_GRAPH_CONNECT_PORTS_STATUS_OK, "bt_graph_connect_ports() returns an error"); + bt_current_thread_clear_error(); ok(!conn, "returned connection is still NULL"); gsrc = bt_component_source_as_component_const(src); gsink = bt_component_sink_as_component_const(sink); gsrc_def_port = bt_port_output_as_port_const(src_def_port); gsink_def_port = bt_port_input_as_port_const(sink_def_port); - /* We're supposed to have 5 events */ - ok(events->len == 7, "we have the expected number of events"); + /* We're supposed to have 4 events */ + ok(events->len == 4, "we have the expected number of events"); /* Source's port added */ event.type = GRAPH_SRC_OUTPUT_PORT_ADDED; @@ -1527,29 +697,12 @@ void test_sink_port_connected_error(void) event.data.graph_sink_input_port_added.port = gsink_def_port; ok(has_event(&event), "got the expected graph's port added event (for sink, initial)"); - /* Source's accept port connection */ - event.type = SRC_COMP_ACCEPT_OUTPUT_PORT_CONNECTION; - event.data.src_comp_accept_output_port_connection.comp = gsrc; - event.data.src_comp_accept_output_port_connection.self_port = gsrc_def_port; - event.data.src_comp_accept_output_port_connection.other_port = gsink_def_port; - ok(has_event(&event), "got the expected source's accept port connection event"); - src_accept_port_connection_pos = event_pos(&event); - - /* Sink's accept port connection */ - event.type = SINK_COMP_ACCEPT_INPUT_PORT_CONNECTION; - event.data.sink_comp_accept_input_port_connection.comp = gsink; - event.data.sink_comp_accept_input_port_connection.self_port = gsink_def_port; - event.data.sink_comp_accept_input_port_connection.other_port = gsrc_def_port; - ok(has_event(&event), "got the expected sink's accept port connection event"); - sink_accept_port_connection_pos = event_pos(&event); - /* Source's port connected */ event.type = SRC_COMP_OUTPUT_PORT_CONNECTED; event.data.src_comp_output_port_connected.comp = gsrc; event.data.src_comp_output_port_connected.self_port = gsrc_def_port; event.data.src_comp_output_port_connected.other_port = gsink_def_port; ok(has_event(&event), "got the expected source's port connected event"); - src_port_connected_pos = event_pos(&event); /* Sink's port connected */ event.type = SINK_COMP_INPUT_PORT_CONNECTED; @@ -1557,22 +710,6 @@ void test_sink_port_connected_error(void) event.data.sink_comp_input_port_connected.self_port = gsink_def_port; event.data.sink_comp_input_port_connected.other_port = gsrc_def_port; ok(has_event(&event), "got the expected sink's port connected event"); - sink_port_connected_pos = event_pos(&event); - - /* Source's port disconnected */ - event.type = SRC_COMP_OUTPUT_PORT_DISCONNECTED; - event.data.src_comp_output_port_disconnected.comp = gsrc; - event.data.src_comp_output_port_disconnected.self_port = gsrc_def_port; - ok(has_event(&event), "got the expected source's port disconnected event"); - src_port_disconnected_pos = event_pos(&event); - - /* Order of events */ - ok(src_accept_port_connection_pos < src_port_connected_pos, - "event order is good (1)"); - ok(sink_accept_port_connection_pos < sink_port_connected_pos, - "event order is good (2)"); - ok(sink_port_connected_pos < src_port_disconnected_pos, - "event order is good (3)"); bt_connection_put_ref(conn); bt_graph_put_ref(graph); @@ -1583,7 +720,7 @@ void test_sink_port_connected_error(void) static void test_empty_graph(void) { - struct bt_graph *graph; + bt_graph *graph; prepare_test(TEST_EMPTY_GRAPH, "empty graph"); graph = create_graph(); @@ -1600,8 +737,6 @@ int main(int argc, char **argv) test_src_port_connected_error(); test_sink_port_connected_error(); test_src_adds_port_in_port_connected(); - test_sink_removes_port_in_consume(); - test_sink_removes_port_in_consume_then_src_removes_disconnected_port(); fini_test(); return exit_status(); }