From 8edb730a54790dd30956ce9559768a55ca9f49d7 Mon Sep 17 00:00:00 2001
From: Gero Lueckemeyer <gero.lueckemeyer@hft-stuttgart.de>
Date: Wed, 11 Oct 2023 17:43:33 +0200
Subject: [PATCH] fixed pattern matching for path removal in not compilable
 result

---
 src/main/java/de/hftstuttgart/dtt/Testrunner.java | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)

diff --git a/src/main/java/de/hftstuttgart/dtt/Testrunner.java b/src/main/java/de/hftstuttgart/dtt/Testrunner.java
index 7e3ddcb..d0cc862 100644
--- a/src/main/java/de/hftstuttgart/dtt/Testrunner.java
+++ b/src/main/java/de/hftstuttgart/dtt/Testrunner.java
@@ -163,9 +163,11 @@ public class Testrunner
         options.add("-d"); // output dir
         options.add(outputDir.getAbsolutePath());
         options.add("-cp"); // custom classpath
+        String os=System.getProperty("os.name");
+        final String osSpecificCpDelim=(os.indexOf("Windows")>-1?";":":");
         String cp = buildClassPath(classPathItems).stream()
             .map(f -> f.getPath())
-            .reduce((s1, s2) -> s1 + ":" + s2).orElse("");
+            .reduce((s1, s2) -> s1 + osSpecificCpDelim + s2).orElse("");
         LOG.info("classpath for compilation: " + cp);
         options.add(cp);
 
@@ -213,10 +215,12 @@ public class Testrunner
         return compilationErrors.stream().map(e ->
         {
             Result result = new Result();
-            Pattern pattern = Pattern.compile(String.format("^.*%s(.*\\.java).*$", File.separator));
-            Matcher matcher = pattern.matcher(String.valueOf(e.getSource()));
-
-            result.name = (matcher.matches() && matcher.group(1) != null) ? matcher.group(1) : String.valueOf(e.getSource());
+//            Pattern pattern = Pattern.compile(String.format("^.*%s(.*\\.java).*$", File.separator));
+//            Matcher matcher = pattern.matcher(String.valueOf(e.getSource()));
+//
+//            result.name = (matcher.matches() && matcher.group(1) != null) ? matcher.group(1) : String.valueOf(e.getSource());
+            String sourcePath=String.valueOf(e.getSource());
+            result.name=sourcePath.substring(sourcePath.lastIndexOf(File.separator)+1, sourcePath.length()-1);
             result.state = Result.State.COMPILATIONERROR.ordinal();
             result.failureReason = e.getMessage(Locale.ENGLISH);
             result.failureType = "Compilation Failed";
-- 
GitLab