Revision: 14639
Author: adrian.chadd
Date: Sun May 9 02:10:53 2010
Log: Issue #108 - Flesh out the beginnings of some very, very informal unit
tests for the
content length check function.
http://code.google.com/p/lusca-cache/source/detail?r=14639
Modified:
/branches/LUSCA_HEAD/libhttp/HttpHeaderParse.c
/branches/LUSCA_HEAD/test-suite/libhttp/test_libhttp_1.c
=======================================
--- /branches/LUSCA_HEAD/libhttp/HttpHeaderParse.c Tue May 4 21:44:21 2010
+++ /branches/LUSCA_HEAD/libhttp/HttpHeaderParse.c Sun May 9 02:10:53 2010
@@ -79,7 +79,7 @@
static HttpHeaderEntry * httpHeaderEntryParseCreate(HttpHeader *hdr, const
char *field_start, const char *field_end);
-static int
+int
hh_check_content_length(HttpHeader *hdr, String *value)
{
squid_off_t l1;
=======================================
--- /branches/LUSCA_HEAD/test-suite/libhttp/test_libhttp_1.c Tue Aug 26
08:57:41 2008
+++ /branches/LUSCA_HEAD/test-suite/libhttp/test_libhttp_1.c Sun May 9
02:10:53 2010
@@ -43,6 +43,69 @@
#include "libhttp/HttpHeaderMask.h"
#include "libhttp/HttpHeaderParse.h"
+extern int hh_check_content_length(HttpHeader *hdr, String *value);
+
+static int
+test_hh_content_length(HttpHeader *hdr, const char *str)
+{
+ String val = StringNull;
+ int r;
+
+ stringInit(&val, str);
+
+ /* XXX remember; this may delete items from the header entry array! */
+ r = hh_check_content_length(hdr, &val);
+ stringClean(&val);
+ return r;
+}
+
+static int
+test1c()
+{
+ HttpHeader hdr;
+ int ret;
+ const char *hdrs = "Host: www.creative.net.au\r\nContent-Length:
12345\r\nContent-type: text/html\r\nFoo: bar\r\n\r\n";
+ const char *hdr_start = hdrs;
+ const char *hdr_end = hdr_start + strlen(hdrs);
+
+ printf("test1c: test hh_check_content_length\n");
+
+ httpHeaderInit(&hdr, hoRequest);
+
+ printf("test1c: hh_check_content_length: 12345 = %d\n",
test_hh_content_length(&hdr, "12345"));
+ printf("test1c: hh_check_content_length: 123b5 = %d\n",
test_hh_content_length(&hdr, "123b5"));
+ printf("test1c: hh_check_content_length: b1234 = %d\n",
test_hh_content_length(&hdr, "b1234"));
+ printf("test1c: hh_check_content_length: abcde = %d\n",
test_hh_content_length(&hdr, "abcde"));
+
+ /* now check duplicates */
+ ret = httpHeaderParse(&hdr, hdr_start, hdr_end);
+ printf("test1c: httpHeaderParse: Returned %d\n", ret);
+
+ printf("test1c: hh_check_content_length: 12345 = %d\n",
test_hh_content_length(&hdr, "12345"));
+ printf("test1c: hh_check_content_length: 123b5 = %d\n",
test_hh_content_length(&hdr, "123b5"));
+ printf("test1c: hh_check_content_length: b1234 = %d\n",
test_hh_content_length(&hdr, "b1234"));
+ printf("test1c: hh_check_content_length: 12344 = %d\n",
test_hh_content_length(&hdr, "12344"));
+ printf("test1c: hh_check_content_length: 12346 = %d\n",
test_hh_content_length(&hdr, "12346"));
+ printf("test1c: hh_check_content_length: 12344 = %d\n",
test_hh_content_length(&hdr, "12344"));
+
+ printf("test1c: hh_check_content_length: setting
httpConfig_relaxed_parser to 1 (ok)\n");
+ httpConfig_relaxed_parser = 1;
+ printf("test1c: hh_check_content_length: 12345 = %d\n",
test_hh_content_length(&hdr, "12345"));
+ printf("test1c: hh_check_content_length: 123b5 = %d\n",
test_hh_content_length(&hdr, "123b5"));
+ printf("test1c: hh_check_content_length: b1234 = %d\n",
test_hh_content_length(&hdr, "b1234"));
+
+ printf("test1c: hh_check_content_length: 12344 = %d\n",
test_hh_content_length(&hdr, "12344"));
+ /* this one should result in the deletion of the "12345" entry from the
original request parse */
+ printf("test1c: hh_check_content_length: 12346 = %d\n",
test_hh_content_length(&hdr, "12346"));
+ printf("test1c: hh_check_content_length: 12344 = %d\n",
test_hh_content_length(&hdr, "12344"));
+
+ /* Clean up */
+ httpHeaderReset(&hdr);
+ httpHeaderClean(&hdr);
+
+ return 1;
+}
+
static int
test1a(void)
{
@@ -92,6 +155,7 @@
httpHeaderInitLibrary();
test1a();
test1b();
+ test1c();
exit(0);
}
--
You received this message because you are subscribed to the Google Groups
"lusca-commit" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/lusca-commit?hl=en.