[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[tor-commits] [tor/master] Improve coverage in string-related unit tests
commit 1f6e3ec5006076d5ee7254489795bebbf8dab36a
Author: Esteban Manchado Velázquez <emanchado@xxxxxxxxxxxx>
Date: Mon Feb 20 13:20:32 2012 +0100
Improve coverage in string-related unit tests
---
src/test/test_util.c | 49 ++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 48 insertions(+), 1 deletions(-)
diff --git a/src/test/test_util.c b/src/test/test_util.c
index 1305e2f..4fb565d 100644
--- a/src/test/test_util.c
+++ b/src/test/test_util.c
@@ -789,6 +789,27 @@ test_util_strmisc(void)
test_streq(cp, "### Sm\n#### a\n#### l\n#### l\n#### t\n#### e\n#### s\n#### t\n");
tor_free(cp);
SMARTLIST_FOREACH(sl, char *, cp, tor_free(cp));
+ smartlist_clear(sl);
+
+ wrap_string(sl, "First null", 6, NULL, "> ");
+ cp = smartlist_join_strings(sl, "", 0, NULL);
+ test_streq(cp, "First\n> null\n");
+ tor_free(cp);
+ SMARTLIST_FOREACH(sl, char *, cp, tor_free(cp));
+ smartlist_clear(sl);
+
+ wrap_string(sl, "Second null", 6, "> ", NULL);
+ cp = smartlist_join_strings(sl, "", 0, NULL);
+ test_streq(cp, "> Seco\nnd\nnull\n");
+ tor_free(cp);
+ SMARTLIST_FOREACH(sl, char *, cp, tor_free(cp));
+ smartlist_clear(sl);
+
+ wrap_string(sl, "Both null", 6, NULL, NULL);
+ cp = smartlist_join_strings(sl, "", 0, NULL);
+ test_streq(cp, "Both\nnull\n");
+ tor_free(cp);
+ SMARTLIST_FOREACH(sl, char *, cp, tor_free(cp));
smartlist_free(sl);
/* Can't test prefixes that have the same length as the line width, because
@@ -797,7 +818,7 @@ test_util_strmisc(void)
/* Test hex_str */
{
- char binary_data[64];
+ char binary_data[68];
size_t i;
for (i = 0; i < sizeof(binary_data); ++i)
binary_data[i] = i;
@@ -807,11 +828,36 @@ test_util_strmisc(void)
test_streq(hex_str(binary_data, 32),
"000102030405060708090A0B0C0D0E0F"
"101112131415161718191A1B1C1D1E1F");
+ test_streq(hex_str(binary_data, 34),
+ "000102030405060708090A0B0C0D0E0F"
+ "101112131415161718191A1B1C1D1E1F");
/* Repeat these tests for shorter strings after longer strings
have been tried, to make sure we're correctly terminating strings */
test_streq(hex_str(binary_data, 1), "00");
test_streq(hex_str(binary_data, 0), "");
}
+
+ /* Test strcmp_opt */
+ test_eq(-1, strcmp_opt("", "foo"));
+ test_eq(0, strcmp_opt("", ""));
+ test_eq(1, strcmp_opt("foo", ""));
+
+ test_eq(-1, strcmp_opt(NULL, ""));
+ test_eq(0, strcmp_opt(NULL, NULL));
+ test_eq(1, strcmp_opt("", NULL));
+
+ test_eq(-1, strcmp_opt(NULL, "foo"));
+ test_eq(1, strcmp_opt("foo", NULL));
+
+ /* Test strcmp_len */
+ test_eq(1, strcmp_len("foo", "bar", 3));
+ test_eq(-1, strcmp_len("foo", "bar", 2)); /* First len, then lexical */
+ test_eq(1, strcmp_len("foo2", "foo1", 4));
+ test_eq(-1, strcmp_len("foo2", "foo1", 3)); /* Really stop at len */
+ test_eq(0, strcmp_len("foo2", "foo", 3)); /* Really stop at len */
+ test_eq(1, strcmp_len("blah", "", 4));
+ test_eq(0, strcmp_len("blah", "", 0));
+
done:
;
}
@@ -1565,6 +1611,7 @@ test_util_find_str_at_start_of_line(void *ptr)
(void)ptr;
test_eq_ptr(long_string, find_str_at_start_of_line(long_string, ""));
+ test_eq_ptr(NULL, find_str_at_start_of_line(short_string, "nonsense"));
test_eq_ptr(NULL, find_str_at_start_of_line(long_string, "nonsense"));
test_eq_ptr(NULL, find_str_at_start_of_line(long_string, "\n"));
test_eq_ptr(NULL, find_str_at_start_of_line(long_string, "how "));
_______________________________________________
tor-commits mailing list
tor-commits@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits