diff options
author | Beniamino Galvani <bgalvani@redhat.com> | 2018-08-29 16:32:03 +0200 |
---|---|---|
committer | Beniamino Galvani <bgalvani@redhat.com> | 2018-08-29 17:22:52 +0200 |
commit | f7e27a8def1ac111df6246dc4ad4194b3d168dd2 (patch) | |
tree | 80541ae6368e82256dc2ec0e5be2465bafa2291f | |
parent | d17d26887c69c8c3adcd6003a7ceea16b4eecd14 (diff) | |
download | NetworkManager-bg/wildcard-match-misc.tar.gz |
core: add test for nm_wildcard_match_check()bg/wildcard-match-misc
-rw-r--r-- | src/tests/test-general.c | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/src/tests/test-general.c b/src/tests/test-general.c index a602feed75..3b83a66e60 100644 --- a/src/tests/test-general.c +++ b/src/tests/test-general.c @@ -907,6 +907,79 @@ test_connection_match_ip6_routes (void) g_assert (matched == copy); } +#define do_test_wildcard_match(str, result, ...) \ + g_assert (nm_wildcard_match_check (str, \ + (const char *const[]) { __VA_ARGS__ }, \ + NM_NARG (__VA_ARGS__)) \ + == result); + +static void +test_wildcard_match (void) +{ + do_test_wildcard_match ("foobar", TRUE); + + do_test_wildcard_match ("foo", TRUE, "foo", "bar", "baz"); + do_test_wildcard_match ("bar", TRUE, "foo", "bar", "baz"); + do_test_wildcard_match ("baz", TRUE, "foo", "bar", "baz"); + do_test_wildcard_match ("aaa", FALSE, "foo", "bar", "baz"); + do_test_wildcard_match ("", FALSE, "foo", "bar", "baz"); + + do_test_wildcard_match ("ens1", TRUE, "ens1*"); + do_test_wildcard_match ("ens10", TRUE, "ens1*"); + do_test_wildcard_match ("ens11", TRUE, "ens1*"); + do_test_wildcard_match ("ens12", TRUE, "ens1*"); + do_test_wildcard_match ("eth0", FALSE, "ens1*"); + do_test_wildcard_match ("ens", FALSE, "ens1*"); + + do_test_wildcard_match ("ens1*", TRUE, "ens1\\*"); + do_test_wildcard_match ("ens1" , FALSE, "ens1\\*"); + do_test_wildcard_match ("ens10", FALSE, "ens1\\*"); + + do_test_wildcard_match ("abcd", TRUE, "ab??"); + do_test_wildcard_match ("ab", FALSE, "ab??"); + + do_test_wildcard_match ("ab??", TRUE, "ab\\?\\?"); + do_test_wildcard_match ("abcd", FALSE, "ab\\?\\?"); + + do_test_wildcard_match ("ens10", TRUE, "ens1*", "!ens11"); + do_test_wildcard_match ("ens11", FALSE, "ens1*", "!ens11"); + do_test_wildcard_match ("ens12", TRUE, "ens1*", "!ens11"); + + do_test_wildcard_match ("a", FALSE, "!a", "!b"); + do_test_wildcard_match ("b", FALSE, "!a", "!b"); + do_test_wildcard_match ("c", TRUE, "!a", "!b"); + do_test_wildcard_match ("!a", TRUE, "!a", "!b"); + + do_test_wildcard_match ("!net", TRUE, "\\!net"); + do_test_wildcard_match ("net", FALSE, "\\!net"); + do_test_wildcard_match ("ens10", FALSE, "\\!net"); + do_test_wildcard_match ("\\!net", FALSE, "\\!net"); + + do_test_wildcard_match ("eth0", FALSE, "*eth?", "!veth*", "!*0"); + do_test_wildcard_match ("eth1", TRUE, "*eth?", "!veth*", "!*0"); + do_test_wildcard_match ("myeth0", FALSE, "*eth?", "!veth*", "!*0"); + do_test_wildcard_match ("myeth2", TRUE, "*eth?", "!veth*", "!*0"); + do_test_wildcard_match ("veth0", FALSE, "*eth?", "!veth*", "!*0"); + do_test_wildcard_match ("veth1", FALSE, "*eth?", "!veth*", "!*0"); + do_test_wildcard_match ("dummy1", FALSE, "*eth?", "!veth*", "!*0"); + + do_test_wildcard_match ("a", TRUE, "!!a"); + do_test_wildcard_match ("b", TRUE, "!!a"); + do_test_wildcard_match ("!a", FALSE, "!!a"); + + do_test_wildcard_match ("\\", TRUE, "\\\\"); + do_test_wildcard_match ("\\\\", FALSE, "\\\\"); + do_test_wildcard_match ("", FALSE, "\\\\"); + + do_test_wildcard_match ("name", FALSE, "name[123]"); + do_test_wildcard_match ("name1", TRUE, "name[123]"); + do_test_wildcard_match ("name2", TRUE, "name[123]"); + do_test_wildcard_match ("name3", TRUE, "name[123]"); + do_test_wildcard_match ("name4", FALSE, "name[123]"); + + do_test_wildcard_match ("[a]", TRUE, "\\[a\\]"); +} + static NMConnection * _create_connection_autoconnect (const char *id, gboolean autoconnect, int autoconnect_priority) { @@ -1765,6 +1838,8 @@ main (int argc, char **argv) g_test_add_func ("/general/connection-match/routes/ip4/2", test_connection_match_ip4_routes2); g_test_add_func ("/general/connection-match/routes/ip6", test_connection_match_ip6_routes); + g_test_add_func ("/general/wildcard-match", test_wildcard_match); + g_test_add_func ("/general/connection-sort/autoconnect-priority", test_connection_sort_autoconnect_priority); g_test_add_func ("/general/match-spec/device", test_match_spec_device); |