ctf: append error causes when returning errors
[babeltrace.git] / src / plugins / ctf / common / metadata / ctf-meta-validate.c
index 8f7b4790c7e61dd95863f34f88aebc1bad58d25a..da5c95c27ec0908361be5a7bf55dffc91882d7fb 100644 (file)
@@ -1,18 +1,11 @@
 /*
- * Copyright 2018 - Philippe Proulx <pproulx@efficios.com>
+ * SPDX-License-Identifier: MIT
  *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
+ * Copyright 2018 Philippe Proulx <pproulx@efficios.com>
  */
 
 #define BT_COMP_LOG_SELF_COMP (log_cfg->self_comp)
+#define BT_COMP_LOG_SELF_COMP_CLASS (log_cfg->self_comp_class)
 #define BT_LOG_OUTPUT_LEVEL (log_cfg->log_level)
 #define BT_LOG_TAG "PLUGIN/CTF/META/VALIDATE"
 #include "logging/comp-logging.h"
@@ -45,7 +38,7 @@ int validate_stream_class(struct ctf_stream_class *sc,
        if (fc) {
                if (fc->type != CTF_FIELD_CLASS_TYPE_INT &&
                                fc->type != CTF_FIELD_CLASS_TYPE_ENUM) {
-                       BT_COMP_LOGE_STR("Invalid packet context field class: "
+                       _BT_COMP_OR_COMP_CLASS_LOGE_APPEND_CAUSE("Invalid packet context field class: "
                                "`timestamp_begin` member is not an integer field class.");
                        goto invalid;
                }
@@ -53,7 +46,7 @@ int validate_stream_class(struct ctf_stream_class *sc,
                int_fc = (void *) fc;
 
                if (int_fc->is_signed) {
-                       BT_COMP_LOGE_STR("Invalid packet context field class: "
+                       _BT_COMP_OR_COMP_CLASS_LOGE_APPEND_CAUSE("Invalid packet context field class: "
                                "`timestamp_begin` member is signed.");
                        goto invalid;
                }
@@ -64,7 +57,7 @@ int validate_stream_class(struct ctf_stream_class *sc,
        if (fc) {
                if (fc->type != CTF_FIELD_CLASS_TYPE_INT &&
                                fc->type != CTF_FIELD_CLASS_TYPE_ENUM) {
-                       BT_COMP_LOGE_STR("Invalid packet context field class: "
+                       _BT_COMP_OR_COMP_CLASS_LOGE_APPEND_CAUSE("Invalid packet context field class: "
                                "`timestamp_end` member is not an integer field class.");
                        goto invalid;
                }
@@ -72,7 +65,7 @@ int validate_stream_class(struct ctf_stream_class *sc,
                int_fc = (void *) fc;
 
                if (int_fc->is_signed) {
-                       BT_COMP_LOGE_STR("Invalid packet context field class: "
+                       _BT_COMP_OR_COMP_CLASS_LOGE_APPEND_CAUSE("Invalid packet context field class: "
                                "`timestamp_end` member is signed.");
                        goto invalid;
                }
@@ -83,7 +76,7 @@ int validate_stream_class(struct ctf_stream_class *sc,
        if (fc) {
                if (fc->type != CTF_FIELD_CLASS_TYPE_INT &&
                                fc->type != CTF_FIELD_CLASS_TYPE_ENUM) {
-                       BT_COMP_LOGE_STR("Invalid packet context field class: "
+                       _BT_COMP_OR_COMP_CLASS_LOGE_APPEND_CAUSE("Invalid packet context field class: "
                                "`events_discarded` member is not an integer field class.");
                        goto invalid;
                }
@@ -91,7 +84,7 @@ int validate_stream_class(struct ctf_stream_class *sc,
                int_fc = (void *) fc;
 
                if (int_fc->is_signed) {
-                       BT_COMP_LOGE_STR("Invalid packet context field class: "
+                       _BT_COMP_OR_COMP_CLASS_LOGE_APPEND_CAUSE("Invalid packet context field class: "
                                "`events_discarded` member is signed.");
                        goto invalid;
                }
@@ -102,7 +95,7 @@ int validate_stream_class(struct ctf_stream_class *sc,
        if (fc) {
                if (fc->type != CTF_FIELD_CLASS_TYPE_INT &&
                                fc->type != CTF_FIELD_CLASS_TYPE_ENUM) {
-                       BT_COMP_LOGE_STR("Invalid packet context field class: "
+                       _BT_COMP_OR_COMP_CLASS_LOGE_APPEND_CAUSE("Invalid packet context field class: "
                                "`packet_seq_num` member is not an integer field class.");
                        goto invalid;
                }
@@ -110,7 +103,7 @@ int validate_stream_class(struct ctf_stream_class *sc,
                int_fc = (void *) fc;
 
                if (int_fc->is_signed) {
-                       BT_COMP_LOGE_STR("Invalid packet context field class: "
+                       _BT_COMP_OR_COMP_CLASS_LOGE_APPEND_CAUSE("Invalid packet context field class: "
                                "`packet_seq_num` member is signed.");
                        goto invalid;
                }
@@ -121,7 +114,7 @@ int validate_stream_class(struct ctf_stream_class *sc,
        if (fc) {
                if (fc->type != CTF_FIELD_CLASS_TYPE_INT &&
                                fc->type != CTF_FIELD_CLASS_TYPE_ENUM) {
-                       BT_COMP_LOGE_STR("Invalid packet context field class: "
+                       _BT_COMP_OR_COMP_CLASS_LOGE_APPEND_CAUSE("Invalid packet context field class: "
                                "`packet_size` member is not an integer field class.");
                        goto invalid;
                }
@@ -129,7 +122,7 @@ int validate_stream_class(struct ctf_stream_class *sc,
                int_fc = (void *) fc;
 
                if (int_fc->is_signed) {
-                       BT_COMP_LOGE_STR("Invalid packet context field class: "
+                       _BT_COMP_OR_COMP_CLASS_LOGE_APPEND_CAUSE("Invalid packet context field class: "
                                "`packet_size` member is signed.");
                        goto invalid;
                }
@@ -140,7 +133,7 @@ int validate_stream_class(struct ctf_stream_class *sc,
        if (fc) {
                if (fc->type != CTF_FIELD_CLASS_TYPE_INT &&
                                fc->type != CTF_FIELD_CLASS_TYPE_ENUM) {
-                       BT_COMP_LOGE_STR("Invalid packet context field class: "
+                       _BT_COMP_OR_COMP_CLASS_LOGE_APPEND_CAUSE("Invalid packet context field class: "
                                "`content_size` member is not an integer field class.");
                        goto invalid;
                }
@@ -148,7 +141,7 @@ int validate_stream_class(struct ctf_stream_class *sc,
                int_fc = (void *) fc;
 
                if (int_fc->is_signed) {
-                       BT_COMP_LOGE_STR("Invalid packet context field class: "
+                       _BT_COMP_OR_COMP_CLASS_LOGE_APPEND_CAUSE("Invalid packet context field class: "
                                "`content_size` member is signed.");
                        goto invalid;
                }
@@ -159,7 +152,7 @@ int validate_stream_class(struct ctf_stream_class *sc,
        if (fc) {
                if (fc->type != CTF_FIELD_CLASS_TYPE_INT &&
                                fc->type != CTF_FIELD_CLASS_TYPE_ENUM) {
-                       BT_COMP_LOGE_STR("Invalid event header field class: "
+                       _BT_COMP_OR_COMP_CLASS_LOGE_APPEND_CAUSE("Invalid event header field class: "
                                "`id` member is not an integer field class.");
                        goto invalid;
                }
@@ -167,13 +160,13 @@ int validate_stream_class(struct ctf_stream_class *sc,
                int_fc = (void *) fc;
 
                if (int_fc->is_signed) {
-                       BT_COMP_LOGE_STR("Invalid event header field class: "
+                       _BT_COMP_OR_COMP_CLASS_LOGE_APPEND_CAUSE("Invalid event header field class: "
                                "`id` member is signed.");
                        goto invalid;
                }
        } else {
                if (sc->event_classes->len > 1) {
-                       BT_COMP_LOGE_STR("Invalid event header field class: "
+                       _BT_COMP_OR_COMP_CLASS_LOGE_APPEND_CAUSE("Invalid event header field class: "
                                "missing `id` member as there's "
                                "more than one event class.");
                        goto invalid;
@@ -209,14 +202,14 @@ int ctf_trace_class_validate(struct ctf_trace_class *ctf_tc,
                                        0);
 
                        if (named_fc->fc != fc) {
-                               BT_COMP_LOGE_STR("Invalid packet header field class: "
+                               _BT_COMP_OR_COMP_CLASS_LOGE_APPEND_CAUSE("Invalid packet header field class: "
                                        "`magic` member is not the first member.");
                                goto invalid;
                        }
 
                        if (fc->type != CTF_FIELD_CLASS_TYPE_INT &&
                                        fc->type != CTF_FIELD_CLASS_TYPE_ENUM) {
-                               BT_COMP_LOGE_STR("Invalid packet header field class: "
+                               _BT_COMP_OR_COMP_CLASS_LOGE_APPEND_CAUSE("Invalid packet header field class: "
                                        "`magic` member is not an integer field class.");
                                goto invalid;
                        }
@@ -224,13 +217,13 @@ int ctf_trace_class_validate(struct ctf_trace_class *ctf_tc,
                        int_fc = (void *) fc;
 
                        if (int_fc->is_signed) {
-                               BT_COMP_LOGE_STR("Invalid packet header field class: "
+                               _BT_COMP_OR_COMP_CLASS_LOGE_APPEND_CAUSE("Invalid packet header field class: "
                                        "`magic` member is signed.");
                                goto invalid;
                        }
 
                        if (int_fc->base.size != 32) {
-                               BT_COMP_LOGE_STR("Invalid packet header field class: "
+                               _BT_COMP_OR_COMP_CLASS_LOGE_APPEND_CAUSE("Invalid packet header field class: "
                                        "`magic` member is not 32-bit.");
                                goto invalid;
                        }
@@ -241,7 +234,7 @@ int ctf_trace_class_validate(struct ctf_trace_class *ctf_tc,
                if (fc) {
                        if (fc->type != CTF_FIELD_CLASS_TYPE_INT &&
                                        fc->type != CTF_FIELD_CLASS_TYPE_ENUM) {
-                               BT_COMP_LOGE_STR("Invalid packet header field class: "
+                               _BT_COMP_OR_COMP_CLASS_LOGE_APPEND_CAUSE("Invalid packet header field class: "
                                        "`stream_id` member is not an integer field class.");
                                goto invalid;
                        }
@@ -249,13 +242,13 @@ int ctf_trace_class_validate(struct ctf_trace_class *ctf_tc,
                        int_fc = (void *) fc;
 
                        if (int_fc->is_signed) {
-                               BT_COMP_LOGE_STR("Invalid packet header field class: "
+                               _BT_COMP_OR_COMP_CLASS_LOGE_APPEND_CAUSE("Invalid packet header field class: "
                                        "`stream_id` member is signed.");
                                goto invalid;
                        }
                } else {
                        if (ctf_tc->stream_classes->len > 1) {
-                               BT_COMP_LOGE_STR("Invalid packet header field class: "
+                               _BT_COMP_OR_COMP_CLASS_LOGE_APPEND_CAUSE("Invalid packet header field class: "
                                        "missing `stream_id` member as there's "
                                        "more than one stream class.");
                                goto invalid;
@@ -268,7 +261,7 @@ int ctf_trace_class_validate(struct ctf_trace_class *ctf_tc,
                if (fc) {
                        if (fc->type != CTF_FIELD_CLASS_TYPE_INT &&
                                        fc->type != CTF_FIELD_CLASS_TYPE_ENUM) {
-                               BT_COMP_LOGE_STR("Invalid packet header field class: "
+                               _BT_COMP_OR_COMP_CLASS_LOGE_APPEND_CAUSE("Invalid packet header field class: "
                                        "`stream_instance_id` member is not an integer field class.");
                                goto invalid;
                        }
@@ -276,7 +269,7 @@ int ctf_trace_class_validate(struct ctf_trace_class *ctf_tc,
                        int_fc = (void *) fc;
 
                        if (int_fc->is_signed) {
-                               BT_COMP_LOGE_STR("Invalid packet header field class: "
+                               _BT_COMP_OR_COMP_CLASS_LOGE_APPEND_CAUSE("Invalid packet header field class: "
                                        "`stream_instance_id` member is signed.");
                                goto invalid;
                        }
@@ -288,7 +281,7 @@ int ctf_trace_class_validate(struct ctf_trace_class *ctf_tc,
                        struct ctf_field_class_array *array_fc = (void *) fc;
 
                        if (fc->type != CTF_FIELD_CLASS_TYPE_ARRAY) {
-                               BT_COMP_LOGE_STR("Invalid packet header field class: "
+                               _BT_COMP_OR_COMP_CLASS_LOGE_APPEND_CAUSE("Invalid packet header field class: "
                                        "`uuid` member is not an array field class.");
                                goto invalid;
                        }
@@ -296,13 +289,13 @@ int ctf_trace_class_validate(struct ctf_trace_class *ctf_tc,
                        array_fc = (void *) fc;
 
                        if (array_fc->length != 16) {
-                               BT_COMP_LOGE_STR("Invalid packet header field class: "
+                               _BT_COMP_OR_COMP_CLASS_LOGE_APPEND_CAUSE("Invalid packet header field class: "
                                        "`uuid` member is not a 16-element array field class.");
                                goto invalid;
                        }
 
                        if (array_fc->base.elem_fc->type != CTF_FIELD_CLASS_TYPE_INT) {
-                               BT_COMP_LOGE_STR("Invalid packet header field class: "
+                               _BT_COMP_OR_COMP_CLASS_LOGE_APPEND_CAUSE("Invalid packet header field class: "
                                        "`uuid` member's element field class is not "
                                        "an integer field class.");
                                goto invalid;
@@ -311,21 +304,21 @@ int ctf_trace_class_validate(struct ctf_trace_class *ctf_tc,
                        int_fc = (void *) array_fc->base.elem_fc;
 
                        if (int_fc->is_signed) {
-                               BT_COMP_LOGE_STR("Invalid packet header field class: "
+                               _BT_COMP_OR_COMP_CLASS_LOGE_APPEND_CAUSE("Invalid packet header field class: "
                                        "`uuid` member's element field class "
                                        "is a signed integer field class.");
                                goto invalid;
                        }
 
                        if (int_fc->base.size != 8) {
-                               BT_COMP_LOGE_STR("Invalid packet header field class: "
+                               _BT_COMP_OR_COMP_CLASS_LOGE_APPEND_CAUSE("Invalid packet header field class: "
                                        "`uuid` member's element field class "
                                        "is not an 8-bit integer field class.");
                                goto invalid;
                        }
 
                        if (int_fc->base.base.alignment != 8) {
-                               BT_COMP_LOGE_STR("Invalid packet header field class: "
+                               _BT_COMP_OR_COMP_CLASS_LOGE_APPEND_CAUSE("Invalid packet header field class: "
                                        "`uuid` member's element field class's "
                                        "alignment is not 8.");
                                goto invalid;
@@ -339,7 +332,7 @@ int ctf_trace_class_validate(struct ctf_trace_class *ctf_tc,
 
                ret = validate_stream_class(sc, log_cfg);
                if (ret) {
-                       BT_COMP_LOGE("Invalid stream class: sc-id=%" PRIu64, sc->id);
+                       _BT_COMP_OR_COMP_CLASS_LOGE_APPEND_CAUSE("Invalid stream class: sc-id=%" PRIu64, sc->id);
                        goto invalid;
                }
        }
This page took 0.029189 seconds and 4 git commands to generate.