X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=tests%2Flib%2Ftest_graph_topo.c;h=0a0f2bc43451f455df794f251c6656bf2a32937a;hb=57f97a8936ce99cc380bcbbbc1f01200fba18bdf;hp=fedbdd03a97b8f2a8875e15abfaa5ba78f24c91e;hpb=21a9f056fd7d86d18aa7a1700c7f47d93eb1adeb;p=babeltrace.git diff --git a/tests/lib/test_graph_topo.c b/tests/lib/test_graph_topo.c index fedbdd03..0a0f2bc4 100644 --- a/tests/lib/test_graph_topo.c +++ b/tests/lib/test_graph_topo.c @@ -1,20 +1,7 @@ /* - * test_graph_topo.c + * SPDX-License-Identifier: GPL-2.0-only * - * Copyright 2017 - Philippe Proulx - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; under version 2 of the License. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * Copyright (C) 2017 Philippe Proulx */ #include @@ -26,14 +13,13 @@ #include "tap/tap.h" -#define NR_TESTS 33 +#define NR_TESTS 26 enum event_type { SRC_COMP_OUTPUT_PORT_CONNECTED, SINK_COMP_INPUT_PORT_CONNECTED, GRAPH_SRC_OUTPUT_PORT_ADDED, GRAPH_SINK_INPUT_PORT_ADDED, - GRAPH_SRC_SINK_PORTS_CONNECTED, }; enum test { @@ -69,17 +55,11 @@ struct event { const bt_component *comp; const bt_port *port; } graph_sink_input_port_added; - - struct { - const bt_component *upstream_comp; - const bt_component *downstream_comp; - const bt_port *upstream_port; - const bt_port *downstream_port; - } graph_src_sink_ports_connected; } data; }; static GArray *events; +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; @@ -158,27 +138,6 @@ bool compare_events(struct event *ev_a, struct event *ev_b) 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; default: abort(); } @@ -192,7 +151,7 @@ bool has_event(struct event *event) size_t i; for (i = 0; i < events->len; i++) { - struct event *ev = &g_array_index(events, struct event, i); + struct event *ev = &bt_g_array_index(events, struct event, i); if (compare_events(event, ev)) { return true; @@ -208,7 +167,7 @@ size_t event_pos(struct event *event) size_t i; for (i = 0; i < events->len; i++) { - struct event *ev = &g_array_index(events, struct event, i); + struct event *ev = &bt_g_array_index(events, struct event, i); if (compare_events(event, ev)) { return i; @@ -219,12 +178,12 @@ size_t event_pos(struct event *event) } 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 *self_iterator, bt_message_array_const msgs, uint64_t capacity, uint64_t *count) { - return BT_COMPONENT_CLASS_MESSAGE_ITERATOR_NEXT_METHOD_STATUS_ERROR; + return BT_MESSAGE_ITERATOR_CLASS_NEXT_METHOD_STATUS_ERROR; } static @@ -363,39 +322,16 @@ bt_graph_listener_func_status graph_sink_input_port_added( return BT_GRAPH_LISTENER_FUNC_STATUS_OK; } -static -bt_graph_listener_func_status graph_src_sink_ports_connected( - const bt_component_source *upstream_comp, - const bt_component_sink *downstream_comp, - const bt_port_output *upstream_port, - const 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); - - return BT_GRAPH_LISTENER_FUNC_STATUS_OK; -} - static 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_initialize_method( src_comp_class, src_init); @@ -422,6 +358,7 @@ void fini_test(void) bt_component_class_source_put_ref(src_comp_class); bt_component_class_sink_put_ref(sink_comp_class); g_array_free(events, TRUE); + BT_MESSAGE_ITERATOR_CLASS_PUT_REF_AND_RESET(msg_iter_class); } static @@ -456,13 +393,10 @@ bt_graph *create_graph(void) 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_sink_component_ports_connected_listener( - graph, graph_src_sink_ports_connected, NULL, NULL, NULL); + graph, graph_sink_input_port_added, NULL, NULL); BT_ASSERT(ret >= 0); return graph; } @@ -492,8 +426,6 @@ void test_src_adds_port_in_port_connected(void) struct event event; 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, @@ -520,8 +452,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 6 events */ - ok(events->len == 6, "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; @@ -556,29 +488,11 @@ 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_port_connected_pos < graph_port_added_src_pos, - "event order is good (3)"); - ok(graph_port_added_src_pos < graph_ports_connected_pos, - "event order is good (4)"); + "event order is good"); - bt_component_source_put_ref(src); - bt_component_sink_put_ref(sink); bt_graph_put_ref(graph); } @@ -596,9 +510,6 @@ void test_simple(void) const bt_port *gsink_def_port; struct event event; bt_graph_connect_ports_status status; - size_t src_port_connected_pos; - size_t sink_port_connected_pos; - size_t graph_ports_connected_pos; prepare_test(TEST_SIMPLE, "simple"); graph = create_graph(); @@ -619,8 +530,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 5 events */ - ok(events->len == 5, "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; @@ -640,7 +551,6 @@ void test_simple(void) 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; @@ -648,26 +558,8 @@ 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)"); - bt_component_sink_put_ref(sink); bt_graph_put_ref(graph); - bt_component_source_put_ref(src); } static @@ -731,9 +623,6 @@ void test_src_port_connected_error(void) ok(has_event(&event), "got the expected source's port connected event"); bt_graph_put_ref(graph); - bt_component_sink_put_ref(sink); - bt_component_source_put_ref(src); - bt_connection_put_ref(conn); } static @@ -803,10 +692,7 @@ void test_sink_port_connected_error(void) event.data.sink_comp_input_port_connected.other_port = gsrc_def_port; ok(has_event(&event), "got the expected sink's port connected event"); - bt_connection_put_ref(conn); bt_graph_put_ref(graph); - bt_component_sink_put_ref(sink); - bt_component_source_put_ref(src); } static