[pango/pango2: 70/115] testhbfont: Drop comparisons
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [pango/pango2: 70/115] testhbfont: Drop comparisons
- Date: Thu, 9 Jun 2022 11:24:43 +0000 (UTC)
commit 6c7069105ef913a0a1ad681ce7701ca0670ad1e9
Author: Matthias Clasen <mclasen redhat com>
Date: Sat Feb 19 16:22:01 2022 -0600
testhbfont: Drop comparisons
We are going to drop the fcfontmap implementation.
tests/testhbfont.c | 313 -----------------------------------------------------
1 file changed, 313 deletions(-)
---
diff --git a/tests/testhbfont.c b/tests/testhbfont.c
index d31fc8da..29254618 100644
--- a/tests/testhbfont.c
+++ b/tests/testhbfont.c
@@ -24,8 +24,6 @@
#include <gio/gio.h>
#include <pango/pangocairo.h>
#include <pango/pangofc-hbfontmap.h>
-#include <pango/pangofc-fontmap.h>
-#include <pango/pangofc-font.h>
#include <hb-ot.h>
@@ -540,293 +538,6 @@ test_hbfontmap_language (void)
pango_font_description_free (desc);
}
-static const char *
-get_font_file (PangoFont *font)
-{
- if (PANGO_IS_HB_FONT (font))
- {
- PangoFontFace *face = pango_font_get_face (font);
-
- return pango_hb_face_get_file (PANGO_HB_FACE (face));
- }
- else if (PANGO_IS_FC_FONT (font))
- {
- FcPattern *pattern = pango_fc_font_get_pattern (PANGO_FC_FONT (font));
- const char *file;
-
- FcPatternGetString (pattern, FC_FILE, 0, (FcChar8 **)&file);
-
- return file;
- }
- else
- return "Unknown";
-}
-
-typedef struct
-{
- FcConfig *config;
- PangoFontMap *fcfontmap;
- PangoFontMap *hbfontmap;
-} FontMapCompareFixture;
-
-static void
-fontmap_compare_fixture_set_up (FontMapCompareFixture *fixture,
- gconstpointer data)
-{
- char *path, *conf;
- FcConfig *config;
- PangoFontMap *fcfontmap, *hbfontmap;
-
- path = g_test_build_filename (G_TEST_DIST, "fonts", NULL);
- if (!g_path_is_absolute (path))
- {
- char *dir = g_build_filename (g_get_current_dir (), path, NULL);
- g_free (path);
- path = dir;
- }
-
- config = FcConfigCreate ();
-
- conf = g_build_filename (path, "fonts.conf", NULL);
- if (!FcConfigParseAndLoad (config, (const FcChar8 *) conf, TRUE))
- g_error ("Failed to parse fontconfig configuration from %s", conf);
-
- FcConfigAppFontAddDir (config, (const FcChar8 *) path);
-
- fcfontmap = pango_cairo_font_map_new_for_font_type (CAIRO_FONT_TYPE_FT);
- pango_fc_font_map_set_config (PANGO_FC_FONT_MAP (fcfontmap), config);
-
- hbfontmap = PANGO_FONT_MAP (pango_fc_hb_font_map_new (config));
-
- g_free (conf);
- g_free (path);
-
- fixture->config = config;
- fixture->fcfontmap = fcfontmap;
- fixture->hbfontmap = hbfontmap;
-}
-
-static void
-fontmap_compare_fixture_tear_down (FontMapCompareFixture *fixture,
- gconstpointer data)
-{
- g_object_unref (fixture->hbfontmap);
- g_object_unref (fixture->fcfontmap);
- FcConfigDestroy (fixture->config);
-}
-
-/* Check that we have the same families (we know
- * generics are different, so skip those)
- */
-
-static int
-compare_family_name (gconstpointer a,
- gconstpointer b)
-{
- return g_ascii_strcasecmp (*(const char **)a, *(const char **)b);
-}
-
-static gboolean
-is_generic_family (PangoFontFamily *fam)
-{
- return g_str_equal (G_OBJECT_TYPE_NAME (fam), "PangoGenericFamily");
-}
-
-static gboolean
-is_generic_family_name (const char *family)
-{
- return g_strv_contains ((const char *[]){ "Sans", "Serif", "Monospace", "System-ui", NULL}, family);
-}
-
-static const char * const *
-collect_nongeneric_families (PangoFontMap *map)
-{
- GPtrArray *array = g_ptr_array_new ();
-
- for (int i = 0; i < g_list_model_get_n_items (G_LIST_MODEL (map)); i++)
- {
- PangoFontFamily *fam = g_list_model_get_item (G_LIST_MODEL (map), i);
- const char *name = pango_font_family_get_name (fam);
-
- if (!(is_generic_family (fam) || is_generic_family_name (name)))
- g_ptr_array_add (array, (gpointer)name);
-
- g_object_unref (fam);
- }
-
- g_ptr_array_sort (array, compare_family_name);
-
- g_ptr_array_add (array, NULL);
-
- return (const char * const *)g_ptr_array_free (array, FALSE);
-}
-
-static void
-test_hbfontmap_compare_families (FontMapCompareFixture *fixture,
- gconstpointer data)
-{
- const char * const *fcfamilies;
- const char * const *hbfamilies;
-
- fcfamilies = collect_nongeneric_families (fixture->fcfontmap);
- hbfamilies = collect_nongeneric_families (fixture->hbfontmap);
- g_assert_true (g_strv_equal (fcfamilies, hbfamilies));
- g_free ((gpointer)fcfamilies);
- g_free ((gpointer)hbfamilies);
-}
-
-static gboolean
-languages_equal (PangoLanguage **l1,
- PangoLanguage **l2)
-{
- int i;
-
- if (!l1 || !l2)
- return l1 == l2;
-
- for (i = 0; l1[i] && l2[i]; i++)
- if (l1[i] != l2[i])
- return FALSE;
-
- if (l1[i] || l2[i])
- return FALSE;
-
- return TRUE;
-}
-
-static void
-test_hbfontmap_compare_languages (FontMapCompareFixture *fixture,
- gconstpointer data)
-{
- const char *family_name = data;
- PangoContext *context;
- PangoFontDescription *description;
- PangoFont *fcfont, *hbfont;
- PangoLanguage **fclanguages;
- PangoLanguage **hblanguages;
-
- context = pango_font_map_create_context (fixture->fcfontmap);
-
- description = pango_font_description_new ();
- pango_font_description_set_family (description, family_name);
- pango_font_description_set_size (description, 12 * PANGO_SCALE);
-
- fcfont = pango_font_map_load_font (fixture->fcfontmap, context, description);
- hbfont = pango_font_map_load_font (fixture->hbfontmap, context, description);
-
- fclanguages = pango_font_get_languages (fcfont);
- hblanguages = pango_font_get_languages (hbfont);
-
- g_assert_nonnull (fclanguages);
- g_assert_nonnull (hblanguages);
- g_assert_true (languages_equal (fclanguages, hblanguages));
-
- g_object_unref (hbfont);
- g_object_unref (fcfont);
-
- pango_font_description_free (description);
-
- g_object_unref (context);
-}
-
-/* Compare the faces we get. We already know that hbfontmap adds
- * the variable font as an extra family, so skip those.
- */
-static int
-compare_face_name (gconstpointer a,
- gconstpointer b)
-{
- return strcmp (*(const char **)a, *(const char **)b);
-}
-
-static const char * const *
-collect_nonvariable_faces (PangoFontFamily *fam)
-{
- GPtrArray *array = g_ptr_array_new ();
-
- for (int i = 0; i < g_list_model_get_n_items (G_LIST_MODEL (fam)); i++)
- {
- PangoFontFace *face = g_list_model_get_item (G_LIST_MODEL (fam), i);
- const char *name = pango_font_face_get_face_name (face);
-
- if (!pango_font_face_is_variable (face))
- g_ptr_array_add (array, (gpointer)name);
-
- g_object_unref (face);
- }
-
- g_ptr_array_sort (array, compare_face_name);
-
- g_ptr_array_add (array, NULL);
-
- return (const char * const *)g_ptr_array_free (array, FALSE);
-}
-
-static void
-test_hbfontmap_compare_faces (FontMapCompareFixture *fixture,
- gconstpointer data)
-{
- const char *family_name = data;
- PangoFontFamily *fcfamily, *hbfamily;
- const char * const *fcfaces;
- const char * const *hbfaces;
-
- fcfamily = pango_font_map_get_family (fixture->fcfontmap, family_name);
- hbfamily = pango_font_map_get_family (fixture->hbfontmap, family_name);
-
- fcfaces = collect_nonvariable_faces (fcfamily);
- hbfaces = collect_nonvariable_faces (hbfamily);
- if (!g_strv_equal (fcfaces, hbfaces))
- g_print ("%s\n%s\n", g_strjoinv (", ", (char **)fcfaces), g_strjoinv (", ", (char **)hbfaces));
- g_assert_true (g_strv_equal (fcfaces, hbfaces));
- g_free ((gpointer)fcfaces);
- g_free ((gpointer)hbfaces);
-}
-
-static void
-test_hbfontmap_compare_match (FontMapCompareFixture *fixture,
- gconstpointer data)
-{
- PangoContext *context;
- const char *tests[] = {
- "Amiri Bold 12",
- "Cantarell 12",
- "Sans 11",
- "sans-serif 11",
- "emoji 12",
- "emoji 12",
- "Cantarell Italic 11",
- "Sans Bold 11",
- };
-
- context = pango_font_map_create_context (fixture->fcfontmap);
- pango_context_set_language (context, pango_language_from_string ("en"));
-
-
- for (int i = 0; i < G_N_ELEMENTS (tests); i++)
- {
- PangoFontDescription *description;
- PangoFont *fcfont, *hbfont;
-
- description = pango_font_description_from_string (tests[i]);
-
- fcfont = pango_font_map_load_font (fixture->fcfontmap, context, description);
- hbfont = pango_font_map_load_font (fixture->hbfontmap, context, description);
-
- if (strcmp (get_font_file (fcfont), get_font_file (hbfont)) != 0)
- g_print ("test %s\n", tests[i]);
-
- g_assert_cmpstr (get_font_file (fcfont), ==, get_font_file (hbfont));
-
- g_object_unref (hbfont);
- g_object_unref (fcfont);
-
- pango_font_description_free (description);
- }
-
- g_object_unref (context);
-}
-
int
main (int argc, char *argv[])
{
@@ -841,30 +552,6 @@ main (int argc, char *argv[])
g_test_add_func ("/hbfont/load", test_hbfont_load);
g_test_add_func ("/hbfont/load/variation", test_hbfont_load_variation);
g_test_add_func ("/hbfontmap/language", test_hbfontmap_language);
- g_test_add ("/hbfontmap/families", FontMapCompareFixture, NULL,
- fontmap_compare_fixture_set_up,
- test_hbfontmap_compare_families,
- fontmap_compare_fixture_tear_down);
- g_test_add ("/hbfontmap/faces/Amiri", FontMapCompareFixture, "Amiri",
- fontmap_compare_fixture_set_up,
- test_hbfontmap_compare_faces,
- fontmap_compare_fixture_tear_down);
- g_test_add ("/hbfontmap/faces/Cantarell", FontMapCompareFixture, "Cantarell",
- fontmap_compare_fixture_set_up,
- test_hbfontmap_compare_faces,
- fontmap_compare_fixture_tear_down);
- g_test_add ("/hbfontmap/languages/Amiri", FontMapCompareFixture, "Amiri",
- fontmap_compare_fixture_set_up,
- test_hbfontmap_compare_languages,
- fontmap_compare_fixture_tear_down);
- g_test_add ("/hbfontmap/languages/Cantarell", FontMapCompareFixture, "Cantarell",
- fontmap_compare_fixture_set_up,
- test_hbfontmap_compare_languages,
- fontmap_compare_fixture_tear_down);
- g_test_add ("/hbfontmap/compare/match", FontMapCompareFixture, NULL,
- fontmap_compare_fixture_set_up,
- test_hbfontmap_compare_match,
- fontmap_compare_fixture_tear_down);
return g_test_run ();
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]