* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
-#include <babeltrace/babeltrace.h>
-#include <babeltrace/assert-internal.h>
+#include <babeltrace2/babeltrace.h>
+#include "common/assert.h"
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>
#include "tap/tap.h"
-#define NR_TESTS 48
+#define NR_TESTS 33
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,
GRAPH_SRC_OUTPUT_PORT_ADDED,
enum event_type type;
union {
- struct {
- const bt_component *comp;
- const bt_port *self_port;
- const bt_port *other_port;
- } src_comp_accept_output_port_connection;
-
- struct {
- const bt_component *comp;
- const bt_port *self_port;
- const bt_port *other_port;
- } sink_comp_accept_input_port_connection;
-
struct {
const bt_component *comp;
const bt_port *self_port;
}
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) {
return BT_SELF_MESSAGE_ITERATOR_STATUS_ERROR;
}
-static
-bt_self_component_status src_accept_output_port_connection(
- bt_self_component_source *self_comp,
- bt_self_component_port_output *self_comp_port,
- const 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
-bt_self_component_status sink_accept_input_port_connection(
- 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_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;
-}
-
static
bt_self_component_status src_output_port_connected(
bt_self_component_source *self_comp,
}
static
-void graph_src_output_port_added(const bt_component_source *comp,
- const bt_port_output *port, void *data)
+bt_graph_listener_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,
};
append_event(&event);
+
+ return BT_GRAPH_LISTENER_STATUS_OK;
}
static
-void graph_sink_input_port_added(const bt_component_sink *comp,
- const bt_port_input *port, void *data)
+bt_graph_listener_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,
};
append_event(&event);
+
+ return BT_GRAPH_LISTENER_STATUS_OK;
}
static
-void graph_src_sink_ports_connected(const bt_component_source *upstream_comp,
+bt_graph_listener_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)
};
append_event(&event);
+
+ return BT_GRAPH_LISTENER_STATUS_OK;
}
static
ret = bt_component_class_source_set_init_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_sink_set_init_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);
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;
}
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;
}
const bt_port *gsink_def_port;
struct event event;
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;
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 6 events */
+ ok(events->len == 6, "we have the expected number of events");
/* Source's port added */
event.type = GRAPH_SRC_OUTPUT_PORT_ADDED;
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 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)");
+ "event order is good (3)");
ok(graph_port_added_src_pos < graph_ports_connected_pos,
- "event order is good (6)");
+ "event order is good (4)");
bt_component_source_put_ref(src);
bt_component_sink_put_ref(sink);
const bt_port *gsink_def_port;
struct event event;
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;
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 5 events */
+ ok(events->len == 5, "we have the expected number of events");
/* Source's port added */
event.type = GRAPH_SRC_OUTPUT_PORT_ADDED;
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 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);
const bt_connection *conn = NULL;
struct event event;
bt_graph_status status;
- size_t src_accept_port_connection_pos;
- size_t src_port_connected_pos;
prepare_test(TEST_SRC_PORT_CONNECTED_ERROR, "port connected error: source");
graph = create_graph();
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;
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);
const bt_connection *conn = NULL;
struct event event;
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;
prepare_test(TEST_SINK_PORT_CONNECTED_ERROR, "port connected error: sink");
graph = create_graph();
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 6 events */
- ok(events->len == 6, "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;
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.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);
-
- /* 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)");
bt_connection_put_ref(conn);
bt_graph_put_ref(graph);