diff options
author | Daniel Playfair Cal <daniel.playfair.cal@gmail.com> | 2018-08-13 14:36:36 +1000 |
---|---|---|
committer | Daniel Playfair Cal <daniel.playfair.cal@gmail.com> | 2019-12-29 20:07:43 +1100 |
commit | b3d8cd4757ef9344941b40d89c685c7ebefe5114 (patch) | |
tree | 1bfc399f510468f1fb499ec39562924c20cafb1d /tests | |
parent | 77f799922ab6afbaeb3f7ee41c96548439fd3dbd (diff) | |
download | dconf-b3d8cd4757ef9344941b40d89c685c7ebefe5114.tar.gz |
Changeset: factor out some memory management from test_filter_changes
Diffstat (limited to 'tests')
-rw-r--r-- | tests/changeset.c | 83 |
1 files changed, 27 insertions, 56 deletions
diff --git a/tests/changeset.c b/tests/changeset.c index d75e8d0..e3153e2 100644 --- a/tests/changeset.c +++ b/tests/changeset.c @@ -610,8 +610,10 @@ string_from_changeset (DConfChangeset *changeset) return string; } -static gchar* -call_filter_changes (const gchar *base_string, const gchar *changes_string) +static void +call_filter_changes (const gchar *base_string, + const gchar *changes_string, + const gchar *expected) { DConfChangeset *base, *changes, *filtered; gchar *filtered_string = NULL; @@ -625,9 +627,11 @@ call_filter_changes (const gchar *base_string, const gchar *changes_string) dconf_changeset_unref (filtered); } + g_assert_cmpstr (filtered_string, ==, expected); + dconf_changeset_unref (base); dconf_changeset_unref (changes); - return filtered_string; + g_free (filtered_string); } static void @@ -647,97 +651,64 @@ test_filter_changes (void) const gchar *key_reset = "{'/a': @mv nothing}"; const gchar *root_reset = "{'/': @mv nothing}"; const gchar *partial_reset = "{'/r/': @mv nothing}"; - gchar *filtered; /* an empty changeset would not change an empty database */ - g_assert_null (call_filter_changes (empty, empty)); + call_filter_changes (empty, empty, NULL); /* an empty changeset would not change a database with values */ - g_assert_null (call_filter_changes (a1, empty)); + call_filter_changes (a1, empty, NULL); /* a changeset would not change a database with the same values */ - g_assert_null (call_filter_changes (a1, a1)); - g_assert_null (call_filter_changes (a1b2, a1b2)); + call_filter_changes (a1, a1, NULL); + call_filter_changes (a1b2, a1b2, NULL); /* A non-empty changeset would change an empty database */ - filtered = call_filter_changes (empty, a1); - g_assert_cmpstr (filtered, ==, a1); - g_free (filtered); + call_filter_changes (empty, a1, a1); /* a changeset would change a database with the same keys but * different values */ - filtered = call_filter_changes (a1, a2); - g_assert_cmpstr (filtered, ==, a2); - g_free (filtered); - filtered = call_filter_changes (a1b1, a1b2); - g_assert_cmpstr (filtered, ==, b2); - g_free (filtered); + call_filter_changes (a1, a2, a2); + call_filter_changes (a1b1, a1b2, b2); /* A changeset would change a database with disjoint values */ - filtered = call_filter_changes (a1, b2); - g_assert_cmpstr (filtered, ==, b2); - g_free (filtered); + call_filter_changes (a1, b2, b2); /* A changeset would change a database with some equal and some new * values */ - filtered = call_filter_changes (a1, a1b2); - g_assert_cmpstr (filtered, ==, b2); - g_free (filtered); + call_filter_changes (a1, a1b2, b2); /* A changeset would not change a database with some equal and some * new values */ - g_assert_null (call_filter_changes (a1b2, a1)); + call_filter_changes (a1b2, a1, NULL); /* A root reset has an effect on a database with values */ - filtered = call_filter_changes (a1, root_reset); - g_assert_cmpstr (filtered, ==, root_reset); - g_free (filtered); - - filtered = call_filter_changes (a1b2, root_reset); - g_assert_cmpstr (filtered, ==, root_reset); - g_free (filtered); + call_filter_changes (a1, root_reset, root_reset); + call_filter_changes (a1b2, root_reset, root_reset); /* A root reset would have no effect on an empty database */ - filtered = call_filter_changes (empty, root_reset); - g_assert_cmpstr (filtered, ==, NULL); - g_free (filtered); + call_filter_changes (empty, root_reset, NULL); /* A key reset would have no effect on an empty database */ - filtered = call_filter_changes (empty, key_reset); - g_assert_cmpstr (filtered, ==, NULL); - g_free (filtered); + call_filter_changes (empty, key_reset, NULL); /* A key reset would have no effect on a database with other keys */ - filtered = call_filter_changes (b2, key_reset); - g_assert_cmpstr (filtered, ==, NULL); - g_free (filtered); + call_filter_changes (b2, key_reset, NULL); /* A key reset would have an effect on a database containing that * key */ - filtered = call_filter_changes (a1, key_reset); - g_assert_cmpstr (filtered, ==, key_reset); - g_free (filtered); - - filtered = call_filter_changes (a1b1, key_reset); - g_assert_cmpstr (filtered, ==, key_reset); - g_free (filtered); + call_filter_changes (a1, key_reset, key_reset); + call_filter_changes (a1b1, key_reset, key_reset); /* A partial reset would have no effect on an empty database */ - filtered = call_filter_changes (empty, partial_reset); - g_assert_cmpstr (filtered, ==, NULL); - g_free (filtered); + call_filter_changes (empty, partial_reset, NULL); /* A partial reset would have no effect on a database with other * values */ - filtered = call_filter_changes (a1, partial_reset); - g_assert_cmpstr (filtered, ==, NULL); - g_free (filtered); + call_filter_changes (a1, partial_reset, NULL); /* A partial reset would have an effect on a database with some values * under that path */ - filtered = call_filter_changes (a1r1, partial_reset); - g_assert_cmpstr (filtered, ==, partial_reset); - g_free (filtered); + call_filter_changes (a1r1, partial_reset, partial_reset); } int |