summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2020-06-23 08:40:21 +0200
committerThomas Haller <thaller@redhat.com>2020-06-26 13:33:41 +0200
commit1149dff6a173fd0f78ae537debaddcbe86b5c1fd (patch)
treeb7c319c35b3225acbee2b11c442b78c32aa38ca2
parent8d30c11e0c7ed086c431e866bff54d898f907619 (diff)
downloadNetworkManager-1149dff6a173fd0f78ae537debaddcbe86b5c1fd.tar.gz
core/tests: add unit test for nm_utils_kernel_cmdline_match_check()
(cherry picked from commit fa56e52a4f07a33408d3f3b47bbbc80d63c03c60)
-rw-r--r--src/tests/test-core.c34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/tests/test-core.c b/src/tests/test-core.c
index b90a8fac69..d1bf28743e 100644
--- a/src/tests/test-core.c
+++ b/src/tests/test-core.c
@@ -2118,6 +2118,39 @@ 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"));
+}
+
+/*****************************************************************************/
+
+static void
test_connectivity_state_cmp (void)
{
NMConnectivityState a;
@@ -2229,6 +2262,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 ();
}