From a5eb3b677ab3528346cb838f7e1a8f9627058e5b Mon Sep 17 00:00:00 2001 From: 9Lukas5 Date: Sun, 3 Jan 2021 21:47:54 +0100 Subject: [PATCH 1/2] refactor: change json format --- .../de/hftstuttgart/modocot/Testrunner.java | 17 ++++++----------- .../modocot/model/ModocotResult.java | 3 ++- .../modocot/model/ModocotResultSummary.java | 13 ++++--------- 3 files changed, 12 insertions(+), 21 deletions(-) diff --git a/src/main/java/de/hftstuttgart/modocot/Testrunner.java b/src/main/java/de/hftstuttgart/modocot/Testrunner.java index c0d61b3..22486c0 100644 --- a/src/main/java/de/hftstuttgart/modocot/Testrunner.java +++ b/src/main/java/de/hftstuttgart/modocot/Testrunner.java @@ -87,7 +87,7 @@ public class Testrunner ModocotResultSummary resultSummary = runTests(); // add compilation errors to summary - resultSummary.compilationErrors = compilationErrors; + resultSummary.results.addAll(compilationErrors); // serialize result writeResult(resultSummary); @@ -217,7 +217,7 @@ public class Testrunner Matcher matcher = pattern.matcher(String.valueOf(e.getSource())); result.name = (matcher.matches() && matcher.group(1) != null) ? matcher.group(1) : String.valueOf(e.getSource()); - result.state = ModocotResult.State.FAILURE.ordinal(); + result.state = ModocotResult.State.COMPILATIONERROR.ordinal(); result.failureReason = e.getMessage(Locale.ENGLISH); result.failureType = "Compilation Failed"; result.stacktrace = e.toString(); @@ -247,7 +247,7 @@ public class Testrunner )); ModocotResultSummary resultSummary = new ModocotResultSummary(); - resultSummary.successes = successes.stream().map(s -> + resultSummary.results.addAll(successes.stream().map(s -> { ModocotResult result = new ModocotResult(); result.name = s.getDisplayName(); @@ -255,9 +255,9 @@ public class Testrunner return result; }) - .collect(Collectors.toCollection(HashSet::new)); + .collect(Collectors.toCollection(HashSet::new))); - resultSummary.failures = summary.getFailures().stream().map(f -> + resultSummary.results.addAll(summary.getFailures().stream().map(f -> { ModocotResult result = new ModocotResult(); result.name = f.getTestIdentifier().getDisplayName(); @@ -272,12 +272,7 @@ public class Testrunner return result; }) - .collect(Collectors.toCollection(HashSet::new)); - - resultSummary.timestamp = System.currentTimeMillis() / 1000; - resultSummary.testCount = (int) summary.getTestsStartedCount(); - resultSummary.successCount = resultSummary.successes.size(); - resultSummary.failureCount = resultSummary.failures.size(); + .collect(Collectors.toCollection(HashSet::new))); return resultSummary; } diff --git a/src/main/java/de/hftstuttgart/modocot/model/ModocotResult.java b/src/main/java/de/hftstuttgart/modocot/model/ModocotResult.java index 955ed62..5d24d64 100644 --- a/src/main/java/de/hftstuttgart/modocot/model/ModocotResult.java +++ b/src/main/java/de/hftstuttgart/modocot/model/ModocotResult.java @@ -16,8 +16,9 @@ public class ModocotResult public static enum State { + UNKNOWN, SUCCESS, FAILURE, - UNKNOWN + COMPILATIONERROR, } } diff --git a/src/main/java/de/hftstuttgart/modocot/model/ModocotResultSummary.java b/src/main/java/de/hftstuttgart/modocot/model/ModocotResultSummary.java index a9e563c..8998413 100644 --- a/src/main/java/de/hftstuttgart/modocot/model/ModocotResultSummary.java +++ b/src/main/java/de/hftstuttgart/modocot/model/ModocotResultSummary.java @@ -1,16 +1,11 @@ package de.hftstuttgart.modocot.model; +import java.util.HashSet; import java.util.Set; public class ModocotResultSummary { - public long timestamp; - public int testCount; - public int failureCount; - public int successCount; - public String globalStacktrace; - - public Set successes; - public Set failures; - public Set compilationErrors; + public long timestamp = System.currentTimeMillis() / 1000; + public String globalStacktrace = null; + public Set results = new HashSet<>(); } -- GitLab From 0a0c6876078d9a7dbd972e90032758e5f1f81880 Mon Sep 17 00:00:00 2001 From: 9Lukas5 Date: Sat, 9 Jan 2021 14:27:04 +0100 Subject: [PATCH 2/2] refactor: dtt transition --- Dockerfile | 32 +++++++------- Jenkinsfile | 2 +- pom.xml | 4 +- .../{modocot => dtt}/Testrunner.java | 42 +++++++++---------- .../model/Result.java} | 4 +- .../model/ResultSummary.java} | 6 +-- .../util/MySummaryGeneratingListener.java} | 4 +- .../util/logging/CustomFormatter.java | 2 +- src/main/resources/logging.properties | 2 +- 9 files changed, 49 insertions(+), 49 deletions(-) rename src/main/java/de/hftstuttgart/{modocot => dtt}/Testrunner.java (88%) rename src/main/java/de/hftstuttgart/{modocot/model/ModocotResult.java => dtt/model/Result.java} (85%) rename src/main/java/de/hftstuttgart/{modocot/model/ModocotResultSummary.java => dtt/model/ResultSummary.java} (57%) rename src/main/java/de/hftstuttgart/{modocot/util/ModocotSummaryGeneratingListener.java => dtt/util/MySummaryGeneratingListener.java} (85%) rename src/main/java/de/hftstuttgart/{modocot => dtt}/util/logging/CustomFormatter.java (91%) diff --git a/Dockerfile b/Dockerfile index 0bae30e..4fb8de9 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,22 +1,22 @@ from openjdk:11-jdk-slim -env MODOCOT_BASEDIR /modocot -env MODOCOT_TESTDIR $MODOCOT_BASEDIR/test -env MODOCOT_SOURCEDIR $MODOCOT_BASEDIR/src -env MODOCOT_RESULTDIR $MODOCOT_BASEDIR/result -env MODOCOT_LIBSDIR $MODOCOT_BASEDIR/libs +env BASEDIR /data +env TESTDIR $BASEDIR/test +env SOURCEDIR $BASEDIR/src +env RESULTDIR $BASEDIR/result +env LIBSDIR $BASEDIR/libs -run mkdir -p $MODOCOT_TESTDIR \ - && mkdir $MODOCOT_SOURCEDIR \ - && mkdir $MODOCOT_RESULTDIR \ - && mkdir -p /$MODOCOT_LIBSDIR/additional +run mkdir -p $TESTDIR \ + && mkdir $SOURCEDIR \ + && mkdir $RESULTDIR \ + && mkdir -p /$LIBSDIR/additional -add target/modocot-openjdk11-junit5-runner-jar-with-dependencies.jar /$MODOCOT_BASEDIR/app.jar -add https://repo1.maven.org/maven2/org/junit/jupiter/junit-jupiter-api/5.7.0/junit-jupiter-api-5.7.0.jar /$MODOCOT_LIBSDIR/ -add https://repo1.maven.org/maven2/org/junit/jupiter/junit-jupiter-engine/5.7.0/junit-jupiter-engine-5.7.0.jar /$MODOCOT_LIBSDIR/ -add https://repo1.maven.org/maven2/org/apiguardian/apiguardian-api/1.1.1/apiguardian-api-1.1.1.jar /$MODOCOT_LIBSDIR/ -add https://repo1.maven.org/maven2/org/opentest4j/opentest4j/1.2.0/opentest4j-1.2.0.jar /$MODOCOT_LIBSDIR/ +add target/dtt-openjdk11-junit5-runner-jar-with-dependencies.jar /$BASEDIR/app.jar +add https://repo1.maven.org/maven2/org/junit/jupiter/junit-jupiter-api/5.7.0/junit-jupiter-api-5.7.0.jar /$LIBSDIR/ +add https://repo1.maven.org/maven2/org/junit/jupiter/junit-jupiter-engine/5.7.0/junit-jupiter-engine-5.7.0.jar /$LIBSDIR/ +add https://repo1.maven.org/maven2/org/apiguardian/apiguardian-api/1.1.1/apiguardian-api-1.1.1.jar /$LIBSDIR/ +add https://repo1.maven.org/maven2/org/opentest4j/opentest4j/1.2.0/opentest4j-1.2.0.jar /$LIBSDIR/ -workdir /modocot +workdir $BASEDIR -entrypoint java -Djava.security.egd=file:/dev/./urandom -jar /modocot/app.jar "$MODOCOT_SOURCEDIR/src:$MODOCOT_TESTDIR/test" "$MODOCOT_LIBSDIR/*:$MODOCOT_TESTDIR/libs/*" $MODOCOT_RESULTDIR +entrypoint java -Djava.security.egd=file:/dev/./urandom -jar /$BASEDIR/app.jar "$SOURCEDIR/src:$TESTDIR/test" "$LIBSDIR/*:$TESTDIR/libs/*" $RESULTDIR diff --git a/Jenkinsfile b/Jenkinsfile index a3ce380..9f7c36d 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -4,7 +4,7 @@ def version = "" pipeline { environment { - registry = "hftstuttgart/modocot-openjdk11-junit5-testrunner" + registry = "hftstuttgart/dtt-openjdk11-junit5-testrunner" registryCredential = 'Dockerhub' dockerImage = '' } diff --git a/pom.xml b/pom.xml index a1d8829..2de56b3 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ 4.0.0 de.hftstuttgart - modocot-openjdk11-junit5-runner + dtt-openjdk11-junit5-runner ${buildNumber} jar @@ -72,7 +72,7 @@ - de.hftstuttgart.modocot.Testrunner + de.hftstuttgart.dtt.Testrunner diff --git a/src/main/java/de/hftstuttgart/modocot/Testrunner.java b/src/main/java/de/hftstuttgart/dtt/Testrunner.java similarity index 88% rename from src/main/java/de/hftstuttgart/modocot/Testrunner.java rename to src/main/java/de/hftstuttgart/dtt/Testrunner.java index 22486c0..7e3ddcb 100644 --- a/src/main/java/de/hftstuttgart/modocot/Testrunner.java +++ b/src/main/java/de/hftstuttgart/dtt/Testrunner.java @@ -1,8 +1,8 @@ -package de.hftstuttgart.modocot; +package de.hftstuttgart.dtt; -import de.hftstuttgart.modocot.model.ModocotResult; -import de.hftstuttgart.modocot.model.ModocotResultSummary; -import de.hftstuttgart.modocot.util.ModocotSummaryGeneratingListener; +import de.hftstuttgart.dtt.model.Result; +import de.hftstuttgart.dtt.model.ResultSummary; +import de.hftstuttgart.dtt.util.MySummaryGeneratingListener; import com.fasterxml.jackson.databind.ObjectMapper; @@ -71,7 +71,7 @@ public class Testrunner sourceFolders = args[0].split(":"); libraryFolders = args[1].split(":"); resultFolder = args[2]; - classFolder = Files.createTempDirectory("modocot-testrunner").toAbsolutePath().toString(); + classFolder = Files.createTempDirectory("testrunner").toAbsolutePath().toString(); // finding all source files Set sourceFiles = new HashSet<>(); @@ -81,10 +81,10 @@ public class Testrunner } // call compilation and generate Results for failed compiles - Set compilationErrors = generateCompileResults(compile(sourceFiles, new File(classFolder))); + Set compilationErrors = generateCompileResults(compile(sourceFiles, new File(classFolder))); // run unit tests found in the compiled class files - ModocotResultSummary resultSummary = runTests(); + ResultSummary resultSummary = runTests(); // add compilation errors to summary resultSummary.results.addAll(compilationErrors); @@ -208,16 +208,16 @@ public class Testrunner return URLClassLoader.newInstance(urls, parentClassLoader); } - public static Set generateCompileResults(List compilationErrors) + public static Set generateCompileResults(List compilationErrors) { return compilationErrors.stream().map(e -> { - ModocotResult result = new ModocotResult(); + 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()); - result.state = ModocotResult.State.COMPILATIONERROR.ordinal(); + result.state = Result.State.COMPILATIONERROR.ordinal(); result.failureReason = e.getMessage(Locale.ENGLISH); result.failureType = "Compilation Failed"; result.stacktrace = e.toString(); @@ -231,7 +231,7 @@ public class Testrunner .collect(Collectors.toCollection(HashSet::new)); } - public static ModocotResultSummary generateResultSummary(TestExecutionSummary summary, Set successes) + public static ResultSummary generateResultSummary(TestExecutionSummary summary, Set successes) { LOG.info("JUnit results:"); LOG.info(String.format( @@ -246,12 +246,12 @@ public class Testrunner .reduce((s1, s2) -> s1 + ":" + s2).orElse("-") )); - ModocotResultSummary resultSummary = new ModocotResultSummary(); + ResultSummary resultSummary = new ResultSummary(); resultSummary.results.addAll(successes.stream().map(s -> { - ModocotResult result = new ModocotResult(); + Result result = new Result(); result.name = s.getDisplayName(); - result.state = ModocotResult.State.SUCCESS.ordinal(); + result.state = Result.State.SUCCESS.ordinal(); return result; }) @@ -259,9 +259,9 @@ public class Testrunner resultSummary.results.addAll(summary.getFailures().stream().map(f -> { - ModocotResult result = new ModocotResult(); + Result result = new Result(); result.name = f.getTestIdentifier().getDisplayName(); - result.state = ModocotResult.State.FAILURE.ordinal(); + result.state = Result.State.FAILURE.ordinal(); result.failureReason = f.getException().getMessage(); result.failureType = f.getException().getClass().getName(); @@ -308,7 +308,7 @@ public class Testrunner return files; } - public static ModocotResultSummary runTests() throws MalformedURLException + public static ResultSummary runTests() throws MalformedURLException { classPathItems = buildClassPathItems(true); LOG.info("saving original class loader"); @@ -327,7 +327,7 @@ public class Testrunner .selectors(DiscoverySelectors.selectClasspathRoots(Collections.singleton(Paths.get(classFolder).toAbsolutePath()))) .build(); - ModocotSummaryGeneratingListener listener = new ModocotSummaryGeneratingListener(); + MySummaryGeneratingListener listener = new MySummaryGeneratingListener(); Launcher launcher = LauncherFactory.create(); launcher.registerTestExecutionListeners(listener); @@ -354,14 +354,14 @@ public class Testrunner Thread.currentThread().setContextClassLoader(originalClassLoader); } - LOG.info("generate modocot result summary from junit"); + LOG.info("generate result summary from junit"); return generateResultSummary(summary, successes); } - public static void writeResult(ModocotResultSummary resultSummary) throws IOException + public static void writeResult(ResultSummary resultSummary) throws IOException { Path fileName = Paths.get(resultFolder, "result.json"); - LOG.info(String.format("serializing modocdot result as json into %s", fileName.toAbsolutePath().toString())); + LOG.info(String.format("serializing result as json into %s", fileName.toAbsolutePath().toString())); ObjectMapper objectMapper = new ObjectMapper(); objectMapper .writerWithDefaultPrettyPrinter() diff --git a/src/main/java/de/hftstuttgart/modocot/model/ModocotResult.java b/src/main/java/de/hftstuttgart/dtt/model/Result.java similarity index 85% rename from src/main/java/de/hftstuttgart/modocot/model/ModocotResult.java rename to src/main/java/de/hftstuttgart/dtt/model/Result.java index 5d24d64..b6338ca 100644 --- a/src/main/java/de/hftstuttgart/modocot/model/ModocotResult.java +++ b/src/main/java/de/hftstuttgart/dtt/model/Result.java @@ -1,6 +1,6 @@ -package de.hftstuttgart.modocot.model; +package de.hftstuttgart.dtt.model; -public class ModocotResult +public class Result { public String name; public int state; diff --git a/src/main/java/de/hftstuttgart/modocot/model/ModocotResultSummary.java b/src/main/java/de/hftstuttgart/dtt/model/ResultSummary.java similarity index 57% rename from src/main/java/de/hftstuttgart/modocot/model/ModocotResultSummary.java rename to src/main/java/de/hftstuttgart/dtt/model/ResultSummary.java index 8998413..6aa6654 100644 --- a/src/main/java/de/hftstuttgart/modocot/model/ModocotResultSummary.java +++ b/src/main/java/de/hftstuttgart/dtt/model/ResultSummary.java @@ -1,11 +1,11 @@ -package de.hftstuttgart.modocot.model; +package de.hftstuttgart.dtt.model; import java.util.HashSet; import java.util.Set; -public class ModocotResultSummary +public class ResultSummary { public long timestamp = System.currentTimeMillis() / 1000; public String globalStacktrace = null; - public Set results = new HashSet<>(); + public Set results = new HashSet<>(); } diff --git a/src/main/java/de/hftstuttgart/modocot/util/ModocotSummaryGeneratingListener.java b/src/main/java/de/hftstuttgart/dtt/util/MySummaryGeneratingListener.java similarity index 85% rename from src/main/java/de/hftstuttgart/modocot/util/ModocotSummaryGeneratingListener.java rename to src/main/java/de/hftstuttgart/dtt/util/MySummaryGeneratingListener.java index d566510..e91a0e2 100644 --- a/src/main/java/de/hftstuttgart/modocot/util/ModocotSummaryGeneratingListener.java +++ b/src/main/java/de/hftstuttgart/dtt/util/MySummaryGeneratingListener.java @@ -1,4 +1,4 @@ -package de.hftstuttgart.modocot.util; +package de.hftstuttgart.dtt.util; import org.junit.platform.engine.TestDescriptor; import org.junit.platform.engine.TestExecutionResult; @@ -8,7 +8,7 @@ import org.junit.platform.launcher.listeners.SummaryGeneratingListener; import java.util.HashSet; import java.util.Set; -public class ModocotSummaryGeneratingListener extends SummaryGeneratingListener +public class MySummaryGeneratingListener extends org.junit.platform.launcher.listeners.SummaryGeneratingListener { protected Set successful = new HashSet<>(); diff --git a/src/main/java/de/hftstuttgart/modocot/util/logging/CustomFormatter.java b/src/main/java/de/hftstuttgart/dtt/util/logging/CustomFormatter.java similarity index 91% rename from src/main/java/de/hftstuttgart/modocot/util/logging/CustomFormatter.java rename to src/main/java/de/hftstuttgart/dtt/util/logging/CustomFormatter.java index 197c6d1..2deee43 100644 --- a/src/main/java/de/hftstuttgart/modocot/util/logging/CustomFormatter.java +++ b/src/main/java/de/hftstuttgart/dtt/util/logging/CustomFormatter.java @@ -1,4 +1,4 @@ -package de.hftstuttgart.modocot.util.logging; +package de.hftstuttgart.dtt.util.logging; import java.util.Date; import java.util.logging.LogRecord; diff --git a/src/main/resources/logging.properties b/src/main/resources/logging.properties index 175a2e3..ba6bc52 100644 --- a/src/main/resources/logging.properties +++ b/src/main/resources/logging.properties @@ -1,4 +1,4 @@ handlers=java.util.logging.ConsoleHandler .level = INFO java.util.logging.ConsoleHandler.level=INFO -java.util.logging.ConsoleHandler.formatter=de.hftstuttgart.modocot.util.logging.CustomFormatter +java.util.logging.ConsoleHandler.formatter=de.hftstuttgart.dtt.util.logging.CustomFormatter -- GitLab