4 * Copyright (c) 2009-2012 project bchan
6 * This software is provided 'as-is', without any express or implied
7 * warranty. In no event will the authors be held liable for any damages
8 * arising from the use of this software.
10 * Permission is granted to anyone to use this software for any purpose,
11 * including commercial applications, and to alter it and redistribute it
12 * freely, subject to the following restrictions:
14 * 1. The origin of this software must not be misrepresented; you must not
15 * claim that you wrote the original software. If you use this software
16 * in a product, an acknowledgment in the product documentation would be
17 * appreciated but is not required.
19 * 2. Altered source versions must be plainly marked as such, and must not be
20 * misrepresented as being the original software.
22 * 3. This notice may not be removed or altered from any source
29 #include "subjectcache.h"
31 #include <btron/btron.h>
38 #include <unittest_driver.h>
40 LOCAL UB test_sbjtcache_testdata_01[] = {"aaaaabbbbbcccccddddd"};
41 LOCAL UB test_sbjtcache_testdata_01_1[] = {"aaaaa"};
42 LOCAL UB test_sbjtcache_testdata_01_2[] = {"bbbbb"};
43 LOCAL UB test_sbjtcache_testdata_01_3[] = {"ccccc"};
44 LOCAL UB test_sbjtcache_testdata_01_4[] = {"ddddd"};
45 LOCAL UB test_sbjtcache_testdata_02[] = {"XXX abcdef\r\nAAAA: valueA\r\nBBBB: valueB\r\n\r\n"};
46 LOCAL UB test_sbjtcache_testdata_04[] = {"aaa.bbb.ccc.jp"};
47 LOCAL UB test_sbjtcache_testdata_05[] = {"thread"};
48 LOCAL UB test_sbjtcache_testdata_07[] = {"XXX abcdef\r\nAAAA: valueC\r\nBBBB: valueC\r\n\r\n"};
50 LOCAL Bool test_sbjtcache_util_cmp_ctx_str(sbjtcache_datareadcontext_t *context, UB *data, W len)
54 W i = 0, len_cache, cmp;
57 cont = sbjtcache_datareadcontext_nextdata(context, &bin_cache, &len_cache);
61 cmp = memcmp(data + i, bin_cache, len_cache);
78 /* test_sbjtcache_1 */
80 LOCAL UNITTEST_RESULT test_sbjtcache_1()
83 UNITTEST_RESULT result = UNITTEST_RESULT_PASS;
87 cache = sbjtcache_new();
89 sbjtcache_gethost(cache, &host, &host_len);
90 if ((host != NULL)||(host_len != 0)) {
91 result = UNITTEST_RESULT_FAIL;
94 sbjtcache_delete(cache);
99 /* test_sbjtcache_2 */
101 LOCAL UNITTEST_RESULT test_sbjtcache_2()
104 UNITTEST_RESULT result = UNITTEST_RESULT_PASS;
106 W err, host_len, cmp;
108 cache = sbjtcache_new();
110 err = sbjtcache_updatehost(cache, test_sbjtcache_testdata_04, strlen(test_sbjtcache_testdata_04));
112 result = UNITTEST_RESULT_FAIL;
115 sbjtcache_gethost(cache, &host, &host_len);
116 cmp = memcmp(host, test_sbjtcache_testdata_04, host_len);
118 printf("sbjtcache_gethost: data error\n");
119 result = UNITTEST_RESULT_FAIL;
122 sbjtcache_delete(cache);
127 /* test_sbjtcache_3 */
129 LOCAL UNITTEST_RESULT test_sbjtcache_3()
132 UNITTEST_RESULT result = UNITTEST_RESULT_PASS;
136 cache = sbjtcache_new();
138 sbjtcache_getboard(cache, &board, &board_len);
139 if ((board != NULL)||(board_len != 0)) {
140 result = UNITTEST_RESULT_FAIL;
143 sbjtcache_delete(cache);
148 /* test_sbjtcache_4 */
150 LOCAL UNITTEST_RESULT test_sbjtcache_4()
153 UNITTEST_RESULT result = UNITTEST_RESULT_PASS;
155 W err, board_len, cmp;
157 cache = sbjtcache_new();
159 err = sbjtcache_updateboard(cache, test_sbjtcache_testdata_05, strlen(test_sbjtcache_testdata_05));
161 result = UNITTEST_RESULT_FAIL;
164 sbjtcache_getboard(cache, &board, &board_len);
165 cmp = memcmp(board, test_sbjtcache_testdata_05, board_len);
167 printf("sbjtcache_getboard: data error\n");
168 result = UNITTEST_RESULT_FAIL;
171 sbjtcache_delete(cache);
176 /* test_sbjtcache_5 */
178 LOCAL UNITTEST_RESULT test_sbjtcache_5_testseq()
181 UNITTEST_RESULT result = UNITTEST_RESULT_PASS;
183 W err, header_len, cmp;
185 cache = sbjtcache_new();
187 err = sbjtcache_updatelatestheader(cache, test_sbjtcache_testdata_07, strlen(test_sbjtcache_testdata_07));
189 printf("sbjtcache_updatelataestheade error\n");
190 sbjtcache_delete(cache);
191 return UNITTEST_RESULT_FAIL;
194 sbjtcache_getlatestheader(cache, &header, &header_len);
195 if (header_len != strlen(test_sbjtcache_testdata_07)) {
196 printf("sbjtcache_getlatestheader: length error\n");
197 result = UNITTEST_RESULT_FAIL;
199 cmp = memcmp(header, test_sbjtcache_testdata_07, header_len);
201 printf("sbjtcache_getlatestheader: data error\n");
202 result = UNITTEST_RESULT_FAIL;
205 sbjtcache_delete(cache);
210 LOCAL UNITTEST_RESULT test_sbjtcache_5()
212 return test_sbjtcache_5_testseq();
215 /* test_sbjtcache_6 */
217 LOCAL UNITTEST_RESULT test_sbjtcache_6_testseq()
220 UNITTEST_RESULT result = UNITTEST_RESULT_PASS;
222 W err, header_len, cmp;
224 cache = sbjtcache_new();
226 err = sbjtcache_updatelatestheader(cache, test_sbjtcache_testdata_07, strlen(test_sbjtcache_testdata_07));
228 printf("sbjtcache_updatelataestheade error\n");
229 sbjtcache_delete(cache);
230 return UNITTEST_RESULT_FAIL;
232 err = sbjtcache_updatelatestheader(cache, test_sbjtcache_testdata_02, strlen(test_sbjtcache_testdata_02));
234 printf("sbjtcache_updatelataestheade error\n");
235 sbjtcache_delete(cache);
236 return UNITTEST_RESULT_FAIL;
239 sbjtcache_getlatestheader(cache, &header, &header_len);
240 if (header_len != strlen(test_sbjtcache_testdata_02)) {
241 printf("sbjtcache_getlatestheader: length error\n");
242 result = UNITTEST_RESULT_FAIL;
244 cmp = memcmp(header, test_sbjtcache_testdata_02, header_len);
246 printf("sbjtcache_getlatestheader: data error\n");
247 result = UNITTEST_RESULT_FAIL;
250 sbjtcache_delete(cache);
255 LOCAL UNITTEST_RESULT test_sbjtcache_6()
257 return test_sbjtcache_6_testseq();
260 /* test_sbjtcache_7 */
262 LOCAL UNITTEST_RESULT test_sbjtcache_7_testseq()
265 UNITTEST_RESULT result = UNITTEST_RESULT_PASS;
269 cache = sbjtcache_new();
271 sbjtcache_getlatestheader(cache, &header, &header_len);
272 if (header != NULL) {
273 printf("sbjtcache_getlatestheader: data error\n");
274 result = UNITTEST_RESULT_FAIL;
276 if (header_len != 0) {
277 printf("sbjtcache_getlatestheader: length error\n");
278 result = UNITTEST_RESULT_FAIL;
281 sbjtcache_delete(cache);
286 LOCAL UNITTEST_RESULT test_sbjtcache_7()
288 return test_sbjtcache_7_testseq();
291 /* test_sbjtcache_8 */
293 LOCAL UNITTEST_RESULT test_sbjtcache_8_testseq()
297 sbjtcache_datareadcontext_t *context;
298 UNITTEST_RESULT result = UNITTEST_RESULT_PASS;
301 cache = sbjtcache_new();
303 err = sbjtcache_appenddata(cache, test_sbjtcache_testdata_01_1, strlen(test_sbjtcache_testdata_01_1));
305 printf("sbjtcache_appenddata error 1\n");
306 sbjtcache_delete(cache);
307 return UNITTEST_RESULT_FAIL;
309 err = sbjtcache_appenddata(cache, test_sbjtcache_testdata_01_2, strlen(test_sbjtcache_testdata_01_2));
311 printf("sbjtcache_appenddata error 2\n");
312 sbjtcache_delete(cache);
313 return UNITTEST_RESULT_FAIL;
315 err = sbjtcache_appenddata(cache, test_sbjtcache_testdata_01_3, strlen(test_sbjtcache_testdata_01_3));
317 printf("sbjtcache_appenddata error 3\n");
318 sbjtcache_delete(cache);
319 return UNITTEST_RESULT_FAIL;
321 err = sbjtcache_appenddata(cache, test_sbjtcache_testdata_01_4, strlen(test_sbjtcache_testdata_01_4));
323 printf("sbjtcache_appenddata error 4\n");
324 sbjtcache_delete(cache);
325 return UNITTEST_RESULT_FAIL;
328 context = sbjtcache_startdataread(cache, 0);
329 if (context == NULL) {
330 printf("sbjtcache_startdataread error\n");
331 sbjtcache_delete(cache);
332 return UNITTEST_RESULT_FAIL;
334 ok = test_sbjtcache_util_cmp_ctx_str(context, test_sbjtcache_testdata_01, strlen(test_sbjtcache_testdata_01));
336 result = UNITTEST_RESULT_FAIL;
338 sbjtcache_enddataread(cache, context);
340 sbjtcache_delete(cache);
345 LOCAL UNITTEST_RESULT test_sbjtcache_8()
347 return test_sbjtcache_8_testseq();
350 /* test_sbjtcache_9 */
352 LOCAL UNITTEST_RESULT test_sbjtcache_9_testseq()
356 sbjtcache_datareadcontext_t *context;
357 UNITTEST_RESULT result = UNITTEST_RESULT_PASS;
362 cache = sbjtcache_new();
364 err = sbjtcache_appenddata(cache, test_sbjtcache_testdata_01_1, strlen(test_sbjtcache_testdata_01_1));
366 printf("sbjtcache_appenddata error 1\n");
367 sbjtcache_delete(cache);
368 return UNITTEST_RESULT_FAIL;
370 err = sbjtcache_appenddata(cache, test_sbjtcache_testdata_01_2, strlen(test_sbjtcache_testdata_01_2));
372 printf("sbjtcache_appenddata error 2\n");
373 sbjtcache_delete(cache);
374 return UNITTEST_RESULT_FAIL;
376 err = sbjtcache_appenddata(cache, test_sbjtcache_testdata_01_3, strlen(test_sbjtcache_testdata_01_3));
378 printf("sbjtcache_appenddata error 3\n");
379 sbjtcache_delete(cache);
380 return UNITTEST_RESULT_FAIL;
382 err = sbjtcache_appenddata(cache, test_sbjtcache_testdata_01_4, strlen(test_sbjtcache_testdata_01_4));
384 printf("sbjtcache_appenddata error 4\n");
385 sbjtcache_delete(cache);
386 return UNITTEST_RESULT_FAIL;
389 context = sbjtcache_startdataread(cache, strlen(test_sbjtcache_testdata_01)+5);
390 if (context == NULL) {
391 sbjtcache_delete(cache);
392 return UNITTEST_RESULT_FAIL;
394 ok = sbjtcache_datareadcontext_nextdata(context, &bin_cache, &len_cache);
396 result = UNITTEST_RESULT_FAIL;
398 sbjtcache_enddataread(cache, context);
400 sbjtcache_delete(cache);
405 LOCAL UNITTEST_RESULT test_sbjtcache_9()
407 return test_sbjtcache_9_testseq();
410 EXPORT VOID test_sbjtcache_main(unittest_driver_t *driver)
412 UNITTEST_DRIVER_REGIST(driver, test_sbjtcache_1);
413 UNITTEST_DRIVER_REGIST(driver, test_sbjtcache_2);
414 UNITTEST_DRIVER_REGIST(driver, test_sbjtcache_3);
415 UNITTEST_DRIVER_REGIST(driver, test_sbjtcache_4);
416 UNITTEST_DRIVER_REGIST(driver, test_sbjtcache_5);
417 UNITTEST_DRIVER_REGIST(driver, test_sbjtcache_6);
418 UNITTEST_DRIVER_REGIST(driver, test_sbjtcache_7);
419 UNITTEST_DRIVER_REGIST(driver, test_sbjtcache_8);
420 UNITTEST_DRIVER_REGIST(driver, test_sbjtcache_9);