1 /* check-sources:disable-copyright-check */
2 #include <stdio.h>
3 #include <check.h>
4 #include <droplet.h>
5 #include <droplet/dbuf.h>
6 
7 #include "utest_main.h"
8 
START_TEST(dbuf_test)9 START_TEST(dbuf_test)
10 {
11   dpl_dbuf_t* b = dpl_dbuf_new();
12   dpl_assert_ptr_not_null(b);
13   dpl_assert_int_eq(0, dpl_dbuf_length(b));
14   dpl_dbuf_free(b);
15 
16   b = dpl_dbuf_new();
17   dpl_assert_ptr_not_null(b);
18 
19   const char str[] = "abcdefghijklmnopqrstuvwxyz";
20   int ret;
21 
22   ret = dpl_dbuf_add(b, str, sizeof(str));
23   dpl_assert_int_eq(1, ret);
24   dpl_assert_int_eq(sizeof(str), dpl_dbuf_length(b));
25 
26 #if 0
27   unsigned int  i;
28   for (i = 0; i < sizeof(str); i++)
29     {
30       char  out;
31       ret = dpl_dbuf_consume(b, &out, sizeof(out));
32       dpl_assert_int_eq(1, ret);
33       dpl_assert_int_eq(sizeof(str), dpl_dbuf_length(b) + i + 1);
34       dpl_assert_int_eq(out, str[i]);
35     }
36 #endif
37   dpl_dbuf_free(b);
38 }
39 END_TEST
40 
41 
42 #if 0
43 START_TEST(long_consume_test)
44 {
45   dpl_dbuf_t *b = dpl_dbuf_new();
46   int r;
47   unsigned char cb[20];
48 
49   dpl_assert_int_eq(1, dpl_dbuf_add(b, "abcdefghij", 10));
50   dpl_assert_int_eq(10, dpl_dbuf_length(b));
51 
52   /* try to consume more bytes than there are */
53   memset(cb, 0xff, sizeof(cb));
54   r = dpl_dbuf_consume(b, cb, 20);
55   dpl_assert_int_eq(10, r); /* we only get as many as there are */
56   fail_unless(0 == memcmp(cb, "abcdefghij", 10), NULL);
57   dpl_assert_int_eq(0xff, cb[10]);
58   dpl_assert_int_eq(0, dpl_dbuf_length(b));
59 
60   dpl_dbuf_free(b);
61 }
62 END_TEST;
63 #endif
64 
dbuf_suite()65 Suite* dbuf_suite()
66 {
67   Suite* s = suite_create("dbuf");
68   TCase* t = tcase_create("base");
69   tcase_add_test(t, dbuf_test);
70   //   tcase_add_test(t, long_consume_test);
71   suite_add_tcase(s, t);
72   return s;
73 }
74