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.

Reply via email to