[gtksourceview] testsuite: Fix a comparison which depended on GLib hash table ordering
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtksourceview] testsuite: Fix a comparison which depended on GLib hash table ordering
- Date: Mon, 11 Mar 2019 20:10:14 +0000 (UTC)
commit c27dd44782c165ab85d92682972181e4c125361c
Author: Philip Withnall <withnall endlessm com>
Date: Mon Mar 11 11:48:44 2019 +0000
testsuite: Fix a comparison which depended on GLib hash table ordering
In GLib 2.59, the iteration order of GHashTable was changed (its order
has always be, and will always be, undefined). This has broken some
comparisons in check_language() in test-language.c, which assumed a
certain hash table ordering for the results returned by
gtk_source_language_get_*().
Fix that by using an unordered comparison function. This should be
backwards compatible with older GLib versions.
Signed-off-by: Philip Withnall <withnall endlessm com>
testsuite/test-language.c | 22 ++++++++++++----------
1 file changed, 12 insertions(+), 10 deletions(-)
---
diff --git a/testsuite/test-language.c b/testsuite/test-language.c
index 7590ff84..43b142aa 100644
--- a/testsuite/test-language.c
+++ b/testsuite/test-language.c
@@ -79,22 +79,24 @@ test_fixture_teardown (TestFixture *fixture,
}
static void
-compare_strv (const gchar **strv,
- const gchar **expected_strv)
+compare_strv_unordered (const gchar **strv,
+ const gchar **expected_strv)
{
if (expected_strv != NULL)
{
- guint n, i;
+ guint i;
- n = g_strv_length ((gchar **) expected_strv);
- for (i = 0; i < n; i++)
+ g_assert_cmpuint (g_strv_length ((gchar **) strv), ==,
+ g_strv_length ((gchar **) expected_strv));
+
+ for (i = 0; expected_strv[i] != NULL; i++)
{
- g_assert_cmpstr (strv[i], ==, expected_strv[i]);
+ g_assert_true (g_strv_contains (strv, expected_strv[i]));
}
}
else
{
- g_assert (strv == NULL);
+ g_assert_null (strv);
}
}
@@ -122,15 +124,15 @@ check_language (GtkSourceLanguage *language,
g_assert_cmpstr (gtk_source_language_get_metadata (language, "extra-meta"), ==, expected_extra_meta);
mime = gtk_source_language_get_mime_types (language);
- compare_strv ((const gchar **) mime, expected_mime);
+ compare_strv_unordered ((const gchar **) mime, expected_mime);
g_strfreev (mime);
glob = gtk_source_language_get_globs (language);
- compare_strv ((const gchar **) glob, expected_glob);
+ compare_strv_unordered ((const gchar **) glob, expected_glob);
g_strfreev (glob);
styles = gtk_source_language_get_style_ids (language);
- compare_strv ((const gchar **) styles, expected_styles);
+ compare_strv_unordered ((const gchar **) styles, expected_styles);
g_strfreev (styles);
if (expected_style_name != NULL)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]