Skip to content

Commit 8474f87

Browse files
committed
Formatted error output in program tests
1 parent 807ffd4 commit 8474f87

File tree

1 file changed

+11
-2
lines changed

1 file changed

+11
-2
lines changed

ownlang-parser/src/test/java/com/annimon/ownlang/parser/ProgramsTest.java

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
11
package com.annimon.ownlang.parser;
22

3+
import com.annimon.ownlang.Console;
4+
import com.annimon.ownlang.exceptions.OwnLangParserException;
35
import com.annimon.ownlang.lib.FunctionValue;
46
import com.annimon.ownlang.lib.NumberValue;
57
import com.annimon.ownlang.lib.ScopeHandler;
68
import com.annimon.ownlang.parser.ast.FunctionDefineStatement;
79
import com.annimon.ownlang.parser.ast.Statement;
810
import com.annimon.ownlang.parser.ast.Visitor;
11+
import com.annimon.ownlang.parser.error.ParseErrorsFormatterStage;
912
import com.annimon.ownlang.parser.optimization.OptimizationStage;
1013
import com.annimon.ownlang.parser.visitors.AbstractVisitor;
1114
import com.annimon.ownlang.stages.*;
@@ -83,10 +86,16 @@ public void initialize() {
8386
@ParameterizedTest
8487
@MethodSource("data")
8588
public void testProgram(String programPath) {
89+
final StagesDataMap stagesData = new StagesDataMap();
8690
try {
87-
testPipeline.perform(new StagesDataMap(), programPath);
91+
testPipeline.perform(stagesData, programPath);
92+
} catch (OwnLangParserException ex) {
93+
final var error = new ParseErrorsFormatterStage()
94+
.perform(stagesData, ex.getParseErrors());
95+
fail(programPath + "\n" + error, ex);
8896
} catch (Exception oae) {
89-
fail(oae);
97+
fail(programPath, oae);
98+
Console.handleException(stagesData, Thread.currentThread(), oae);
9099
}
91100
}
92101

0 commit comments

Comments
 (0)