Skip to content

Commit 75972d5

Browse files
committed
One line feed is lost in the tests output #1481
1 parent 853872d commit 75972d5

File tree

8 files changed

+52
-9
lines changed

8 files changed

+52
-9
lines changed

src/com/goide/runconfig/testing/GoTestConsoleProperties.java

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ public static class GoOutputToGeneralTestEventsConverter extends OutputToGeneral
6464

6565
private boolean myFailed = false;
6666
private boolean mySkipped = false;
67+
private boolean myOutputAppeared = false;
6768
@NotNull private StringBuilder myStdOut = new StringBuilder();
6869
@NotNull private String myCurrentTest = "<test>";
6970

@@ -77,16 +78,18 @@ protected boolean processServiceMessages(@NotNull String text, Key outputType, S
7778
Matcher matcher;
7879

7980
if ((matcher = RUN.matcher(text)).find()) {
81+
myOutputAppeared = false;
8082
String testName = StringUtil.notNullize(matcher.group(1), "<test>");
8183
ServiceMessageBuilder testStarted = ServiceMessageBuilder.testStarted(testName).addAttribute("locationHint", testUrl(testName));
8284
return processNotFinishedMessage(testStarted.toString(), outputType, visitor);
8385
}
8486

8587
if ((matcher = PASSED.matcher(text)).find()) {
8688
String testName = StringUtil.notNullize(matcher.group(1), "<test>");
87-
return processNotFinishedMessage(ServiceMessageBuilder.testFinished(testName).toString(), outputType, visitor);
89+
return addNewLineIfNeeded(testName, outputType, visitor)
90+
&& processNotFinishedMessage(ServiceMessageBuilder.testFinished(testName).toString(), outputType, visitor);
8891
}
89-
92+
9093
if ((matcher = SKIP.matcher(text)).find()) {
9194
mySkipped = true;
9295
myCurrentTest = StringUtil.notNullize(matcher.group(1), "<test>");
@@ -109,6 +112,7 @@ protected boolean processServiceMessages(@NotNull String text, Key outputType, S
109112
}
110113
}
111114

115+
myOutputAppeared = true;
112116
return super.processServiceMessages(text, outputType, visitor);
113117
}
114118

@@ -125,16 +129,22 @@ private boolean processNotFinishedMessage(String message, Key outputType, Servic
125129
}
126130

127131
private boolean processFailedMessage(Key outputType, ServiceMessageVisitor visitor) throws ParseException {
128-
ServiceMessageBuilder builder = myFailed
129-
? ServiceMessageBuilder.testFailed(myCurrentTest)
132+
ServiceMessageBuilder builder = myFailed
133+
? ServiceMessageBuilder.testFailed(myCurrentTest)
130134
: ServiceMessageBuilder.testIgnored(myCurrentTest);
131135
String message = builder.addAttribute("message", myStdOut.toString().trim()).toString();
132-
136+
133137
myFailed = false;
134138
mySkipped = false;
135139
myStdOut = new StringBuilder();
136140
return super.processServiceMessages(message, outputType, visitor)
137141
&& super.processServiceMessages(ServiceMessageBuilder.testFinished(myCurrentTest).toString(), outputType, visitor);
138142
}
143+
144+
private boolean addNewLineIfNeeded(@NotNull String testName, @NotNull Key outputType, @NotNull ServiceMessageVisitor visitor)
145+
throws ParseException {
146+
ServiceMessageBuilder message = ServiceMessageBuilder.testStdOut(testName).addAttribute("out", "\n");
147+
return !myOutputAppeared || processServiceMessages(message.toString(), outputType, visitor);
148+
}
139149
}
140150
}

testData/testing/multipleTestsFailed-expected.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,4 @@ finished_test: TestSqrt
99
started_test: TestSqrt2
1010
failed_test: TestSqrt2
1111
test_test.go:15: Sqrt(4) = 2, want 3
12-
finished_test: TestSqrt2
12+
finished_test: TestSqrt2
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
started_test: TestSqrt2
22
failed_test: TestSqrt2
33
test_test.go:15: Sqrt(4) = 2, want 3
4-
finished_test: TestSqrt2
4+
finished_test: TestSqrt2
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
started_test: TestSqrt2
2-
finished_test: TestSqrt2
2+
finished_test: TestSqrt2

testData/testing/skipTest-expected.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,4 @@ started_test: TestRuntimeMemStatsBlocking
55
runtime_test.go:20: skipping TestRuntimeMemStatsBlocking with GOMAXPROCS=1
66
finished_test: TestRuntimeMemStatsBlocking
77
started_test: TestExpDecaySample10
8-
finished_test: TestExpDecaySample10
8+
finished_test: TestExpDecaySample10
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
started_test: TestEWMA1
2+
test_output
3+
4+
finished_test: TestEWMA1
5+
started_test: TestEWMA5
6+
failed_test: TestEWMA5
7+
ewma_test.go:122: 6 minute a.Rate(): 0.18071652714732128 != 0.18071652714732128
8+
finished_test: TestEWMA5
9+
started_test: TestEWMA15
10+
test_output
11+
12+
finished_test: TestEWMA15

testData/testing/stdOut.txt

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
=== RUN TestEWMA1
2+
hello
3+
hello
4+
5+
--- PASS: TestEWMA1 (0.00 seconds)
6+
=== RUN TestEWMA5
7+
hello2
8+
hello2
9+
10+
--- FAIL: TestEWMA5 (0.00 seconds)
11+
ewma_test.go:122: 6 minute a.Rate(): 0.18071652714732128 != 0.18071652714732128
12+
=== RUN TestEWMA15
13+
hello3
14+
hello3
15+
--- PASS: TestEWMA15 (0.00 seconds)
16+
FAIL
17+
exit status 1

tests/com/goide/runconfig/testing/GoUnitTestEventsConverterTest.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,10 @@ public void testMultipleTestsOk() throws Exception {
3333
public void testSkipTest() throws Exception {
3434
doTest();
3535
}
36+
37+
public void testStdOut() throws Exception {
38+
doTest();
39+
}
3640

3741
@Override
3842
protected String getBasePath() {

0 commit comments

Comments
 (0)