RFR: 8316206: Test StretchedFontTest.java fails for Baekmuk font

Phil Race prr at openjdk.org
Tue Sep 19 20:57:43 UTC 2023


On Tue, 19 Sep 2023 13:41:27 GMT, Alexey Ivanov <aivanov at openjdk.org> wrote:

> **Root cause**
> 
> The _Baekmuk Headline_ font maps `\u6f22` (漢) to glyph id 16950 which has zero length.
> 
> The test fails if the right half of the image with the rendered glyph contains only pixels of background colour. In this case, the left half of the image is also blank. It's somewhat false positive because of the broken font.
> 
> **Fix**
> 
> Ignore fonts which don't render the glyph correctly. If the left half of the image contains pixels of the background colour only, it is expected that the right half also contains background-coloured pixels only.
> 
> The updated test does not fail with the _Baekmuk Headline_ font. It still detects the original problem and fails on builds without the fix for [JDK-8312555](https://bugs.openjdk.org/browse/JDK-8312555).

I was thinking of a more direct font-oriented verification like this
import java.awt.*;
import java.awt.font.*;

public class GO {
  public static void main(String args[]) {
    Font font = new Font(Font.SANS_SERIF, Font.PLAIN, 20);
    FontRenderContext frc = new FontRenderContext(null, false, false);
    GlyphVector gv = font.createGlyphVector(frc, "o");
    boolean empty = gv.getVisualBounds().isEmpty();
    System.out.println("empty="+empty);
  }
}

% java GO      
empty=true

-------------

PR Comment: https://git.openjdk.org/jdk/pull/15818#issuecomment-1726453146


More information about the client-libs-dev mailing list