mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-28 06:13:31 +01:00
r12812@catbus: nickm | 2007-05-19 16:17:36 -0400
Fix compilation with -O0; add unit tests for swap and shuffle. svn:r10223
This commit is contained in:
parent
6f8866a817
commit
5f58bee0b0
@ -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);
|
||||
|
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user