mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-30 15:43:32 +01:00
First test case for dns_resolve_impl().
This commit is contained in:
parent
882d33a80c
commit
595bd9295c
@ -321,10 +321,144 @@ NS(test_main)(void *arg)
|
|||||||
|
|
||||||
#undef NS_SUBMODULE
|
#undef NS_SUBMODULE
|
||||||
|
|
||||||
|
#define NS_SUBMODULE ASPECT(resolve_impl, addr_is_ip_no_need_to_resolve)
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Given that <b>exitconn->base_.address</b> is IP address string, we
|
||||||
|
* want dns_resolve_impl() to parse it and store in
|
||||||
|
* <b>exitconn->base_.addr</b>. We expect dns_resolve_impl to return 1.
|
||||||
|
* Lastly, we want it to set the TTL value to default one for DNS queries.
|
||||||
|
*/
|
||||||
|
|
||||||
|
static void
|
||||||
|
NS(test_main)(void *arg)
|
||||||
|
{
|
||||||
|
int retval;
|
||||||
|
int made_pending;
|
||||||
|
const tor_addr_t *resolved_addr;
|
||||||
|
tor_addr_t addr_to_compare;
|
||||||
|
|
||||||
|
tor_addr_parse(&addr_to_compare, "8.8.8.8");
|
||||||
|
|
||||||
|
or_circuit_t *on_circ = tor_malloc_zero(sizeof(or_circuit_t));
|
||||||
|
|
||||||
|
edge_connection_t *exitconn = tor_malloc_zero(sizeof(edge_connection_t));
|
||||||
|
TO_CONN(exitconn)->type = CONN_TYPE_EXIT;
|
||||||
|
TO_CONN(exitconn)->magic = EDGE_CONNECTION_MAGIC;
|
||||||
|
TO_CONN(exitconn)->purpose = EXIT_PURPOSE_RESOLVE;
|
||||||
|
TO_CONN(exitconn)->state = EXIT_CONN_STATE_RESOLVING;
|
||||||
|
exitconn->base_.s = TOR_INVALID_SOCKET;
|
||||||
|
|
||||||
|
TO_CONN(exitconn)->address = tor_strdup("8.8.8.8");
|
||||||
|
|
||||||
|
retval = dns_resolve_impl(exitconn, 1, on_circ, NULL, &made_pending,
|
||||||
|
NULL);
|
||||||
|
|
||||||
|
resolved_addr = &(exitconn->base_.addr);
|
||||||
|
|
||||||
|
tt_int_op(retval,==,1);
|
||||||
|
tt_assert(tor_addr_compare(resolved_addr,
|
||||||
|
(const tor_addr_t *)&addr_to_compare, CMP_EXACT) == 0);
|
||||||
|
tt_int_op(exitconn->address_ttl,==,DEFAULT_DNS_TTL);
|
||||||
|
|
||||||
|
done:
|
||||||
|
tor_free(on_circ);
|
||||||
|
tor_free(TO_CONN(exitconn)->address);
|
||||||
|
tor_free(exitconn);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
#undef NS_SUBMODULE
|
||||||
|
|
||||||
|
#define NS_SUBMODULE ASPECT(resolve_impl, non_exit)
|
||||||
|
|
||||||
|
static void
|
||||||
|
NS(test_main)(void *arg)
|
||||||
|
{
|
||||||
|
tt_skip();
|
||||||
|
|
||||||
|
done:
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
#undef NS_SUBMODULE
|
||||||
|
|
||||||
|
#define NS_SUBMODULE ASPECT(resolve_impl, addr_is_invalid_dest)
|
||||||
|
|
||||||
|
static void
|
||||||
|
NS(test_main)(void *arg)
|
||||||
|
{
|
||||||
|
tt_skip();
|
||||||
|
|
||||||
|
done:
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
#undef NS_SUBMODULE
|
||||||
|
|
||||||
|
#define NS_SUBMODULE ASPECT(resolve_impl, malformed_ptr)
|
||||||
|
|
||||||
|
static void
|
||||||
|
NS(test_main)(void *arg)
|
||||||
|
{
|
||||||
|
tt_skip();
|
||||||
|
|
||||||
|
done:
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
#undef NS_SUBMODULE
|
||||||
|
|
||||||
|
#define NS_SUBMODULE ASPECT(resolve_impl, cache_hit_pending)
|
||||||
|
|
||||||
|
static void
|
||||||
|
NS(test_main)(void *arg)
|
||||||
|
{
|
||||||
|
tt_skip();
|
||||||
|
|
||||||
|
done:
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
#undef NS_SUBMODULE
|
||||||
|
|
||||||
|
#define NS_SUBMODULE ASPECT(resolve_impl, cache_hit_cached)
|
||||||
|
|
||||||
|
static void
|
||||||
|
NS(test_main)(void *arg)
|
||||||
|
{
|
||||||
|
tt_skip();
|
||||||
|
|
||||||
|
done:
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
#undef NS_SUBMODULE
|
||||||
|
|
||||||
|
#define NS_SUBMODULE ASPECT(resolve_impl, cache_miss)
|
||||||
|
|
||||||
|
static void
|
||||||
|
NS(test_main)(void *arg)
|
||||||
|
{
|
||||||
|
tt_skip();
|
||||||
|
|
||||||
|
done:
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
#undef NS_SUBMODULE
|
||||||
|
|
||||||
struct testcase_t dns_tests[] = {
|
struct testcase_t dns_tests[] = {
|
||||||
TEST_CASE(clip_ttl),
|
TEST_CASE(clip_ttl),
|
||||||
TEST_CASE(expiry_ttl),
|
TEST_CASE(expiry_ttl),
|
||||||
TEST_CASE(resolve),
|
TEST_CASE(resolve),
|
||||||
|
TEST_CASE_ASPECT(resolve_impl, addr_is_ip_no_need_to_resolve),
|
||||||
|
TEST_CASE_ASPECT(resolve_impl, non_exit),
|
||||||
|
TEST_CASE_ASPECT(resolve_impl, addr_is_invalid_dest),
|
||||||
|
TEST_CASE_ASPECT(resolve_impl, malformed_ptr),
|
||||||
|
TEST_CASE_ASPECT(resolve_impl, cache_hit_pending),
|
||||||
|
TEST_CASE_ASPECT(resolve_impl, cache_hit_cached),
|
||||||
|
TEST_CASE_ASPECT(resolve_impl, cache_miss),
|
||||||
END_OF_TESTCASES
|
END_OF_TESTCASES
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user