From 29b68edb3fa6afdfcf237c0d5f8a277129550746 Mon Sep 17 00:00:00 2001
From: 9Lukas5 <lukas.wiest@infinite-tech.solutions>
Date: Tue, 15 Dec 2020 10:13:23 +0100
Subject: [PATCH] feat: store compilation errors separately and with line,col
 and pos number

---
 src/main/java/de/hftstuttgart/modocot/Testrunner.java      | 7 +++++--
 .../java/de/hftstuttgart/modocot/model/ModocotResult.java  | 5 +++++
 .../hftstuttgart/modocot/model/ModocotResultSummary.java   | 1 +
 3 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/src/main/java/de/hftstuttgart/modocot/Testrunner.java b/src/main/java/de/hftstuttgart/modocot/Testrunner.java
index 62e3605..f75213c 100644
--- a/src/main/java/de/hftstuttgart/modocot/Testrunner.java
+++ b/src/main/java/de/hftstuttgart/modocot/Testrunner.java
@@ -88,8 +88,7 @@ public class Testrunner
         ModocotResultSummary resultSummary = runTests();
 
         // add compilation errors to summary
-        resultSummary.failures.addAll(compilationErrors);
-        resultSummary.failureCount = resultSummary.failures.size();
+        resultSummary.compilationErrors = compilationErrors;
 
         // serialize result
         writeResult(resultSummary);
@@ -210,6 +209,10 @@ public class Testrunner
             result.failureType = "Compilation Failed";
             result.stacktrace = e.toString();
 
+            result.lineNumber = (int) e.getLineNumber();
+            result.columnNumber = (int) e.getColumnNumber();
+            result.position = (int) e.getPosition();
+
             return result;
         })
         .collect(Collectors.toCollection(HashSet::new));
diff --git a/src/main/java/de/hftstuttgart/modocot/model/ModocotResult.java b/src/main/java/de/hftstuttgart/modocot/model/ModocotResult.java
index b1defb5..955ed62 100644
--- a/src/main/java/de/hftstuttgart/modocot/model/ModocotResult.java
+++ b/src/main/java/de/hftstuttgart/modocot/model/ModocotResult.java
@@ -9,6 +9,11 @@ public class ModocotResult
     public String failureReason;
     public String stacktrace;
 
+    // only for compilation Errors
+    public int columnNumber;
+    public int lineNumber;
+    public int position;
+
     public static enum State
     {
         SUCCESS,
diff --git a/src/main/java/de/hftstuttgart/modocot/model/ModocotResultSummary.java b/src/main/java/de/hftstuttgart/modocot/model/ModocotResultSummary.java
index d0de24b..a9e563c 100644
--- a/src/main/java/de/hftstuttgart/modocot/model/ModocotResultSummary.java
+++ b/src/main/java/de/hftstuttgart/modocot/model/ModocotResultSummary.java
@@ -12,4 +12,5 @@ public class ModocotResultSummary
 
     public Set<ModocotResult> successes;
     public Set<ModocotResult> failures;
+    public Set<ModocotResult> compilationErrors;
 }
-- 
GitLab