[gtksourceview/gnome-3-24] 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/gnome-3-24] testsuite: Fix a comparison which depended on GLib hash table ordering
- Date: Mon, 11 Mar 2019 20:10:53 +0000 (UTC)
commit 2fd12705ab40ceb6cc9d1458c7bccf886d145212
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 0719a5a6..980e8e3e 100644
--- a/testsuite/test-language.c
+++ b/testsuite/test-language.c
@@ -80,22 +80,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);
}
}
@@ -123,15 +125,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]