[or-cvs] r10223: Fix compilation with -O0; add unit tests for swap and shuffl (in tor/trunk: . src/common src/or)

nickm at seul.org nickm at seul.org
Sat May 19 20:17:39 UTC 2007


Author: nickm
Date: 2007-05-19 16:17:37 -0400 (Sat, 19 May 2007)
New Revision: 10223

Modified:
   tor/trunk/
   tor/trunk/src/common/container.h
   tor/trunk/src/or/test.c
Log:
 r12812 at catbus:  nickm | 2007-05-19 16:17:36 -0400
 Fix compilation with -O0; add unit tests for swap and shuffle.



Property changes on: tor/trunk
___________________________________________________________________
 svk:merge ticket from /tor/trunk [r12812] on 8246c3cf-6607-4228-993b-4d95d33730f1

Modified: tor/trunk/src/common/container.h
===================================================================
--- tor/trunk/src/common/container.h	2007-05-19 20:08:44 UTC (rev 10222)
+++ tor/trunk/src/common/container.h	2007-05-19 20:17:37 UTC (rev 10223)
@@ -78,9 +78,9 @@
 #define smartlist_set(sl, idx, val) ((sl)->list[idx] = (val))
 #endif
 
-void smartlist_swap(smartlist_t *sl, int idx1, int idx2);
+// void smartlist_swap(smartlist_t *sl, int idx1, int idx2);
 /**DOCDOC*/
-extern INLINE void smartlist_swap(smartlist_t *sl, int idx1, int idx2)
+static INLINE void smartlist_swap(smartlist_t *sl, int idx1, int idx2)
 {
   if (idx1 != idx2) {
     void *elt = smartlist_get(sl, idx1);

Modified: tor/trunk/src/or/test.c
===================================================================
--- tor/trunk/src/or/test.c	2007-05-19 20:08:44 UTC (rev 10222)
+++ tor/trunk/src/or/test.c	2007-05-19 20:17:37 UTC (rev 10223)
@@ -1085,19 +1085,37 @@
   SMARTLIST_FOREACH(sl, char *, cp, tor_free(cp));
   smartlist_clear(sl);
 
-  /* Test smartlist sorting. */
+  /* Test swapping, shuffling, and sorting. */
   smartlist_split_string(sl, "the,onion,router,by,arma,and,nickm", ",", 0, 0);
   test_eq(7, smartlist_len(sl));
   smartlist_sort(sl, _compare_strs);
   cp = smartlist_join_strings(sl, ",", 0, NULL);
   test_streq(cp,"and,arma,by,nickm,onion,router,the");
   tor_free(cp);
+  smartlist_swap(sl, 1, 5);
+  cp = smartlist_join_strings(sl, ",", 0, NULL);
+  test_streq(cp,"and,router,by,nickm,onion,arma,the");
+  tor_free(cp);
+  smartlist_shuffle(sl);
+  test_eq(7, smartlist_len(sl));
+  test_assert(smartlist_string_isin(sl, "and"));
+  test_assert(smartlist_string_isin(sl, "router"));
+  test_assert(smartlist_string_isin(sl, "by"));
+  test_assert(smartlist_string_isin(sl, "nickm"));
+  test_assert(smartlist_string_isin(sl, "onion"));
+  test_assert(smartlist_string_isin(sl, "arma"));
+  test_assert(smartlist_string_isin(sl, "the"));
 
+
+  /* Test bsearch. */
+  smartlist_sort(sl, _compare_strs);
   test_streq("nickm", smartlist_bsearch(sl, "zNicKM",
                                         _compare_without_first_ch));
   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);



More information about the tor-commits mailing list