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