Skip to content
This repository was archived by the owner on Jun 3, 2025. It is now read-only.

Commit e21ed10

Browse files
authored
Merge pull request #305 from tmc-cli/resultprinter-fix-juha
Print valgrind errors from SubmissionResult
2 parents 4065c88 + 0e8cc1a commit e21ed10

2 files changed

Lines changed: 34 additions & 8 deletions

File tree

src/main/java/fi/helsinki/cs/tmc/cli/io/ResultPrinter.java

Lines changed: 28 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package fi.helsinki.cs.tmc.cli.io;
22

3-
import fi.helsinki.cs.tmc.cli.Application;
43
import fi.helsinki.cs.tmc.core.domain.submission.SubmissionResult;
54
import fi.helsinki.cs.tmc.langs.domain.RunResult;
5+
import fi.helsinki.cs.tmc.langs.domain.SpecialLogs;
66
import fi.helsinki.cs.tmc.langs.domain.TestResult;
77

88
import java.util.List;
@@ -56,9 +56,27 @@ public void printSubmissionResult(SubmissionResult result, Boolean printProgress
5656

5757
printTestResults(result.getTestCases());
5858

59-
if (result.getStatus() == SubmissionResult.Status.ERROR) {
60-
io.println("");
61-
io.println(result.getError());
59+
switch (result.getStatus()) {
60+
case ERROR:
61+
io.println("");
62+
io.println(result.getError());
63+
break;
64+
case FAIL:
65+
String valgrind = result.getValgrind();
66+
if (valgrind != null && !valgrind.isEmpty()) {
67+
io.println(Color.colorString("Valgrind error:",
68+
Color.AnsiColor.ANSI_RED));
69+
io.println(valgrind);
70+
return;
71+
}
72+
break;
73+
case PROCESSING:
74+
io.println("PROCESSING");
75+
break;
76+
case OK:
77+
//io.println("OK");
78+
break;
79+
default:
6280
}
6381

6482
if (printProgressBar && this.total > 0) {
@@ -85,7 +103,6 @@ public void printSubmissionResult(SubmissionResult result, Boolean printProgress
85103
if (msg != null) {
86104
io.println(msg);
87105
}
88-
return;
89106
}
90107

91108
public void printRunResult(RunResult result, Boolean printProgressBar,
@@ -111,6 +128,12 @@ public void printRunResult(RunResult result, Boolean printProgressBar,
111128
case COMPILE_FAILED:
112129
msg = ResultPrinter.COMPILE_ERROR_MESSAGE;
113130
break;
131+
case TESTRUN_INTERRUPTED:
132+
msg = "Testrun interrupted";
133+
break;
134+
case GENERIC_ERROR:
135+
msg = new String(result.logs.get(SpecialLogs.GENERIC_ERROR_MESSAGE));
136+
break;
114137
default:
115138
}
116139
if (msg != null) {

src/test/java/fi/helsinki/cs/tmc/cli/io/ResultPrinterTest.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,20 +47,23 @@ public void printSubmissionResultWorksIfResultIsNull() {
4747

4848
@Test
4949
public void printSubmissionResultWorksIfAllTestsPass() {
50+
when(mockSubResult.getStatus()).thenReturn(SubmissionResult.Status.OK);
5051
when(mockSubResult.getTestResultStatus()).thenReturn(TestResultStatus.NONE_FAILED);
5152
printer.printSubmissionResult(mockSubResult, false, null, null);
5253
assertTrue(io.out().contains("All tests passed on server!"));
5354
}
5455

5556
@Test
5657
public void printSubmissionResultWorksIfAllTestsFail() {
58+
when(mockSubResult.getStatus()).thenReturn(SubmissionResult.Status.FAIL);
5759
when(mockSubResult.getTestResultStatus()).thenReturn(TestResultStatus.ALL_FAILED);
5860
printer.printSubmissionResult(mockSubResult, false, null, null);
5961
assertTrue(io.out().contains("All tests failed on server."));
6062
}
6163

6264
@Test
6365
public void printSubmissionResultWorksIfSomeTestsFail() {
66+
when(mockSubResult.getStatus()).thenReturn(SubmissionResult.Status.FAIL);
6467
when(mockSubResult.getTestResultStatus()).thenReturn(TestResultStatus.SOME_FAILED);
6568
printer.printSubmissionResult(mockSubResult, false, null, null);
6669
assertTrue(io.out().contains("Some tests failed on server."));
@@ -73,7 +76,7 @@ public void printRunResultWorksIfTestsPass() {
7376
printer.printRunResult(runResult, false, null, null);
7477
assertTrue(io.out().contains("All tests passed!"));
7578
}
76-
79+
7780
@Test
7881
public void printRunResultWorksIfTestsFail() {
7982
testResults = ImmutableList.of(new TestResult("test1", false, "Not good.",
@@ -82,7 +85,7 @@ public void printRunResultWorksIfTestsFail() {
8285
printer.printRunResult(runResult, false, null, null);
8386
assertTrue(io.out().contains("Please review your answer before submitting"));
8487
}
85-
88+
8689
@Test
8790
public void printRunResultWorksIfTestsFailWithException() {
8891
ImmutableList<String> points = ImmutableList.of("1");
@@ -93,7 +96,7 @@ public void printRunResultWorksIfTestsFailWithException() {
9396
printer.printRunResult(runResult, false, null, null);
9497
assertTrue(io.out().contains("Please review your answer before submitting"));
9598
}
96-
99+
97100
@Test
98101
public void printRunResultWorksIfCompilationFail() {
99102
testResults = ImmutableList.of();

0 commit comments

Comments
 (0)