mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2026-03-21 23:50:37 +01:00
ifupdown: add testcase to verify parsing into NMConnection
This commit is contained in:
parent
e4fbf5363e
commit
6dcd9114cb
3 changed files with 202 additions and 1 deletions
|
|
@ -29,4 +29,4 @@ endif
|
|||
|
||||
EXTRA_DIST = \
|
||||
test1 test2 test3 test4 test5 test6 test7 test8 test9 test11 test12 \
|
||||
test13 test14 test15 test16
|
||||
test13 test14 test15 test16 test17-wired-static-verify-ip4
|
||||
|
|
|
|||
|
|
@ -21,6 +21,9 @@
|
|||
#include <glib.h>
|
||||
#include <string.h>
|
||||
|
||||
#include <nm-utils.h>
|
||||
|
||||
#include "nm-test-helpers.h"
|
||||
#include "interface_parser.h"
|
||||
#include "parser.h"
|
||||
|
||||
|
|
@ -455,6 +458,192 @@ test16_missing_newline (const char *path)
|
|||
ifparser_destroy ();
|
||||
expected_free (e);
|
||||
}
|
||||
static void
|
||||
test17_read_static_ipv4 (const char *path)
|
||||
{
|
||||
NMConnection *connection;
|
||||
NMSettingConnection *s_con;
|
||||
NMSettingIP4Config *s_ip4;
|
||||
NMSettingWired *s_wired;
|
||||
char *unmanaged = NULL;
|
||||
char *keyfile = NULL;
|
||||
char *routefile = NULL;
|
||||
char *route6file = NULL;
|
||||
GError *error = NULL;
|
||||
const char* tmp;
|
||||
const char *expected_address = "10.0.0.3";
|
||||
const char *expected_id = "Ifupdown (eth0)";
|
||||
const char *expected_dns1 = "10.0.0.1";
|
||||
const char *expected_dns2 = "10.0.0.2";
|
||||
const char *expected_search1 = "example.com";
|
||||
const char *expected_search2 = "foo.example.com";
|
||||
guint32 expected_prefix = 8;
|
||||
NMIP4Address *ip4_addr;
|
||||
struct in_addr addr;
|
||||
if_block *block = NULL;
|
||||
const char* file = "test17-wired-static-verify-ip4";
|
||||
|
||||
init_ifparser_with_file (path, file);
|
||||
block = ifparser_getfirst ();
|
||||
connection = nm_connection_new();
|
||||
ifupdown_update_connection_from_if_block(connection, block, &error);
|
||||
|
||||
ASSERT (connection != NULL,
|
||||
"wired-static-verify-ip4", "failed to read %s: %s", file, error->message);
|
||||
|
||||
ASSERT (nm_connection_verify (connection, &error),
|
||||
"wired-static-verify-ip4", "failed to verify %s: %s", file, error->message);
|
||||
|
||||
ASSERT (unmanaged == NULL,
|
||||
"wired-static-verify-ip4", "failed to verify %s: unexpected unmanaged value", file);
|
||||
|
||||
/* ===== CONNECTION SETTING ===== */
|
||||
|
||||
s_con = nm_connection_get_setting_connection (connection);
|
||||
ASSERT (s_con != NULL,
|
||||
"wired-static-verify-ip4", "failed to verify %s: missing %s setting",
|
||||
file,
|
||||
NM_SETTING_CONNECTION_SETTING_NAME);
|
||||
|
||||
/* ID */
|
||||
tmp = nm_setting_connection_get_id (s_con);
|
||||
ASSERT (tmp != NULL,
|
||||
"wired-static-verify-ip4", "failed to verify %s: missing %s / %s key",
|
||||
file,
|
||||
NM_SETTING_CONNECTION_SETTING_NAME,
|
||||
NM_SETTING_CONNECTION_ID);
|
||||
ASSERT (strcmp (tmp, expected_id) == 0,
|
||||
"wired-static-verify-ip4", "failed to verify %s: unexpected %s / %s key value: %s",
|
||||
file,
|
||||
NM_SETTING_CONNECTION_SETTING_NAME,
|
||||
NM_SETTING_CONNECTION_ID, tmp);
|
||||
|
||||
/* ===== WIRED SETTING ===== */
|
||||
|
||||
s_wired = nm_connection_get_setting_wired (connection);
|
||||
ASSERT (s_wired != NULL,
|
||||
"wired-static-verify-ip4", "failed to verify %s: missing %s setting",
|
||||
file,
|
||||
NM_SETTING_WIRED_SETTING_NAME);
|
||||
|
||||
/* ===== IPv4 SETTING ===== */
|
||||
|
||||
ASSERT (inet_pton (AF_INET, expected_address, &addr) > 0,
|
||||
"wired-static-verify-ip4", "failed to verify %s: couldn't convert IP address #1",
|
||||
file,
|
||||
NM_SETTING_IP4_CONFIG_SETTING_NAME,
|
||||
NM_SETTING_IP4_CONFIG_DNS);
|
||||
|
||||
s_ip4 = nm_connection_get_setting_ip4_config (connection);
|
||||
ASSERT (s_ip4 != NULL,
|
||||
"wired-static-verify-ip4", "failed to verify %s: missing %s setting",
|
||||
file,
|
||||
NM_SETTING_IP4_CONFIG_SETTING_NAME);
|
||||
|
||||
/* Method */
|
||||
tmp = nm_setting_ip4_config_get_method (s_ip4);
|
||||
ASSERT (strcmp (tmp, NM_SETTING_IP4_CONFIG_METHOD_MANUAL) == 0,
|
||||
"wired-static-verify-ip4", "failed to verify %s: unexpected %s / %s key value",
|
||||
file,
|
||||
NM_SETTING_IP4_CONFIG_SETTING_NAME,
|
||||
NM_SETTING_IP4_CONFIG_METHOD);
|
||||
|
||||
/* IP addresses */
|
||||
ASSERT (nm_setting_ip4_config_get_num_addresses (s_ip4) == 1,
|
||||
"wired-static-verify-ip4", "failed to verify %s: unexpected %s / %s key value",
|
||||
file,
|
||||
NM_SETTING_IP4_CONFIG_SETTING_NAME,
|
||||
NM_SETTING_IP4_CONFIG_ADDRESSES);
|
||||
|
||||
ip4_addr = nm_setting_ip4_config_get_address (s_ip4, 0);
|
||||
ASSERT (ip4_addr,
|
||||
"wired-static--verify-ip4", "failed to verify %s: missing IP4 address #1",
|
||||
file);
|
||||
|
||||
ASSERT (nm_ip4_address_get_prefix (ip4_addr) == expected_prefix,
|
||||
"wired-static--verify-ip4", "failed to verify %s: unexpected IP4 address prefix",
|
||||
file);
|
||||
|
||||
ASSERT (nm_ip4_address_get_address (ip4_addr) == addr.s_addr,
|
||||
"wired-static--verify-ip4", "failed to verify %s: unexpected IP4 address: %s",
|
||||
file, addr.s_addr);
|
||||
|
||||
/* DNS Addresses */
|
||||
ASSERT (nm_setting_ip4_config_get_num_dns (s_ip4) == 2,
|
||||
"wired-static-verify-ip4", "failed to verify %s: unexpected %s / %s key value",
|
||||
file,
|
||||
NM_SETTING_IP4_CONFIG_SETTING_NAME,
|
||||
NM_SETTING_IP4_CONFIG_DNS);
|
||||
|
||||
ASSERT (inet_pton (AF_INET, expected_dns1, &addr) > 0,
|
||||
"wired-static-verify-ip4", "failed to verify %s: couldn't convert DNS IP address #1",
|
||||
file,
|
||||
NM_SETTING_IP4_CONFIG_SETTING_NAME,
|
||||
NM_SETTING_IP4_CONFIG_DNS);
|
||||
|
||||
ASSERT (nm_setting_ip4_config_get_dns (s_ip4, 0) == addr.s_addr,
|
||||
"wired-static-verify-ip4", "failed to verify %s: unexpected %s / %s key value #1",
|
||||
file,
|
||||
NM_SETTING_IP4_CONFIG_SETTING_NAME,
|
||||
NM_SETTING_IP4_CONFIG_DNS);
|
||||
|
||||
ASSERT (inet_pton (AF_INET, expected_dns2, &addr) > 0,
|
||||
"wired-static-verify-ip4", "failed to verify %s: couldn't convert DNS IP address #2",
|
||||
file,
|
||||
NM_SETTING_IP4_CONFIG_SETTING_NAME,
|
||||
NM_SETTING_IP4_CONFIG_DNS);
|
||||
|
||||
ASSERT (nm_setting_ip4_config_get_dns (s_ip4, 1) == addr.s_addr,
|
||||
"wired-static-verify-ip4", "failed to verify %s: unexpected %s / %s key value #2",
|
||||
file,
|
||||
NM_SETTING_IP4_CONFIG_SETTING_NAME,
|
||||
NM_SETTING_IP4_CONFIG_DNS);
|
||||
|
||||
ASSERT (nm_setting_ip4_config_get_num_addresses (s_ip4) == 1,
|
||||
"wired-static-verify-ip4", "failed to verify %s: unexpected %s / %s key value",
|
||||
file,
|
||||
NM_SETTING_IP4_CONFIG_SETTING_NAME,
|
||||
NM_SETTING_IP4_CONFIG_DNS);
|
||||
|
||||
/* DNS search domains */
|
||||
ASSERT (nm_setting_ip4_config_get_num_dns_searches (s_ip4) == 2,
|
||||
"wired-static-verify-ip4", "failed to verify %s: unexpected %s / %s key value",
|
||||
file,
|
||||
NM_SETTING_IP4_CONFIG_SETTING_NAME,
|
||||
NM_SETTING_IP4_CONFIG_DNS);
|
||||
|
||||
tmp = nm_setting_ip4_config_get_dns_search (s_ip4, 0);
|
||||
ASSERT (tmp != NULL,
|
||||
"wired-ipv6-manual-verify-ip4", "failed to verify %s: missing %s / %s key",
|
||||
file,
|
||||
NM_SETTING_IP4_CONFIG_SETTING_NAME,
|
||||
NM_SETTING_IP4_CONFIG_DNS_SEARCH);
|
||||
ASSERT (strcmp (tmp, expected_search1) == 0,
|
||||
"wired-ipv6-manual-verify-ip4", "failed to verify %s: unexpected %s / %s key value",
|
||||
file,
|
||||
NM_SETTING_IP4_CONFIG_SETTING_NAME,
|
||||
NM_SETTING_IP4_CONFIG_DNS_SEARCH);
|
||||
|
||||
tmp = nm_setting_ip4_config_get_dns_search (s_ip4, 1);
|
||||
ASSERT (tmp != NULL,
|
||||
"wired-static-verify-ip4", "failed to verify %s: missing %s / %s key",
|
||||
file,
|
||||
NM_SETTING_IP4_CONFIG_SETTING_NAME,
|
||||
NM_SETTING_IP4_CONFIG_DNS_SEARCH);
|
||||
|
||||
ASSERT (strcmp (tmp, expected_search2) == 0,
|
||||
"wired-static-verify-ip4", "failed to verify %s: unexpected %s / %s key value",
|
||||
file,
|
||||
NM_SETTING_IP4_CONFIG_SETTING_NAME,
|
||||
NM_SETTING_IP4_CONFIG_DNS_SEARCH);
|
||||
|
||||
g_free (unmanaged);
|
||||
g_free (keyfile);
|
||||
g_free (routefile);
|
||||
g_free (route6file);
|
||||
g_object_unref (connection);
|
||||
}
|
||||
|
||||
|
||||
#if GLIB_CHECK_VERSION(2,25,12)
|
||||
typedef GTestFixtureFunc TCFunc;
|
||||
|
|
@ -467,6 +656,12 @@ typedef void (*TCFunc)(void);
|
|||
int main (int argc, char **argv)
|
||||
{
|
||||
GTestSuite *suite;
|
||||
GError *error = NULL;
|
||||
|
||||
g_type_init ();
|
||||
|
||||
if (!nm_utils_init (&error))
|
||||
FAIL ("nm-utils-init", "failed to initialize libnm-util: %s", error->message);
|
||||
|
||||
g_test_init (&argc, &argv, NULL);
|
||||
|
||||
|
|
@ -490,6 +685,7 @@ int main (int argc, char **argv)
|
|||
g_test_suite_add (suite, TESTCASE (test14_mixed_whitespace_block_start, TEST_ENI_DIR));
|
||||
g_test_suite_add (suite, TESTCASE (test15_trailing_space, TEST_ENI_DIR));
|
||||
g_test_suite_add (suite, TESTCASE (test16_missing_newline, TEST_ENI_DIR));
|
||||
g_test_suite_add (suite, TESTCASE (test17_read_static_ipv4, TEST_ENI_DIR));
|
||||
|
||||
return g_test_run ();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,5 @@
|
|||
iface eth0 inet static
|
||||
address 10.0.0.3
|
||||
netmask 255.0.0.0
|
||||
dns-search example.com foo.example.com
|
||||
dns-nameservers 10.0.0.1 10.0.0.2
|
||||
Loading…
Add table
Reference in a new issue