summary refs log tree commit diff
path: root/libnm-core/tests/test-setting-bond.c
diff options
context:
space:
mode:
Diffstat (limited to 'libnm-core/tests/test-setting-bond.c')
-rw-r--r--libnm-core/tests/test-setting-bond.c247
1 files changed, 0 insertions, 247 deletions
diff --git a/libnm-core/tests/test-setting-bond.c b/libnm-core/tests/test-setting-bond.c
deleted file mode 100644
index e6a65bba..00000000
--- a/libnm-core/tests/test-setting-bond.c
+++ /dev/null
@@ -1,247 +0,0 @@
-/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
-/*
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2, or (at your option)
- * any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Copyright 2016 Red Hat, Inc.
- */
-
-#include "nm-default.h"
-
-#include "nm-utils.h"
-#include "nm-setting-bond.h"
-#include "nm-connection.h"
-#include "nm-simple-connection.h"
-#include "nm-setting-connection.h"
-#include "nm-errors.h"
-
-#include "nm-utils/nm-test-utils.h"
-
-static void
-create_bond_connection (NMConnection **con, NMSettingBond **s_bond)
-{
-	NMSettingConnection *s_con;
-
-	g_assert (con);
-	g_assert (s_bond);
-
-	*con = nmtst_create_minimal_connection ("bond",
-	                                        NULL,
-	                                        NM_SETTING_BOND_SETTING_NAME,
-	                                        &s_con);
-	g_assert (*con);
-	g_assert (s_con);
-
-	g_object_set (s_con, NM_SETTING_CONNECTION_INTERFACE_NAME, "bond0", NULL);
-
-	*s_bond = (NMSettingBond *) nm_setting_bond_new ();
-	g_assert (*s_bond);
-
-	nm_connection_add_setting (*con, NM_SETTING (*s_bond));
-}
-
-#define test_verify_options(exp, ...) \
-	G_STMT_START { \
-		const char *__opts[] = { __VA_ARGS__ , NULL }; \
-		\
-		_test_verify_options (__opts, exp); \
-	} G_STMT_END
-
-static void
-_test_verify_options (const char **options, gboolean expected_result)
-{
-	gs_unref_object NMConnection *con = NULL;
-	NMSettingBond *s_bond;
-	GError *error = NULL;
-	gboolean success;
-	const char **option;
-
-	create_bond_connection (&con, &s_bond);
-
-	for (option = options; option[0] && option[1]; option += 2)
-		g_assert (nm_setting_bond_add_option (s_bond, option[0], option[1]));
-
-	if (expected_result) {
-		nmtst_assert_connection_verifies_and_normalizable (con);
-		nmtst_connection_normalize (con);
-		success = nm_setting_verify ((NMSetting *) s_bond, con, &error);
-		nmtst_assert_success (success, error);
-	} else {
-		nmtst_assert_connection_unnormalizable (con,
-		                                        NM_CONNECTION_ERROR,
-		                                        NM_CONNECTION_ERROR_INVALID_PROPERTY);
-	}
-}
-
-static void
-test_verify (void)
-{
-	test_verify_options (TRUE,
-	                     "mode", "3",
-	                     "arp_interval", "0");
-	test_verify_options (FALSE,
-	                     /* arp_interval not supported in balance-alb mode */
-	                     "mode", "balance-alb",
-	                     "arp_interval", "1",
-	                     "arp_ip_target", "1.2.3.4");
-	test_verify_options (FALSE,
-	                     /* arp_ip_target requires arp_interval */
-	                     "mode", "balance-rr",
-	                     "arp_ip_target", "1.2.3.4");
-	test_verify_options (TRUE,
-	                     "mode", "balance-rr",
-	                     "arp_interval", "1",
-	                     "arp_ip_target", "1.2.3.4");
-	test_verify_options (FALSE,
-	                     /* num_grat_arp, num_unsol_na cannot be different */
-	                     "mode", "balance-rr",
-	                     "num_grat_arp", "3",
-	                     "num_unsol_na", "4");
-	test_verify_options (TRUE,
-	                     "mode", "balance-rr",
-	                     "num_grat_arp", "5",
-	                     "num_unsol_na", "5");
-	test_verify_options (TRUE,
-	                     "mode", "active-backup",
-	                     "primary", "eth0");
-	test_verify_options (FALSE,
-	                     /* primary requires mode=active-backup */
-	                     "mode", "802.3ad",
-	                     "primary", "eth0");
-	test_verify_options (TRUE,
-	                     "mode", "802.3ad",
-	                     "lacp_rate", "fast");
-	test_verify_options (FALSE,
-	                     /* lacp_rate=fast requires mode=802.3ad */
-	                     "mode", "balance-rr",
-	                     "lacp_rate", "fast");
-	test_verify_options (TRUE,
-	                     "mode", "802.3ad",
-	                     "ad_actor_system", "ae:00:11:33:44:55");
-}
-
-static void
-test_compare_options (gboolean exp_res, const char **opts1, const char **opts2)
-{
-	gs_unref_object NMSettingBond *s_bond1 = NULL, *s_bond2 = NULL;
-	const char **p;
-
-	s_bond1 = (NMSettingBond *) nm_setting_bond_new ();
-	g_assert (s_bond1);
-	s_bond2 = (NMSettingBond *) nm_setting_bond_new ();
-	g_assert (s_bond2);
-
-	for (p = opts1; p[0] && p[1]; p += 2)
-		g_assert (nm_setting_bond_add_option (s_bond1, p[0], p[1]));
-
-	for (p = opts2; p[0] && p[1]; p += 2)
-		g_assert (nm_setting_bond_add_option (s_bond2, p[0], p[1]));
-
-	g_assert_cmpint (nm_setting_compare ((NMSetting *) s_bond1,
-	                                     (NMSetting *) s_bond2,
-	                                     NM_SETTING_COMPARE_FLAG_EXACT),
-	                 ==,
-	                 exp_res);
-}
-
-static void
-test_compare (void)
-{
-	test_compare_options (TRUE,
-	                      ((const char *[]){ "mode", "balance-rr", "miimon", "1", NULL }),
-	                      ((const char *[]){ "mode", "balance-rr", "miimon", "1", NULL }));
-	test_compare_options (FALSE,
-	                      ((const char *[]){ "mode", "balance-rr", "miimon", "1", NULL }),
-	                      ((const char *[]){ "mode", "balance-rr", "miimon", "2", NULL }));
-
-	/* ignore default values */
-	test_compare_options (TRUE,
-	                      ((const char *[]){ "miimon", "1", NULL }),
-	                      ((const char *[]){ "miimon", "1", "updelay", "0", NULL }));
-
-	/* special handling of num_grat_arp, num_unsol_na */
-	test_compare_options (FALSE,
-	                      ((const char *[]){ "num_grat_arp", "2", NULL }),
-	                      ((const char *[]){ "num_grat_arp", "1", NULL }));
-	test_compare_options (TRUE,
-	                      ((const char *[]){ "num_grat_arp", "3", NULL }),
-	                      ((const char *[]){ "num_unsol_na", "3", NULL }));
-	test_compare_options (TRUE,
-	                      ((const char *[]){ "num_grat_arp", "4", NULL }),
-	                      ((const char *[]){ "num_unsol_na", "4", "num_grat_arp", "4", NULL }));
-}
-
-static void
-test_normalize_options (const char **opts1, const char **opts2)
-{
-	gs_unref_object NMConnection *con = NULL;
-	NMSettingBond *s_bond;
-	GError *error = NULL;
-	gboolean success;
-	const char **p;
-	int num = 0;
-
-	create_bond_connection (&con, &s_bond);
-
-	for (p = opts1; p[0] && p[1]; p += 2)
-		g_assert (nm_setting_bond_add_option (s_bond, p[0], p[1]));
-
-	nmtst_assert_connection_verifies_and_normalizable (con);
-	nmtst_connection_normalize (con);
-	success = nm_setting_verify ((NMSetting *) s_bond, con, &error);
-	nmtst_assert_success (success, error);
-
-	for (p = opts2; p[0] && p[1]; p += 2) {
-		g_assert_cmpstr (nm_setting_bond_get_option_by_name (s_bond, p[0]), ==, p[1]);
-		num++;
-	}
-
-	g_assert_cmpint (num, ==, nm_setting_bond_get_num_options (s_bond));
-}
-
-static void
-test_normalize (void)
-{
-	test_normalize_options (
-		((const char *[]){ "mode", "802.3ad", "ad_actor_system", "00:02:03:04:05:06", NULL }),
-		((const char *[]){ "mode", "802.3ad", "ad_actor_system", "00:02:03:04:05:06", NULL }));
-	test_normalize_options (
-		((const char *[]){ "mode", "1", "miimon", "1", NULL }),
-		((const char *[]){ "mode", "active-backup", "miimon", "1", NULL }));
-	test_normalize_options (
-		((const char *[]){ "mode", "balance-alb", "tlb_dynamic_lb", "1", NULL }),
-		((const char *[]){ "mode", "balance-alb", NULL }));
-	test_normalize_options (
-		((const char *[]){ "mode", "balance-tlb", "tlb_dynamic_lb", "1", NULL }),
-		((const char *[]){ "mode", "balance-tlb", "tlb_dynamic_lb", "1", NULL }));
-	test_normalize_options (
-		((const char *[]){ "mode", "balance-rr", "ad_actor_sys_prio", "4", "packets_per_slave", "3", NULL }),
-		((const char *[]){ "mode", "balance-rr", "packets_per_slave", "3", NULL }));
-}
-
-#define TPATH "/libnm/settings/bond/"
-
-NMTST_DEFINE ();
-
-int
-main (int argc, char **argv)
-{
-	nmtst_init (&argc, &argv, TRUE);
-
-	g_test_add_func (TPATH "verify", test_verify);
-	g_test_add_func (TPATH "compare", test_compare);
-	g_test_add_func (TPATH "normalize", test_normalize);
-
-	return g_test_run ();
-}