diff options
author | Thomas Haller <thaller@redhat.com> | 2019-08-24 13:38:19 +0200 |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2019-08-24 13:38:33 +0200 |
commit | a49027ab22aa8a6a24463e1baa3b0080d9536966 (patch) | |
tree | 13f4334525c7ba8dc6ad66507d1fdf9e1652b82d | |
parent | 017a4b274f1fbb8fcc42e9926323ab78f584e5f4 (diff) | |
download | NetworkManager-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.am | 1 | ||||
-rw-r--r-- | src/settings/plugins/ifupdown/tests/test-ifupdown.c | 25 | ||||
-rw-r--r-- | src/settings/plugins/ifupdown/tests/test22-duplicate-stanzas | 8 |
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 |