mirror of
https://github.com/aNNiMON/Own-Programming-Language-Tutorial.git
synced 2024-09-20 08:44:20 +03:00
Formatted error output in program tests
This commit is contained in:
parent
807ffd44f8
commit
8474f87358
@ -1,11 +1,14 @@
|
|||||||
package com.annimon.ownlang.parser;
|
package com.annimon.ownlang.parser;
|
||||||
|
|
||||||
|
import com.annimon.ownlang.Console;
|
||||||
|
import com.annimon.ownlang.exceptions.OwnLangParserException;
|
||||||
import com.annimon.ownlang.lib.FunctionValue;
|
import com.annimon.ownlang.lib.FunctionValue;
|
||||||
import com.annimon.ownlang.lib.NumberValue;
|
import com.annimon.ownlang.lib.NumberValue;
|
||||||
import com.annimon.ownlang.lib.ScopeHandler;
|
import com.annimon.ownlang.lib.ScopeHandler;
|
||||||
import com.annimon.ownlang.parser.ast.FunctionDefineStatement;
|
import com.annimon.ownlang.parser.ast.FunctionDefineStatement;
|
||||||
import com.annimon.ownlang.parser.ast.Statement;
|
import com.annimon.ownlang.parser.ast.Statement;
|
||||||
import com.annimon.ownlang.parser.ast.Visitor;
|
import com.annimon.ownlang.parser.ast.Visitor;
|
||||||
|
import com.annimon.ownlang.parser.error.ParseErrorsFormatterStage;
|
||||||
import com.annimon.ownlang.parser.optimization.OptimizationStage;
|
import com.annimon.ownlang.parser.optimization.OptimizationStage;
|
||||||
import com.annimon.ownlang.parser.visitors.AbstractVisitor;
|
import com.annimon.ownlang.parser.visitors.AbstractVisitor;
|
||||||
import com.annimon.ownlang.stages.*;
|
import com.annimon.ownlang.stages.*;
|
||||||
@ -83,10 +86,16 @@ public class ProgramsTest {
|
|||||||
@ParameterizedTest
|
@ParameterizedTest
|
||||||
@MethodSource("data")
|
@MethodSource("data")
|
||||||
public void testProgram(String programPath) {
|
public void testProgram(String programPath) {
|
||||||
|
final StagesDataMap stagesData = new StagesDataMap();
|
||||||
try {
|
try {
|
||||||
testPipeline.perform(new StagesDataMap(), programPath);
|
testPipeline.perform(stagesData, programPath);
|
||||||
|
} catch (OwnLangParserException ex) {
|
||||||
|
final var error = new ParseErrorsFormatterStage()
|
||||||
|
.perform(stagesData, ex.getParseErrors());
|
||||||
|
fail(programPath + "\n" + error, ex);
|
||||||
} catch (Exception oae) {
|
} catch (Exception oae) {
|
||||||
fail(oae);
|
fail(programPath, oae);
|
||||||
|
Console.handleException(stagesData, Thread.currentThread(), oae);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user