X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;f=selftest.c;h=2c299437388e3d6cef3700860f7f3397bd6a70ea;hb=d5888c10a181d6247e407f480524d36be6319b3e;hp=6edbc0d4ecf2016a5f2b050b9dd0b2ba0a4cac79;hpb=bb3c69868316b57abfc50bf159916358bc06ad44;p=utcp diff --git a/selftest.c b/selftest.c index 6edbc0d..2c29943 100644 --- a/selftest.c +++ b/selftest.c @@ -10,7 +10,7 @@ struct utcp *a; struct utcp *b; struct utcp_connection *c; -int do_recv(struct utcp_connection *x, void *data, size_t len) { +int do_recv(struct utcp_connection *x, const void *data, size_t len) { if(!len) { if(errno) fprintf(stderr, "%p Error: %s\n", x->utcp, strerror(errno)); @@ -43,7 +43,7 @@ void do_accept(struct utcp_connection *c, uint16_t port) { utcp_accept(c, do_recv, NULL); } -int do_send(struct utcp *utcp, void *data, size_t len) { +int do_send(struct utcp *utcp, const void *data, size_t len) { static int count = 0; if(++count > 1000) { fprintf(stderr, "Too many packets!\n"); @@ -101,5 +101,21 @@ int main(int argc, char *argv[]) { fprintf(stderr, "closing...\n"); utcp_close(c); + fprintf(stderr, "\nTesting connection with huge data transfer\n\n"); + + c = utcp_connect(b, 7, do_recv, NULL); + utcp_set_sndbuf(c, 10240); + char buf[20480] = "buf"; + + len = utcp_send(c, buf, sizeof buf); + if(len != 10240) + fprintf(stderr, "Error: utcp_send() returned %zd, expected 10240\n", len); + + fprintf(stderr, "closing...\n"); + utcp_close(c); + + utcp_exit(a); + utcp_exit(b); + return 0; }