Skip to content

Commit dbe03f0

Browse files
committed
Simplify display name in new parameterized tests for console
This change adjusts display names in new parameterized tests, for console line wrapping. This hopefully avoids confusing GitHub jobs. In addition, emojis in IOConsoleTests are replaced with unicode codepoints. See: #2650
1 parent ca6b952 commit dbe03f0

3 files changed

Lines changed: 130 additions & 120 deletions

File tree

debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/console/ConsoleOutputLineTruncateTest.java

Lines changed: 57 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import java.util.stream.Stream;
2020

2121
import org.eclipse.ui.internal.console.ConsoleOutputLineTruncate;
22+
import org.junit.jupiter.api.Named;
2223
import org.junit.jupiter.params.ParameterizedTest;
2324
import org.junit.jupiter.params.provider.Arguments;
2425
import org.junit.jupiter.params.provider.MethodSource;
@@ -42,79 +43,79 @@ public class ConsoleOutputLineTruncateTest {
4243
* @param output expected output, repeated {@code repeat} times
4344
* @param nl the newline character sequences
4445
*/
45-
record Parameters(int limit, int chunks, int repeat, String input, String output, String... nl) {
46+
record Parameters(String name, int limit, int chunks, int repeat, String input, String output, String... nl) {
4647
}
4748

48-
private static Parameters test(int limit, String input, String output, String... nl) {
49-
return test(limit, 1, 1, input, output, nl);
49+
private static Parameters test(String name, int limit, String input, String output, String... nl) {
50+
return test(name, limit, 1, 1, input, output, nl);
5051
}
5152

52-
private static Parameters test(int limit, int chunks, int repeat, String input, String output, String... nl) {
53-
return new Parameters(limit, chunks, repeat, input, output, nl);
53+
private static Parameters test(String name, int limit, int chunks, int repeat, String input, String output, String... nl) {
54+
return new Parameters(name, limit, chunks, repeat, input, output, nl);
5455
}
5556

5657
private static final Parameters[] TESTS = {
5758
// Unix newlines
58-
test(4, "\n========", "\n==== ...\n", "\n"),
59-
test(10, "========", "========", "\n"),
60-
test(10, 10, 1, "========", "========== ...\n", "\n"),
61-
test(4, "========", "==== ...\n", "\n"),
62-
test(4, 10, 1, "========", "==== ...\n", "\n"),
63-
test(4, "====\n====", "====\n====", "\n"),
64-
test(4, 5, 1, "====\n====", "====\n==== ...\n==== ...\n==== ...\n==== ...\n====", "\n"),
65-
test(2, 5, 1, "=======\n==", "== ...\n== ...\n== ...\n== ...\n== ...\n==", "\n"),
66-
test(2, "====\n====", "== ...\n== ...\n", "\n"),
67-
test(2, 5, 1, "====\n====", "== ...\n== ...\n== ...\n== ...\n== ...\n== ...\n", "\n"),
68-
test(2, "=========", "== ...\n", "\n"),
69-
test(2, "=======\n==", "== ...\n==", "\n"),
70-
test(3, "=========", "=== ...\n", "\n"),
71-
test(3, 5, 1, "=========", "=== ...\n", "\n"),
72-
test(3, "========\n=", "=== ...\n=", "\n"),
73-
test(2, "======\n======", "== ...\n== ...\n", "\n"),
74-
test(2, 5, 1, "======\n======", "== ...\n== ...\n== ...\n== ...\n== ...\n== ...\n", "\n"),
75-
test(3, 3, 1, "========\n=", "=== ...\n=== ...\n=== ...\n=" , "\n"),
76-
test(4, 3, 1, "========\n=", "==== ...\n==== ...\n==== ...\n=", "\n"),
59+
test("unix_nl_01", 4, "\n========", "\n==== ...\n", "\n"),
60+
test("unix_nl_02", 10, "========", "========", "\n"),
61+
test("unix_nl_03", 10, 10, 1, "========", "========== ...\n", "\n"),
62+
test("unix_nl_04", 4, "========", "==== ...\n", "\n"),
63+
test("unix_nl_05", 4, 10, 1, "========", "==== ...\n", "\n"),
64+
test("unix_nl_06", 4, "====\n====", "====\n====", "\n"),
65+
test("unix_nl_07", 4, 5, 1, "====\n====", "====\n==== ...\n==== ...\n==== ...\n==== ...\n====", "\n"),
66+
test("unix_nl_08", 2, 5, 1, "=======\n==", "== ...\n== ...\n== ...\n== ...\n== ...\n==", "\n"),
67+
test("unix_nl_09", 2, "====\n====", "== ...\n== ...\n", "\n"),
68+
test("unix_nl_10", 2, 5, 1, "====\n====", "== ...\n== ...\n== ...\n== ...\n== ...\n== ...\n", "\n"),
69+
test("unix_nl_11", 2, "=========", "== ...\n", "\n"),
70+
test("unix_nl_12", 2, "=======\n==", "== ...\n==", "\n"),
71+
test("unix_nl_13", 3, "=========", "=== ...\n", "\n"),
72+
test("unix_nl_14", 3, 5, 1, "=========", "=== ...\n", "\n"),
73+
test("unix_nl_15", 3, "========\n=", "=== ...\n=", "\n"),
74+
test("unix_nl_16", 2, "======\n======", "== ...\n== ...\n", "\n"),
75+
test("unix_nl_17", 2, 5, 1, "======\n======", "== ...\n== ...\n== ...\n== ...\n== ...\n== ...\n", "\n"),
76+
test("unix_nl_18", 3, 3, 1, "========\n=", "=== ...\n=== ...\n=== ...\n=", "\n"),
77+
test("unix_nl_19", 4, 3, 1, "========\n=", "==== ...\n==== ...\n==== ...\n=", "\n"),
7778

7879
// Windows newlines
79-
test(4, "\r\n========", "\r\n==== ...\r\n", "\r\n"),
80-
test(10, "========", "========", "\r\n"),
81-
test(10, 10, 1, "========", "========== ...\r\n", "\r\n"),
82-
test(4, "========", "==== ...\r\n", "\r\n"),
83-
test(4, 10, 1, "========", "==== ...\r\n", "\r\n"),
84-
test(4, "====\r\n====", "====\r\n====", "\r\n"),
85-
test(4, 5, 1, "====\r\n====", "====\r\n==== ...\r\n==== ...\r\n==== ...\r\n==== ...\r\n====", "\r\n"),
86-
test(2, 5, 1, "=======\r\n==", "== ...\r\n== ...\r\n== ...\r\n== ...\r\n== ...\r\n==", "\r\n"),
87-
test(2, "====\r\n====", "== ...\r\n== ...\r\n", "\r\n"),
88-
test(2, 5, 1, "====\r\n====", "== ...\r\n== ...\r\n== ...\r\n== ...\r\n== ...\r\n== ...\r\n", "\r\n"),
89-
test(2, "=========", "== ...\r\n", "\r\n"),
90-
test(2, "=======\r\n==", "== ...\r\n==", "\r\n"),
91-
test(3, "=========", "=== ...\r\n", "\r\n"),
92-
test(3, 5, 1, "=========", "=== ...\r\n", "\r\n"),
93-
test(3, "========\r\n=", "=== ...\r\n=", "\r\n"),
94-
test(2, "======\r\n======", "== ...\r\n== ...\r\n", "\r\n"),
95-
test(2, 5, 1, "======\r\n======", "== ...\r\n== ...\r\n== ...\r\n== ...\r\n== ...\r\n== ...\r\n", "\r\n"),
96-
test(3, 3, 1, "========\r\n=", "=== ...\r\n=== ...\r\n=== ...\r\n=", "\r\n"),
97-
test(4, 3, 1, "========\r\n=", "==== ...\r\n==== ...\r\n==== ...\r\n=", "\r\n"),
80+
test("win_nl_01", 4, "\r\n========", "\r\n==== ...\r\n", "\r\n"),
81+
test("win_nl_02", 10, "========", "========", "\r\n"),
82+
test("win_nl_03", 10, 10, 1, "========", "========== ...\r\n", "\r\n"),
83+
test("win_nl_04", 4, "========", "==== ...\r\n", "\r\n"),
84+
test("win_nl_05", 4, 10, 1, "========", "==== ...\r\n", "\r\n"),
85+
test("win_nl_06", 4, "====\r\n====", "====\r\n====", "\r\n"),
86+
test("win_nl_07", 4, 5, 1, "====\r\n====", "====\r\n==== ...\r\n==== ...\r\n==== ...\r\n==== ...\r\n====", "\r\n"),
87+
test("win_nl_08", 2, 5, 1, "=======\r\n==", "== ...\r\n== ...\r\n== ...\r\n== ...\r\n== ...\r\n==", "\r\n"),
88+
test("win_nl_09", 2, "====\r\n====", "== ...\r\n== ...\r\n", "\r\n"),
89+
test("win_nl_10", 2, 5, 1, "====\r\n====", "== ...\r\n== ...\r\n== ...\r\n== ...\r\n== ...\r\n== ...\r\n", "\r\n"),
90+
test("win_nl_11", 2, "=========", "== ...\r\n", "\r\n"),
91+
test("win_nl_12", 2, "=======\r\n==", "== ...\r\n==", "\r\n"),
92+
test("win_nl_13", 3, "=========", "=== ...\r\n", "\r\n"),
93+
test("win_nl_14", 3, 5, 1, "=========", "=== ...\r\n", "\r\n"),
94+
test("win_nl_15", 3, "========\r\n=", "=== ...\r\n=", "\r\n"),
95+
test("win_nl_16", 2, "======\r\n======", "== ...\r\n== ...\r\n", "\r\n"),
96+
test("win_nl_17", 2, 5, 1, "======\r\n======", "== ...\r\n== ...\r\n== ...\r\n== ...\r\n== ...\r\n== ...\r\n", "\r\n"),
97+
test("win_nl_18", 3, 3, 1, "========\r\n=", "=== ...\r\n=== ...\r\n=== ...\r\n=", "\r\n"),
98+
test("win_nl_19", 4, 3, 1, "========\r\n=", "==== ...\r\n==== ...\r\n==== ...\r\n=", "\r\n"),
9899

99100
// multiple newlines
100-
test(3, 3, 1, "========\r\n=", "=== ...\r\n=== ...\r\n=== ...\r\n=", "\r\n", "\r", "\n"),
101-
test(4, 3, 1, "========\r\n=", "==== ...\r\n==== ...\r\n==== ...\r\n=", "\r\n", "\r", "\n"),
102-
test(3, 3, 1, "========\r\n=", "=== ...\r\n=== ...\r\n=== ...\r\n=", "\r", "\n", "\r\n"),
103-
test(4, 3, 1, "========\r\n=", "==== ...\r\n==== ...\r\n==== ...\r\n=", "\r", "\n", "\r\n"),
101+
test("multi_nl_1", 3, 3, 1, "========\r\n=", "=== ...\r\n=== ...\r\n=== ...\r\n=", "\r\n", "\r", "\n"),
102+
test("multi_nl_2", 4, 3, 1, "========\r\n=", "==== ...\r\n==== ...\r\n==== ...\r\n=", "\r\n", "\r", "\n"),
103+
test("multi_nl_3", 3, 3, 1, "========\r\n=", "=== ...\r\n=== ...\r\n=== ...\r\n=", "\r", "\n", "\r\n"),
104+
test("multi_nl_4", 4, 3, 1, "========\r\n=", "==== ...\r\n==== ...\r\n==== ...\r\n=", "\r", "\n", "\r\n"),
104105

105106
// surrogate pairs (emoji 😀 = \uD83D\uDE00, 2 chars) -- truncation must not split a surrogate pair
106107
// truncation point falls on the low surrogate: limit=3, "ab😀c" (5 chars) -> back up before emoji
107-
test( 3, "ab\uD83D\uDE00c" , "ab ...\n" , "\n"),
108+
test("surrogate_pairs_1", 3, "ab\uD83D\uDE00c" , "ab ...\n" , "\n"),
108109
// truncation point falls on the low surrogate: limit=4, "abc😀d" (6 chars)
109-
test( 4, "abc\uD83D\uDE00d" , "abc ...\n" , "\n"),
110+
test("surrogate_pairs_2", 4, "abc\uD83D\uDE00d" , "abc ...\n" , "\n"),
110111
// truncation with newline in chunk: first line truncated before emoji, second line untouched
111-
test( 3, "ab\uD83D\uDE00\n==" , "ab ...\n==" , "\n"),
112+
test("surrogate_pairs_3", 3, "ab\uD83D\uDE00\n==" , "ab ...\n==" , "\n"),
112113
// multi-chunk: second chunk (continuation of overlong line) starts with a low surrogate and is deleted entirely
113-
test( 2, 2, 1, "ab\uD83D\uDE00" , "ab ...\n" , "\n"),
114+
test("surrogate_pairs_4", 2, 2, 1, "ab\uD83D\uDE00" , "ab ...\n" , "\n"),
114115
};
115116

116117
private static Stream<Arguments> tests() {
117-
return Arrays.stream(TESTS).map(Arguments::of);
118+
return Arrays.stream(TESTS).map(ConsoleOutputLineTruncateTest::named);
118119
}
119120

120121
@ParameterizedTest
@@ -134,4 +135,8 @@ public void test(Parameters p) {
134135
private static String repeat(String s, int r, String nl) {
135136
return (nl + s).repeat(r).substring(nl.length());
136137
}
138+
139+
private static Arguments named(Parameters p) {
140+
return Arguments.of(Named.of(p.name, p));
141+
}
137142
}

debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/console/ConsoleOutputLineWrapTest.java

Lines changed: 67 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import java.util.stream.Stream;
2020

2121
import org.eclipse.ui.internal.console.ConsoleOutputLineWrap;
22+
import org.junit.jupiter.api.Named;
2223
import org.junit.jupiter.params.ParameterizedTest;
2324
import org.junit.jupiter.params.provider.Arguments;
2425
import org.junit.jupiter.params.provider.MethodSource;
@@ -42,92 +43,92 @@ public class ConsoleOutputLineWrapTest {
4243
* @param output expected output, repeated {@code repeat} times
4344
* @param nl the newline character sequences
4445
*/
45-
record Parameters(int limit, int chunks, int repeat, String input, String output, String... nl) {
46+
record Parameters(String name, int limit, int chunks, int repeat, String input, String output, String... nl) {
4647
}
4748

48-
private static Parameters test(int limit, String input, String output, String... nl) {
49-
return test(limit, 1, 1, input, output, nl);
49+
private static Parameters test(String name, int limit, String input, String output, String... nl) {
50+
return test(name, limit, 1, 1, input, output, nl);
5051
}
5152

52-
private static Parameters test(int limit, int chunks, String input, String output, String... nl) {
53-
return test(limit, chunks, chunks, input, output, nl);
53+
private static Parameters test(String name, int limit, int chunks, String input, String output, String... nl) {
54+
return test(name, limit, chunks, chunks, input, output, nl);
5455
}
5556

56-
private static Parameters test(int limit, int chunks, int repeat, String input, String output, String... nl) {
57-
return new Parameters(limit, chunks, repeat, input, output, nl);
57+
private static Parameters test(String name, int limit, int chunks, int repeat, String input, String output, String... nl) {
58+
return new Parameters(name, limit, chunks, repeat, input, output, nl);
5859
}
5960

6061
private static final Parameters[] TESTS = {
6162
// Unix newlines
62-
test(4, "\n========", "\n====\n====", "\n"),
63-
64-
test(10, "========" , "========" , "\n"),
65-
test(10, 10, 8, "========" , "==========", "\n"),
66-
test( 4, "========" , "====\n====", "\n"),
67-
test( 4, 10, "========" , "====\n====", "\n"),
68-
test( 4, "====\n====" , "====\n====", "\n"),
69-
test( 4, 10, "====\n====" , "====\n====", "\n"),
70-
71-
test( 2, 10, "=======\n==" , "==\n==\n==\n=\n==", "\n"),
72-
test( 2, "====\n====" , "==\n==\n==\n==" , "\n"),
73-
test( 2, 10, "====\n====" , "==\n==\n==\n==" , "\n"),
74-
test( 2, "=========" , "==\n==\n==\n==\n=", "\n"),
75-
test( 2, "=======\n==" , "==\n==\n==\n=\n==", "\n"),
76-
test( 3, "=========" , "===\n===\n===" , "\n"),
77-
test( 3, 10, "=========" , "===\n===\n===" , "\n"),
78-
test( 3, "========\n=" , "===\n===\n==\n=" , "\n"),
79-
80-
test( 2, "======\n======", "==\n==\n==\n==\n==\n==", "\n"),
81-
test( 2, 10, "======\n======", "==\n==\n==\n==\n==\n==", "\n"),
82-
83-
test( 3, 3, 1, "========\n=" , "===\n===\n==\n===\n===\n===\n===\n===\n===\n=", "\n"),
84-
test( 4, 3, 1, "========\n=" , "====\n====\n====\n====\n=\n====\n====\n=\n=" , "\n"),
63+
test("unix_nl_01", 4, "\n========", "\n====\n====", "\n"),
64+
65+
test("unix_nl_02", 10, "========" , "========" , "\n"),
66+
test("unix_nl_03", 10, 10, 8, "========" , "==========", "\n"),
67+
test("unix_nl_04", 4, "========" , "====\n====", "\n"),
68+
test("unix_nl_05", 4, 10, "========" , "====\n====", "\n"),
69+
test("unix_nl_06", 4, "====\n====" , "====\n====", "\n"),
70+
test("unix_nl_07", 4, 10, "====\n====" , "====\n====", "\n"),
71+
72+
test("unix_nl_08", 2, 10, "=======\n==" , "==\n==\n==\n=\n==", "\n"),
73+
test("unix_nl_09", 2, "====\n====" , "==\n==\n==\n==" , "\n"),
74+
test("unix_nl_10", 2, 10, "====\n====" , "==\n==\n==\n==" , "\n"),
75+
test("unix_nl_11", 2, "=========" , "==\n==\n==\n==\n=", "\n"),
76+
test("unix_nl_12", 2, "=======\n==" , "==\n==\n==\n=\n==", "\n"),
77+
test("unix_nl_13", 3, "=========" , "===\n===\n===" , "\n"),
78+
test("unix_nl_14", 3, 10, "=========" , "===\n===\n===" , "\n"),
79+
test("unix_nl_15", 3, "========\n=" , "===\n===\n==\n=" , "\n"),
80+
81+
test("unix_nl_16", 2, "======\n======", "==\n==\n==\n==\n==\n==", "\n"),
82+
test("unix_nl_17", 2, 10, "======\n======", "==\n==\n==\n==\n==\n==", "\n"),
83+
84+
test("unix_nl_18", 3, 3, 1, "========\n=" , "===\n===\n==\n===\n===\n===\n===\n===\n===\n=", "\n"),
85+
test("unix_nl_19", 4, 3, 1, "========\n=" , "====\n====\n====\n====\n=\n====\n====\n=\n=" , "\n"),
8586

8687
// Windows newlines
87-
test(4, "\r\n========", "\r\n====\r\n====", "\r\n"),
88-
89-
test(10, "========" , "========" , "\r\n"),
90-
test(10, 10, 8, "========" , "==========" , "\r\n"),
91-
test( 4, "========" , "====\r\n====", "\r\n"),
92-
test( 4, 10, "========" , "====\r\n====", "\r\n"),
93-
test( 4, "====\r\n====" , "====\r\n====", "\r\n"),
94-
test( 4, 10, "====\r\n====" , "====\r\n====", "\r\n"),
95-
96-
test( 2, 10, "=======\r\n==" , "==\r\n==\r\n==\r\n=\r\n==", "\r\n"),
97-
test( 2, "====\r\n====" , "==\r\n==\r\n==\r\n==" , "\r\n"),
98-
test( 2, 10, "====\r\n====" , "==\r\n==\r\n==\r\n==" , "\r\n"),
99-
test( 2, "=========" , "==\r\n==\r\n==\r\n==\r\n=", "\r\n"),
100-
test( 2, "=======\r\n==" , "==\r\n==\r\n==\r\n=\r\n==", "\r\n"),
101-
test( 3, "=========" , "===\r\n===\r\n===" , "\r\n"),
102-
test( 3, 10, "=========" , "===\r\n===\r\n===" , "\r\n"),
103-
test( 3, "========\r\n=" , "===\r\n===\r\n==\r\n=" , "\r\n"),
104-
105-
test( 2, "======\r\n======", "==\r\n==\r\n==\r\n==\r\n==\r\n==", "\r\n"),
106-
test( 2, 10, "======\r\n======", "==\r\n==\r\n==\r\n==\r\n==\r\n==", "\r\n"),
107-
108-
test( 3, 3, 1, "========\r\n=" , "===\r\n===\r\n==\r\n===\r\n===\r\n===\r\n===\r\n===\r\n===\r\n=", "\r\n"),
109-
test( 4, 3, 1, "========\r\n=" , "====\r\n====\r\n====\r\n====\r\n=\r\n====\r\n====\r\n=\r\n=" , "\r\n"),
88+
test("win_nl_01", 4, "\r\n========", "\r\n====\r\n====", "\r\n"),
89+
90+
test("win_nl_02", 10, "========" , "========" , "\r\n"),
91+
test("win_nl_03", 10, 10, 8, "========" , "==========" , "\r\n"),
92+
test("win_nl_04", 4, "========" , "====\r\n====", "\r\n"),
93+
test("win_nl_05", 4, 10, "========" , "====\r\n====", "\r\n"),
94+
test("win_nl_06", 4, "====\r\n====" , "====\r\n====", "\r\n"),
95+
test("win_nl_07", 4, 10, "====\r\n====" , "====\r\n====", "\r\n"),
96+
97+
test("win_nl_08", 2, 10, "=======\r\n==" , "==\r\n==\r\n==\r\n=\r\n==", "\r\n"),
98+
test("win_nl_09", 2, "====\r\n====" , "==\r\n==\r\n==\r\n==" , "\r\n"),
99+
test("win_nl_10", 2, 10, "====\r\n====" , "==\r\n==\r\n==\r\n==" , "\r\n"),
100+
test("win_nl_11", 2, "=========" , "==\r\n==\r\n==\r\n==\r\n=", "\r\n"),
101+
test("win_nl_12", 2, "=======\r\n==" , "==\r\n==\r\n==\r\n=\r\n==", "\r\n"),
102+
test("win_nl_13", 3, "=========" , "===\r\n===\r\n===" , "\r\n"),
103+
test("win_nl_14", 3, 10, "=========" , "===\r\n===\r\n===" , "\r\n"),
104+
test("win_nl_15", 3, "========\r\n=" , "===\r\n===\r\n==\r\n=" , "\r\n"),
105+
106+
test("win_nl_16", 2, "======\r\n======", "==\r\n==\r\n==\r\n==\r\n==\r\n==", "\r\n"),
107+
test("win_nl_17", 2, 10, "======\r\n======", "==\r\n==\r\n==\r\n==\r\n==\r\n==", "\r\n"),
108+
109+
test("win_nl_18", 3, 3, 1, "========\r\n=" , "===\r\n===\r\n==\r\n===\r\n===\r\n===\r\n===\r\n===\r\n===\r\n=", "\r\n"),
110+
test("win_nl_19", 4, 3, 1, "========\r\n=" , "====\r\n====\r\n====\r\n====\r\n=\r\n====\r\n====\r\n=\r\n=" , "\r\n"),
110111

111112
// multiple newlines
112-
test( 3, 3, 1, "========\r\n=" , "===\r\n===\r\n==\r\n===\r\n===\r\n===\r\n===\r\n===\r\n===\r\n=", "\r\n", "\r", "\n"),
113-
test( 4, 3, 1, "========\r\n=" , "====\r\n====\r\n====\r\n====\r\n=\r\n====\r\n====\r\n=\r\n=" , "\r\n", "\r", "\n"),
113+
test("multi_nl_1", 3, 3, 1, "========\r\n=" , "===\r\n===\r\n==\r\n===\r\n===\r\n===\r\n===\r\n===\r\n===\r\n=", "\r\n", "\r", "\n"),
114+
test("multi_nl_2", 4, 3, 1, "========\r\n=" , "====\r\n====\r\n====\r\n====\r\n=\r\n====\r\n====\r\n=\r\n=" , "\r\n", "\r", "\n"),
114115

115-
test( 3, 3, 1, "========\r\n=" , "===\r===\r==\r\n===\r===\r===\r\n===\r===\r===\r\n=", "\r", "\n", "\r\n"),
116-
test( 4, 3, 1, "========\r\n=" , "====\r====\r\n====\r====\r=\r\n====\r====\r=\r\n=" , "\r", "\n", "\r\n"),
116+
test("multi_nl_3", 3, 3, 1, "========\r\n=" , "===\r===\r==\r\n===\r===\r===\r\n===\r===\r===\r\n=", "\r", "\n", "\r\n"),
117+
test("multi_nl_4", 4, 3, 1, "========\r\n=" , "====\r====\r\n====\r====\r=\r\n====\r====\r=\r\n=" , "\r", "\n", "\r\n"),
117118

118119
// surrogate pairs (emoji 😀 = \uD83D\uDE00, 2 chars) -- wrap must not split a surrogate pair
119120
// single wrap: limit=3, "ab😀c" (5 chars) -> wrap before emoji
120-
test( 3, "ab\uD83D\uDE00c" , "ab\n\uD83D\uDE00c" , "\n"),
121+
test("surrogate_pairs_1", 3, "ab\uD83D\uDE00c" , "ab\n\uD83D\uDE00c" , "\n"),
121122
// single wrap: limit=4, "abc😀d" (6 chars) -> wrap before emoji
122-
test( 4, "abc\uD83D\uDE00d" , "abc\n\uD83D\uDE00d" , "\n"),
123+
test("surrogate_pairs_2", 4, "abc\uD83D\uDE00d" , "abc\n\uD83D\uDE00d" , "\n"),
123124
// second wrap also falls on a low surrogate: limit=3, "ab😀😀b" (7 chars) -> both wraps before emoji
124-
test( 3, "ab\uD83D\uDE00\uD83D\uDE00b", "ab\n\uD83D\uDE00\n\uD83D\uDE00b", "\n"),
125+
test("surrogate_pairs_3", 3, "ab\uD83D\uDE00\uD83D\uDE00b", "ab\n\uD83D\uDE00\n\uD83D\uDE00b", "\n"),
125126
// wrap between two ASCII chars, then second wrap on low surrogate: limit=3, "abc😀😀" (7 chars)
126-
test( 3, "abc\uD83D\uDE00\uD83D\uDE00", "abc\n\uD83D\uDE00\n\uD83D\uDE00", "\n"),
127+
test("surrogate_pairs_4", 3, "abc\uD83D\uDE00\uD83D\uDE00", "abc\n\uD83D\uDE00\n\uD83D\uDE00", "\n"),
127128
};
128129

129130
private static Stream<Arguments> tests() {
130-
return Arrays.stream(TESTS).map(Arguments::of);
131+
return Arrays.stream(TESTS).map(ConsoleOutputLineWrapTest::named);
131132
}
132133

133134
@ParameterizedTest
@@ -147,4 +148,8 @@ public void test(Parameters p) {
147148
private static String repeat(String s, int r, String nl) {
148149
return (nl + s).repeat(r).substring(nl.length());
149150
}
151+
152+
private static Arguments named(Parameters p) {
153+
return Arguments.of(Named.of(p.name, p));
154+
}
150155
}

0 commit comments

Comments
 (0)