12
12
TEST
13
13
check_auto_singles (void )
14
14
{
15
- char * buf = malloc ( 16 ) ;
16
- size_t bufsize = 16 ;
15
+ char * buf = NULL ;
16
+ size_t bufsize = 0 ;
17
17
jsonb b ;
18
18
19
19
jsonb_init (& b );
20
20
ASSERT_EQm (buf , JSONB_OK , jsonb_array_auto (& b , & buf , & bufsize ));
21
21
ASSERT_EQm (buf , JSONB_END , jsonb_array_pop_auto (& b , & buf , & bufsize ));
22
22
ASSERT_STR_EQ ("[]" , buf );
23
+ ASSERT_EQ (sizeof ("[]" ) - 1 , b .pos );
24
+ ASSERT_EQ (sizeof ("[]" ) - 1 , strlen (buf ));
25
+ ASSERT_GT (bufsize , b .pos );
23
26
24
27
jsonb_init (& b );
25
28
ASSERT_EQm (buf , JSONB_OK , jsonb_object_auto (& b , & buf , & bufsize ));
26
29
ASSERT_EQm (buf , JSONB_END , jsonb_object_pop_auto (& b , & buf , & bufsize ));
27
30
ASSERT_STR_EQ ("{}" , buf );
31
+ ASSERT_EQ (sizeof ("{}" ) - 1 , b .pos );
32
+ ASSERT_EQ (sizeof ("{}" ) - 1 , strlen (buf ));
33
+ ASSERT_GT (bufsize , b .pos );
28
34
29
35
jsonb_init (& b );
30
36
ASSERT_EQm (buf , JSONB_END , jsonb_bool_auto (& b , & buf , & bufsize , 0 ));
31
37
ASSERT_STR_EQ ("false" , buf );
38
+ ASSERT_EQ (sizeof ("false" ) - 1 , b .pos );
39
+ ASSERT_EQ (sizeof ("false" ) - 1 , strlen (buf ));
40
+ ASSERT_GT (bufsize , b .pos );
32
41
33
42
jsonb_init (& b );
34
43
ASSERT_EQm (buf , JSONB_END , jsonb_bool_auto (& b , & buf , & bufsize , 1 ));
35
44
ASSERT_STR_EQ ("true" , buf );
45
+ ASSERT_EQ (sizeof ("true" ) - 1 , b .pos );
46
+ ASSERT_EQ (sizeof ("true" ) - 1 , strlen (buf ));
47
+ ASSERT_GT (bufsize , b .pos );
36
48
37
49
jsonb_init (& b );
38
50
ASSERT_EQm (buf , JSONB_END , jsonb_number_auto (& b , & buf , & bufsize , 10 ));
39
51
ASSERT_STR_EQ ("10" , buf );
52
+ ASSERT_EQ (sizeof ("10" ) - 1 , b .pos );
53
+ ASSERT_EQ (sizeof ("10" ) - 1 , strlen (buf ));
54
+ ASSERT_GT (bufsize , b .pos );
40
55
41
56
jsonb_init (& b );
42
57
ASSERT_EQm (buf , JSONB_END , jsonb_string_auto (& b , & buf , & bufsize , "hi" , 2 ));
43
58
ASSERT_STR_EQ ("\"hi\"" , buf );
59
+ ASSERT_EQ (sizeof ("\"hi\"" ) - 1 , b .pos );
60
+ ASSERT_EQ (sizeof ("\"hi\"" ) - 1 , strlen (buf ));
61
+ ASSERT_GT (bufsize , b .pos );
44
62
45
63
jsonb_init (& b );
46
64
ASSERT_EQm (buf , JSONB_END , jsonb_null_auto (& b , & buf , & bufsize ));
47
65
ASSERT_STR_EQ ("null" , buf );
66
+ ASSERT_EQ (sizeof ("null" ) - 1 , b .pos );
67
+ ASSERT_EQ (sizeof ("null" ) - 1 , strlen (buf ));
68
+ ASSERT_GT (bufsize , b .pos );
48
69
49
70
free (buf );
50
71
PASS ();
@@ -53,6 +74,7 @@ check_auto_singles(void)
53
74
TEST
54
75
check_auto_array_realloc (void )
55
76
{
77
+ static const char expected [] = "[true,false,null,10,\"foo\",{}]" ;
56
78
char * buf = malloc (4 );
57
79
size_t bufsize = 4 ;
58
80
size_t original_size = bufsize ;
@@ -72,8 +94,11 @@ check_auto_array_realloc(void)
72
94
ASSERT_EQm (buf , JSONB_END , jsonb_array_pop_auto (& b , & buf , & bufsize ));
73
95
}
74
96
75
- ASSERT_STR_EQ ("[true,false,null,10,\"foo\",{}]" , buf );
97
+ ASSERT_STR_EQ (expected , buf );
76
98
ASSERT_GT (bufsize , original_size );
99
+ ASSERT_GT (bufsize , b .pos );
100
+ ASSERT_EQ (sizeof (expected ) - 1 , b .pos );
101
+ ASSERT_EQ (sizeof (expected ) - 1 , strlen (buf ));
77
102
78
103
free (buf );
79
104
PASS ();
@@ -82,8 +107,10 @@ check_auto_array_realloc(void)
82
107
TEST
83
108
check_auto_object_realloc (void )
84
109
{
85
- char * buf = malloc (4 );
86
- size_t bufsize = 4 ;
110
+ static const char expected [] =
111
+ "{\"a\":true,\"b\":false,\"c\":null,\"d\":10,\"e\":\"foo\",\"f\":[]}" ;
112
+ char * buf = NULL ;
113
+ size_t bufsize = 0 ;
87
114
size_t original_size = bufsize ;
88
115
jsonb b ;
89
116
@@ -107,10 +134,11 @@ check_auto_object_realloc(void)
107
134
ASSERT_EQm (buf , JSONB_END , jsonb_object_pop_auto (& b , & buf , & bufsize ));
108
135
}
109
136
110
- ASSERT_STR_EQ (
111
- "{\"a\":true,\"b\":false,\"c\":null,\"d\":10,\"e\":\"foo\",\"f\":[]}" ,
112
- buf );
137
+ ASSERT_STR_EQ (expected , buf );
113
138
ASSERT_GT (bufsize , original_size );
139
+ ASSERT_GT (bufsize , b .pos );
140
+ ASSERT_EQ (sizeof (expected ) - 1 , b .pos );
141
+ ASSERT_EQ (sizeof (expected ) - 1 , strlen (buf ));
114
142
115
143
free (buf );
116
144
PASS ();
@@ -119,6 +147,9 @@ check_auto_object_realloc(void)
119
147
TEST
120
148
check_auto_string_escaping (void )
121
149
{
150
+ static const char expected [] = "[\"begin\",\"\\nhi\\n\",\"\\n\\t\\t\","
151
+ "\"\\b\\u0007\\u0007\\ttest\\n\","
152
+ "\"end\"]" ;
122
153
char * buf = malloc (8 );
123
154
size_t bufsize = 8 ;
124
155
static const char * const strs [] = {
@@ -136,9 +167,10 @@ check_auto_string_escaping(void)
136
167
}
137
168
ASSERT_EQm (buf , JSONB_END , jsonb_array_pop_auto (& b , & buf , & bufsize ));
138
169
139
- ASSERT_STR_EQ ("[\"begin\",\"\\nhi\\n\",\"\\n\\t\\t\","
140
- "\"\\b\\u0007\\u0007\\ttest\\n\",\"end\"]" ,
141
- buf );
170
+ ASSERT_STR_EQ (expected , buf );
171
+ ASSERT_GT (bufsize , b .pos );
172
+ ASSERT_EQ (sizeof (expected ) - 1 , b .pos );
173
+ ASSERT_EQ (sizeof (expected ) - 1 , strlen (buf ));
142
174
143
175
free (buf );
144
176
PASS ();
@@ -147,6 +179,8 @@ check_auto_string_escaping(void)
147
179
TEST
148
180
check_auto_nested_with_realloc (void )
149
181
{
182
+ static const char expected [] =
183
+ "{\"nested\":{\"array\":[1,2,3],\"object\":{\"x\":\"y\"}}}" ;
150
184
char * buf = malloc (4 );
151
185
size_t bufsize = 4 ;
152
186
size_t original_size = bufsize ;
@@ -189,9 +223,11 @@ check_auto_nested_with_realloc(void)
189
223
ASSERT_EQm (buf , JSONB_END , jsonb_object_pop_auto (& b , & buf , & bufsize ));
190
224
}
191
225
192
- ASSERT_STR_EQ ("{\"nested\":{\"array\":[1,2,3],\"object\":{\"x\":\"y\"}}}" ,
193
- buf );
226
+ ASSERT_STR_EQ (expected , buf );
194
227
ASSERT_GT (bufsize , original_size );
228
+ ASSERT_GT (bufsize , b .pos );
229
+ ASSERT_EQ (sizeof (expected ) - 1 , b .pos );
230
+ ASSERT_EQ (sizeof (expected ) - 1 , strlen (buf ));
195
231
196
232
free (buf );
197
233
PASS ();
201
237
check_auto_large_string (void )
202
238
{
203
239
char * longString = malloc (1000 );
204
- char * buf = malloc ( 8 ) ;
205
- size_t bufsize = 8 ;
240
+ char * buf = NULL ;
241
+ size_t bufsize = 0 ;
206
242
size_t original_size = bufsize ;
207
243
jsonb b ;
208
244
int i ;
0 commit comments