/*
- * test-ctf-writer.c
+ * test_ctf_writer.c
*
* CTF Writer test
*
- * Copyright 2013 - 2015 - Jérémie Galarneau <jeremie.galarneau@efficios.com>
+ * Copyright 2013 - 2017 - Jérémie Galarneau <jeremie.galarneau@efficios.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
#define DEFAULT_CLOCK_TIME 0
#define DEFAULT_CLOCK_VALUE 0
-#define NR_TESTS 600
+#define NR_TESTS 602
static int64_t current_time = 42;
enum_field = bt_ctf_field_create(ep_enum_field_type);
assert(enum_field);
- ret_char = bt_ctf_field_enumeration_get_single_mapping_name(NULL);
- ok(!ret_char, "bt_ctf_field_enumeration_get_single_mapping_name handles NULL correctly");
- ret_char = bt_ctf_field_enumeration_get_single_mapping_name(enum_field);
- ok(!ret_char, "bt_ctf_field_enumeration_get_single_mapping_name returns NULL if the enumeration's container field is unset");
+ iter = bt_ctf_field_enumeration_get_mappings(NULL);
+ ok(!iter, "bt_ctf_field_enumeration_get_mappings handles NULL correctly");
+ iter = bt_ctf_field_enumeration_get_mappings(enum_field);
+ ok(!iter, "bt_ctf_field_enumeration_get_mappings returns NULL if the enumeration's container field is unset");
enum_container_field = bt_ctf_field_enumeration_get_container(
enum_field);
ok(bt_ctf_field_signed_integer_set_value(
enum_container_field, -42) == 0,
"Set signed enumeration container value");
- ret_char = bt_ctf_field_enumeration_get_single_mapping_name(enum_field);
+ iter = bt_ctf_field_enumeration_get_mappings(enum_field);
+ ok(iter, "bt_ctf_field_enumeration_get_mappings returns an iterator to matching mappings");
+ ret = bt_ctf_field_type_enumeration_mapping_iterator_get_signed(iter, &ret_char, NULL, NULL);
+ ok(!ret && ret_char, "bt_ctf_field_type_enumeration_mapping_iterator_get_signed return a mapping name");
ok(!strcmp(ret_char, mapping_name_negative_test),
"bt_ctf_field_enumeration_get_single_mapping_name returns the correct mapping name with an signed container");
ret = bt_ctf_event_set_payload(simple_event, "enum_field", enum_field);
assert(!ret);
+ BT_PUT(iter);
enum_field_unsigned = bt_ctf_field_create(ep_enum_field_unsigned_type);
assert(enum_field_unsigned);
ret = bt_ctf_event_set_payload(simple_event, "enum_field_unsigned",
enum_field_unsigned);
assert(!ret);
- ret_char = bt_ctf_field_enumeration_get_single_mapping_name(enum_field_unsigned);
+ iter = bt_ctf_field_enumeration_get_mappings(enum_field_unsigned);
+ assert(iter);
+ (void) bt_ctf_field_type_enumeration_mapping_iterator_get_unsigned(iter, &ret_char, NULL, NULL);
ok(ret_char && !strcmp(ret_char, mapping_name_test),
- "bt_ctf_field_enumeration_get_single_mapping_name returns the correct mapping name with an unsigned container");
+ "bt_ctf_field_type_enumeration_mapping_iterator_get_unsigned returns the correct mapping name with an unsigned container");
ok(bt_ctf_clock_set_time(clock, current_time) == 0, "Set clock time");
bt_put(ep_integer_field_type);
bt_put(ep_enum_field_type);
bt_put(ep_enum_field_unsigned_type);
+ bt_put(iter);
}
static
struct bt_ctf_field *a_3_copy = NULL;
struct bt_ctf_field *a_4_copy = NULL;
struct bt_ctf_field *strct_copy = NULL;
+ struct bt_ctf_field_type_enumeration_mapping_iterator *e_iter = NULL;
uint64_t uint64_t_val;
const char *str_val;
double double_val;
"bt_ctf_field_copy creates a valid enum's integer field copy");
/* validate e copy */
- str_val = bt_ctf_field_enumeration_get_single_mapping_name(e_copy);
+ e_iter = bt_ctf_field_enumeration_get_mappings(e_copy);
+ (void) bt_ctf_field_type_enumeration_mapping_iterator_get_signed(e_iter,
+ &str_val, NULL, NULL);
ok(str_val && !strcmp(str_val, "LABEL2"),
"bt_ctf_field_copy creates a valid enum field copy");
bt_put(a_3_copy);
bt_put(a_4_copy);
bt_put(strct_copy);
+ bt_put(e_iter);
}
static