aboutsummaryrefslogtreecommitdiff
path: root/csv-test.c
diff options
context:
space:
mode:
authorThomas Schmucker <ts@its1.de>2020-07-05 11:54:28 +0200
committerThomas Schmucker <ts@its1.de>2020-07-05 11:54:28 +0200
commitdb6807fd6644b1e129008ff9622384cef4e48654 (patch)
tree1e7869a413caedcea433e051987df80bbb445403 /csv-test.c
parent12b36ad95dc633648b6c93d7626e17a0016b4547 (diff)
downloadlibcsv-db6807fd6644b1e129008ff9622384cef4e48654.tar.gz
libcsv-db6807fd6644b1e129008ff9622384cef4e48654.tar.bz2
libcsv-db6807fd6644b1e129008ff9622384cef4e48654.zip
Formatiere den Quellcode mit clang-format
Diffstat (limited to 'csv-test.c')
-rw-r--r--csv-test.c496
1 files changed, 248 insertions, 248 deletions
diff --git a/csv-test.c b/csv-test.c
index 8fbcf42..238bf74 100644
--- a/csv-test.c
+++ b/csv-test.c
@@ -1,19 +1,19 @@
1#undef NDEBUG 1#undef NDEBUG
2 2
3#include <assert.h>
4#include <setjmp.h>
3#include <stdio.h> 5#include <stdio.h>
4#include <stdlib.h> 6#include <stdlib.h>
5#include <string.h> 7#include <string.h>
6#include <assert.h>
7#include <setjmp.h>
8 8
9#include "csv.h" 9#include "csv.h"
10 10
11#define FMEMOPEN(f, data) \ 11#define FMEMOPEN(f, data) \
12 f = fmemopen(data, sizeof(data)-1, "r"); \ 12 f = fmemopen(data, sizeof(data) - 1, "r"); \
13 assert(f != NULL) 13 assert(f != NULL)
14 14
15#define FMEMCLOSE(f) \ 15#define FMEMCLOSE(f) \
16 fclose(f); \ 16 fclose(f); \
17 f = NULL 17 f = NULL
18 18
19void 19void
@@ -21,13 +21,13 @@ test_empty_object(void)
21{ 21{
22 { 22 {
23 csv_t csv = { 0 }; 23 csv_t csv = { 0 };
24 assert( csv_nfields(&csv) == 0 ); 24 assert(csv_nfields(&csv) == 0);
25 } 25 }
26 26
27 { 27 {
28 csv_t csv; 28 csv_t csv;
29 csv_init(&csv); 29 csv_init(&csv);
30 assert( csv_nfields(&csv) == 0 ); 30 assert(csv_nfields(&csv) == 0);
31 } 31 }
32} 32}
33 33
@@ -42,19 +42,19 @@ test_line_endings1(void)
42 42
43 FMEMOPEN(f, data); 43 FMEMOPEN(f, data);
44 44
45 assert( csv_read(&csv, f) == 3 ); 45 assert(csv_read(&csv, f) == 3);
46 assert( csv_nfields(&csv) == 3 ), 46 assert(csv_nfields(&csv) == 3);
47 assert( strcmp(csv_field(&csv, 0), "A") == 0 ); 47 assert(strcmp(csv_field(&csv, 0), "A") == 0);
48 assert( strcmp(csv_field(&csv, 1), "B") == 0 ); 48 assert(strcmp(csv_field(&csv, 1), "B") == 0);
49 assert( strcmp(csv_field(&csv, 2), "C") == 0 ); 49 assert(strcmp(csv_field(&csv, 2), "C") == 0);
50 50
51 assert( csv_read(&csv, f) == 3 ); 51 assert(csv_read(&csv, f) == 3);
52 assert( csv_nfields(&csv) == 3 ), 52 assert(csv_nfields(&csv) == 3);
53 assert( strcmp(csv_field(&csv, 0), "D") == 0 ); 53 assert(strcmp(csv_field(&csv, 0), "D") == 0);
54 assert( strcmp(csv_field(&csv, 1), "E") == 0 ); 54 assert(strcmp(csv_field(&csv, 1), "E") == 0);
55 assert( strcmp(csv_field(&csv, 2), "F") == 0 ); 55 assert(strcmp(csv_field(&csv, 2), "F") == 0);
56 56
57 assert( csv_read(&csv, f) == EOF ); 57 assert(csv_read(&csv, f) == EOF);
58 58
59 FMEMCLOSE(f); 59 FMEMCLOSE(f);
60} 60}
@@ -70,19 +70,19 @@ test_line_endings2(void)
70 70
71 FMEMOPEN(f, data); 71 FMEMOPEN(f, data);
72 72
73 assert( csv_read(&csv, f) == 3 ); 73 assert(csv_read(&csv, f) == 3);
74 assert( csv_nfields(&csv) == 3 ), 74 assert(csv_nfields(&csv) == 3);
75 assert( strcmp(csv_field(&csv, 0), "A") == 0 ); 75 assert(strcmp(csv_field(&csv, 0), "A") == 0);
76 assert( strcmp(csv_field(&csv, 1), "B") == 0 ); 76 assert(strcmp(csv_field(&csv, 1), "B") == 0);
77 assert( strcmp(csv_field(&csv, 2), "C") == 0 ); 77 assert(strcmp(csv_field(&csv, 2), "C") == 0);
78 78
79 assert( csv_read(&csv, f) == 3 ); 79 assert(csv_read(&csv, f) == 3);
80 assert( csv_nfields(&csv) == 3 ), 80 assert(csv_nfields(&csv) == 3);
81 assert( strcmp(csv_field(&csv, 0), "D") == 0 ); 81 assert(strcmp(csv_field(&csv, 0), "D") == 0);
82 assert( strcmp(csv_field(&csv, 1), "E") == 0 ); 82 assert(strcmp(csv_field(&csv, 1), "E") == 0);
83 assert( strcmp(csv_field(&csv, 2), "F") == 0 ); 83 assert(strcmp(csv_field(&csv, 2), "F") == 0);
84 84
85 assert( csv_read(&csv, f) == EOF ); 85 assert(csv_read(&csv, f) == EOF);
86 86
87 FMEMCLOSE(f); 87 FMEMCLOSE(f);
88} 88}
@@ -95,143 +95,143 @@ test_empty_fields(void)
95 95
96 char data[] = "\n" 96 char data[] = "\n"
97 "\r" 97 "\r"
98 "\r\n" 98 "\r\n"
99 "\"\"\n" 99 "\"\"\n"
100 "\"\"\r" 100 "\"\"\r"
101 "\"\"\r\n" 101 "\"\"\r\n"
102 ",\n" 102 ",\n"
103 ",\r" 103 ",\r"
104 ",\r\n" 104 ",\r\n"
105 "\"\",\"\"\n" 105 "\"\",\"\"\n"
106 "\"\",\"\"\r" 106 "\"\",\"\"\r"
107 "\"\",\"\"\r\n" 107 "\"\",\"\"\r\n"
108 ",,\n" 108 ",,\n"
109 ",,\r" 109 ",,\r"
110 ",,\r\n" 110 ",,\r\n"
111 "\"\",\"\",\n" 111 "\"\",\"\",\n"
112 "\"\",\"\",\r" 112 "\"\",\"\",\r"
113 "\"\",\"\",\r\n" 113 "\"\",\"\",\r\n"
114 ",,"; 114 ",,";
115 115
116 FMEMOPEN(f, data); 116 FMEMOPEN(f, data);
117 117
118 // Line 1 118 // Line 1
119 assert( csv_read(&csv, f) == 1 ); 119 assert(csv_read(&csv, f) == 1);
120 assert( csv_nfields(&csv) == 1 ); 120 assert(csv_nfields(&csv) == 1);
121 assert( strcmp(csv_field(&csv, 0), "") == 0 ); 121 assert(strcmp(csv_field(&csv, 0), "") == 0);
122 122
123 // Line 2 123 // Line 2
124 assert( csv_read(&csv, f) == 1 ); 124 assert(csv_read(&csv, f) == 1);
125 assert( csv_nfields(&csv) == 1 ); 125 assert(csv_nfields(&csv) == 1);
126 assert( strcmp(csv_field(&csv, 0), "") == 0 ); 126 assert(strcmp(csv_field(&csv, 0), "") == 0);
127 127
128 // Line 3 128 // Line 3
129 assert( csv_read(&csv, f) == 1 ); 129 assert(csv_read(&csv, f) == 1);
130 assert( csv_nfields(&csv) == 1 ); 130 assert(csv_nfields(&csv) == 1);
131 assert( strcmp(csv_field(&csv, 0), "") == 0 ); 131 assert(strcmp(csv_field(&csv, 0), "") == 0);
132 132
133 // Line 4 133 // Line 4
134 assert( csv_read(&csv, f) == 1 ); 134 assert(csv_read(&csv, f) == 1);
135 assert( csv_nfields(&csv) == 1 ); 135 assert(csv_nfields(&csv) == 1);
136 assert( strcmp(csv_field(&csv, 0), "") == 0 ); 136 assert(strcmp(csv_field(&csv, 0), "") == 0);
137 137
138 // Line 5 138 // Line 5
139 assert( csv_read(&csv, f) == 1 ); 139 assert(csv_read(&csv, f) == 1);
140 assert( csv_nfields(&csv) == 1 ); 140 assert(csv_nfields(&csv) == 1);
141 assert( strcmp(csv_field(&csv, 0), "") == 0 ); 141 assert(strcmp(csv_field(&csv, 0), "") == 0);
142 142
143 // Line 6 143 // Line 6
144 assert( csv_read(&csv, f) == 1 ); 144 assert(csv_read(&csv, f) == 1);
145 assert( csv_nfields(&csv) == 1 ); 145 assert(csv_nfields(&csv) == 1);
146 assert( strcmp(csv_field(&csv, 0), "") == 0 ); 146 assert(strcmp(csv_field(&csv, 0), "") == 0);
147 147
148 // Line 7 148 // Line 7
149 assert( csv_read(&csv, f) == 2 ); 149 assert(csv_read(&csv, f) == 2);
150 assert( csv_nfields(&csv) == 2 ); 150 assert(csv_nfields(&csv) == 2);
151 assert( strcmp(csv_field(&csv, 0), "") == 0 ); 151 assert(strcmp(csv_field(&csv, 0), "") == 0);
152 assert( strcmp(csv_field(&csv, 1), "") == 0 ); 152 assert(strcmp(csv_field(&csv, 1), "") == 0);
153 153
154 // Line 8 154 // Line 8
155 assert( csv_read(&csv, f) == 2 ); 155 assert(csv_read(&csv, f) == 2);
156 assert( csv_nfields(&csv) == 2 ); 156 assert(csv_nfields(&csv) == 2);
157 assert( strcmp(csv_field(&csv, 0), "") == 0 ); 157 assert(strcmp(csv_field(&csv, 0), "") == 0);
158 assert( strcmp(csv_field(&csv, 1), "") == 0 ); 158 assert(strcmp(csv_field(&csv, 1), "") == 0);
159 159
160 // Line 9 160 // Line 9
161 assert( csv_read(&csv, f) == 2 ); 161 assert(csv_read(&csv, f) == 2);
162 assert( csv_nfields(&csv) == 2 ); 162 assert(csv_nfields(&csv) == 2);
163 assert( strcmp(csv_field(&csv, 0), "") == 0 ); 163 assert(strcmp(csv_field(&csv, 0), "") == 0);
164 assert( strcmp(csv_field(&csv, 1), "") == 0 ); 164 assert(strcmp(csv_field(&csv, 1), "") == 0);
165 165
166 // Line 10 166 // Line 10
167 assert( csv_read(&csv, f) == 2 ); 167 assert(csv_read(&csv, f) == 2);
168 assert( csv_nfields(&csv) == 2 ); 168 assert(csv_nfields(&csv) == 2);
169 assert( strcmp(csv_field(&csv, 0), "") == 0 ); 169 assert(strcmp(csv_field(&csv, 0), "") == 0);
170 assert( strcmp(csv_field(&csv, 1), "") == 0 ); 170 assert(strcmp(csv_field(&csv, 1), "") == 0);
171 171
172 // Line 11 172 // Line 11
173 assert( csv_read(&csv, f) == 2 ); 173 assert(csv_read(&csv, f) == 2);
174 assert( csv_nfields(&csv) == 2 ); 174 assert(csv_nfields(&csv) == 2);
175 assert( strcmp(csv_field(&csv, 0), "") == 0 ); 175 assert(strcmp(csv_field(&csv, 0), "") == 0);
176 assert( strcmp(csv_field(&csv, 1), "") == 0 ); 176 assert(strcmp(csv_field(&csv, 1), "") == 0);
177 177
178 // Line 12 178 // Line 12
179 assert( csv_read(&csv, f) == 2 ); 179 assert(csv_read(&csv, f) == 2);
180 assert( csv_nfields(&csv) == 2 ); 180 assert(csv_nfields(&csv) == 2);
181 assert( strcmp(csv_field(&csv, 0), "") == 0 ); 181 assert(strcmp(csv_field(&csv, 0), "") == 0);
182 assert( strcmp(csv_field(&csv, 1), "") == 0 ); 182 assert(strcmp(csv_field(&csv, 1), "") == 0);
183 183
184 // Line 13 184 // Line 13
185 assert( csv_read(&csv, f) == 3 ); 185 assert(csv_read(&csv, f) == 3);
186 assert( csv_nfields(&csv) == 3 ); 186 assert(csv_nfields(&csv) == 3);
187 assert( strcmp(csv_field(&csv, 0), "") == 0 ); 187 assert(strcmp(csv_field(&csv, 0), "") == 0);
188 assert( strcmp(csv_field(&csv, 1), "") == 0 ); 188 assert(strcmp(csv_field(&csv, 1), "") == 0);
189 assert( strcmp(csv_field(&csv, 2), "") == 0 ); 189 assert(strcmp(csv_field(&csv, 2), "") == 0);
190 190
191 // Line 14 191 // Line 14
192 assert( csv_read(&csv, f) == 3 ); 192 assert(csv_read(&csv, f) == 3);
193 assert( csv_nfields(&csv) == 3 ); 193 assert(csv_nfields(&csv) == 3);
194 assert( strcmp(csv_field(&csv, 0), "") == 0 ); 194 assert(strcmp(csv_field(&csv, 0), "") == 0);
195 assert( strcmp(csv_field(&csv, 1), "") == 0 ); 195 assert(strcmp(csv_field(&csv, 1), "") == 0);
196 assert( strcmp(csv_field(&csv, 2), "") == 0 ); 196 assert(strcmp(csv_field(&csv, 2), "") == 0);
197 197
198 // Line 15 198 // Line 15
199 assert( csv_read(&csv, f) == 3 ); 199 assert(csv_read(&csv, f) == 3);
200 assert( csv_nfields(&csv) == 3 ); 200 assert(csv_nfields(&csv) == 3);
201 assert( strcmp(csv_field(&csv, 0), "") == 0 ); 201 assert(strcmp(csv_field(&csv, 0), "") == 0);
202 assert( strcmp(csv_field(&csv, 1), "") == 0 ); 202 assert(strcmp(csv_field(&csv, 1), "") == 0);
203 assert( strcmp(csv_field(&csv, 2), "") == 0 ); 203 assert(strcmp(csv_field(&csv, 2), "") == 0);
204 204
205 // Line 16 205 // Line 16
206 assert( csv_read(&csv, f) == 3 ); 206 assert(csv_read(&csv, f) == 3);
207 assert( csv_nfields(&csv) == 3 ); 207 assert(csv_nfields(&csv) == 3);
208 assert( strcmp(csv_field(&csv, 0), "") == 0 ); 208 assert(strcmp(csv_field(&csv, 0), "") == 0);
209 assert( strcmp(csv_field(&csv, 1), "") == 0 ); 209 assert(strcmp(csv_field(&csv, 1), "") == 0);
210 assert( strcmp(csv_field(&csv, 2), "") == 0 ); 210 assert(strcmp(csv_field(&csv, 2), "") == 0);
211 211
212 // Line 17 212 // Line 17
213 assert( csv_read(&csv, f) == 3 ); 213 assert(csv_read(&csv, f) == 3);
214 assert( csv_nfields(&csv) == 3 ); 214 assert(csv_nfields(&csv) == 3);
215 assert( strcmp(csv_field(&csv, 0), "") == 0 ); 215 assert(strcmp(csv_field(&csv, 0), "") == 0);
216 assert( strcmp(csv_field(&csv, 1), "") == 0 ); 216 assert(strcmp(csv_field(&csv, 1), "") == 0);
217 assert( strcmp(csv_field(&csv, 2), "") == 0 ); 217 assert(strcmp(csv_field(&csv, 2), "") == 0);
218 218
219 // Line 18 219 // Line 18
220 assert( csv_read(&csv, f) == 3 ); 220 assert(csv_read(&csv, f) == 3);
221 assert( csv_nfields(&csv) == 3 ); 221 assert(csv_nfields(&csv) == 3);
222 assert( strcmp(csv_field(&csv, 0), "") == 0 ); 222 assert(strcmp(csv_field(&csv, 0), "") == 0);
223 assert( strcmp(csv_field(&csv, 1), "") == 0 ); 223 assert(strcmp(csv_field(&csv, 1), "") == 0);
224 assert( strcmp(csv_field(&csv, 2), "") == 0 ); 224 assert(strcmp(csv_field(&csv, 2), "") == 0);
225 225
226 // Line 19 226 // Line 19
227 assert( csv_read(&csv, f) == 3 ); 227 assert(csv_read(&csv, f) == 3);
228 assert( csv_nfields(&csv) == 3 ); 228 assert(csv_nfields(&csv) == 3);
229 assert( strcmp(csv_field(&csv, 0), "") == 0 ); 229 assert(strcmp(csv_field(&csv, 0), "") == 0);
230 assert( strcmp(csv_field(&csv, 1), "") == 0 ); 230 assert(strcmp(csv_field(&csv, 1), "") == 0);
231 assert( strcmp(csv_field(&csv, 2), "") == 0 ); 231 assert(strcmp(csv_field(&csv, 2), "") == 0);
232 232
233 // EOF 233 // EOF
234 assert( csv_read(&csv, f) == EOF ); 234 assert(csv_read(&csv, f) == EOF);
235 235
236 FMEMCLOSE(f); 236 FMEMCLOSE(f);
237} 237}
@@ -244,143 +244,143 @@ test_simple_fields(void)
244 244
245 char data[] = "A\n" 245 char data[] = "A\n"
246 "A\r" 246 "A\r"
247 "A\r\n" 247 "A\r\n"
248 "\"A\"\n" 248 "\"A\"\n"
249 "\"A\"\r" 249 "\"A\"\r"
250 "\"A\"\r\n" 250 "\"A\"\r\n"
251 "A,B\n" 251 "A,B\n"
252 "A,B\r" 252 "A,B\r"
253 "A,B\r\n" 253 "A,B\r\n"
254 "\"A\",\"B\"\n" 254 "\"A\",\"B\"\n"
255 "\"A\",\"B\"\r" 255 "\"A\",\"B\"\r"
256 "\"A\",\"B\"\r\n" 256 "\"A\",\"B\"\r\n"
257 "A,B,C\n" 257 "A,B,C\n"
258 "A,B,C\r" 258 "A,B,C\r"
259 "A,B,C\r\n" 259 "A,B,C\r\n"
260 "\"A\",\"B\",C\n" 260 "\"A\",\"B\",C\n"
261 "\"A\",\"B\",C\r" 261 "\"A\",\"B\",C\r"
262 "\"A\",\"B\",C\r\n" 262 "\"A\",\"B\",C\r\n"
263 "A,B,C"; 263 "A,B,C";
264 264
265 FMEMOPEN(f, data); 265 FMEMOPEN(f, data);
266 266
267 // Line 1 267 // Line 1
268 assert( csv_read(&csv, f) == 1 ); 268 assert(csv_read(&csv, f) == 1);
269 assert( csv_nfields(&csv) == 1 ); 269 assert(csv_nfields(&csv) == 1);
270 assert( strcmp(csv_field(&csv, 0), "A") == 0 ); 270 assert(strcmp(csv_field(&csv, 0), "A") == 0);
271 271
272 // Line 2 272 // Line 2
273 assert( csv_read(&csv, f) == 1 ); 273 assert(csv_read(&csv, f) == 1);
274 assert( csv_nfields(&csv) == 1 ); 274 assert(csv_nfields(&csv) == 1);
275 assert( strcmp(csv_field(&csv, 0), "A") == 0 ); 275 assert(strcmp(csv_field(&csv, 0), "A") == 0);
276 276
277 // Line 3 277 // Line 3
278 assert( csv_read(&csv, f) == 1 ); 278 assert(csv_read(&csv, f) == 1);
279 assert( csv_nfields(&csv) == 1 ); 279 assert(csv_nfields(&csv) == 1);
280 assert( strcmp(csv_field(&csv, 0), "A") == 0 ); 280 assert(strcmp(csv_field(&csv, 0), "A") == 0);
281 281
282 // Line 4 282 // Line 4
283 assert( csv_read(&csv, f) == 1 ); 283 assert(csv_read(&csv, f) == 1);
284 assert( csv_nfields(&csv) == 1 ); 284 assert(csv_nfields(&csv) == 1);
285 assert( strcmp(csv_field(&csv, 0), "A") == 0 ); 285 assert(strcmp(csv_field(&csv, 0), "A") == 0);
286 286
287 // Line 5 287 // Line 5
288 assert( csv_read(&csv, f) == 1 ); 288 assert(csv_read(&csv, f) == 1);
289 assert( csv_nfields(&csv) == 1 ); 289 assert(csv_nfields(&csv) == 1);
290 assert( strcmp(csv_field(&csv, 0), "A") == 0 ); 290 assert(strcmp(csv_field(&csv, 0), "A") == 0);
291 291
292 // Line 6 292 // Line 6
293 assert( csv_read(&csv, f) == 1 ); 293 assert(csv_read(&csv, f) == 1);
294 assert( csv_nfields(&csv) == 1 ); 294 assert(csv_nfields(&csv) == 1);
295 assert( strcmp(csv_field(&csv, 0), "A") == 0 ); 295 assert(strcmp(csv_field(&csv, 0), "A") == 0);
296 296
297 // Line 7 297 // Line 7
298 assert( csv_read(&csv, f) == 2 ); 298 assert(csv_read(&csv, f) == 2);
299 assert( csv_nfields(&csv) == 2 ); 299 assert(csv_nfields(&csv) == 2);
300 assert( strcmp(csv_field(&csv, 0), "A") == 0 ); 300 assert(strcmp(csv_field(&csv, 0), "A") == 0);
301 assert( strcmp(csv_field(&csv, 1), "B") == 0 ); 301 assert(strcmp(csv_field(&csv, 1), "B") == 0);
302 302
303 // Line 8 303 // Line 8
304 assert( csv_read(&csv, f) == 2 ); 304 assert(csv_read(&csv, f) == 2);
305 assert( csv_nfields(&csv) == 2 ); 305 assert(csv_nfields(&csv) == 2);
306 assert( strcmp(csv_field(&csv, 0), "A") == 0 ); 306 assert(strcmp(csv_field(&csv, 0), "A") == 0);
307 assert( strcmp(csv_field(&csv, 1), "B") == 0 ); 307 assert(strcmp(csv_field(&csv, 1), "B") == 0);
308 308
309 // Line 9 309 // Line 9
310 assert( csv_read(&csv, f) == 2 ); 310 assert(csv_read(&csv, f) == 2);
311 assert( csv_nfields(&csv) == 2 ); 311 assert(csv_nfields(&csv) == 2);
312 assert( strcmp(csv_field(&csv, 0), "A") == 0 ); 312 assert(strcmp(csv_field(&csv, 0), "A") == 0);
313 assert( strcmp(csv_field(&csv, 1), "B") == 0 ); 313 assert(strcmp(csv_field(&csv, 1), "B") == 0);
314 314
315 // Line 10 315 // Line 10
316 assert( csv_read(&csv, f) == 2 ); 316 assert(csv_read(&csv, f) == 2);
317 assert( csv_nfields(&csv) == 2 ); 317 assert(csv_nfields(&csv) == 2);
318 assert( strcmp(csv_field(&csv, 0), "A") == 0 ); 318 assert(strcmp(csv_field(&csv, 0), "A") == 0);
319 assert( strcmp(csv_field(&csv, 1), "B") == 0 ); 319 assert(strcmp(csv_field(&csv, 1), "B") == 0);
320 320
321 // Line 11 321 // Line 11
322 assert( csv_read(&csv, f) == 2 ); 322 assert(csv_read(&csv, f) == 2);
323 assert( csv_nfields(&csv) == 2 ); 323 assert(csv_nfields(&csv) == 2);
324 assert( strcmp(csv_field(&csv, 0), "A") == 0 ); 324 assert(strcmp(csv_field(&csv, 0), "A") == 0);
325 assert( strcmp(csv_field(&csv, 1), "B") == 0 ); 325 assert(strcmp(csv_field(&csv, 1), "B") == 0);
326 326
327 // Line 12 327 // Line 12
328 assert( csv_read(&csv, f) == 2 ); 328 assert(csv_read(&csv, f) == 2);
329 assert( csv_nfields(&csv) == 2 ); 329 assert(csv_nfields(&csv) == 2);
330 assert( strcmp(csv_field(&csv, 0), "A") == 0 ); 330 assert(strcmp(csv_field(&csv, 0), "A") == 0);
331 assert( strcmp(csv_field(&csv, 1), "B") == 0 ); 331 assert(strcmp(csv_field(&csv, 1), "B") == 0);
332 332
333 // Line 13 333 // Line 13
334 assert( csv_read(&csv, f) == 3 ); 334 assert(csv_read(&csv, f) == 3);
335 assert( csv_nfields(&csv) == 3 ); 335 assert(csv_nfields(&csv) == 3);
336 assert( strcmp(csv_field(&csv, 0), "A") == 0 ); 336 assert(strcmp(csv_field(&csv, 0), "A") == 0);
337 assert( strcmp(csv_field(&csv, 1), "B") == 0 ); 337 assert(strcmp(csv_field(&csv, 1), "B") == 0);
338 assert( strcmp(csv_field(&csv, 2), "C") == 0 ); 338 assert(strcmp(csv_field(&csv, 2), "C") == 0);
339 339
340 // Line 14 340 // Line 14
341 assert( csv_read(&csv, f) == 3 ); 341 assert(csv_read(&csv, f) == 3);
342 assert( csv_nfields(&csv) == 3 ); 342 assert(csv_nfields(&csv) == 3);
343 assert( strcmp(csv_field(&csv, 0), "A") == 0 ); 343 assert(strcmp(csv_field(&csv, 0), "A") == 0);
344 assert( strcmp(csv_field(&csv, 1), "B") == 0 ); 344 assert(strcmp(csv_field(&csv, 1), "B") == 0);
345 assert( strcmp(csv_field(&csv, 2), "C") == 0 ); 345 assert(strcmp(csv_field(&csv, 2), "C") == 0);
346 346
347 // Line 15 347 // Line 15
348 assert( csv_read(&csv, f) == 3 ); 348 assert(csv_read(&csv, f) == 3);
349 assert( csv_nfields(&csv) == 3 ); 349 assert(csv_nfields(&csv) == 3);
350 assert( strcmp(csv_field(&csv, 0), "A") == 0 ); 350 assert(strcmp(csv_field(&csv, 0), "A") == 0);
351 assert( strcmp(csv_field(&csv, 1), "B") == 0 ); 351 assert(strcmp(csv_field(&csv, 1), "B") == 0);
352 assert( strcmp(csv_field(&csv, 2), "C") == 0 ); 352 assert(strcmp(csv_field(&csv, 2), "C") == 0);
353 353
354 // Line 16 354 // Line 16
355 assert( csv_read(&csv, f) == 3 ); 355 assert(csv_read(&csv, f) == 3);
356 assert( csv_nfields(&csv) == 3 ); 356 assert(csv_nfields(&csv) == 3);
357 assert( strcmp(csv_field(&csv, 0), "A") == 0 ); 357 assert(strcmp(csv_field(&csv, 0), "A") == 0);
358 assert( strcmp(csv_field(&csv, 1), "B") == 0 ); 358 assert(strcmp(csv_field(&csv, 1), "B") == 0);
359 assert( strcmp(csv_field(&csv, 2), "C") == 0 ); 359 assert(strcmp(csv_field(&csv, 2), "C") == 0);
360 360
361 // Line 17 361 // Line 17
362 assert( csv_read(&csv, f) == 3 ); 362 assert(csv_read(&csv, f) == 3);
363 assert( csv_nfields(&csv) == 3 ); 363 assert(csv_nfields(&csv) == 3);
364 assert( strcmp(csv_field(&csv, 0), "A") == 0 ); 364 assert(strcmp(csv_field(&csv, 0), "A") == 0);
365 assert( strcmp(csv_field(&csv, 1), "B") == 0 ); 365 assert(strcmp(csv_field(&csv, 1), "B") == 0);
366 assert( strcmp(csv_field(&csv, 2), "C") == 0 ); 366 assert(strcmp(csv_field(&csv, 2), "C") == 0);
367 367
368 // Line 18 368 // Line 18
369 assert( csv_read(&csv, f) == 3 ); 369 assert(csv_read(&csv, f) == 3);
370 assert( csv_nfields(&csv) == 3 ); 370 assert(csv_nfields(&csv) == 3);
371 assert( strcmp(csv_field(&csv, 0), "A") == 0 ); 371 assert(strcmp(csv_field(&csv, 0), "A") == 0);
372 assert( strcmp(csv_field(&csv, 1), "B") == 0 ); 372 assert(strcmp(csv_field(&csv, 1), "B") == 0);
373 assert( strcmp(csv_field(&csv, 2), "C") == 0 ); 373 assert(strcmp(csv_field(&csv, 2), "C") == 0);
374 374
375 // Line 19 375 // Line 19
376 assert( csv_read(&csv, f) == 3 ); 376 assert(csv_read(&csv, f) == 3);
377 assert( csv_nfields(&csv) == 3 ); 377 assert(csv_nfields(&csv) == 3);
378 assert( strcmp(csv_field(&csv, 0), "A") == 0 ); 378 assert(strcmp(csv_field(&csv, 0), "A") == 0);
379 assert( strcmp(csv_field(&csv, 1), "B") == 0 ); 379 assert(strcmp(csv_field(&csv, 1), "B") == 0);
380 assert( strcmp(csv_field(&csv, 2), "C") == 0 ); 380 assert(strcmp(csv_field(&csv, 2), "C") == 0);
381 381
382 // EOF 382 // EOF
383 assert( csv_read(&csv, f) == EOF ); 383 assert(csv_read(&csv, f) == EOF);
384 384
385 FMEMCLOSE(f); 385 FMEMCLOSE(f);
386} 386}
@@ -395,15 +395,15 @@ test_quoted_fields(void)
395 395
396 FMEMOPEN(f, data); 396 FMEMOPEN(f, data);
397 397
398 assert( csv_read(&csv, f) == 5 ); 398 assert(csv_read(&csv, f) == 5);
399 assert( csv_nfields(&csv) == 5 ), 399 assert(csv_nfields(&csv) == 5);
400 assert( strcmp(csv_field(&csv, 0), "foo \"baz\" bar") == 0 ); 400 assert(strcmp(csv_field(&csv, 0), "foo \"baz\" bar") == 0);
401 assert( strcmp(csv_field(&csv, 1), "foo \"\"baz\"\" bar") == 0 ); 401 assert(strcmp(csv_field(&csv, 1), "foo \"\"baz\"\" bar") == 0);
402 assert( strcmp(csv_field(&csv, 2), "foo \"baz\" bar") == 0 ); 402 assert(strcmp(csv_field(&csv, 2), "foo \"baz\" bar") == 0);
403 assert( strcmp(csv_field(&csv, 3), "foo \"baz\" bar") == 0 ); 403 assert(strcmp(csv_field(&csv, 3), "foo \"baz\" bar") == 0);
404 assert( strcmp(csv_field(&csv, 4), "foo \"baz\", bar") == 0 ); 404 assert(strcmp(csv_field(&csv, 4), "foo \"baz\", bar") == 0);
405 405
406 assert( csv_read(&csv, f) == EOF ); 406 assert(csv_read(&csv, f) == EOF);
407 407
408 FMEMCLOSE(f); 408 FMEMCLOSE(f);
409} 409}
@@ -418,11 +418,11 @@ test_wrong_quoted_field(void)
418 418
419 FMEMOPEN(f, data); 419 FMEMOPEN(f, data);
420 420
421 assert( csv_read(&csv, f) == 1 ); 421 assert(csv_read(&csv, f) == 1);
422 assert( csv_nfields(&csv) == 1 ), 422 assert(csv_nfields(&csv) == 1);
423 assert( strcmp(csv_field(&csv, 0), "foo") == 0 ); 423 assert(strcmp(csv_field(&csv, 0), "foo") == 0);
424 424
425 assert( csv_read(&csv, f) == EOF ); 425 assert(csv_read(&csv, f) == EOF);
426 426
427 FMEMCLOSE(f); 427 FMEMCLOSE(f);
428} 428}
@@ -436,26 +436,26 @@ cb_error(csv_err_t err, void *cb_arg)
436void 436void
437test_out_of_range_error(void) 437test_out_of_range_error(void)
438{ 438{
439 jmp_buf env; 439 jmp_buf env;
440 csv_options_t csv_options = csv_default_options; 440 csv_options_t csv_options = csv_default_options;
441 csv_options.cb_error = cb_error; 441 csv_options.cb_error = cb_error;
442 csv_options.cb_error_arg = &env; 442 csv_options.cb_error_arg = &env;
443 443
444 csv_t csv; 444 csv_t csv;
445 csv_init_opt(&csv, &csv_options); 445 csv_init_opt(&csv, &csv_options);
446 446
447 FILE *f; 447 FILE *f;
448 char data[] = ","; 448 char data[] = ",";
449 449
450 FMEMOPEN(f, data); 450 FMEMOPEN(f, data);
451 451
452 switch ( setjmp(env) ) { 452 switch ( setjmp(env) ) {
453 case CSV_ERR_OK: 453 case CSV_ERR_OK:
454 assert( csv_read(&csv, f) == 2 ); 454 assert(csv_read(&csv, f) == 2);
455 assert( csv_nfields(&csv) == 2 ); 455 assert(csv_nfields(&csv) == 2);
456 456
457 // force an "out of range"-Exception! 457 // force an "out of range"-Exception!
458 assert( strcmp(csv_field(&csv, 2), "will fail") == 0 ); 458 assert(strcmp(csv_field(&csv, 2), "will fail") == 0);
459 break; 459 break;
460 460
461 case CSV_ERR_OUT_OF_RANGE: 461 case CSV_ERR_OUT_OF_RANGE:
@@ -472,21 +472,21 @@ test_out_of_range_error(void)
472void 472void
473test_read_error(void) 473test_read_error(void)
474{ 474{
475 jmp_buf env; 475 jmp_buf env;
476 csv_options_t csv_options = csv_default_options; 476 csv_options_t csv_options = csv_default_options;
477 csv_options.cb_error = cb_error; 477 csv_options.cb_error = cb_error;
478 csv_options.cb_error_arg = &env; 478 csv_options.cb_error_arg = &env;
479 479
480 csv_t csv; 480 csv_t csv;
481 csv_init_opt(&csv, &csv_options); 481 csv_init_opt(&csv, &csv_options);
482 482
483 FILE *f = fopen("/dev/null", "r"); 483 FILE *f = fopen("/dev/null", "r");
484 assert(f != NULL); 484 assert(f != NULL);
485 fputc('T', f); // Set Error-Flag! 485 fputc('T', f); // Set Error-Flag!
486 486
487 switch ( setjmp(env) ) { 487 switch ( setjmp(env) ) {
488 case CSV_ERR_OK: 488 case CSV_ERR_OK:
489 assert( csv_read(&csv, f) == EOF ); 489 assert(csv_read(&csv, f) == EOF);
490 break; 490 break;
491 491
492 case CSV_ERR_IO_READ: 492 case CSV_ERR_IO_READ:
@@ -546,11 +546,11 @@ test_allocation_error1(void)
546 jmp_buf env; 546 jmp_buf env;
547 547
548 csv_options_t csv_options = csv_default_options; 548 csv_options_t csv_options = csv_default_options;
549 csv_options.cb_error = cb_error; 549 csv_options.cb_error = cb_error;
550 csv_options.cb_error_arg = &env; 550 csv_options.cb_error_arg = &env;
551 csv_options.cb_allocate = my_allocate; 551 csv_options.cb_allocate = my_allocate;
552 csv_options.cb_reallocate = my_reallocate; 552 csv_options.cb_reallocate = my_reallocate;
553 csv_options.cb_free = my_free; 553 csv_options.cb_free = my_free;
554 554
555 csv_t csv; 555 csv_t csv;
556 csv_init_opt(&csv, &csv_options); 556 csv_init_opt(&csv, &csv_options);
@@ -563,7 +563,7 @@ test_allocation_error1(void)
563 563
564 switch ( setjmp(env) ) { 564 switch ( setjmp(env) ) {
565 case CSV_ERR_OK: 565 case CSV_ERR_OK:
566 assert( csv_read(&csv, f) == 20 ); 566 assert(csv_read(&csv, f) == 20);
567 assert(!"this should not be happen!"); 567 assert(!"this should not be happen!");
568 break; 568 break;
569 569