]> granicus.if.org Git - libevent/commitdiff
Improved coverage for evbuffer_readln()
authorNick Mathewson <nickm@torproject.org>
Fri, 31 Jul 2009 17:34:18 +0000 (17:34 +0000)
committerNick Mathewson <nickm@torproject.org>
Fri, 31 Jul 2009 17:34:18 +0000 (17:34 +0000)
svn:r1402

test/regress_buffer.c

index 1d69829021682ac74ba8b60fb33f9e632c145242..ff7cccad3bf57d6d347de8b5a5d64bd3b4a85413 100644 (file)
@@ -493,7 +493,6 @@ test_evbuffer_readln(void *ptr)
 
        cp = evbuffer_readln(evb, &sz, EVBUFFER_EOL_CRLF_STRICT);
        tt_assert(!cp);
-       free(cp);
        evbuffer_validate(evb);
        evbuffer_add(evb, "\n", 1);
        evbuffer_validate(evb);
@@ -504,6 +503,25 @@ test_evbuffer_readln(void *ptr)
        tt_assert(evbuffer_get_length(evb) == 0);
        evbuffer_validate(evb);
 
+       s = "An internal CR\r is not an eol\r\nNor is a lack of one";
+       evbuffer_add(evb, s, strlen(s));
+       cp = evbuffer_readln(evb, &sz, EVBUFFER_EOL_CRLF_STRICT);
+       tt_line_eq("An internal CR\r is not an eol");
+       free(cp);
+       evbuffer_validate(evb);
+
+       cp = evbuffer_readln(evb, &sz, EVBUFFER_EOL_CRLF_STRICT);
+       tt_assert(!cp);
+       evbuffer_validate(evb);
+
+       evbuffer_add(evb, "\r\n", 2);
+       evbuffer_validate(evb);
+       cp = evbuffer_readln(evb, &sz, EVBUFFER_EOL_CRLF_STRICT);
+       tt_line_eq("Nor is a lack of one");
+       free(cp);
+       tt_assert(evbuffer_get_length(evb) == 0);
+       evbuffer_validate(evb);
+
        /* Test LF */
        s = "An\rand a nl\n\nText";
        evbuffer_add(evb, s, strlen(s));