Add tests for bt_ctf_field_string_append_len()
[babeltrace.git] / tests / lib / test_ctf_writer.c
index dfc918398b17d542a8b1c25c331c3a6f31303b27..3f5c64f279c05b0410ef767f2ae589ece3fd3db8 100644 (file)
@@ -566,7 +566,7 @@ void append_simple_event(struct bt_ctf_stream_class *stream_class,
        bt_ctf_event_set_payload(simple_event, "enum_field_unsigned",
                enum_field_unsigned);
        ret_char = bt_ctf_field_enumeration_get_mapping_name(enum_field_unsigned);
-       ok(!strcmp(ret_char, mapping_name_test),
+       ok(ret_char && !strcmp(ret_char, mapping_name_test),
                "bt_ctf_field_enumeration_get_mapping_name returns the correct mapping name with an unsigned container");
 
        ok(bt_ctf_clock_set_time(clock, current_time) == 0, "Set clock time");
@@ -667,7 +667,11 @@ void append_complex_event(struct bt_ctf_stream_class *stream_class,
        int64_t int64_value;
        struct event_class_attrs_counts ;
        const char *complex_test_event_string = "Complex Test Event";
-       const char *test_string = "Test string";
+       const char *test_string_1 = "Test ";
+       const char *test_string_2 = "string ";
+       const char *test_string_3 = "abcdefghi";
+       const char *test_string_4 = "abcd\0efg\0hi";
+       const char *test_string_cat = "Test string abcdeabcd";
        struct bt_ctf_field_type *uint_35_type =
                bt_ctf_field_type_integer_create(35);
        struct bt_ctf_field_type *int_16_type =
@@ -1099,12 +1103,31 @@ void append_complex_event(struct bt_ctf_stream_class *stream_class,
        ok(!bt_ctf_field_string_get_value(a_string_field),
                "bt_ctf_field_string_get_value returns NULL on an unset field");
        bt_ctf_field_string_set_value(a_string_field,
-               test_string);
+               test_string_1);
        ok(!bt_ctf_field_string_get_value(NULL),
                "bt_ctf_field_string_get_value correctly handles NULL");
+       ok(bt_ctf_field_string_append(NULL, "yeah"),
+               "bt_ctf_field_string_append correctly handles a NULL string field");
+       ok(bt_ctf_field_string_append(a_string_field, NULL),
+               "bt_ctf_field_string_append correctly handles a NULL string value");
+       ok(!bt_ctf_field_string_append(a_string_field, test_string_2),
+               "bt_ctf_field_string_append succeeds");
+       ok(bt_ctf_field_string_append_len(NULL, "oh noes", 3),
+               "bt_ctf_field_string_append_len correctly handles a NULL string field");
+       ok(bt_ctf_field_string_append_len(a_string_field, NULL, 3),
+               "bt_ctf_field_string_append_len correctly handles a NULL string value");
+       ok(!bt_ctf_field_string_append_len(a_string_field, test_string_3, 5),
+               "bt_ctf_field_string_append_len succeeds (append 5 characters)");
+       ok(!bt_ctf_field_string_append_len(a_string_field, test_string_4, 10),
+               "bt_ctf_field_string_append_len succeeds (append 4 characters)");
+       ok(!bt_ctf_field_string_append_len(a_string_field, &test_string_4[4], 3),
+               "bt_ctf_field_string_append_len succeeds (append 0 characters)");
+       ok(!bt_ctf_field_string_append_len(a_string_field, test_string_3, 0),
+               "bt_ctf_field_string_append_len succeeds (append 0 characters)");
+
        ret_string = bt_ctf_field_string_get_value(a_string_field);
        ok(ret_string, "bt_ctf_field_string_get_value returns a string");
-       ok(ret_string ? !strcmp(ret_string, test_string) : 0,
+       ok(ret_string ? !strcmp(ret_string, test_string_cat) : 0,
                "bt_ctf_field_string_get_value returns a correct value");
        bt_ctf_field_unsigned_integer_set_value(uint_35_field,
                SEQUENCE_TEST_LENGTH);
@@ -2387,6 +2410,9 @@ int main(int argc, char **argv)
        ok(!bt_ctf_stream_set_packet_header(stream1, packet_header),
                "Successfully set a stream's packet header");
 
+       ok(bt_ctf_writer_add_environment_field(writer, "new_field", "test") == 0,
+               "Add environment field to writer after stream creation");
+
        test_instanciate_event_before_stream(writer);
 
        append_simple_event(stream_class, stream1, clock);
This page took 0.024417 seconds and 4 git commands to generate.