Skip to content

Commit 833c61d

Browse files
committed
8358697: TextLayout/MyanmarTextTest.java passes if no Myanmar font is found
Backport-of: bcad87eacbd7fbfd3254479b7e061bab34e64aec
1 parent 59c9396 commit 833c61d

File tree

1 file changed

+19
-26
lines changed

1 file changed

+19
-26
lines changed

test/jdk/java/awt/font/TextLayout/MyanmarTextTest.java

Lines changed: 19 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 2019, 2025, Oracle and/or its affiliates. All rights reserved.
33
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44
*
55
* This code is free software; you can redistribute it and/or modify it
@@ -27,12 +27,15 @@
2727
* @key headful
2828
* @summary Verifies that Myanmar script is rendered correctly:
2929
* two characters combined into one glyph
30+
* @library /test/lib
31+
* @build jtreg.SkippedException
3032
* @run main MyanmarTextTest
3133
*/
3234

3335
import java.awt.Font;
3436
import java.awt.GraphicsEnvironment;
3537
import java.util.Arrays;
38+
import java.util.List;
3639
import javax.swing.BorderFactory;
3740
import javax.swing.BoxLayout;
3841
import javax.swing.JFrame;
@@ -45,12 +48,16 @@
4548
import javax.swing.text.BadLocationException;
4649
import javax.swing.text.Position;
4750

51+
import jtreg.SkippedException;
52+
4853
public class MyanmarTextTest {
4954
private static final String TEXT = "\u1000\u103C";
5055

51-
private static final String FONT_WINDOWS = "Myanmar Text";
52-
private static final String FONT_LINUX = "Padauk";
53-
private static final String FONT_MACOS = "Myanmar MN";
56+
private static final List<String> FONT_CANDIDATES =
57+
List.of("Myanmar MN",
58+
"Padauk",
59+
"Myanmar Text",
60+
"Noto Sans Myanmar");
5461

5562
private static final String FONT_NAME = selectFontName();
5663

@@ -61,12 +68,8 @@ public class MyanmarTextTest {
6168

6269
public static void main(String[] args) throws Exception {
6370
if (FONT_NAME == null) {
64-
System.err.println("Unsupported OS: exiting");
65-
return;
66-
}
67-
if (!fontExists()) {
68-
System.err.println("Required font is not installed: " + FONT_NAME);
69-
return;
71+
throw new SkippedException("No suitable font found out of the list: "
72+
+ String.join(", ", FONT_CANDIDATES));
7073
}
7174

7275
try {
@@ -130,22 +133,12 @@ private void checkPositions() {
130133
}
131134

132135
private static String selectFontName() {
133-
String osName = System.getProperty("os.name").toLowerCase();
134-
if (osName.contains("windows")) {
135-
return FONT_WINDOWS;
136-
} else if (osName.contains("linux")) {
137-
return FONT_LINUX;
138-
} else if (osName.contains("mac")) {
139-
return FONT_MACOS;
140-
} else {
141-
return null;
142-
}
136+
return Arrays.stream(GraphicsEnvironment
137+
.getLocalGraphicsEnvironment()
138+
.getAvailableFontFamilyNames())
139+
.filter(FONT_CANDIDATES::contains)
140+
.findFirst()
141+
.orElse(null);
143142
}
144143

145-
private static boolean fontExists() {
146-
String[] fontFamilyNames = GraphicsEnvironment
147-
.getLocalGraphicsEnvironment()
148-
.getAvailableFontFamilyNames();
149-
return Arrays.asList(fontFamilyNames).contains(FONT_NAME);
150-
}
151144
}

0 commit comments

Comments
 (0)