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
This commit is contained in:
Thomas Haller 2019-08-24 13:38:19 +02:00
parent 017a4b274f
commit a49027ab22
3 changed files with 34 additions and 0 deletions

View file

@ -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

View file

@ -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 ();
}

View file

@ -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