#endif
typedef enum bt_error_cause_actor_type {
- BT_ERROR_CAUSE_ACTOR_TYPE_UNKNOWN = 0,
- BT_ERROR_CAUSE_ACTOR_TYPE_COMPONENT = 1,
- BT_ERROR_CAUSE_ACTOR_TYPE_COMPONENT_CLASS = 2,
- BT_ERROR_CAUSE_ACTOR_TYPE_MESSAGE_ITERATOR = 3,
+ BT_ERROR_CAUSE_ACTOR_TYPE_UNKNOWN = 1 << 0,
+ BT_ERROR_CAUSE_ACTOR_TYPE_COMPONENT = 1 << 1,
+ BT_ERROR_CAUSE_ACTOR_TYPE_COMPONENT_CLASS = 1 << 2,
+ BT_ERROR_CAUSE_ACTOR_TYPE_MESSAGE_ITERATOR = 1 << 3,
} bt_error_cause_actor_type;
extern
#endif
typedef enum bt_component_class_type {
- BT_COMPONENT_CLASS_TYPE_SOURCE = 0,
- BT_COMPONENT_CLASS_TYPE_FILTER = 1,
- BT_COMPONENT_CLASS_TYPE_SINK = 2,
+ BT_COMPONENT_CLASS_TYPE_SOURCE = 1 << 0,
+ BT_COMPONENT_CLASS_TYPE_FILTER = 1 << 1,
+ BT_COMPONENT_CLASS_TYPE_SINK = 1 << 2,
} bt_component_class_type;
extern const char *bt_component_class_get_name(
* Message types. Unhandled message types should be ignored.
*/
typedef enum bt_message_type {
- BT_MESSAGE_TYPE_EVENT = 0,
- BT_MESSAGE_TYPE_MESSAGE_ITERATOR_INACTIVITY = 1,
- BT_MESSAGE_TYPE_STREAM_BEGINNING = 2,
- BT_MESSAGE_TYPE_STREAM_END = 3,
- BT_MESSAGE_TYPE_PACKET_BEGINNING = 4,
- BT_MESSAGE_TYPE_PACKET_END = 5,
- BT_MESSAGE_TYPE_DISCARDED_EVENTS = 6,
- BT_MESSAGE_TYPE_DISCARDED_PACKETS = 7,
+ BT_MESSAGE_TYPE_EVENT = 1 << 0,
+ BT_MESSAGE_TYPE_MESSAGE_ITERATOR_INACTIVITY = 1 << 1,
+ BT_MESSAGE_TYPE_STREAM_BEGINNING = 1 << 2,
+ BT_MESSAGE_TYPE_STREAM_END = 1 << 3,
+ BT_MESSAGE_TYPE_PACKET_BEGINNING = 1 << 4,
+ BT_MESSAGE_TYPE_PACKET_END = 1 << 5,
+ BT_MESSAGE_TYPE_DISCARDED_EVENTS = 1 << 6,
+ BT_MESSAGE_TYPE_DISCARDED_PACKETS = 1 << 7,
} bt_message_type;
/**
#endif
typedef enum bt_port_type {
- BT_PORT_TYPE_INPUT = 0,
- BT_PORT_TYPE_OUTPUT = 1,
+ BT_PORT_TYPE_INPUT = 1 << 0,
+ BT_PORT_TYPE_OUTPUT = 1 << 1,
} bt_port_type;
extern const char *bt_port_get_name(const bt_port *port);
#endif
typedef enum bt_field_class_type {
- BT_FIELD_CLASS_TYPE_BOOL = 0,
- BT_FIELD_CLASS_TYPE_BIT_ARRAY = 1,
- BT_FIELD_CLASS_TYPE_UNSIGNED_INTEGER = 2,
- BT_FIELD_CLASS_TYPE_SIGNED_INTEGER = 3,
- BT_FIELD_CLASS_TYPE_UNSIGNED_ENUMERATION = 4,
- BT_FIELD_CLASS_TYPE_SIGNED_ENUMERATION = 5,
- BT_FIELD_CLASS_TYPE_SINGLE_PRECISION_REAL = 6,
- BT_FIELD_CLASS_TYPE_DOUBLE_PRECISION_REAL = 7,
- BT_FIELD_CLASS_TYPE_STRING = 8,
- BT_FIELD_CLASS_TYPE_STRUCTURE = 9,
- BT_FIELD_CLASS_TYPE_STATIC_ARRAY = 10,
- BT_FIELD_CLASS_TYPE_DYNAMIC_ARRAY_WITHOUT_LENGTH_FIELD = 11,
- BT_FIELD_CLASS_TYPE_DYNAMIC_ARRAY_WITH_LENGTH_FIELD = 12,
- BT_FIELD_CLASS_TYPE_OPTION_WITHOUT_SELECTOR_FIELD = 13,
- BT_FIELD_CLASS_TYPE_OPTION_WITH_BOOL_SELECTOR_FIELD = 14,
- BT_FIELD_CLASS_TYPE_OPTION_WITH_UNSIGNED_INTEGER_SELECTOR_FIELD = 15,
- BT_FIELD_CLASS_TYPE_OPTION_WITH_SIGNED_INTEGER_SELECTOR_FIELD = 16,
- BT_FIELD_CLASS_TYPE_VARIANT_WITHOUT_SELECTOR_FIELD = 17,
- BT_FIELD_CLASS_TYPE_VARIANT_WITH_UNSIGNED_INTEGER_SELECTOR_FIELD = 18,
- BT_FIELD_CLASS_TYPE_VARIANT_WITH_SIGNED_INTEGER_SELECTOR_FIELD = 19,
+ BT_FIELD_CLASS_TYPE_BOOL = 1ULL << 0,
+ BT_FIELD_CLASS_TYPE_BIT_ARRAY = 1ULL << 1,
+ BT_FIELD_CLASS_TYPE_INTEGER = 1ULL << 2,
+ BT_FIELD_CLASS_TYPE_UNSIGNED_INTEGER = (1ULL << 3) | BT_FIELD_CLASS_TYPE_INTEGER,
+ BT_FIELD_CLASS_TYPE_SIGNED_INTEGER = (1ULL << 4) | BT_FIELD_CLASS_TYPE_INTEGER,
+ BT_FIELD_CLASS_TYPE_ENUMERATION = 1ULL << 5,
+ BT_FIELD_CLASS_TYPE_UNSIGNED_ENUMERATION = BT_FIELD_CLASS_TYPE_ENUMERATION | BT_FIELD_CLASS_TYPE_UNSIGNED_INTEGER,
+ BT_FIELD_CLASS_TYPE_SIGNED_ENUMERATION = BT_FIELD_CLASS_TYPE_ENUMERATION | BT_FIELD_CLASS_TYPE_SIGNED_INTEGER,
+ BT_FIELD_CLASS_TYPE_REAL = 1ULL << 6,
+ BT_FIELD_CLASS_TYPE_SINGLE_PRECISION_REAL = (1ULL << 7) | BT_FIELD_CLASS_TYPE_REAL,
+ BT_FIELD_CLASS_TYPE_DOUBLE_PRECISION_REAL = (1ULL << 8) | BT_FIELD_CLASS_TYPE_REAL,
+ BT_FIELD_CLASS_TYPE_STRING = 1ULL << 9,
+ BT_FIELD_CLASS_TYPE_STRUCTURE = 1ULL << 10,
+ BT_FIELD_CLASS_TYPE_ARRAY = 1ULL << 11,
+ BT_FIELD_CLASS_TYPE_STATIC_ARRAY = (1ULL << 12) | BT_FIELD_CLASS_TYPE_ARRAY,
+ BT_FIELD_CLASS_TYPE_DYNAMIC_ARRAY = (1ULL << 13) | BT_FIELD_CLASS_TYPE_ARRAY,
+ BT_FIELD_CLASS_TYPE_DYNAMIC_ARRAY_WITHOUT_LENGTH_FIELD = (1ULL << 14) | BT_FIELD_CLASS_TYPE_DYNAMIC_ARRAY,
+ BT_FIELD_CLASS_TYPE_DYNAMIC_ARRAY_WITH_LENGTH_FIELD = (1ULL << 15) | BT_FIELD_CLASS_TYPE_DYNAMIC_ARRAY,
+ BT_FIELD_CLASS_TYPE_OPTION = 1ULL << 16,
+ BT_FIELD_CLASS_TYPE_OPTION_WITHOUT_SELECTOR_FIELD = (1ULL << 17) | BT_FIELD_CLASS_TYPE_OPTION,
+ BT_FIELD_CLASS_TYPE_OPTION_WITH_SELECTOR_FIELD = (1ULL << 18) | BT_FIELD_CLASS_TYPE_OPTION,
+ BT_FIELD_CLASS_TYPE_OPTION_WITH_BOOL_SELECTOR_FIELD = (1ULL << 19) | BT_FIELD_CLASS_TYPE_OPTION_WITH_SELECTOR_FIELD,
+ BT_FIELD_CLASS_TYPE_OPTION_WITH_INTEGER_SELECTOR_FIELD = (1ULL << 20) | BT_FIELD_CLASS_TYPE_OPTION_WITH_SELECTOR_FIELD,
+ BT_FIELD_CLASS_TYPE_OPTION_WITH_UNSIGNED_INTEGER_SELECTOR_FIELD = (1ULL << 21) | BT_FIELD_CLASS_TYPE_OPTION_WITH_INTEGER_SELECTOR_FIELD,
+ BT_FIELD_CLASS_TYPE_OPTION_WITH_SIGNED_INTEGER_SELECTOR_FIELD = (1ULL << 22) | BT_FIELD_CLASS_TYPE_OPTION_WITH_INTEGER_SELECTOR_FIELD,
+ BT_FIELD_CLASS_TYPE_VARIANT = 1ULL << 23,
+ BT_FIELD_CLASS_TYPE_VARIANT_WITHOUT_SELECTOR_FIELD = (1ULL << 24) | BT_FIELD_CLASS_TYPE_VARIANT,
+ BT_FIELD_CLASS_TYPE_VARIANT_WITH_SELECTOR_FIELD = (1ULL << 25) | BT_FIELD_CLASS_TYPE_VARIANT,
+ BT_FIELD_CLASS_TYPE_VARIANT_WITH_INTEGER_SELECTOR_FIELD = (1ULL << 26) | BT_FIELD_CLASS_TYPE_VARIANT_WITH_SELECTOR_FIELD,
+ BT_FIELD_CLASS_TYPE_VARIANT_WITH_UNSIGNED_INTEGER_SELECTOR_FIELD = (1ULL << 27) | BT_FIELD_CLASS_TYPE_VARIANT_WITH_INTEGER_SELECTOR_FIELD,
+ BT_FIELD_CLASS_TYPE_VARIANT_WITH_SIGNED_INTEGER_SELECTOR_FIELD = (1ULL << 28) | BT_FIELD_CLASS_TYPE_VARIANT_WITH_INTEGER_SELECTOR_FIELD,
+
+ /*
+ * Make sure the enumeration type is a 64-bit integer in case
+ * the project needs field class types in the future.
+ *
+ * This is not part of the API.
+ */
+ __BT_FIELD_CLASS_TYPE_BIG_VALUE = 1ULL << 62,
} bt_field_class_type;
typedef enum bt_field_class_integer_preferred_display_base {
extern bt_field_class_type bt_field_class_get_type(
const bt_field_class *field_class);
+static inline
+bt_bool bt_field_class_type_is(const bt_field_class_type type,
+ const bt_field_class_type type_to_check)
+{
+ return (type & type_to_check) == type_to_check;
+}
+
extern const bt_value *bt_field_class_borrow_user_attributes_const(
const bt_field_class *field_class);
#endif
typedef enum bt_field_path_item_type {
- BT_FIELD_PATH_ITEM_TYPE_INDEX = 0,
- BT_FIELD_PATH_ITEM_TYPE_CURRENT_ARRAY_ELEMENT = 1,
- BT_FIELD_PATH_ITEM_TYPE_CURRENT_OPTION_CONTENT = 2,
+ BT_FIELD_PATH_ITEM_TYPE_INDEX = 1 << 0,
+ BT_FIELD_PATH_ITEM_TYPE_CURRENT_ARRAY_ELEMENT = 1 << 1,
+ BT_FIELD_PATH_ITEM_TYPE_CURRENT_OPTION_CONTENT = 1 << 2,
} bt_field_path_item_type;
typedef enum bt_field_path_scope {
typedef enum bt_value_type {
/// Null value object.
- BT_VALUE_TYPE_NULL = 0,
+ BT_VALUE_TYPE_NULL = 1 << 0,
/// Boolean value object (holds #BT_TRUE or #BT_FALSE).
- BT_VALUE_TYPE_BOOL = 1,
+ BT_VALUE_TYPE_BOOL = 1 << 1,
+
+ BT_VALUE_TYPE_INTEGER = 1 << 2,
/// Unsigned integer value object (holds an unsigned 64-bit integer raw value).
- BT_VALUE_TYPE_UNSIGNED_INTEGER = 2,
+ BT_VALUE_TYPE_UNSIGNED_INTEGER = (1 << 3) | BT_VALUE_TYPE_INTEGER,
/// Signed integer value object (holds a signed 64-bit integer raw value).
- BT_VALUE_TYPE_SIGNED_INTEGER = 3,
+ BT_VALUE_TYPE_SIGNED_INTEGER = (1 << 4) | BT_VALUE_TYPE_INTEGER,
/// Floating point number value object (holds a \c double raw value).
- BT_VALUE_TYPE_REAL = 4,
+ BT_VALUE_TYPE_REAL = 1 << 5,
/// String value object.
- BT_VALUE_TYPE_STRING = 5,
+ BT_VALUE_TYPE_STRING = 1 << 6,
/// Array value object.
- BT_VALUE_TYPE_ARRAY = 6,
+ BT_VALUE_TYPE_ARRAY = 1 << 7,
/// Map value object.
- BT_VALUE_TYPE_MAP = 7,
+ BT_VALUE_TYPE_MAP = 1 << 8,
} bt_value_type;
extern bt_value_type bt_value_get_type(const bt_value *object);
+static inline
+bt_bool bt_value_type_is(const bt_value_type type,
+ const bt_value_type type_to_check)
+{
+ return (type & type_to_check) == type_to_check;
+}
+
static inline
bt_bool bt_value_is_null(const bt_value *object)
{
static
struct bt_field *create_structure_field(struct bt_field_class *);
+
static
struct bt_field *create_static_array_field(struct bt_field_class *);
static
struct bt_field *create_variant_field(struct bt_field_class *);
-static
-struct bt_field *(* const field_create_funcs[])(struct bt_field_class *) = {
- [BT_FIELD_CLASS_TYPE_BOOL] = create_bool_field,
- [BT_FIELD_CLASS_TYPE_BIT_ARRAY] = create_bit_array_field,
- [BT_FIELD_CLASS_TYPE_UNSIGNED_INTEGER] = create_integer_field,
- [BT_FIELD_CLASS_TYPE_SIGNED_INTEGER] = create_integer_field,
- [BT_FIELD_CLASS_TYPE_UNSIGNED_ENUMERATION] = create_integer_field,
- [BT_FIELD_CLASS_TYPE_SIGNED_ENUMERATION] = create_integer_field,
- [BT_FIELD_CLASS_TYPE_SINGLE_PRECISION_REAL] = create_real_field,
- [BT_FIELD_CLASS_TYPE_DOUBLE_PRECISION_REAL] = create_real_field,
- [BT_FIELD_CLASS_TYPE_STRING] = create_string_field,
- [BT_FIELD_CLASS_TYPE_STRUCTURE] = create_structure_field,
- [BT_FIELD_CLASS_TYPE_STATIC_ARRAY] = create_static_array_field,
- [BT_FIELD_CLASS_TYPE_DYNAMIC_ARRAY_WITHOUT_LENGTH_FIELD] = create_dynamic_array_field,
- [BT_FIELD_CLASS_TYPE_DYNAMIC_ARRAY_WITH_LENGTH_FIELD] = create_dynamic_array_field,
- [BT_FIELD_CLASS_TYPE_OPTION_WITHOUT_SELECTOR_FIELD] = create_option_field,
- [BT_FIELD_CLASS_TYPE_OPTION_WITH_BOOL_SELECTOR_FIELD] = create_option_field,
- [BT_FIELD_CLASS_TYPE_OPTION_WITH_UNSIGNED_INTEGER_SELECTOR_FIELD] = create_option_field,
- [BT_FIELD_CLASS_TYPE_OPTION_WITH_SIGNED_INTEGER_SELECTOR_FIELD] = create_option_field,
- [BT_FIELD_CLASS_TYPE_VARIANT_WITHOUT_SELECTOR_FIELD] = create_variant_field,
- [BT_FIELD_CLASS_TYPE_VARIANT_WITH_UNSIGNED_INTEGER_SELECTOR_FIELD] = create_variant_field,
- [BT_FIELD_CLASS_TYPE_VARIANT_WITH_SIGNED_INTEGER_SELECTOR_FIELD] = create_variant_field,
-};
-
static
void destroy_bool_field(struct bt_field *field);
static
void destroy_variant_field(struct bt_field *field);
-static
-void (* const field_destroy_funcs[])(struct bt_field *) = {
- [BT_FIELD_CLASS_TYPE_BOOL] = destroy_bool_field,
- [BT_FIELD_CLASS_TYPE_BIT_ARRAY] = destroy_bit_array_field,
- [BT_FIELD_CLASS_TYPE_UNSIGNED_INTEGER] = destroy_integer_field,
- [BT_FIELD_CLASS_TYPE_SIGNED_INTEGER] = destroy_integer_field,
- [BT_FIELD_CLASS_TYPE_UNSIGNED_ENUMERATION] = destroy_integer_field,
- [BT_FIELD_CLASS_TYPE_SIGNED_ENUMERATION] = destroy_integer_field,
- [BT_FIELD_CLASS_TYPE_SINGLE_PRECISION_REAL] = destroy_real_field,
- [BT_FIELD_CLASS_TYPE_DOUBLE_PRECISION_REAL] = destroy_real_field,
- [BT_FIELD_CLASS_TYPE_STRING] = destroy_string_field,
- [BT_FIELD_CLASS_TYPE_STRUCTURE] = destroy_structure_field,
- [BT_FIELD_CLASS_TYPE_STATIC_ARRAY] = destroy_array_field,
- [BT_FIELD_CLASS_TYPE_DYNAMIC_ARRAY_WITHOUT_LENGTH_FIELD] = destroy_array_field,
- [BT_FIELD_CLASS_TYPE_DYNAMIC_ARRAY_WITH_LENGTH_FIELD] = destroy_array_field,
- [BT_FIELD_CLASS_TYPE_OPTION_WITHOUT_SELECTOR_FIELD] = destroy_option_field,
- [BT_FIELD_CLASS_TYPE_OPTION_WITH_BOOL_SELECTOR_FIELD] = destroy_option_field,
- [BT_FIELD_CLASS_TYPE_OPTION_WITH_UNSIGNED_INTEGER_SELECTOR_FIELD] = destroy_option_field,
- [BT_FIELD_CLASS_TYPE_OPTION_WITH_SIGNED_INTEGER_SELECTOR_FIELD] = destroy_option_field,
- [BT_FIELD_CLASS_TYPE_VARIANT_WITHOUT_SELECTOR_FIELD] = destroy_variant_field,
- [BT_FIELD_CLASS_TYPE_VARIANT_WITH_UNSIGNED_INTEGER_SELECTOR_FIELD] = destroy_variant_field,
- [BT_FIELD_CLASS_TYPE_VARIANT_WITH_SIGNED_INTEGER_SELECTOR_FIELD] = destroy_variant_field,
-};
-
struct bt_field_class *bt_field_borrow_class(struct bt_field *field)
{
BT_ASSERT_PRE_DEV_NON_NULL(field, "Field");
struct bt_field *field = NULL;
BT_ASSERT(fc);
- field = field_create_funcs[fc->type](fc);
+
+ switch (fc->type) {
+ case BT_FIELD_CLASS_TYPE_BOOL:
+ field = create_bool_field(fc);
+ break;
+ case BT_FIELD_CLASS_TYPE_BIT_ARRAY:
+ field = create_bit_array_field(fc);
+ break;
+ case BT_FIELD_CLASS_TYPE_UNSIGNED_INTEGER:
+ case BT_FIELD_CLASS_TYPE_SIGNED_INTEGER:
+ case BT_FIELD_CLASS_TYPE_UNSIGNED_ENUMERATION:
+ case BT_FIELD_CLASS_TYPE_SIGNED_ENUMERATION:
+ field = create_integer_field(fc);
+ break;
+ case BT_FIELD_CLASS_TYPE_SINGLE_PRECISION_REAL:
+ case BT_FIELD_CLASS_TYPE_DOUBLE_PRECISION_REAL:
+ field = create_real_field(fc);
+ break;
+ case BT_FIELD_CLASS_TYPE_STRING:
+ field = create_string_field(fc);
+ break;
+ case BT_FIELD_CLASS_TYPE_STRUCTURE:
+ field = create_structure_field(fc);
+ break;
+ case BT_FIELD_CLASS_TYPE_STATIC_ARRAY:
+ field = create_static_array_field(fc);
+ break;
+ case BT_FIELD_CLASS_TYPE_DYNAMIC_ARRAY_WITHOUT_LENGTH_FIELD:
+ case BT_FIELD_CLASS_TYPE_DYNAMIC_ARRAY_WITH_LENGTH_FIELD:
+ field = create_dynamic_array_field(fc);
+ break;
+ case BT_FIELD_CLASS_TYPE_OPTION_WITHOUT_SELECTOR_FIELD:
+ case BT_FIELD_CLASS_TYPE_OPTION_WITH_BOOL_SELECTOR_FIELD:
+ case BT_FIELD_CLASS_TYPE_OPTION_WITH_UNSIGNED_INTEGER_SELECTOR_FIELD:
+ case BT_FIELD_CLASS_TYPE_OPTION_WITH_SIGNED_INTEGER_SELECTOR_FIELD:
+ field = create_option_field(fc);
+ break;
+ case BT_FIELD_CLASS_TYPE_VARIANT_WITHOUT_SELECTOR_FIELD:
+ case BT_FIELD_CLASS_TYPE_VARIANT_WITH_UNSIGNED_INTEGER_SELECTOR_FIELD:
+ case BT_FIELD_CLASS_TYPE_VARIANT_WITH_SIGNED_INTEGER_SELECTOR_FIELD:
+ field = create_variant_field(fc);
+ break;
+ default:
+ abort();
+ }
+
if (!field) {
BT_LIB_LOGE_APPEND_CAUSE("Cannot create field object from field class: "
"%![fc-]+F", fc);
void bt_field_destroy(struct bt_field *field)
{
BT_ASSERT(field);
- field_destroy_funcs[field->class->type](field);
+
+ switch (field->class->type) {
+ case BT_FIELD_CLASS_TYPE_BOOL:
+ destroy_bool_field(field);
+ break;
+ case BT_FIELD_CLASS_TYPE_BIT_ARRAY:
+ destroy_bit_array_field(field);
+ break;
+ case BT_FIELD_CLASS_TYPE_UNSIGNED_INTEGER:
+ case BT_FIELD_CLASS_TYPE_SIGNED_INTEGER:
+ case BT_FIELD_CLASS_TYPE_UNSIGNED_ENUMERATION:
+ case BT_FIELD_CLASS_TYPE_SIGNED_ENUMERATION:
+ destroy_integer_field(field);
+ break;
+ case BT_FIELD_CLASS_TYPE_SINGLE_PRECISION_REAL:
+ case BT_FIELD_CLASS_TYPE_DOUBLE_PRECISION_REAL:
+ destroy_real_field(field);
+ break;
+ case BT_FIELD_CLASS_TYPE_STRING:
+ destroy_string_field(field);
+ break;
+ case BT_FIELD_CLASS_TYPE_STRUCTURE:
+ destroy_structure_field(field);
+ break;
+ case BT_FIELD_CLASS_TYPE_STATIC_ARRAY:
+ case BT_FIELD_CLASS_TYPE_DYNAMIC_ARRAY_WITHOUT_LENGTH_FIELD:
+ case BT_FIELD_CLASS_TYPE_DYNAMIC_ARRAY_WITH_LENGTH_FIELD:
+ destroy_array_field(field);
+ break;
+ case BT_FIELD_CLASS_TYPE_OPTION_WITHOUT_SELECTOR_FIELD:
+ case BT_FIELD_CLASS_TYPE_OPTION_WITH_BOOL_SELECTOR_FIELD:
+ case BT_FIELD_CLASS_TYPE_OPTION_WITH_UNSIGNED_INTEGER_SELECTOR_FIELD:
+ case BT_FIELD_CLASS_TYPE_OPTION_WITH_SIGNED_INTEGER_SELECTOR_FIELD:
+ destroy_option_field(field);
+ break;
+ case BT_FIELD_CLASS_TYPE_VARIANT_WITHOUT_SELECTOR_FIELD:
+ case BT_FIELD_CLASS_TYPE_VARIANT_WITH_UNSIGNED_INTEGER_SELECTOR_FIELD:
+ case BT_FIELD_CLASS_TYPE_VARIANT_WITH_SIGNED_INTEGER_SELECTOR_FIELD:
+ destroy_variant_field(field);
+ break;
+ default:
+ abort();
+ }
}
static
bt_cli "${stdout}" "${stderr}" help src.ctf.bob
isnt $? 0 "help with unknown component class name"
-grep --silent 'Cannot find component class: plugin-name="ctf", comp-cls-name="bob", comp-cls-type=0' "${stderr}"
+grep --silent 'Cannot find component class: plugin-name="ctf", comp-cls-name="bob", comp-cls-type=1' "${stderr}"
ok $? "help with unknown component class name produces expected error"
grep --silent 'Description: CTF input and output' "${stdout}"