From fa7cefe15610647246f1bbc948d1b4e3a5cee08e Mon Sep 17 00:00:00 2001
From: rschoene <rene.schoene@tu-dresden.de>
Date: Sun, 20 Jun 2021 11:30:27 +0200
Subject: [PATCH] add coverage generator

---
 .../eraser.java-common-conventions.gradle       |  4 ++++
 eraser-base/build.gradle                        | 17 +++++++++++++++--
 .../inf/st/eraser/GenerateCoverageTest.java     | 12 ++++++++++++
 3 files changed, 31 insertions(+), 2 deletions(-)
 create mode 100644 eraser-base/src/test/java/de/tudresden/inf/st/eraser/GenerateCoverageTest.java

diff --git a/buildSrc/src/main/groovy/eraser.java-common-conventions.gradle b/buildSrc/src/main/groovy/eraser.java-common-conventions.gradle
index ce14101f..4e7d5181 100644
--- a/buildSrc/src/main/groovy/eraser.java-common-conventions.gradle
+++ b/buildSrc/src/main/groovy/eraser.java-common-conventions.gradle
@@ -7,6 +7,10 @@ plugins {
 
 repositories {
   mavenCentral()
+  maven {
+    name "gitlab-maven"
+    url "https://git-st.inf.tu-dresden.de/api/v4/groups/jastadd/-/packages/maven"
+  }
 }
 
 java {
diff --git a/eraser-base/build.gradle b/eraser-base/build.gradle
index 56c7cb70..63dc1cf6 100644
--- a/eraser-base/build.gradle
+++ b/eraser-base/build.gradle
@@ -11,10 +11,10 @@ plugins {
     id 'eraser.java-jastadd-conventions'
 }
 
-apply plugin: 'jastadd'
-
 dependencies {
     jastadd2 "org.jastadd:jastadd:2.3.4"
+    compileOnly group: 'de.tudresden.inf.st.jastadd', name: 'coverage-generator', version: '0.0.4'
+
     api group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: "${jackson_version}"
     api group: 'org.fusesource.mqtt-client', name: 'mqtt-client', version: '1.16'
     implementation group: 'org.influxdb', name: 'influxdb-java', version: '2.20'
@@ -49,6 +49,18 @@ task preprocess(type: JavaExec) {
             file("./src/gen/jastadd/mainGen.jadd"))
 }
 
+String[] coverageGenArguments = [
+    '--List=JastAddList',
+    '--printYaml',
+    '--outputBaseDir=src/gen/jastadd'
+]
+task generateCoverage(type: JavaExec) {
+    main = 'org.jastadd.preprocessor.coverage_gen.Main'
+    classpath = configurations.compileOnly
+
+    args coverageGenArguments + relastFiles
+}
+
 jastadd {
     configureModuleBuild()
     modules {
@@ -104,6 +116,7 @@ sourceSets.main {
 }
 
 generateAst.dependsOn preprocess
+generateAst.dependsOn generateCoverage
 generateAst.inputs.files file("./src/main/jastadd/mainGen.ast"), file("./src/main/jastadd/mainGen.jadd")
 //compileJava.dependsOn jastadd
 //
diff --git a/eraser-base/src/test/java/de/tudresden/inf/st/eraser/GenerateCoverageTest.java b/eraser-base/src/test/java/de/tudresden/inf/st/eraser/GenerateCoverageTest.java
new file mode 100644
index 00000000..97d76d18
--- /dev/null
+++ b/eraser-base/src/test/java/de/tudresden/inf/st/eraser/GenerateCoverageTest.java
@@ -0,0 +1,12 @@
+package de.tudresden.inf.st.eraser;
+
+import de.tudresden.inf.st.eraser.jastadd.model.ASTNode;
+import org.junit.jupiter.api.Test;
+
+public class GenerateCoverageTest {
+
+  @Test
+  public void testGeneratedCoverage() {
+    ASTNode.runCoverageAll();
+  }
+}
-- 
GitLab