Branch data Line data Source code
1 : : #include "test_libmem_all.h"
2 : :
3 : : /**
4 : : * @brief Check byte-string truncation without changing descriptor length
5 : : *
6 : : * @return Return describing success or failure
7 : : */
8 : 1 : Return test_libmem_0036(void)
9 : : {
10 : 1 : INITTEST;
11 : :
12 : : static const char alphabet_text[] = "alphabet";
13 : 1 : m_create(char,string_buffer);
14 : 1 : ASSERT(SUCCESS == m_to_string(string_buffer));
15 : :
16 : 1 : ASSERT(SUCCESS == m_copy_fixed_string(string_buffer,sizeof(alphabet_text),alphabet_text));
17 : :
18 : 1 : void *const original_data = string_buffer->data;
19 : 1 : const size_t original_length = string_buffer->length;
20 : :
21 : 1 : ASSERT(SUCCESS == m_string_truncate(string_buffer,5));
22 : 1 : ASSERT(string_buffer->data == original_data);
23 : 1 : ASSERT(string_buffer->length == original_length);
24 : 1 : ASSERT(string_buffer->string_length == 5);
25 : 1 : ASSERT(string_buffer->is_string == true);
26 : 1 : ASSERT(0 == strcmp(m_text(string_buffer),"alpha"));
27 : :
28 : 1 : char *mutable_view = (char *)string_buffer->data;
29 : 1 : ASSERT(mutable_view != NULL);
30 : :
31 : 1 : IF(mutable_view != NULL)
32 : : {
33 : 1 : mutable_view[5] = 'x';
34 : : }
35 : :
36 : 1 : ASSERT(SUCCESS == m_string_truncate(string_buffer,5));
37 : 1 : ASSERT(string_buffer->string_length == 5);
38 : 1 : ASSERT(0 == strcmp(m_text(string_buffer),"alpha"));
39 : :
40 : 1 : ASSERT(SUCCESS == m_string_truncate(string_buffer,99));
41 : 1 : ASSERT(string_buffer->string_length == 5);
42 : 1 : ASSERT(0 == strcmp(m_text(string_buffer),"alpha"));
43 : :
44 : 1 : ASSERT(SUCCESS == m_string_truncate(string_buffer,0));
45 : 1 : ASSERT(string_buffer->data == original_data);
46 : 1 : ASSERT(string_buffer->length == original_length);
47 : 1 : ASSERT(string_buffer->string_length == 0);
48 : 1 : ASSERT(string_buffer->is_string == true);
49 : 1 : ASSERT(0 == strcmp(m_text(string_buffer),""));
50 : :
51 : 1 : call(m_del(string_buffer));
52 : :
53 : 1 : RETURN_STATUS;
54 : : }
|