lib: graph: remove useless checks, make functions inline on fast path
[babeltrace.git] / tests / lib / test_bt_notification_iterator.c
index 97c2075aa914243c918425b162b1da074900f09d..f076af51095e93dd808e873ce877e783bc24428d 100644 (file)
@@ -51,6 +51,7 @@
 #include <babeltrace/graph/private-component-sink.h>
 #include <babeltrace/graph/private-component.h>
 #include <babeltrace/graph/private-connection.h>
+#include <babeltrace/graph/private-connection-notification-iterator.h>
 #include <babeltrace/graph/private-connection-private-notification-iterator.h>
 #include <babeltrace/graph/private-port.h>
 #include <babeltrace/plugin/plugin.h>
@@ -59,7 +60,7 @@
 
 #include "tap/tap.h"
 
-#define NR_TESTS       6
+#define NR_TESTS       5
 
 enum test {
        TEST_NO_AUTO_NOTIFS,
@@ -560,7 +561,8 @@ void src_finalize(struct bt_private_component *private_component)
 
 static
 enum bt_notification_iterator_status common_consume(
-               struct bt_notification_iterator *notif_iter)
+               struct bt_notification_iterator *notif_iter,
+               bool is_output_port_notif_iter)
 {
        enum bt_notification_iterator_status ret;
        struct bt_notification *notification = NULL;
@@ -568,7 +570,14 @@ enum bt_notification_iterator_status common_consume(
        bool do_append_test_event = true;
        BT_ASSERT(notif_iter);
 
-       ret = bt_notification_iterator_next(notif_iter);
+       if (is_output_port_notif_iter) {
+               ret = bt_output_port_notification_iterator_next(notif_iter,
+                       &notification);
+       } else {
+               ret = bt_private_connection_notification_iterator_next(
+                       notif_iter, &notification);
+       }
+
        if (ret < 0) {
                do_append_test_event = false;
                goto end;
@@ -584,8 +593,6 @@ enum bt_notification_iterator_status common_consume(
                break;
        }
 
-       notification = bt_notification_iterator_get_notification(
-               notif_iter);
        BT_ASSERT(notification);
 
        switch (bt_notification_get_type(notification)) {
@@ -656,7 +663,7 @@ enum bt_component_status sink_consume(
        enum bt_notification_iterator_status it_ret;
 
        BT_ASSERT(user_data && user_data->notif_iter);
-       it_ret = common_consume(user_data->notif_iter);
+       it_ret = common_consume(user_data->notif_iter, false);
 
        if (it_ret < 0) {
                ret = BT_COMPONENT_STATUS_ERROR;
@@ -899,7 +906,7 @@ void test_output_port_notification_iterator(void)
 
        /* Consume the notification iterator */
        while (iter_status == BT_NOTIFICATION_ITERATOR_STATUS_OK) {
-               iter_status = common_consume(notif_iter);
+               iter_status = common_consume(notif_iter, true);
        }
 
        ok(iter_status == BT_NOTIFICATION_ITERATOR_STATUS_END,
@@ -914,40 +921,6 @@ void test_output_port_notification_iterator(void)
        bt_put(notif_iter);
 }
 
-static
-void test_output_port_notification_iterator_cannot_consume(void)
-{
-       struct bt_component *src_comp;
-       struct bt_notification_iterator *notif_iter;
-       struct bt_port *upstream_port;
-
-       clear_test_events();
-       current_test = TEST_OUTPUT_PORT_NOTIFICATION_ITERATOR;
-       diag("test: cannot consume graph with existing output port notification iterator");
-       BT_ASSERT(!graph);
-       graph = bt_graph_create();
-       BT_ASSERT(graph);
-       create_source_sink(graph, &src_comp, NULL);
-
-       /* Create notification iterator on source's output port */
-       upstream_port = bt_component_source_get_output_port_by_name(src_comp, "out");
-       notif_iter = bt_output_port_notification_iterator_create(upstream_port,
-               NULL);
-       BT_ASSERT(notif_iter);
-       bt_put(upstream_port);
-
-       /*
-        * This should fail because the graph is now managed by the
-        * notification iterator.
-        */
-       ok(bt_graph_run(graph) == BT_GRAPH_STATUS_CANNOT_CONSUME,
-               "bt_graph_run() returns BT_GRAPH_STATUS_CANNOT_CONSUME when there's an output port notification iterator");
-
-       bt_put(src_comp);
-       BT_PUT(graph);
-       bt_put(notif_iter);
-}
-
 #define DEBUG_ENV_VAR  "TEST_BT_NOTIFICATION_ITERATOR_DEBUG"
 
 int main(int argc, char **argv)
@@ -960,7 +933,6 @@ int main(int argc, char **argv)
        init_static_data();
        test_no_auto_notifs();
        test_output_port_notification_iterator();
-       test_output_port_notification_iterator_cannot_consume();
        fini_static_data();
        return exit_status();
 }
This page took 0.026169 seconds and 4 git commands to generate.