[or-cvs] Add tests for several of the more recently committed functi...

Nick Mathewson nickm at seul.org
Sun Jun 18 07:35:12 UTC 2006


Update of /home/or/cvsroot/tor/src/or
In directory moria:/tmp/cvs-serv23232/src/or

Modified Files:
	test.c 
Log Message:
Add tests for several of the more recently committed functions.

Index: test.c
===================================================================
RCS file: /home/or/cvsroot/tor/src/or/test.c,v
retrieving revision 1.227
retrieving revision 1.228
diff -u -p -d -r1.227 -r1.228
--- test.c	13 Jun 2006 11:11:19 -0000	1.227
+++ test.c	18 Jun 2006 07:35:10 -0000	1.228
@@ -773,6 +773,16 @@ test_util(void)
   test_streq("and", smartlist_bsearch(sl, " AND", _compare_without_first_ch));
   test_eq_ptr(NULL, smartlist_bsearch(sl, " ANz", _compare_without_first_ch));
 
+  /* Test reverse() and pop_last() */
+  smartlist_reverse(sl);
+  cp = smartlist_join_strings(sl, ",", 0, NULL);
+  test_streq(cp,"the,router,onion,nickm,by,arma,and");
+  tor_free(cp);
+  cp = smartlist_pop_last(sl);
+  test_streq(cp, "and");
+  tor_free(cp);
+  test_eq(smartlist_len(sl), 6);
+
   /* Test tor_strstrip() */
   strcpy(buf, "Testing 1 2 3");
   test_eq(0, tor_strstrip(buf, ",!"));
@@ -913,8 +923,10 @@ test_util(void)
 static void
 test_gzip(void)
 {
-  char *buf1, *buf2=NULL, *buf3=NULL;
+  char *buf1, *buf2=NULL, *buf3=NULL, *cp1, *cp2;
+  const char *ccp2;
   size_t len1, len2;
+  tor_zlib_state_t *state;
 
   buf1 = tor_strdup("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZAAAAAAAAAAAAAAAAAAAZ");
   test_eq(detect_compression_method(buf1, strlen(buf1)), 0);
@@ -980,6 +992,35 @@ test_gzip(void)
                                  ZLIB_METHOD, 1, LOG_INFO));
   tor_assert(!buf3);
 
+  /* Now, try streaming compression. */
+  tor_free(buf1);
+  tor_free(buf2);
+  tor_free(buf3);
+  state = tor_zlib_new(1, ZLIB_METHOD);
+  tor_assert(state);
+  cp1 = buf1 = tor_malloc(1024);
+  len1 = 1024;
+  ccp2 = "ABCDEFGHIJABCDEFGHIJ";
+  len2 = 21;
+  test_eq(tor_zlib_process(state, &cp1, &len1, &ccp2, &len2, 0),
+          TOR_ZLIB_OK);
+  test_eq(len2, 0); /* Make sure we compressed it all. */
+  test_assert(cp1 > buf1);
+
+  len2 = 0;
+  cp2 = cp1;
+  test_eq(tor_zlib_process(state, &cp1, &len1, &ccp2, &len2, 1),
+          TOR_ZLIB_DONE);
+  test_eq(len2, 0);
+  test_assert(cp1 > cp2); /* Make sure we really added something. */
+
+  tor_assert(!tor_gzip_uncompress(&buf3, &len2, buf1, 1024-len1,
+                                  ZLIB_METHOD, 1, LOG_WARN));
+  test_streq(buf3, "ABCDEFGHIJABCDEFGHIJ"); /*Make sure it compressed right.*/
+  tor_free(buf3);
+
+  tor_zlib_free(state);
+
   tor_free(buf2);
   tor_free(buf3);
   tor_free(buf1);



More information about the tor-commits mailing list