- /* Consume sink once */
- clear_events();
- ret = bt_graph_consume(graph);
- 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 = COMP_PORT_DISCONNECTED;
- event.data.comp_port_disconnected.comp = src;
- event.data.comp_port_disconnected.port = src_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 = COMP_PORT_DISCONNECTED;
- event.data.comp_port_disconnected.comp = sink;
- event.data.comp_port_disconnected.port = sink_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_PORTS_DISCONNECTED;
- event.data.graph_ports_disconnected.upstream_comp = src;
- event.data.graph_ports_disconnected.downstream_comp = sink;
- event.data.graph_ports_disconnected.upstream_port = src_def_port;
- event.data.graph_ports_disconnected.downstream_port = sink_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_PORT_REMOVED;
- event.data.graph_port_removed.comp = sink;
- event.data.graph_port_removed.port = sink_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_put(graph);
- bt_put(sink);
- bt_put(src);
- bt_put(conn);
- bt_put(src_def_port);
- bt_put(sink_def_port);