diff options
| author | Sebastien Bacher <seb128@ubuntu.com> | 2020-07-02 12:20:27 +0200 |
|---|---|---|
| committer | Sebastien Bacher <seb128@ubuntu.com> | 2020-07-02 12:20:27 +0200 |
| commit | 486e0bef719d78ee55d2166b0bfb4fa684c09854 (patch) | |
| tree | aead4c1cc30eb61a2d9dec70f7c8339904506fad /src/tests | |
| parent | 39143df7aed46e83f8c68ea9ad6d24cfdf5a1dd8 (diff) | |
| parent | 10ae7d8cd706062742d0cdb1803d49909aef9e06 (diff) | |
Merge branch 'upstream/latest' of https://salsa.debian.org/utopia-team/network-manager into upstream/latest
Diffstat (limited to 'src/tests')
| -rw-r--r-- | src/tests/test-core.c | 56 | ||||
| -rwxr-xr-x | src/tests/test-secret-agent.py | 51 |
2 files changed, 90 insertions, 17 deletions
diff --git a/src/tests/test-core.c b/src/tests/test-core.c index b90a8fac..099786ef 100644 --- a/src/tests/test-core.c +++ b/src/tests/test-core.c @@ -968,10 +968,17 @@ test_wildcard_match (void) do_test_wildcard_match ("b", TRUE, "!!a"); do_test_wildcard_match ("!a", FALSE, "!!a"); - do_test_wildcard_match ("\\", TRUE, "\\\\"); + do_test_wildcard_match ("\\", TRUE, "\\\\\\"); do_test_wildcard_match ("\\\\", FALSE, "\\\\"); do_test_wildcard_match ("", FALSE, "\\\\"); + 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 ("!a", TRUE, "&\\!a"); + do_test_wildcard_match ("!a", TRUE, "|\\!a"); + do_test_wildcard_match ("!a", TRUE, "\\!a"); + do_test_wildcard_match ("name", FALSE, "name[123]"); do_test_wildcard_match ("name1", TRUE, "name[123]"); do_test_wildcard_match ("name2", TRUE, "name[123]"); @@ -979,6 +986,12 @@ test_wildcard_match (void) do_test_wildcard_match ("name4", FALSE, "name[123]"); do_test_wildcard_match ("[a]", TRUE, "\\[a\\]"); + + do_test_wildcard_match ("aa", FALSE, "!a*"); + do_test_wildcard_match ("aa", FALSE, "&!a*"); + do_test_wildcard_match ("aa", FALSE, "|!a*"); + do_test_wildcard_match ("aa", FALSE, "&!a*", "aa"); + do_test_wildcard_match ("aa", TRUE, "|!a*", "aa"); } static NMConnection * @@ -2118,6 +2131,46 @@ test_nm_utils_dhcp_client_id_systemd_node_specific (gconstpointer test_data) /*****************************************************************************/ static void +_kernel_cmdline_match (gboolean expected_match, + const char *const*proc_cmdline, + const char *const*patterns) +{ + gs_free_error GError *error = NULL; + GError **p_error = nmtst_get_rand_bool () ? &error : NULL; + gboolean match; + + nm_assert (proc_cmdline); + nm_assert (patterns); + + match = nm_utils_kernel_cmdline_match_check (proc_cmdline, patterns, NM_PTRARRAY_LEN (patterns), p_error); + if (expected_match) + nmtst_assert_success (match, error); + else { + g_assert (!p_error || error); + g_assert (!match); + } +} + +static void +test_kernel_cmdline_match_check (void) +{ + _kernel_cmdline_match (TRUE, NM_MAKE_STRV (""), NM_MAKE_STRV ("")); + _kernel_cmdline_match (FALSE, NM_MAKE_STRV (""), NM_MAKE_STRV ("a")); + _kernel_cmdline_match (TRUE, NM_MAKE_STRV ("a"), NM_MAKE_STRV ("a")); + _kernel_cmdline_match (TRUE, NM_MAKE_STRV ("a=b"), NM_MAKE_STRV ("a")); + _kernel_cmdline_match (TRUE, NM_MAKE_STRV ("a=b", "b"), NM_MAKE_STRV ("a", "b")); + _kernel_cmdline_match (TRUE, NM_MAKE_STRV ("a=b", "b"), NM_MAKE_STRV ("&a", "&b")); + _kernel_cmdline_match (FALSE, NM_MAKE_STRV ("a=b", "bc"), NM_MAKE_STRV ("&a", "&b")); + _kernel_cmdline_match (FALSE, NM_MAKE_STRV ("a=b", "b"), NM_MAKE_STRV ("&a", "&b", "c")); + _kernel_cmdline_match (TRUE, NM_MAKE_STRV ("a=b", "b"), NM_MAKE_STRV ("&a", "&b", "b", "c")); + _kernel_cmdline_match (TRUE, NM_MAKE_STRV ("a=b", "b", "c=dd"), NM_MAKE_STRV ("&a", "&b", "c")); + _kernel_cmdline_match (FALSE, NM_MAKE_STRV ("a", "b"), NM_MAKE_STRV ("a", "&c")); + _kernel_cmdline_match (TRUE, NM_MAKE_STRV ("a", "b"), NM_MAKE_STRV ("a", "|\\c")); +} + +/*****************************************************************************/ + +static void test_connectivity_state_cmp (void) { NMConnectivityState a; @@ -2229,6 +2282,7 @@ main (int argc, char **argv) g_test_add_data_func ("/general/nm_utils_dhcp_client_id_systemd_node_specific/1", GINT_TO_POINTER (1), test_nm_utils_dhcp_client_id_systemd_node_specific); g_test_add_func ("/core/general/test_connectivity_state_cmp", test_connectivity_state_cmp); + g_test_add_func ("/core/general/test_kernel_cmdline_match_check", test_kernel_cmdline_match_check); return g_test_run (); } diff --git a/src/tests/test-secret-agent.py b/src/tests/test-secret-agent.py index d8cabc65..46f82b34 100755 --- a/src/tests/test-secret-agent.py +++ b/src/tests/test-secret-agent.py @@ -6,11 +6,13 @@ import dbus import dbus.service import dbus.mainloop.glib -IFACE_SECRET_AGENT = 'org.freedesktop.NetworkManager.SecretAgent' -IFACE_AGENT_MANAGER = 'org.freedesktop.NetworkManager.AgentManager' +IFACE_SECRET_AGENT = "org.freedesktop.NetworkManager.SecretAgent" +IFACE_AGENT_MANAGER = "org.freedesktop.NetworkManager.AgentManager" + class NotAuthorizedException(dbus.DBusException): - _dbus_error_name = IFACE_SECRET_AGENT + '.NotAuthorized' + _dbus_error_name = IFACE_SECRET_AGENT + ".NotAuthorized" + class Agent(dbus.service.Object): def __init__(self, bus, object_path): @@ -18,41 +20,58 @@ class Agent(dbus.service.Object): self.bus = bus dbus.service.Object.__init__(self, bus, object_path) - @dbus.service.method(IFACE_SECRET_AGENT, - in_signature='a{sa{sv}}osasb', - out_signature='a{sa{sv}}', - sender_keyword='sender') - def GetSecrets(self, connection_hash, connection_path, setting_name, hints, request_new, sender=None): + @dbus.service.method( + IFACE_SECRET_AGENT, + in_signature="a{sa{sv}}osasb", + out_signature="a{sa{sv}}", + sender_keyword="sender", + ) + def GetSecrets( + self, + connection_hash, + connection_path, + setting_name, + hints, + request_new, + sender=None, + ): if not sender: raise NotAuthorizedException("Internal error: couldn't get sender") uid = self.bus.get_unix_user(sender) if uid != 0: raise NotAuthorizedException("UID %d not authorized" % uid) - print("Secrets requested path '%s' setting '%s' hints '%s' new %d" % (connection_path, setting_name, str(hints), request_new)) + print( + "Secrets requested path '%s' setting '%s' hints '%s' new %d" + % (connection_path, setting_name, str(hints), request_new) + ) # return some random GSM secrets - s_gsm = dbus.Dictionary({'password': 'asdfadfasdfaf'}) - con = dbus.Dictionary({'gsm': s_gsm}) + s_gsm = dbus.Dictionary({"password": "asdfadfasdfaf"}) + con = dbus.Dictionary({"gsm": s_gsm}) return con + def register(proxy): proxy.Register("test.agent.id", dbus_interface=IFACE_AGENT_MANAGER) print("Registered!") return False + def unregister(proxy, loop): proxy.Unregister(dbus_interface=IFACE_AGENT_MANAGER) loop.quit() return False + def main(): dbus.mainloop.glib.DBusGMainLoop(set_as_default=True) bus = dbus.SystemBus() obj = Agent(bus, "/org/freedesktop/NetworkManager/SecretAgent") - proxy = bus.get_object("org.freedesktop.NetworkManager", - "/org/freedesktop/NetworkManager/AgentManager") + proxy = bus.get_object( + "org.freedesktop.NetworkManager", "/org/freedesktop/NetworkManager/AgentManager" + ) mainloop = GLib.MainLoop() @@ -65,8 +84,8 @@ def main(): pass print("Unregistering...") - unregister(proxy, mainloop); + unregister(proxy, mainloop) -if __name__ == '__main__': - main() +if __name__ == "__main__": + main() |