summaryrefslogtreecommitdiff
path: root/libnm-core
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2016-09-26 16:59:30 +0200
committerThomas Haller <thaller@redhat.com>2016-09-26 17:00:38 +0200
commitee860696010c530b66a5d39ad0be3944184770d5 (patch)
treeaaea2394636b31b2a6478f9a26c4b0cc39077425 /libnm-core
parentd27ae4a8fec0c8f21a7171e01535f8beb8e5b105 (diff)
downloadNetworkManager-ee860696010c530b66a5d39ad0be3944184770d5.tar.gz
shared: add test for NM_SET_OUT()
Diffstat (limited to 'libnm-core')
-rw-r--r--libnm-core/tests/test-general.c31
1 files changed, 31 insertions, 0 deletions
diff --git a/libnm-core/tests/test-general.c b/libnm-core/tests/test-general.c
index e71dd8bc56..e8a9404bf3 100644
--- a/libnm-core/tests/test-general.c
+++ b/libnm-core/tests/test-general.c
@@ -5399,6 +5399,36 @@ test_nm_in_strset (void)
/******************************************************************************/
+static gboolean
+do_test_nm_set_out_called (gint *call_count)
+{
+ (*call_count)++;
+ return TRUE;
+}
+
+static void
+test_nm_set_out (void)
+{
+ gboolean val;
+ gboolean *p_val;
+ int call_count;
+
+ /* NM_SET_OUT() has an unexpected non-function like behavior
+ * wrt. side-effects of the value argument. Test it */
+
+ p_val = &val;
+ call_count = 0;
+ NM_SET_OUT (p_val, do_test_nm_set_out_called (&call_count));
+ g_assert_cmpint (call_count, ==, 1);
+
+ p_val = NULL;
+ call_count = 0;
+ NM_SET_OUT (p_val, do_test_nm_set_out_called (&call_count));
+ g_assert_cmpint (call_count, ==, 0);
+}
+
+/******************************************************************************/
+
NMTST_DEFINE ();
int main (int argc, char **argv)
@@ -5521,6 +5551,7 @@ int main (int argc, char **argv)
g_test_add_func ("/core/general/_nm_utils_validate_json", test_nm_utils_check_valid_json);
g_test_add_func ("/core/general/_nm_utils_team_config_equal", test_nm_utils_team_config_equal);
g_test_add_func ("/core/general/test_nm_utils_enum", test_nm_utils_enum);
+ g_test_add_func ("/core/general/nm-set-out", test_nm_set_out);
return g_test_run ();
}