dhcp6-client: Add tests for address, information and prefix requests

Add simple test cases to ensure the request for addresses, prefixes
and information request are handled as expected.
This commit is contained in:
Patrik Flykt 2018-09-07 09:24:15 -06:00
parent f311a62bef
commit 7776f2aeff
1 changed files with 35 additions and 4 deletions

View File

@ -37,6 +37,7 @@ static uint8_t test_duid[14] = { };
static int test_client_basic(sd_event *e) {
sd_dhcp6_client *client;
int v;
if (verbose)
printf("* %s\n", __FUNCTION__);
@ -68,6 +69,36 @@ static int test_client_basic(sd_event *e) {
assert_se(sd_dhcp6_client_set_request_option(client, SD_DHCP6_OPTION_DOMAIN_LIST) == -EEXIST);
assert_se(sd_dhcp6_client_set_request_option(client, 10) == -EINVAL);
assert_se(sd_dhcp6_client_set_information_request(client, 1) >= 0);
v = 0;
assert_se(sd_dhcp6_client_get_information_request(client, &v) >= 0);
assert_se(v);
assert_se(sd_dhcp6_client_set_information_request(client, 0) >= 0);
v = 42;
assert_se(sd_dhcp6_client_get_information_request(client, &v) >= 0);
assert_se(v == 0);
v = 0;
assert_se(sd_dhcp6_client_get_address_request(client, &v) >= 0);
assert_se(v);
v = 0;
assert_se(sd_dhcp6_client_set_address_request(client, 1) >= 0);
assert_se(sd_dhcp6_client_get_address_request(client, &v) >= 0);
assert_se(v);
v = 42;
assert_se(sd_dhcp6_client_set_address_request(client, 1) >= 0);
assert_se(sd_dhcp6_client_get_address_request(client, &v) >= 0);
assert_se(v);
assert_se(sd_dhcp6_client_set_address_request(client, 1) >= 0);
assert_se(sd_dhcp6_client_set_prefix_delegation(client, 1) >= 0);
v = 0;
assert_se(sd_dhcp6_client_get_address_request(client, &v) >= 0);
assert_se(v);
v = 0;
assert_se(sd_dhcp6_client_get_prefix_delegation(client, &v) >= 0);
assert_se(v);
assert_se(sd_dhcp6_client_set_callback(client, NULL, NULL) >= 0);
assert_se(sd_dhcp6_client_detach_event(client) >= 0);
@ -862,7 +893,7 @@ static int test_client_solicit(sd_event *e) {
sd_dhcp6_client *client;
usec_t time_now = now(clock_boottime_or_monotonic());
struct in6_addr address = { { { 0xfe, 0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x01 } } };
int val = true;
int val;
if (verbose)
printf("* %s\n", __FUNCTION__);
@ -879,10 +910,10 @@ static int test_client_solicit(sd_event *e) {
assert_se(sd_dhcp6_client_set_fqdn(client, "host.lab.intra") == 1);
assert_se(sd_dhcp6_client_get_information_request(client, &val) >= 0);
assert_se(val == false);
assert_se(sd_dhcp6_client_set_information_request(client, true) >= 0);
assert_se(val == 0);
assert_se(sd_dhcp6_client_set_information_request(client, 42) >= 0);
assert_se(sd_dhcp6_client_get_information_request(client, &val) >= 0);
assert_se(val == true);
assert_se(val);
assert_se(sd_dhcp6_client_set_callback(client,
test_client_information_cb, e) >= 0);