]> granicus.if.org Git - libevent/commitdiff
test/buffer: cover evbuffer_expand() for overflow
authorAzat Khuzhin <a3at.mail@gmail.com>
Wed, 22 Jun 2016 12:48:51 +0000 (15:48 +0300)
committerAzat Khuzhin <a3at.mail@gmail.com>
Sat, 25 Jun 2016 22:59:42 +0000 (01:59 +0300)
Refs: #306
Refs: #340

test/regress_buffer.c

index 2f57c3b5b5399b2f3c0c554c9e14227cc9b978b7..1af75f537118f609a13828a0e2c9af1541161ea4 100644 (file)
@@ -708,6 +708,23 @@ end:
        evbuffer_free(buf);
 }
 
+static void
+test_evbuffer_expand_overflow(void *ptr)
+{
+       struct evbuffer *buf;
+
+       buf = evbuffer_new();
+       evbuffer_add(buf, "1", 1);
+       evbuffer_expand(buf, EVBUFFER_CHAIN_MAX);
+       evbuffer_validate(buf);
+
+       evbuffer_expand(buf, EV_SIZE_MAX);
+       evbuffer_validate(buf);
+
+end:
+       evbuffer_free(buf);
+}
+
 static void
 test_evbuffer_add1(void *ptr)
 {
@@ -2494,6 +2511,7 @@ struct testcase_t evbuffer_testcases[] = {
        { "reserve_many2", test_evbuffer_reserve_many, 0, &nil_setup, (void*)"add" },
        { "reserve_many3", test_evbuffer_reserve_many, 0, &nil_setup, (void*)"fill" },
        { "expand", test_evbuffer_expand, 0, NULL, NULL },
+       { "expand_overflow", test_evbuffer_expand_overflow, 0, NULL, NULL },
        { "add1", test_evbuffer_add1, 0, NULL, NULL },
        { "add2", test_evbuffer_add2, 0, NULL, NULL },
        { "reference", test_evbuffer_reference, 0, NULL, NULL },