summaryrefslogtreecommitdiff
path: root/src/dhcp/tests/test-dhcp-utils.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/dhcp/tests/test-dhcp-utils.c')
-rw-r--r--src/dhcp/tests/test-dhcp-utils.c368
1 files changed, 168 insertions, 200 deletions
diff --git a/src/dhcp/tests/test-dhcp-utils.c b/src/dhcp/tests/test-dhcp-utils.c
index e601534eb2..ad8c2cf6a3 100644
--- a/src/dhcp/tests/test-dhcp-utils.c
+++ b/src/dhcp/tests/test-dhcp-utils.c
@@ -17,18 +17,21 @@
#include "nm-test-utils-core.h"
-static NMIP4Config *
+static const NML3ConfigData *
_ip4_config_from_options (int ifindex,
const char *iface,
GHashTable *options,
guint32 route_metric)
{
nm_auto_unref_dedup_multi_index NMDedupMultiIndex *multi_idx = nm_dedup_multi_index_new ();
- NMIP4Config *config;
-
- config = nm_dhcp_utils_ip4_config_from_options (multi_idx, ifindex, iface, options, RT_TABLE_MAIN, route_metric);
- g_assert (config);
- return config;
+ NML3ConfigData *l3cd;
+
+ l3cd = nm_dhcp_utils_ip4_config_from_options (multi_idx, ifindex, iface, options, RT_TABLE_MAIN, route_metric);
+ g_assert (NM_IS_L3_CONFIG_DATA (l3cd));
+ g_assert (!nm_l3_config_data_is_sealed (l3cd));
+ if (nmtst_get_rand_bool ())
+ nm_l3_config_data_seal (l3cd);
+ return l3cd;
}
typedef struct {
@@ -70,8 +73,8 @@ static const Option generic_options[] = {
static void
test_generic_options (void)
{
- GHashTable *options;
- gs_unref_object NMIP4Config *ip4_config = NULL;
+ gs_unref_hashtable GHashTable *options = NULL;
+ nm_auto_unref_l3cd const NML3ConfigData *l3cd = NULL;
const NMPlatformIP4Address *address;
const NMPlatformIP4Route *route;
guint32 tmp;
@@ -85,43 +88,42 @@ test_generic_options (void)
const char *expected_route1_gw = "10.1.1.1";
const char *expected_route2_dest = "100.99.88.56";
const char *expected_route2_gw = "10.1.1.1";
+ const char *const*strarr;
+ const in_addr_t *ia_arr;
+ guint u;
options = fill_table (generic_options, NULL);
- ip4_config = _ip4_config_from_options (1, "eth0", options, 0);
+ l3cd = _ip4_config_from_options (1, "eth0", options, 0);
- /* IP4 address */
- g_assert_cmpint (nm_ip4_config_get_num_addresses (ip4_config), ==, 1);
- address = _nmtst_ip4_config_get_address (ip4_config, 0);
+ g_assert_cmpint (nm_l3_config_data_get_num_addresses (l3cd, AF_INET), ==, 1);
+ address = nmtst_l3_config_data_get_address_at_4 (l3cd, 0);
g_assert (inet_pton (AF_INET, expected_addr, &tmp) > 0);
g_assert (address->address == tmp);
g_assert (address->peer_address == tmp);
g_assert_cmpint (address->plen, ==, 24);
- /* Gateway */
- g_assert (inet_pton (AF_INET, expected_gw, &tmp) > 0);
- g_assert (nmtst_ip4_config_get_gateway (ip4_config) == tmp);
+ nmtst_assert_ip_address (AF_INET,
+ nmtst_l3_config_data_get_best_gateway (l3cd, AF_INET),
+ expected_gw);
- g_assert_cmpint (nm_ip4_config_get_num_wins (ip4_config), ==, 0);
+ g_assert (!nm_l3_config_data_get_wins (l3cd, &u));
+ g_assert_cmpint (u, ==, 0);
- g_assert_cmpint (nm_ip4_config_get_mtu (ip4_config), ==, 987);
+ g_assert_cmpint (nm_l3_config_data_get_mtu (l3cd), ==, 987);
- /* Domain searches */
- g_assert_cmpint (nm_ip4_config_get_num_searches (ip4_config), ==, 2);
- g_assert_cmpstr (nm_ip4_config_get_search (ip4_config, 0), ==, expected_search1);
- g_assert_cmpstr (nm_ip4_config_get_search (ip4_config, 1), ==, expected_search2);
+ strarr = nm_l3_config_data_get_searches (l3cd, AF_INET, &u);
+ g_assert_cmpint (u, ==, 2);
+ g_assert_cmpstr (strarr[0], ==, expected_search1);
+ g_assert_cmpstr (strarr[1], ==, expected_search2);
- /* DNS servers */
- g_assert_cmpint (nm_ip4_config_get_num_nameservers (ip4_config), ==, 2);
- g_assert (inet_pton (AF_INET, expected_dns1, &tmp) > 0);
- g_assert (nm_ip4_config_get_nameserver (ip4_config, 0) == tmp);
- g_assert (inet_pton (AF_INET, expected_dns2, &tmp) > 0);
- g_assert (nm_ip4_config_get_nameserver (ip4_config, 1) == tmp);
+ ia_arr = nm_l3_config_data_get_nameservers (l3cd, AF_INET, &u);
+ g_assert_cmpint (u, ==, 2);
+ nmtst_assert_ip4_address (ia_arr[0], expected_dns1);
+ nmtst_assert_ip4_address (ia_arr[1], expected_dns2);
- /* Routes */
- g_assert_cmpint (nm_ip4_config_get_num_routes (ip4_config), ==, 3);
+ g_assert_cmpint (nm_l3_config_data_get_num_routes (l3cd, AF_INET), ==, 3);
- /* Route #1 */
- route = _nmtst_ip4_config_get_route (ip4_config, 0);
+ route = nmtst_l3_config_data_get_route_at_4 (l3cd, 0);
g_assert (inet_pton (AF_INET, expected_route1_dest, &tmp) > 0);
g_assert (route->network == tmp);
g_assert (inet_pton (AF_INET, expected_route1_gw, &tmp) > 0);
@@ -129,74 +131,68 @@ test_generic_options (void)
g_assert_cmpint (route->plen, ==, 32);
g_assert_cmpint (route->metric, ==, 0);
- /* Route #2 */
- route = _nmtst_ip4_config_get_route (ip4_config, 1);
+ route = nmtst_l3_config_data_get_route_at_4 (l3cd, 1);
g_assert (route->network == nmtst_inet4_from_string (expected_route2_dest));
g_assert (route->gateway == nmtst_inet4_from_string (expected_route2_gw));
g_assert_cmpint (route->plen, ==, 32);
g_assert_cmpint (route->metric, ==, 0);
- route = _nmtst_ip4_config_get_route (ip4_config, 2);
+ route = nmtst_l3_config_data_get_route_at_4 (l3cd, 2);
g_assert (route->network == nmtst_inet4_from_string ("0.0.0.0"));
g_assert (route->gateway == nmtst_inet4_from_string ("192.168.1.1"));
g_assert_cmpint (route->plen, ==, 0);
g_assert_cmpint (route->metric, ==, 0);
-
- g_hash_table_destroy (options);
}
static void
test_wins_options (void)
{
- GHashTable *options;
- gs_unref_object NMIP4Config *ip4_config = NULL;
+ gs_unref_hashtable GHashTable *options = NULL;
+ nm_auto_unref_l3cd const NML3ConfigData *l3cd = NULL;
const NMPlatformIP4Address *address;
- guint32 tmp;
const char *expected_wins1 = "63.12.199.5";
const char *expected_wins2 = "150.4.88.120";
static const Option data[] = {
{ "netbios_name_servers", "63.12.199.5 150.4.88.120" },
{ NULL, NULL }
};
+ const in_addr_t *ia_arr;
+ guint u;
options = fill_table (generic_options, NULL);
options = fill_table (data, options);
- ip4_config = _ip4_config_from_options (1, "eth0", options, 0);
+ l3cd = _ip4_config_from_options (1, "eth0", options, 0);
- /* IP4 address */
- g_assert_cmpint (nm_ip4_config_get_num_addresses (ip4_config), ==, 1);
- address = _nmtst_ip4_config_get_address (ip4_config, 0);
+ g_assert_cmpint (nm_l3_config_data_get_num_addresses (l3cd, AF_INET), ==, 1);
+ address = nmtst_l3_config_data_get_address_at_4 (l3cd, 0);
g_assert (address);
- g_assert_cmpint (nm_ip4_config_get_num_wins (ip4_config), ==, 2);
- g_assert (inet_pton (AF_INET, expected_wins1, &tmp) > 0);
- g_assert (nm_ip4_config_get_wins (ip4_config, 0) == tmp);
- g_assert (inet_pton (AF_INET, expected_wins2, &tmp) > 0);
- g_assert (nm_ip4_config_get_wins (ip4_config, 1) == tmp);
- g_hash_table_destroy (options);
+ ia_arr = nm_l3_config_data_get_wins (l3cd, &u);
+ g_assert_cmpint (u, ==, 2);
+ nmtst_assert_ip4_address (ia_arr[0], expected_wins1);
+ nmtst_assert_ip4_address (ia_arr[1], expected_wins2);
}
static void
test_vendor_option_metered (void)
{
- GHashTable *options;
- gs_unref_object NMIP4Config *ip4_config = NULL;
+ gs_unref_hashtable GHashTable *options = NULL;
+ nm_auto_unref_l3cd const NML3ConfigData *l3cd = NULL;
static const Option data[] = {
{ "vendor_encapsulated_options", "ANDROID_METERED" },
{ NULL, NULL }
};
options = fill_table (generic_options, NULL);
- ip4_config = _ip4_config_from_options (1, "eth0", options, 0);
- g_assert (nm_ip4_config_get_metered (ip4_config) == FALSE);
- g_hash_table_destroy (options);
- g_clear_object (&ip4_config);
+ l3cd = _ip4_config_from_options (1, "eth0", options, 0);
+ g_assert (nm_l3_config_data_get_metered (l3cd) == NM_TERNARY_DEFAULT);
+ nm_clear_pointer (&options, g_hash_table_destroy);
+ nm_clear_pointer (&l3cd, nm_l3_config_data_unref);
options = fill_table (generic_options, NULL);
options = fill_table (data, options);
- ip4_config = _ip4_config_from_options (1, "eth0", options, 0);
- g_assert (nm_ip4_config_get_metered (ip4_config) == TRUE);
- g_hash_table_destroy (options);
+ l3cd = _ip4_config_from_options (1, "eth0", options, 0);
+ g_assert (nm_l3_config_data_get_metered (l3cd) == TRUE);
}
static void
@@ -254,7 +250,7 @@ test_parse_search_list (void)
}
static void
-ip4_test_route (NMIP4Config *ip4_config,
+ip4_test_route (const NML3ConfigData *l3cd,
guint route_num,
const char *expected_dest,
const char *expected_gw,
@@ -265,7 +261,7 @@ ip4_test_route (NMIP4Config *ip4_config,
g_assert (expected_prefix <= 32);
- route = _nmtst_ip4_config_get_route (ip4_config, route_num);
+ route = nmtst_l3_config_data_get_route_at_4 (l3cd, route_num);
g_assert (inet_pton (AF_INET, expected_dest, &tmp) > 0);
g_assert (route->network == tmp);
g_assert (inet_pton (AF_INET, expected_gw, &tmp) > 0);
@@ -274,21 +270,21 @@ ip4_test_route (NMIP4Config *ip4_config,
g_assert_cmpint (route->metric, ==, 0);
}
-static void
-ip4_test_gateway (NMIP4Config *ip4_config, const char *expected_gw)
-{
- guint32 tmp;
-
- g_assert_cmpint (nm_ip4_config_get_num_addresses (ip4_config), ==, 1);
- g_assert (inet_pton (AF_INET, expected_gw, &tmp) > 0);
- g_assert (nmtst_ip4_config_get_gateway (ip4_config) == tmp);
-}
+#define ip4_test_gateway(l3cd, expected_gw) \
+ G_STMT_START { \
+ const NML3ConfigData *_l3cd = (l3cd); \
+ \
+ g_assert_cmpint (nm_l3_config_data_get_num_addresses (_l3cd, AF_INET), ==, 1); \
+ nmtst_assert_ip_address (AF_INET, \
+ nmtst_l3_config_data_get_best_gateway (_l3cd, AF_INET), \
+ expected_gw); \
+ } G_STMT_END
static void
test_classless_static_routes_1 (void)
{
- GHashTable *options;
- gs_unref_object NMIP4Config *ip4_config = NULL;
+ gs_unref_hashtable GHashTable *options = NULL;
+ nm_auto_unref_l3cd const NML3ConfigData *l3cd = NULL;
const char *expected_route1_dest = "192.168.10.0";
const char *expected_route1_gw = "192.168.1.1";
const char *expected_route2_dest = "10.0.0.0";
@@ -301,22 +297,20 @@ test_classless_static_routes_1 (void)
options = fill_table (generic_options, NULL);
options = fill_table (data, options);
- ip4_config = _ip4_config_from_options (1, "eth0", options, 0);
+ l3cd = _ip4_config_from_options (1, "eth0", options, 0);
/* IP4 routes */
- g_assert_cmpint (nm_ip4_config_get_num_routes (ip4_config), ==, 3);
- ip4_test_route (ip4_config, 0, expected_route1_dest, expected_route1_gw, 24);
- ip4_test_route (ip4_config, 1, expected_route2_dest, expected_route2_gw, 8);
- ip4_test_route (ip4_config, 2, "0.0.0.0", "192.168.1.1", 0);
-
- g_hash_table_destroy (options);
+ g_assert_cmpint (nm_l3_config_data_get_num_routes (l3cd, AF_INET), ==, 3);
+ ip4_test_route (l3cd, 0, expected_route1_dest, expected_route1_gw, 24);
+ ip4_test_route (l3cd, 1, expected_route2_dest, expected_route2_gw, 8);
+ ip4_test_route (l3cd, 2, "0.0.0.0", "192.168.1.1", 0);
}
static void
test_classless_static_routes_2 (void)
{
- GHashTable *options;
- gs_unref_object NMIP4Config *ip4_config = NULL;
+ gs_unref_hashtable GHashTable *options = NULL;
+ nm_auto_unref_l3cd const NML3ConfigData *l3cd = NULL;
const char *expected_route1_dest = "192.168.10.0";
const char *expected_route1_gw = "192.168.1.1";
const char *expected_route2_dest = "10.0.0.0";
@@ -329,22 +323,20 @@ test_classless_static_routes_2 (void)
options = fill_table (generic_options, NULL);
options = fill_table (data, options);
- ip4_config = _ip4_config_from_options (1, "eth0", options, 0);
+ l3cd = _ip4_config_from_options (1, "eth0", options, 0);
/* IP4 routes */
- g_assert_cmpint (nm_ip4_config_get_num_routes (ip4_config), ==, 3);
- ip4_test_route (ip4_config, 0, expected_route1_dest, expected_route1_gw, 24);
- ip4_test_route (ip4_config, 1, expected_route2_dest, expected_route2_gw, 8);
- ip4_test_route (ip4_config, 2, "0.0.0.0", expected_route1_gw, 0);
-
- g_hash_table_destroy (options);
+ g_assert_cmpint (nm_l3_config_data_get_num_routes (l3cd, AF_INET), ==, 3);
+ ip4_test_route (l3cd, 0, expected_route1_dest, expected_route1_gw, 24);
+ ip4_test_route (l3cd, 1, expected_route2_dest, expected_route2_gw, 8);
+ ip4_test_route (l3cd, 2, "0.0.0.0", expected_route1_gw, 0);
}
static void
test_fedora_dhclient_classless_static_routes (void)
{
- GHashTable *options;
- gs_unref_object NMIP4Config *ip4_config = NULL;
+ gs_unref_hashtable GHashTable *options = NULL;
+ nm_auto_unref_l3cd const NML3ConfigData *l3cd = NULL;
const char *expected_route1_dest = "129.210.177.128";
const char *expected_route1_gw = "192.168.0.113";
const char *expected_route2_dest = "2.0.0.0";
@@ -358,25 +350,22 @@ test_fedora_dhclient_classless_static_routes (void)
options = fill_table (generic_options, NULL);
options = fill_table (data, options);
- ip4_config = _ip4_config_from_options (1, "eth0", options, 0);
+ l3cd = _ip4_config_from_options (1, "eth0", options, 0);
/* IP4 routes */
- g_assert_cmpint (nm_ip4_config_get_num_routes (ip4_config), ==, 3);
- ip4_test_route (ip4_config, 0, expected_route1_dest, expected_route1_gw, 25);
- ip4_test_route (ip4_config, 1, expected_route2_dest, expected_route2_gw, 7);
- ip4_test_route (ip4_config, 2, "0.0.0.0", expected_route1_gw, 0);
+ g_assert_cmpint (nm_l3_config_data_get_num_routes (l3cd, AF_INET), ==, 3);
+ ip4_test_route (l3cd, 0, expected_route1_dest, expected_route1_gw, 25);
+ ip4_test_route (l3cd, 1, expected_route2_dest, expected_route2_gw, 7);
+ ip4_test_route (l3cd, 2, "0.0.0.0", expected_route1_gw, 0);
- /* Gateway */
- ip4_test_gateway (ip4_config, expected_gateway);
-
- g_hash_table_destroy (options);
+ ip4_test_gateway (l3cd, expected_gateway);
}
static void
test_dhclient_invalid_classless_routes_1 (void)
{
- GHashTable *options;
- gs_unref_object NMIP4Config *ip4_config = NULL;
+ gs_unref_hashtable GHashTable *options = NULL;
+ nm_auto_unref_l3cd const NML3ConfigData *l3cd = NULL;
const char *expected_route1_dest = "192.168.10.0";
const char *expected_route1_gw = "192.168.1.1";
static const Option data[] = {
@@ -389,22 +378,20 @@ test_dhclient_invalid_classless_routes_1 (void)
options = fill_table (data, options);
NMTST_EXPECT_NM_WARN ("*ignoring invalid classless static routes*");
- ip4_config = _ip4_config_from_options (1, "eth0", options, 0);
+ l3cd = _ip4_config_from_options (1, "eth0", options, 0);
g_test_assert_expected_messages ();
/* IP4 routes */
- g_assert_cmpint (nm_ip4_config_get_num_routes (ip4_config), ==, 2);
- ip4_test_route (ip4_config, 0, expected_route1_dest, expected_route1_gw, 24);
- ip4_test_route (ip4_config, 1, "0.0.0.0", expected_route1_gw, 0);
-
- g_hash_table_destroy (options);
+ g_assert_cmpint (nm_l3_config_data_get_num_routes (l3cd, AF_INET), ==, 2);
+ ip4_test_route (l3cd, 0, expected_route1_dest, expected_route1_gw, 24);
+ ip4_test_route (l3cd, 1, "0.0.0.0", expected_route1_gw, 0);
}
static void
test_dhcpcd_invalid_classless_routes_1 (void)
{
- GHashTable *options;
- gs_unref_object NMIP4Config *ip4_config = NULL;
+ gs_unref_hashtable GHashTable *options = NULL;
+ nm_auto_unref_l3cd const NML3ConfigData *l3cd = NULL;
const char *expected_route1_dest = "10.1.1.5";
const char *expected_route1_gw = "10.1.1.1";
const char *expected_route2_dest = "100.99.88.56";
@@ -419,25 +406,23 @@ test_dhcpcd_invalid_classless_routes_1 (void)
options = fill_table (data, options);
NMTST_EXPECT_NM_WARN ("*ignoring invalid classless static routes*");
- ip4_config = _ip4_config_from_options (1, "eth0", options, 0);
+ l3cd = _ip4_config_from_options (1, "eth0", options, 0);
g_test_assert_expected_messages ();
/* Test falling back to old-style static routes if the classless static
* routes are invalid.
*/
- g_assert_cmpint (nm_ip4_config_get_num_routes (ip4_config), ==, 3);
- ip4_test_route (ip4_config, 0, expected_route1_dest, expected_route1_gw, 32);
- ip4_test_route (ip4_config, 1, expected_route2_dest, expected_route2_gw, 32);
- ip4_test_route (ip4_config, 2, "0.0.0.0", "192.168.1.1", 0);
-
- g_hash_table_destroy (options);
+ g_assert_cmpint (nm_l3_config_data_get_num_routes (l3cd, AF_INET), ==, 3);
+ ip4_test_route (l3cd, 0, expected_route1_dest, expected_route1_gw, 32);
+ ip4_test_route (l3cd, 1, expected_route2_dest, expected_route2_gw, 32);
+ ip4_test_route (l3cd, 2, "0.0.0.0", "192.168.1.1", 0);
}
static void
test_dhclient_invalid_classless_routes_2 (void)
{
- GHashTable *options;
- gs_unref_object NMIP4Config *ip4_config = NULL;
+ gs_unref_hashtable GHashTable *options = NULL;
+ nm_auto_unref_l3cd const NML3ConfigData *l3cd = NULL;
const char *expected_route1_dest = "10.1.1.5";
const char *expected_route1_gw = "10.1.1.1";
const char *expected_route2_dest = "100.99.88.56";
@@ -451,25 +436,23 @@ test_dhclient_invalid_classless_routes_2 (void)
options = fill_table (data, options);
NMTST_EXPECT_NM_WARN ("*ignoring invalid classless static routes*");
- ip4_config = _ip4_config_from_options (1, "eth0", options, 0);
+ l3cd = _ip4_config_from_options (1, "eth0", options, 0);
g_test_assert_expected_messages ();
/* Test falling back to old-style static routes if the classless static
* routes are invalid.
*/
- g_assert_cmpint (nm_ip4_config_get_num_routes (ip4_config), ==, 3);
- ip4_test_route (ip4_config, 0, expected_route1_dest, expected_route1_gw, 32);
- ip4_test_route (ip4_config, 1, expected_route2_dest, expected_route2_gw, 32);
- ip4_test_route (ip4_config, 2, "0.0.0.0", "192.168.1.1", 0);
-
- g_hash_table_destroy (options);
+ g_assert_cmpint (nm_l3_config_data_get_num_routes (l3cd, AF_INET), ==, 3);
+ ip4_test_route (l3cd, 0, expected_route1_dest, expected_route1_gw, 32);
+ ip4_test_route (l3cd, 1, expected_route2_dest, expected_route2_gw, 32);
+ ip4_test_route (l3cd, 2, "0.0.0.0", "192.168.1.1", 0);
}
static void
test_dhcpcd_invalid_classless_routes_2 (void)
{
- GHashTable *options;
- gs_unref_object NMIP4Config *ip4_config = NULL;
+ gs_unref_hashtable GHashTable *options = NULL;
+ nm_auto_unref_l3cd const NML3ConfigData *l3cd = NULL;
const char *expected_route1_dest = "10.1.1.5";
const char *expected_route1_gw = "10.1.1.1";
const char *expected_route2_dest = "100.99.88.56";
@@ -483,7 +466,7 @@ test_dhcpcd_invalid_classless_routes_2 (void)
options = fill_table (data, options);
NMTST_EXPECT_NM_WARN ("*ignoring invalid classless static routes*");
- ip4_config = _ip4_config_from_options (1, "eth0", options, 0);
+ l3cd = _ip4_config_from_options (1, "eth0", options, 0);
g_test_assert_expected_messages ();
/* Test falling back to old-style static routes if the classless static
@@ -491,19 +474,17 @@ test_dhcpcd_invalid_classless_routes_2 (void)
*/
/* Routes */
- g_assert_cmpint (nm_ip4_config_get_num_routes (ip4_config), ==, 3);
- ip4_test_route (ip4_config, 0, expected_route1_dest, expected_route1_gw, 32);
- ip4_test_route (ip4_config, 1, expected_route2_dest, expected_route2_gw, 32);
- ip4_test_route (ip4_config, 2, "0.0.0.0", "192.168.1.1", 0);
-
- g_hash_table_destroy (options);
+ g_assert_cmpint (nm_l3_config_data_get_num_routes (l3cd, AF_INET), ==, 3);
+ ip4_test_route (l3cd, 0, expected_route1_dest, expected_route1_gw, 32);
+ ip4_test_route (l3cd, 1, expected_route2_dest, expected_route2_gw, 32);
+ ip4_test_route (l3cd, 2, "0.0.0.0", "192.168.1.1", 0);
}
static void
test_dhclient_invalid_classless_routes_3 (void)
{
- GHashTable *options;
- gs_unref_object NMIP4Config *ip4_config = NULL;
+ gs_unref_hashtable GHashTable *options = NULL;
+ nm_auto_unref_l3cd const NML3ConfigData *l3cd = NULL;
const char *expected_route1_dest = "192.168.10.0";
const char *expected_route1_gw = "192.168.1.1";
static const Option data[] = {
@@ -515,22 +496,20 @@ test_dhclient_invalid_classless_routes_3 (void)
options = fill_table (data, options);
NMTST_EXPECT_NM_WARN ("*ignoring invalid classless static routes*");
- ip4_config = _ip4_config_from_options (1, "eth0", options, 0);
+ l3cd = _ip4_config_from_options (1, "eth0", options, 0);
g_test_assert_expected_messages ();
/* IP4 routes */
- g_assert_cmpint (nm_ip4_config_get_num_routes (ip4_config), ==, 2);
- ip4_test_route (ip4_config, 0, expected_route1_dest, expected_route1_gw, 24);
- ip4_test_route (ip4_config, 1, "0.0.0.0", expected_route1_gw, 0);
-
- g_hash_table_destroy (options);
+ g_assert_cmpint (nm_l3_config_data_get_num_routes (l3cd, AF_INET), ==, 2);
+ ip4_test_route (l3cd, 0, expected_route1_dest, expected_route1_gw, 24);
+ ip4_test_route (l3cd, 1, "0.0.0.0", expected_route1_gw, 0);
}
static void
test_dhcpcd_invalid_classless_routes_3 (void)
{
- GHashTable *options;
- gs_unref_object NMIP4Config *ip4_config = NULL;
+ gs_unref_hashtable GHashTable *options = NULL;
+ nm_auto_unref_l3cd const NML3ConfigData *l3cd = NULL;
const char *expected_route1_dest = "192.168.10.0";
const char *expected_route1_gw = "192.168.1.1";
static Option data[] = {
@@ -542,22 +521,20 @@ test_dhcpcd_invalid_classless_routes_3 (void)
options = fill_table (data, options);
NMTST_EXPECT_NM_WARN ("*DHCP provided invalid classless static route*");
- ip4_config = _ip4_config_from_options (1, "eth0", options, 0);
+ l3cd = _ip4_config_from_options (1, "eth0", options, 0);
g_test_assert_expected_messages ();
/* IP4 routes */
- g_assert_cmpint (nm_ip4_config_get_num_routes (ip4_config), ==, 2);
- ip4_test_route (ip4_config, 0, expected_route1_dest, expected_route1_gw, 24);
- ip4_test_route (ip4_config, 1, "0.0.0.0", expected_route1_gw, 0);
-
- g_hash_table_destroy (options);
+ g_assert_cmpint (nm_l3_config_data_get_num_routes (l3cd, AF_INET), ==, 2);
+ ip4_test_route (l3cd, 0, expected_route1_dest, expected_route1_gw, 24);
+ ip4_test_route (l3cd, 1, "0.0.0.0", expected_route1_gw, 0);
}
static void
test_dhclient_gw_in_classless_routes (void)
{
- GHashTable *options;
- gs_unref_object NMIP4Config *ip4_config = NULL;
+ gs_unref_hashtable GHashTable *options = NULL;
+ nm_auto_unref_l3cd const NML3ConfigData *l3cd = NULL;
const char *expected_route1_dest = "192.168.10.0";
const char *expected_route1_gw = "192.168.1.1";
const char *expected_gateway = "192.2.3.4";
@@ -568,24 +545,21 @@ test_dhclient_gw_in_classless_routes (void)
options = fill_table (generic_options, NULL);
options = fill_table (data, options);
- ip4_config = _ip4_config_from_options (1, "eth0", options, 0);
+ l3cd = _ip4_config_from_options (1, "eth0", options, 0);
/* IP4 routes */
- g_assert_cmpint (nm_ip4_config_get_num_routes (ip4_config), ==, 2);
- ip4_test_route (ip4_config, 0, expected_route1_dest, expected_route1_gw, 24);
- ip4_test_route (ip4_config, 1, "0.0.0.0", "192.2.3.4", 0);
+ g_assert_cmpint (nm_l3_config_data_get_num_routes (l3cd, AF_INET), ==, 2);
+ ip4_test_route (l3cd, 0, expected_route1_dest, expected_route1_gw, 24);
+ ip4_test_route (l3cd, 1, "0.0.0.0", "192.2.3.4", 0);
- /* Gateway */
- ip4_test_gateway (ip4_config, expected_gateway);
-
- g_hash_table_destroy (options);
+ ip4_test_gateway (l3cd, expected_gateway);
}
static void
test_dhcpcd_gw_in_classless_routes (void)
{
- GHashTable *options;
- gs_unref_object NMIP4Config *ip4_config = NULL;
+ gs_unref_hashtable GHashTable *options = NULL;
+ nm_auto_unref_l3cd const NML3ConfigData *l3cd = NULL;
const char *expected_route1_dest = "192.168.10.0";
const char *expected_route1_gw = "192.168.1.1";
const char *expected_gateway = "192.2.3.4";
@@ -596,24 +570,21 @@ test_dhcpcd_gw_in_classless_routes (void)
options = fill_table (generic_options, NULL);
options = fill_table (data, options);
- ip4_config = _ip4_config_from_options (1, "eth0", options, 0);
+ l3cd = _ip4_config_from_options (1, "eth0", options, 0);
/* IP4 routes */
- g_assert_cmpint (nm_ip4_config_get_num_routes (ip4_config), ==, 2);
- ip4_test_route (ip4_config, 0, expected_route1_dest, expected_route1_gw, 24);
- ip4_test_route (ip4_config, 1, "0.0.0.0", "192.2.3.4", 0);
-
- /* Gateway */
- ip4_test_gateway (ip4_config, expected_gateway);
+ g_assert_cmpint (nm_l3_config_data_get_num_routes (l3cd, AF_INET), ==, 2);
+ ip4_test_route (l3cd, 0, expected_route1_dest, expected_route1_gw, 24);
+ ip4_test_route (l3cd, 1, "0.0.0.0", "192.2.3.4", 0);
- g_hash_table_destroy (options);
+ ip4_test_gateway (l3cd, expected_gateway);
}
static void
test_escaped_domain_searches (void)
{
- GHashTable *options;
- gs_unref_object NMIP4Config *ip4_config = NULL;
+ gs_unref_hashtable GHashTable *options = NULL;
+ nm_auto_unref_l3cd const NML3ConfigData *l3cd = NULL;
const char *expected_search0 = "host1";
const char *expected_search1 = "host2";
const char *expected_search2 = "host3";
@@ -621,62 +592,61 @@ test_escaped_domain_searches (void)
{ "domain_search", "host1\\032host2\\032host3" },
{ NULL, NULL }
};
+ const char *const*strarr;
+ guint u;
options = fill_table (generic_options, NULL);
options = fill_table (data, options);
- ip4_config = _ip4_config_from_options (1, "eth0", options, 0);
-
- /* domain searches */
- g_assert_cmpint (nm_ip4_config_get_num_searches (ip4_config), ==, 3);
- g_assert_cmpstr (nm_ip4_config_get_search (ip4_config, 0), ==, expected_search0);
- g_assert_cmpstr (nm_ip4_config_get_search (ip4_config, 1), ==, expected_search1);
- g_assert_cmpstr (nm_ip4_config_get_search (ip4_config, 2), ==, expected_search2);
+ l3cd = _ip4_config_from_options (1, "eth0", options, 0);
- g_hash_table_destroy (options);
+ strarr = nm_l3_config_data_get_searches (l3cd, AF_INET, &u);
+ g_assert_cmpint (u, ==, 3);
+ g_assert_cmpstr (strarr[0], ==, expected_search0);
+ g_assert_cmpstr (strarr[1], ==, expected_search1);
+ g_assert_cmpstr (strarr[2], ==, expected_search2);
}
static void
test_invalid_escaped_domain_searches (void)
{
- GHashTable *options;
- gs_unref_object NMIP4Config *ip4_config = NULL;
+ gs_unref_hashtable GHashTable *options = NULL;
+ nm_auto_unref_l3cd const NML3ConfigData *l3cd = NULL;
static const Option data[] = {
{ "domain_search", "host1\\aahost2\\032host3" },
{ NULL, NULL }
};
+ const char *const*strarr;
+ guint u;
options = fill_table (generic_options, NULL);
options = fill_table (data, options);
NMTST_EXPECT_NM_WARN ("*invalid domain search*");
- ip4_config = _ip4_config_from_options (1, "eth0", options, 0);
+ l3cd = _ip4_config_from_options (1, "eth0", options, 0);
g_test_assert_expected_messages ();
- /* domain searches */
- g_assert_cmpint (nm_ip4_config_get_num_searches (ip4_config), ==, 0);
-
- g_hash_table_destroy (options);
+ strarr = nm_l3_config_data_get_searches (l3cd, AF_INET, &u);
+ g_assert_cmpint (u, ==, 0);
+ g_assert (!strarr);
}
static void
test_ip4_missing_prefix (const char *ip, guint32 expected_prefix)
{
- GHashTable *options;
- gs_unref_object NMIP4Config *ip4_config = NULL;
+ gs_unref_hashtable GHashTable *options = NULL;
+ nm_auto_unref_l3cd const NML3ConfigData *l3cd = NULL;
const NMPlatformIP4Address *address;
options = fill_table (generic_options, NULL);
g_hash_table_insert (options, "ip_address", (gpointer) ip);
g_hash_table_remove (options, "subnet_mask");
- ip4_config = _ip4_config_from_options (1, "eth0", options, 0);
+ l3cd = _ip4_config_from_options (1, "eth0", options, 0);
- g_assert_cmpint (nm_ip4_config_get_num_addresses (ip4_config), ==, 1);
- address = _nmtst_ip4_config_get_address (ip4_config, 0);
+ g_assert_cmpint (nm_l3_config_data_get_num_addresses (l3cd, AF_INET), ==, 1);
+ address = nmtst_l3_config_data_get_address_at_4 (l3cd, 0);
g_assert (address);
g_assert_cmpint (address->plen, ==, expected_prefix);
-
- g_hash_table_destroy (options);
}
static void
@@ -700,8 +670,8 @@ test_ip4_missing_prefix_8 (void)
static void
test_ip4_prefix_classless (void)
{
- GHashTable *options;
- gs_unref_object NMIP4Config *ip4_config = NULL;
+ gs_unref_hashtable GHashTable *options = NULL;
+ nm_auto_unref_l3cd const NML3ConfigData *l3cd = NULL;
const NMPlatformIP4Address *address;
/* Ensure that the missing-subnet-mask handler doesn't mangle classless
@@ -713,14 +683,12 @@ test_ip4_prefix_classless (void)
g_hash_table_insert (options, "ip_address", "172.16.54.22");
g_hash_table_insert (options, "subnet_mask", "255.255.252.0");
- ip4_config = _ip4_config_from_options (1, "eth0", options, 0);
+ l3cd = _ip4_config_from_options (1, "eth0", options, 0);
- g_assert_cmpint (nm_ip4_config_get_num_addresses (ip4_config), ==, 1);
- address = _nmtst_ip4_config_get_address (ip4_config, 0);
+ g_assert_cmpint (nm_l3_config_data_get_num_addresses (l3cd, AF_INET), ==, 1);
+ address = nmtst_l3_config_data_get_address_at_4 (l3cd, 0);
g_assert (address);
g_assert_cmpint (address->plen, ==, 22);
-
- g_hash_table_destroy (options);
}
#define COMPARE_ID(src, is_str, expected, expected_len) \