aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/common/container.h4
-rw-r--r--src/or/test.c20
2 files changed, 21 insertions, 3 deletions
diff --git a/src/common/container.h b/src/common/container.h
index 5da0fbc85..280c1a8c7 100644
--- a/src/common/container.h
+++ b/src/common/container.h
@@ -78,9 +78,9 @@ extern INLINE void smartlist_set(smartlist_t *sl, int idx, void *val) {
#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);
diff --git a/src/or/test.c b/src/or/test.c
index ba5f2a45a..5c4d349c8 100644
--- a/src/or/test.c
+++ b/src/or/test.c
@@ -1085,19 +1085,37 @@ test_smartlist(void)
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);