Branch data Line data Source code
1 : : #include "test_libmem_all.h"
2 : :
3 : : /**
4 : : * @brief Capture m_finalize_string rejection for data-mode descriptors
5 : : *
6 : : * @return Return describing success or failure
7 : : */
8 : 1 : static Return capture_libmem_invalid_finalize_string_write_mode(void)
9 : : {
10 : 1 : INITTEST;
11 : :
12 : 1 : m_create(char,data_buffer);
13 : :
14 : 1 : const char draft[] = "draft";
15 : :
16 : 1 : ASSERT(SUCCESS == m_resize(data_buffer,sizeof(draft)));
17 : 1 : ASSERT(FAILURE == m_finalize_string(data_buffer,strlen(draft),WRITE_TERMINATOR_ALWAYS));
18 : 1 : call(m_del(data_buffer));
19 : :
20 : 1 : deliver(status);
21 : : }
22 : :
23 : : /**
24 : : * @brief Check m_finalize_string with explicit terminator write and mode rejection
25 : : *
26 : : * @return Return describing success or failure
27 : : */
28 : 1 : Return test_libmem_0051(void)
29 : : {
30 : 1 : INITTEST;
31 : :
32 : : static const char expected_stderr_pattern_libmem_0051[] =
33 : : "\\A.*String write finalization requires a string descriptor.*\\Z";
34 : :
35 : 1 : m_create(char,title,MEMORY_STRING);
36 : :
37 : 1 : const char draft[] = "draft";
38 : :
39 : 1 : ASSERT(SUCCESS == m_resize(title,sizeof(draft)));
40 : :
41 : 1 : char *title_view = m_data(char,title);
42 : 1 : ASSERT(title_view != NULL);
43 : :
44 : 1 : IF(title_view != NULL)
45 : : {
46 : 1 : memcpy(title_view,draft,strlen(draft));
47 : : }
48 : :
49 : 1 : ASSERT(SUCCESS == m_finalize_string(title,strlen(draft),WRITE_TERMINATOR_ALWAYS));
50 : 1 : ASSERT(title->length == sizeof(draft));
51 : 1 : ASSERT(title->string_length == strlen("draft"));
52 : 1 : ASSERT(title->is_string == true);
53 : 1 : ASSERT(0 == strcmp(m_text(title),"draft"));
54 : :
55 : 1 : ASSERT(SUCCESS == match_function_output(NULL,expected_stderr_pattern_libmem_0051,capture_libmem_invalid_finalize_string_write_mode));
56 : :
57 : 1 : call(m_del(title));
58 : :
59 : 1 : RETURN_STATUS;
60 : : }
|