summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2019-08-24 13:38:19 +0200
committerThomas Haller <thaller@redhat.com>2019-08-24 13:38:33 +0200
commita49027ab22aa8a6a24463e1baa3b0080d9536966 (patch)
tree13f4334525c7ba8dc6ad66507d1fdf9e1652b82d
parent017a4b274f1fbb8fcc42e9926323ab78f584e5f4 (diff)
downloadNetworkManager-a49027ab22aa8a6a24463e1baa3b0080d9536966.tar.gz
ifupdown/tests: add test with duplicate interfaces
This file causes a crash [1], add it to the tests. Note that the test only check parsing the file and the crash happens in the "upper" layers. So, it's not really a test for the crash. But at least have such a file in our repository. [1] https://gitlab.freedesktop.org/NetworkManager/NetworkManager/issues/235
-rw-r--r--Makefile.am1
-rw-r--r--src/settings/plugins/ifupdown/tests/test-ifupdown.c25
-rw-r--r--src/settings/plugins/ifupdown/tests/test22-duplicate-stanzas8
3 files changed, 34 insertions, 0 deletions
diff --git a/Makefile.am b/Makefile.am
index 883cc0ea9d..03a35a617b 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -3215,6 +3215,7 @@ EXTRA_DIST += \
src/settings/plugins/ifupdown/tests/test20-source-stanza.eth1 \
src/settings/plugins/ifupdown/tests/test21-source-dir-stanza \
src/settings/plugins/ifupdown/tests/test21-source-dir-stanza.d \
+ src/settings/plugins/ifupdown/tests/test22-duplicate-stanzas \
src/settings/plugins/ifupdown/meson.build \
src/settings/plugins/ifupdown/tests/meson.build
diff --git a/src/settings/plugins/ifupdown/tests/test-ifupdown.c b/src/settings/plugins/ifupdown/tests/test-ifupdown.c
index 8e2c62f918..1e4341e945 100644
--- a/src/settings/plugins/ifupdown/tests/test-ifupdown.c
+++ b/src/settings/plugins/ifupdown/tests/test-ifupdown.c
@@ -595,6 +595,30 @@ test21_source_dir_stanza (void)
compare_expected_to_ifparser (parser, e);
}
+static void
+test22_duplicate_stanzas (void)
+{
+ nm_auto_free_expected Expected *e = NULL;
+ ExpectedBlock *b;
+ nm_auto_ifparser if_parser *parser = init_ifparser_with_file ("test22-duplicate-stanzas");
+
+ e = expected_new ();
+
+ b = expected_block_new ("iface", "br10");
+ expected_add_block (e, b);
+ expected_block_add_key (b, expected_key_new ("inet", "manual"));
+ expected_block_add_key (b, expected_key_new ("bridge-ports", "enp6s0.15"));
+ expected_block_add_key (b, expected_key_new ("bridge-stp", "off"));
+ expected_block_add_key (b, expected_key_new ("bridge-maxwait", "0"));
+ expected_block_add_key (b, expected_key_new ("bridge-fd", "0"));
+ b = expected_block_new ("iface", "br10");
+ expected_add_block (e, b);
+ expected_block_add_key (b, expected_key_new ("inet", "auto"));
+ expected_block_add_key (b, expected_key_new ("bridge-ports", "enp6s0.15"));
+
+ compare_expected_to_ifparser (parser, e);
+}
+
/*****************************************************************************/
NMTST_DEFINE ();
@@ -626,6 +650,7 @@ main (int argc, char **argv)
g_test_add_func ("/ifupdate/read_static_ipv4_plen", test19_read_static_ipv4_plen);
g_test_add_func ("/ifupdate/source_stanza", test20_source_stanza);
g_test_add_func ("/ifupdate/source_dir_stanza", test21_source_dir_stanza);
+ g_test_add_func ("/ifupdate/test22-duplicate-stanzas", test22_duplicate_stanzas);
return g_test_run ();
}
diff --git a/src/settings/plugins/ifupdown/tests/test22-duplicate-stanzas b/src/settings/plugins/ifupdown/tests/test22-duplicate-stanzas
new file mode 100644
index 0000000000..c13c2e7ebc
--- /dev/null
+++ b/src/settings/plugins/ifupdown/tests/test22-duplicate-stanzas
@@ -0,0 +1,8 @@
+iface br10 inet manual
+ bridge_ports enp6s0.15
+ bridge_stp off
+ bridge_maxwait 0
+ bridge_fd 0
+
+iface br10 inet auto
+ bridge_ports enp6s0.15