6 #if !LWIP_STATS || !MEM_STATS ||!MEMP_STATS 7 #error "This tests needs MEM- and MEMP-statistics enabled" 10 #error "This test needs DNS turned off (as it mallocs on init)" 12 #if !LWIP_TCP || !TCP_QUEUE_OOSEQ || !LWIP_WND_SCALE 13 #error "This test needs TCP OOSEQ queueing and window scaling enabled" 29 #define TESTBUFSIZE_1 65535 30 #define TESTBUFSIZE_2 65530 31 #define TESTBUFSIZE_3 50050 44 struct pbuf *p1, *p2, *p3;
48 fail_unless(lwip_stats.mem.used == 0);
49 fail_unless(lwip_stats.memp[MEMP_PBUF_POOL].used == 0);
52 fail_unless(p1 !=
NULL);
53 fail_unless(p1->
ref == 1);
56 fail_unless(p2 !=
NULL);
57 fail_unless(p2->
ref == 1);
61 fail_unless(p1->
ref == 1);
62 fail_unless(p2->
ref == 1);
70 fail_unless(lwip_stats.mem.used == 0);
72 fail_unless(lwip_stats.mem.used == 0);
73 fail_unless(lwip_stats.memp[MEMP_PBUF_POOL].used == 0);
83 pbuf_split_64k(p, &rest);
97 testbuf_1[i] = (
u8_t)rand();
100 testbuf_2[i] = (
u8_t)rand();
103 testbuf_3[i] = (
u8_t)rand();
107 fail_unless(p1 !=
NULL);
109 fail_unless(p2 !=
NULL);
111 fail_unless(p3 !=
NULL);
112 err =
pbuf_take(p1, testbuf_1, TESTBUFSIZE_1);
113 fail_unless(err ==
ERR_OK);
114 err =
pbuf_take(p2, testbuf_2, TESTBUFSIZE_2);
115 fail_unless(err ==
ERR_OK);
116 err =
pbuf_take(p3, testbuf_3, TESTBUFSIZE_3);
117 fail_unless(err ==
ERR_OK);
122 pbuf_split_64k(p1, &rest2);
123 fail_unless(p1->
tot_len == TESTBUFSIZE_1);
124 fail_unless(rest2->
tot_len == (
u16_t)((TESTBUFSIZE_2+TESTBUFSIZE_3) & 0xFFFF));
125 pbuf_split_64k(rest2, &rest3);
126 fail_unless(rest2->
tot_len == TESTBUFSIZE_2);
127 fail_unless(rest3->tot_len == TESTBUFSIZE_3);
133 fail_unless(testbuf_1[i] == testbuf_1a[i]);
135 fail_unless(testbuf_2[i] == testbuf_2a[i]);
137 fail_unless(testbuf_3[i] == testbuf_3a[i]);
154 u8_t testdata[] = { 0x01, 0x08, 0x82, 0x02 };
165 fail_unless(res ==
ERR_OK);
168 for (i = 0; i <
sizeof(testdata); i++) {
169 fail_unless(out[i] == testdata[i],
170 "Bad data at pos %d, was %02X, expected %02X", i, out[i], testdata[i]);
175 fail_unless(res ==
ERR_OK);
178 fail_unless(out[p->
len - 1] == testdata[0],
179 "Bad data at pos %d, was %02X, expected %02X", p->
len - 1, out[p->
len - 1], testdata[0]);
181 for (i = 1; i <
sizeof(testdata); i++) {
182 fail_unless(out[i-1] == testdata[i],
183 "Bad data at pos %d, was %02X, expected %02X", p->
len - 1 + i, out[i-1], testdata[i]);
188 fail_unless(res ==
ERR_OK);
191 for (i = 0; i <
sizeof(testdata); i++) {
192 fail_unless(out[i] == testdata[i],
193 "Bad data at pos %d, was %02X, expected %02X", p->
len+i, out[i], testdata[i]);
204 u8_t testdata = 0x01;
218 fail_unless(*out == testdata,
219 "Bad data at pos %d, was %02X, expected %02X", p->
len, *out, testdata);
222 fail_unless(*out == getdata,
223 "pbuf_get_at() returned bad data at pos %d, was %02X, expected %02X", p->
len, getdata, *out);
233 TESTFUNC(test_pbuf_split_64k_on_small_pbufs),
234 TESTFUNC(test_pbuf_queueing_bigger_than_64k),
void pbuf_put_at(struct pbuf *p, u16_t offset, u8_t data)
END_TEST Suite * pbuf_suite(void)
struct pbuf * pbuf_alloc(pbuf_layer layer, u16_t length, pbuf_type type)
u8_t pbuf_free(struct pbuf *p)
err_t pbuf_copy(struct pbuf *p_to, struct pbuf *p_from)
err_t pbuf_take(struct pbuf *buf, const void *dataptr, u16_t len)
Suite * create_suite(const char *name, testfunc *tests, size_t num_tests, SFun setup, SFun teardown)
u16_t pbuf_copy_partial(struct pbuf *buf, void *dataptr, u16_t len, u16_t offset)
void pbuf_cat(struct pbuf *h, struct pbuf *t)
u8_t pbuf_get_at(struct pbuf *p, u16_t offset)
err_t pbuf_take_at(struct pbuf *buf, const void *dataptr, u16_t len, u16_t offset)
#define LWIP_UNUSED_ARG(x)
START_TEST(test_pbuf_copy_zero_pbuf)