From 8cc5f12befb744624f1683cda7d979d7c6cff4a5 Mon Sep 17 00:00:00 2001 From: Philippe Proulx Date: Thu, 6 Jun 2019 17:39:37 -0400 Subject: [PATCH] lib: make precondition failure messages more clear on message creation Suggested-by: Simon Marchi Signed-off-by: Philippe Proulx Change-Id: If1486d9bbb3fad02235ce14f53a974e57283fc1b Reviewed-on: https://review.lttng.org/c/babeltrace/+/1390 Reviewed-by: Simon Marchi --- lib/graph/message/discarded-items.c | 22 ++++++++++++++-------- lib/graph/message/packet.c | 21 +++++++++++++-------- 2 files changed, 27 insertions(+), 16 deletions(-) diff --git a/lib/graph/message/discarded-items.c b/lib/graph/message/discarded-items.c index 5f7108f8..36bdc368 100644 --- a/lib/graph/message/discarded-items.c +++ b/lib/graph/message/discarded-items.c @@ -70,7 +70,7 @@ struct bt_message *create_discarded_items_message( struct bt_message_discarded_items *message; struct bt_stream_class *stream_class; bool has_support; - bool has_default_clock_snapshots; + bool need_cs; BT_ASSERT_PRE_NON_NULL(self_msg_iter, "Message iterator"); BT_ASSERT_PRE_NON_NULL(stream, "Stream"); @@ -79,22 +79,28 @@ struct bt_message *create_discarded_items_message( if (type == BT_MESSAGE_TYPE_DISCARDED_EVENTS) { has_support = stream_class->supports_discarded_events; - has_default_clock_snapshots = - stream_class->discarded_events_have_default_clock_snapshots; + need_cs = stream_class->discarded_events_have_default_clock_snapshots; } else { has_support = stream_class->supports_discarded_packets; - has_default_clock_snapshots = - stream_class->discarded_packets_have_default_clock_snapshots; + need_cs = stream_class->discarded_packets_have_default_clock_snapshots; } BT_ASSERT_PRE(has_support, "Stream class does not support discarded events or packets: " "type=%s, %![stream-]+s, %![sc-]+S", bt_message_type_string(type), stream, stream_class); - BT_ASSERT_PRE((with_cs && has_default_clock_snapshots) || - (!with_cs && !has_default_clock_snapshots), + BT_ASSERT_PRE(need_cs ? with_cs : true, "Unexpected stream class configuration when creating " - "a discarded events or packets message: " + "a discarded events or discarded packets message: " + "default clock snapshots are needed, but none was provided: " + "type=%s, %![stream-]+s, %![sc-]+S, with-cs=%d, " + "cs-begin-val=%" PRIu64 ", cs-end-val=%" PRIu64, + bt_message_type_string(type), stream, stream_class, + with_cs, beginning_raw_value, end_raw_value); + BT_ASSERT_PRE(!need_cs ? !with_cs : true, + "Unexpected stream class configuration when creating " + "a discarded events or discarded packets message: " + "no default clock snapshots are needed, but two were provided: " "type=%s, %![stream-]+s, %![sc-]+S, with-cs=%d, " "cs-begin-val=%" PRIu64 ", cs-end-val=%" PRIu64, bt_message_type_string(type), stream, stream_class, diff --git a/lib/graph/message/packet.c b/lib/graph/message/packet.c index abaa7c7f..9ed9a0c4 100644 --- a/lib/graph/message/packet.c +++ b/lib/graph/message/packet.c @@ -87,7 +87,7 @@ struct bt_message *create_packet_message( struct bt_message_packet *message = NULL; struct bt_stream *stream; struct bt_stream_class *stream_class; - bool packet_has_default_clock_snapshot; + bool need_cs; BT_ASSERT(msg_iter); BT_ASSERT_PRE_NON_NULL(packet, "Packet"); @@ -97,21 +97,26 @@ struct bt_message *create_packet_message( BT_ASSERT(stream_class); if (pool == &msg_iter->graph->packet_begin_msg_pool) { - packet_has_default_clock_snapshot = - stream_class->packets_have_beginning_default_clock_snapshot; + need_cs = stream_class->packets_have_beginning_default_clock_snapshot; } else { - packet_has_default_clock_snapshot = - stream_class->packets_have_end_default_clock_snapshot; + need_cs = stream_class->packets_have_end_default_clock_snapshot; } /* * `packet_has_default_clock_snapshot` implies that the stream * class has a default clock class (precondition). */ - BT_ASSERT_PRE((with_cs && packet_has_default_clock_snapshot) || - (!with_cs && !packet_has_default_clock_snapshot), + BT_ASSERT_PRE(need_cs ? with_cs : true, "Unexpected stream class configuration when creating " - "a packet beginning or end message: ", + "a packet beginning or end message: " + "a default clock snapshot is needed, but none was provided: " + "%![stream-]+s, %![sc-]+S, with-cs=%d, " + "cs-val=%" PRIu64, + stream, stream_class, with_cs, raw_value); + BT_ASSERT_PRE(!need_cs ? !with_cs : true, + "Unexpected stream class configuration when creating " + "a packet beginning or end message: " + "no default clock snapshot is needed, but one was provided: " "%![stream-]+s, %![sc-]+S, with-cs=%d, " "cs-val=%" PRIu64, stream, stream_class, with_cs, raw_value); -- 2.34.1