diff options
author | Nick Mathewson <nickm@torproject.org> | 2013-03-18 15:28:39 -0400 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2013-03-18 15:28:39 -0400 |
commit | 2ac66e59f7b32bb7f975803c9d483848e755a08f (patch) | |
tree | e02bab0adfd33fc7b320bc2e8ec9f514a27ea3aa /src/test/test_addr.c | |
parent | 5959d1c10581399efb46eeb6c0de66547894ed65 (diff) | |
parent | ebb95d0f781e21a694a8de386ed0b75984b247d4 (diff) | |
download | tor-2ac66e59f7b32bb7f975803c9d483848e755a08f.tar.gz tor-2ac66e59f7b32bb7f975803c9d483848e755a08f.zip |
Merge remote-tracking branch 'origin/maint-0.2.3' into maint-0.2.4
Conflicts:
src/test/test_addr.c
Diffstat (limited to 'src/test/test_addr.c')
-rw-r--r-- | src/test/test_addr.c | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/src/test/test_addr.c b/src/test/test_addr.c index 890dfe4366..fec85a4696 100644 --- a/src/test/test_addr.c +++ b/src/test/test_addr.c @@ -843,6 +843,41 @@ test_virtaddrmap(void *data) ; } +static void +test_addr_is_loopback(void *data) +{ + static const struct loopback_item { + const char *name; + int is_loopback; + } loopback_items[] = { + { "::1", 1 }, + { "127.0.0.1", 1 }, + { "127.99.100.101", 1 }, + { "128.99.100.101", 0 }, + { "8.8.8.8", 0 }, + { "0.0.0.0", 0 }, + { "::2", 0 }, + { "::", 0 }, + { "::1.0.0.0", 0 }, + { NULL, 0 } + }; + + int i; + tor_addr_t addr; + (void)data; + + for (i=0; loopback_items[i].name; ++i) { + tt_int_op(tor_addr_parse(&addr, loopback_items[i].name), >=, 0); + tt_int_op(tor_addr_is_loopback(&addr), ==, loopback_items[i].is_loopback); + } + + tor_addr_make_unspec(&addr); + tt_int_op(tor_addr_is_loopback(&addr), ==, 0); + + done: + ; +} + #define ADDR_LEGACY(name) \ { #name, legacy_test_helper, 0, &legacy_setup, test_addr_ ## name } @@ -851,6 +886,7 @@ struct testcase_t addr_tests[] = { ADDR_LEGACY(ip6_helpers), ADDR_LEGACY(parse), { "virtaddr", test_virtaddrmap, 0, NULL, NULL }, + { "is_loopback", test_addr_is_loopback, 0, NULL, NULL }, END_OF_TESTCASES }; |