assert-pre-internal.h: add BT_ASSERT_PRE_VALID_INDEX()
[babeltrace.git] / tests / plugins / test-utils-muxer.c
index ea5b46445a160aae4639f1aef6c606fa7ceefb81..d7c582bba38318275251b5a2be52152b20fa3de6 100644 (file)
@@ -73,8 +73,7 @@ static bool debug = false;
 static enum test current_test;
 static GArray *test_events;
 static struct bt_graph *graph;
-static struct bt_clock_class_priority_map *src_cc_prio_map;
-static struct bt_clock_class_priority_map *src_empty_cc_prio_map;
+static struct bt_private_connection_private_notification_iterator *cur_notif_iter;
 static struct bt_clock_class *src_clock_class;
 static struct bt_stream_class *src_stream_class;
 static struct bt_event_class *src_event_class;
@@ -326,13 +325,6 @@ void init_static_data(void)
        BT_ASSERT(ret == 0);
        ret = bt_trace_add_clock_class(trace, src_clock_class);
        BT_ASSERT(ret == 0);
-       src_empty_cc_prio_map = bt_clock_class_priority_map_create();
-       BT_ASSERT(src_empty_cc_prio_map);
-       src_cc_prio_map = bt_clock_class_priority_map_create();
-       BT_ASSERT(src_cc_prio_map);
-       ret = bt_clock_class_priority_map_add_clock_class(src_cc_prio_map,
-               src_clock_class, 0);
-       BT_ASSERT(ret == 0);
        src_stream_class = bt_stream_class_create("my-stream-class");
        BT_ASSERT(src_stream_class);
        ret = bt_stream_class_set_packet_context_field_type(src_stream_class,
@@ -367,22 +359,26 @@ void init_static_data(void)
        BT_ASSERT(ret == 0);
        stream = bt_stream_create(src_stream_class, "stream0", 0);
        BT_ASSERT(stream);
-       src_packet0 = bt_packet_create(stream);
+       src_packet0 = bt_packet_create(stream,
+               BT_PACKET_PREVIOUS_PACKET_AVAILABILITY_NONE, NULL);
        BT_ASSERT(src_packet0);
        bt_put(stream);
        stream = bt_stream_create(src_stream_class, "stream1", 1);
        BT_ASSERT(stream);
-       src_packet1 = bt_packet_create(stream);
+       src_packet1 = bt_packet_create(stream,
+               BT_PACKET_PREVIOUS_PACKET_AVAILABILITY_NONE, NULL);
        BT_ASSERT(src_packet0);
        bt_put(stream);
        stream = bt_stream_create(src_stream_class, "stream2", 2);
        BT_ASSERT(stream);
-       src_packet2 = bt_packet_create(stream);
+       src_packet2 = bt_packet_create(stream,
+               BT_PACKET_PREVIOUS_PACKET_AVAILABILITY_NONE, NULL);
        BT_ASSERT(src_packet0);
        bt_put(stream);
        stream = bt_stream_create(src_stream_class, "stream3", 3);
        BT_ASSERT(stream);
-       src_packet3 = bt_packet_create(stream);
+       src_packet3 = bt_packet_create(stream,
+               BT_PACKET_PREVIOUS_PACKET_AVAILABILITY_NONE, NULL);
        BT_ASSERT(src_packet0);
        bt_put(stream);
 
@@ -399,8 +395,6 @@ void fini_static_data(void)
        g_array_free(test_events, TRUE);
 
        /* Metadata */
-       bt_put(src_empty_cc_prio_map);
-       bt_put(src_cc_prio_map);
        bt_put(src_clock_class);
        bt_put(src_stream_class);
        bt_put(src_event_class);
@@ -507,16 +501,15 @@ enum bt_notification_iterator_status src_iter_init(
 
 static
 struct bt_notification *src_create_event_notif(struct bt_packet *packet,
-               struct bt_clock_class_priority_map *cc_prio_map, int64_t ts_ns)
+               int64_t ts_ns)
 {
        int ret;
        struct bt_event *event;
        struct bt_notification *notif;
-       struct bt_clock_value *clock_value;
        struct bt_field *field;
 
-       notif = bt_notification_event_create(graph, src_event_class,
-               packet, cc_prio_map);
+       notif = bt_notification_event_create(cur_notif_iter,
+               src_event_class, packet);
        BT_ASSERT(notif);
        event = bt_notification_event_borrow_event(notif);
        BT_ASSERT(event);
@@ -526,10 +519,13 @@ struct bt_notification *src_create_event_notif(struct bt_packet *packet,
        BT_ASSERT(field);
        ret = bt_field_integer_unsigned_set_value(field, (uint64_t) ts_ns);
        BT_ASSERT(ret == 0);
-       clock_value = bt_event_borrow_clock_value(event, src_clock_class);
-       BT_ASSERT(clock_value);
-       ret = bt_clock_value_set_value(clock_value, (uint64_t) ts_ns);
-       BT_ASSERT(ret == 0);
+
+       if (ts_ns != UINT64_C(-1)) {
+               ret = bt_event_set_clock_value(event, src_clock_class, (uint64_t) ts_ns,
+                       BT_TRUE);
+               BT_ASSERT(ret == 0);
+       }
+
        return notif;
 }
 
@@ -554,31 +550,33 @@ enum bt_notification_iterator_status src_iter_next_seq(
                status = BT_NOTIFICATION_ITERATOR_STATUS_AGAIN;
                break;
        case SEQ_PACKET_BEGIN:
-               notifs[0] = bt_notification_packet_begin_create(graph,
+               notifs[0] = bt_notification_packet_begin_create(cur_notif_iter,
                                user_data->packet);
                BT_ASSERT(notifs[0]);
                break;
        case SEQ_PACKET_END:
-               notifs[0] = bt_notification_packet_end_create(graph,
+               notifs[0] = bt_notification_packet_end_create(cur_notif_iter,
                                user_data->packet);
                BT_ASSERT(notifs[0]);
                break;
        case SEQ_STREAM_BEGIN:
                stream = bt_packet_get_stream(user_data->packet);
-               notifs[0] = bt_notification_stream_begin_create(graph, stream);
+               notifs[0] = bt_notification_stream_begin_create(cur_notif_iter,
+                       stream);
                BT_ASSERT(notifs[0]);
                bt_put(stream);
                break;
        case SEQ_STREAM_END:
                stream = bt_packet_get_stream(user_data->packet);
-               notifs[0] = bt_notification_stream_end_create(graph, stream);
+               notifs[0] = bt_notification_stream_end_create(cur_notif_iter,
+                       stream);
                BT_ASSERT(notifs[0]);
                bt_put(stream);
                break;
        default:
        {
                notifs[0] = src_create_event_notif(user_data->packet,
-                       src_cc_prio_map, cur_ts_ns);
+                       cur_ts_ns);
                BT_ASSERT(notifs[0]);
                break;
        }
@@ -608,6 +606,7 @@ enum bt_notification_iterator_status src_iter_next(
 
        BT_ASSERT(user_data);
        BT_ASSERT(private_component);
+       cur_notif_iter = priv_iterator;
 
        /*
         * We can always set it to 1: it's not going to be considered
@@ -623,30 +622,31 @@ enum bt_notification_iterator_status src_iter_next(
                                stream = bt_packet_get_stream(user_data->packet);
                                notifs[0] =
                                        bt_notification_stream_begin_create(
-                                               graph, stream);
+                                               cur_notif_iter, stream);
                                bt_put(stream);
                                BT_ASSERT(notifs[0]);
                        } else if (user_data->at == 1) {
                                notifs[0] =
                                        bt_notification_packet_begin_create(
-                                               graph, user_data->packet);
+                                               cur_notif_iter,
+                                               user_data->packet);
                                BT_ASSERT(notifs[0]);
                        } else if (user_data->at < 7) {
                                notifs[0] =
                                        src_create_event_notif(
-                                               user_data->packet,
-                                               src_empty_cc_prio_map, 0);
+                                               user_data->packet, UINT64_C(-1));
                                BT_ASSERT(notifs[0]);
                        } else if (user_data->at == 7) {
                                notifs[0] =
                                        bt_notification_packet_end_create(
-                                               graph, user_data->packet);
+                                               cur_notif_iter,
+                                               user_data->packet);
                                BT_ASSERT(notifs[0]);
                        } else if (user_data->at == 8) {
                                stream = bt_packet_get_stream(user_data->packet);
                                notifs[0] =
                                        bt_notification_stream_end_create(
-                                               graph, stream);
+                                               cur_notif_iter, stream);
                                bt_put(stream);
                                BT_ASSERT(notifs[0]);
                        } else {
@@ -760,33 +760,21 @@ void append_test_event_from_notification(struct bt_notification *notification)
 {
        int ret;
        struct test_event test_event;
+       struct bt_clock_value *cv;
 
        switch (bt_notification_get_type(notification)) {
        case BT_NOTIFICATION_TYPE_EVENT:
        {
                struct bt_event *event;
-               struct bt_clock_class_priority_map *cc_prio_map;
 
                test_event.type = TEST_EV_TYPE_NOTIF_EVENT;
-               cc_prio_map =
-                       bt_notification_event_borrow_clock_class_priority_map(
-                               notification);
-               BT_ASSERT(cc_prio_map);
                event = bt_notification_event_borrow_event(notification);
                BT_ASSERT(event);
+               cv = bt_event_borrow_default_clock_value(event);
 
-               if (bt_clock_class_priority_map_get_clock_class_count(cc_prio_map) > 0) {
-                       struct bt_clock_value *clock_value;
-                       struct bt_clock_class *clock_class =
-                               bt_clock_class_priority_map_borrow_highest_priority_clock_class(
-                                       cc_prio_map);
-
-                       BT_ASSERT(clock_class);
-                       clock_value = bt_event_borrow_clock_value(event,
-                               clock_class);
-                       BT_ASSERT(clock_value);
+               if (cv) {
                        ret = bt_clock_value_get_value_ns_from_epoch(
-                                       clock_value, &test_event.ts_ns);
+                               cv, &test_event.ts_ns);
                        BT_ASSERT(ret == 0);
                } else {
                        test_event.ts_ns = -1;
@@ -796,26 +784,13 @@ void append_test_event_from_notification(struct bt_notification *notification)
        }
        case BT_NOTIFICATION_TYPE_INACTIVITY:
        {
-               struct bt_clock_class_priority_map *cc_prio_map;
-
                test_event.type = TEST_EV_TYPE_NOTIF_INACTIVITY;
-               cc_prio_map = bt_notification_inactivity_borrow_clock_class_priority_map(
+               cv = bt_notification_inactivity_borrow_default_clock_value(
                        notification);
-               BT_ASSERT(cc_prio_map);
-
-               if (bt_clock_class_priority_map_get_clock_class_count(cc_prio_map) > 0) {
-                       struct bt_clock_value *clock_value;
-                       struct bt_clock_class *clock_class =
-                               bt_clock_class_priority_map_borrow_highest_priority_clock_class(
-                                       cc_prio_map);
-
-                       BT_ASSERT(clock_class);
-                       clock_value =
-                               bt_notification_inactivity_borrow_clock_value(
-                                       notification, clock_class);
-                       BT_ASSERT(clock_value);
+
+               if (cv) {
                        ret = bt_clock_value_get_value_ns_from_epoch(
-                                       clock_value, &test_event.ts_ns);
+                                       cv, &test_event.ts_ns);
                        BT_ASSERT(ret == 0);
                } else {
                        test_event.ts_ns = -1;
This page took 0.026926 seconds and 4 git commands to generate.