diff options
author | Matthias Clasen <mclasen@redhat.com> | 2021-08-30 12:40:31 -0400 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2021-08-31 14:29:56 -0400 |
commit | cd390b859f26ffd70beb0a6634e1679e41e1d5fa (patch) | |
tree | 5e8528f68cb1ec8a580bb1d4ed8aec017d07c7c5 /tests | |
parent | 1f0b5d5b87b61a37bebd393c0d67cce0b4ccdcb9 (diff) | |
download | pango-cd390b859f26ffd70beb0a6634e1679e41e1d5fa.tar.gz |
test-layout: Disable fragile checks
I added these for improved coverage, but they
get in the way, Should probably just move these
kind of checks to another place and leave this
test focused on dumps.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/test-layout.c | 175 |
1 files changed, 0 insertions, 175 deletions
diff --git a/tests/test-layout.c b/tests/test-layout.c index 0139c138..3320920b 100644 --- a/tests/test-layout.c +++ b/tests/test-layout.c @@ -388,14 +388,7 @@ test_file (const char *filename, GString *string) PangoFontDescription *desc; const PangoFontDescription *desc2; guint serial; - PangoRectangle ink_rect, logical_rect; - PangoRectangle ink_rect1, logical_rect1; - int width, height; - int width1, height1; PangoTabArray *tabs; - GSList *lines, *l; - PangoLayoutIter *iter; - PangoLayoutIter *iter2; if (context == NULL) context = pango_font_map_create_context (pango_cairo_font_map_get_default ()); @@ -483,174 +476,6 @@ test_file (const char *filename, GString *string) g_assert_cmpint (pango_layout_get_character_count (layout), ==, g_utf8_strlen (pango_layout_get_text (layout), -1)); - /* Some checks on extents - we have to be careful here, - * since we don't want to depend on font metrics. - */ - pango_layout_get_size (layout, &width, &height); - pango_layout_get_extents (layout, &ink_rect, &logical_rect); - g_assert_cmpint (width, ==, logical_rect.width); - g_assert_cmpint (height, ==, logical_rect.height); - - pango_extents_to_pixels (&ink_rect, NULL); - pango_extents_to_pixels (&logical_rect, NULL); - pango_layout_get_pixel_extents (layout, &ink_rect1, &logical_rect1); - pango_layout_get_pixel_size (layout, &width1, &height1); - - assert_rectangle_equal (&ink_rect, &ink_rect1); - assert_rectangle_equal (&logical_rect, &logical_rect1); - g_assert_cmpint (width1, ==, logical_rect1.width); - g_assert_cmpint (height1, ==, logical_rect1.height); - - lines = pango_layout_get_lines (layout); - for (l = lines; l; l = l->next) - { - PangoLayoutLine *line = l->data; - int line_width; - int line_x; - PangoRectangle line_ink, line_logical; - PangoRectangle line_ink1, line_logical1; - gboolean done; - - pango_layout_line_get_extents (line, &line_ink, &line_logical); - line_x = line_logical.x; - line_width = line_logical.width; - pango_extents_to_pixels (&line_ink, NULL); - pango_extents_to_pixels (&line_logical, NULL); - pango_layout_line_get_pixel_extents (line, &line_ink1, &line_logical1); - - /* Not in layout coordinates, so just compare sizes */ - assert_rectangle_size_contained (&line_ink, &ink_rect); - assert_rectangle_size_contained (&line_logical, &logical_rect); - assert_rectangle_size_contained (&line_ink1, &ink_rect1); - assert_rectangle_size_contained (&line_logical1, &logical_rect1); - - if (pango_layout_is_ellipsized (layout)) - continue; - - /* FIXME: should have a way to position iters */ - iter = pango_layout_get_iter (layout); - while (pango_layout_iter_get_line_readonly (iter) != line) - pango_layout_iter_next_line (iter); - - done = FALSE; - while (!done && pango_layout_iter_get_line_readonly (iter) == line) - { - int prev_index, index, next_index; - int x; - int *ranges; - int n_ranges; - gboolean found_range; - PangoLayoutRun *run; - - index = pango_layout_iter_get_index (iter); - run = pango_layout_iter_get_run_readonly (iter); - - if (!pango_layout_iter_next_cluster (iter)) - done = TRUE; - - pango_layout_line_index_to_x (line, index, 0, &x); - g_assert_cmpint (0, <=, x); - g_assert_cmpint (x, <=, line_width); - - if (!run) - break; - - prev_index = run->item->offset; - next_index = run->item->offset + run->item->length; - - { - PangoGlyphItem *run2 = pango_glyph_item_copy (run); - g_assert_cmpint (run2->item->offset, ==, run->item->offset); - g_assert_cmpint (run2->item->length, ==, run->item->length); - pango_glyph_item_free (run2); - } - - pango_layout_line_get_x_ranges (line, prev_index, next_index, &ranges, &n_ranges); - - /* The index is within the run, so the x should be in one of the ranges */ - if (n_ranges > 0) - { - found_range = FALSE; - for (int k = 0; k < n_ranges; k++) - { - if (x + line_x >= ranges[2*k] && x + line_x <= ranges[2*k + 1]) - { - found_range = TRUE; - break; - } - } - } - - g_assert_true (found_range); - g_free (ranges); - } - - pango_layout_iter_free (iter); - } - - iter = pango_layout_get_iter (layout); - g_assert_true (pango_layout_iter_get_layout (iter) == layout); - g_assert_cmpint (pango_layout_iter_get_index (iter), ==, 0); - pango_layout_iter_get_layout_extents (iter, &ink_rect, &logical_rect); - - iter2 = pango_layout_iter_copy (iter); - - do - { - PangoRectangle line_ink, line_logical; - int baseline; - PangoLayoutLine *line; - PangoLayoutRun *run; - - line = pango_layout_iter_get_line (iter); - - pango_layout_iter_get_line_extents (iter, &line_ink, &line_logical); - baseline = pango_layout_iter_get_baseline (iter); - - assert_rectangle_contained (&line_ink, &ink_rect); - assert_rectangle_contained (&line_logical, &logical_rect); - - g_assert_cmpint (line_logical.y, <=, baseline); - g_assert_cmpint (baseline, <=, line_logical.y + line_logical.height); - - if (pango_layout_iter_get_index (iter) == pango_layout_iter_get_index (iter2)) - { - g_assert_cmpint (baseline, ==, pango_layout_get_baseline (layout)); - g_assert_true (line->is_paragraph_start); - } - - if (pango_layout_iter_at_last_line (iter)) - { - g_assert_cmpint (line->start_index + line->length, <=, strlen (pango_layout_get_text (layout))); - } - - run = pango_layout_iter_get_run (iter); - - if (run) - { - const char *text; - int *widths; - int *widths2; - - text = pango_layout_get_text (layout); - - widths = g_new (int, run->item->num_chars); - pango_glyph_item_get_logical_widths (run, text, widths); - - widths2 = g_new (int, run->item->num_chars); - pango_glyph_string_get_logical_widths (run->glyphs, text + run->item->offset, run->item->length, run->item->analysis.level, widths2); - - g_assert_true (memcmp (widths, widths2, sizeof (int) * run->item->num_chars) == 0); - - g_free (widths); - g_free (widths2); - } - } - while (pango_layout_iter_next_line (iter)); - - pango_layout_iter_free (iter); - pango_layout_iter_free (iter2); - /* generate the dumps */ g_string_append (string, pango_layout_get_text (layout)); |