diff options
Diffstat (limited to 'org.jacoco.core.test')
11 files changed, 85 insertions, 32 deletions
diff --git a/org.jacoco.core.test/.classpath b/org.jacoco.core.test/.classpath index 1dfb8d76..ebe550b7 100644 --- a/org.jacoco.core.test/.classpath +++ b/org.jacoco.core.test/.classpath @@ -10,7 +10,7 @@ <attribute name="maven.pomderived" value="true"/> </attributes> </classpathentry> - <classpathentry excluding="org/jacoco/core/test/validation/java8/*.java" including="**/*.java" kind="src" output="target/classes" path="src"> + <classpathentry kind="src" output="target/classes" path="src"> <attributes> <attribute name="optional" value="true"/> <attribute name="maven.pomderived" value="true"/> diff --git a/org.jacoco.core.test/pom.xml b/org.jacoco.core.test/pom.xml index 3041b48d..78beae7d 100644 --- a/org.jacoco.core.test/pom.xml +++ b/org.jacoco.core.test/pom.xml @@ -40,24 +40,67 @@ <profiles> <profile> - <id>no-java8-validation</id> + <id>java8-validation</id> <activation> - <jdk>(,1.8)</jdk> + <property> + <name>bytecode.version</name> + <value>1.8</value> + </property> </activation> <build> <plugins> <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <configuration> - <excludes> - <exclude>org/jacoco/core/test/validation/java8/*.java</exclude> - </excludes> - </configuration> + <groupId>org.codehaus.mojo</groupId> + <artifactId>build-helper-maven-plugin</artifactId> + <executions> + <execution> + <id>add-source</id> + <phase>generate-sources</phase> + <goals> + <goal>add-source</goal> + </goals> + <configuration> + <sources> + <source>src-java8</source> + </sources> + </configuration> + </execution> + </executions> + </plugin> + </plugins> + </build> + </profile> + <profile> + <id>java9-validation</id> + <activation> + <property> + <name>bytecode.version</name> + <value>1.9</value> + </property> + </activation> + <build> + <plugins> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>build-helper-maven-plugin</artifactId> + <executions> + <execution> + <id>add-source</id> + <phase>generate-sources</phase> + <goals> + <goal>add-source</goal> + </goals> + <configuration> + <sources> + <source>src-java8</source> + </sources> + </configuration> + </execution> + </executions> </plugin> </plugins> </build> </profile> </profiles> - + </project> diff --git a/org.jacoco.core.test/src/org/jacoco/core/test/validation/java8/InterfaceDefaultMethodsTest.java b/org.jacoco.core.test/src-java8/org/jacoco/core/test/validation/InterfaceDefaultMethodsTest.java index 50455162..405c4cff 100644 --- a/org.jacoco.core.test/src/org/jacoco/core/test/validation/java8/InterfaceDefaultMethodsTest.java +++ b/org.jacoco.core.test/src-java8/org/jacoco/core/test/validation/InterfaceDefaultMethodsTest.java @@ -9,10 +9,10 @@ * Marc R. Hoffmann - initial API and implementation * *******************************************************************************/ -package org.jacoco.core.test.validation.java8; +package org.jacoco.core.test.validation; import org.jacoco.core.analysis.ICounter; -import org.jacoco.core.test.validation.ValidationTestBase; +import org.jacoco.core.test.validation.targets.InterfaceDefaultMethodsTarget; import org.junit.Test; /** @@ -21,7 +21,7 @@ import org.junit.Test; public class InterfaceDefaultMethodsTest extends ValidationTestBase { public InterfaceDefaultMethodsTest() { - super(InterfaceDefaultMethodsTarget.class); + super("src-java8", InterfaceDefaultMethodsTarget.class); } @Override diff --git a/org.jacoco.core.test/src/org/jacoco/core/test/validation/java8/LambdaExpressionsTest.java b/org.jacoco.core.test/src-java8/org/jacoco/core/test/validation/LambdaExpressionsTest.java index 1e3e0dfa..22dce21d 100644 --- a/org.jacoco.core.test/src/org/jacoco/core/test/validation/java8/LambdaExpressionsTest.java +++ b/org.jacoco.core.test/src-java8/org/jacoco/core/test/validation/LambdaExpressionsTest.java @@ -9,10 +9,10 @@ * Marc R. Hoffmann - initial API and implementation * *******************************************************************************/ -package org.jacoco.core.test.validation.java8; +package org.jacoco.core.test.validation; import org.jacoco.core.analysis.ICounter; -import org.jacoco.core.test.validation.ValidationTestBase; +import org.jacoco.core.test.validation.targets.LambdaExpressionsTarget; import org.junit.Test; /** @@ -21,7 +21,7 @@ import org.junit.Test; public class LambdaExpressionsTest extends ValidationTestBase { public LambdaExpressionsTest() { - super(LambdaExpressionsTarget.class); + super("src-java8", LambdaExpressionsTarget.class); } @Override diff --git a/org.jacoco.core.test/src/org/jacoco/core/test/validation/java8/LambdaInInterfaceTest.java b/org.jacoco.core.test/src-java8/org/jacoco/core/test/validation/LambdaInInterfaceTest.java index 17c690f9..921348a2 100644 --- a/org.jacoco.core.test/src/org/jacoco/core/test/validation/java8/LambdaInInterfaceTest.java +++ b/org.jacoco.core.test/src-java8/org/jacoco/core/test/validation/LambdaInInterfaceTest.java @@ -9,10 +9,10 @@ * Marc R. Hoffmann - initial API and implementation * *******************************************************************************/ -package org.jacoco.core.test.validation.java8; +package org.jacoco.core.test.validation; import org.jacoco.core.analysis.ICounter; -import org.jacoco.core.test.validation.ValidationTestBase; +import org.jacoco.core.test.validation.targets.LambdaInInterfaceTarget; import org.junit.Test; /** @@ -21,7 +21,7 @@ import org.junit.Test; public class LambdaInInterfaceTest extends ValidationTestBase { public LambdaInInterfaceTest() { - super(LambdaInInterfaceTarget.class); + super("src-java8", LambdaInInterfaceTarget.class); } @Override diff --git a/org.jacoco.core.test/src/org/jacoco/core/test/validation/java8/InterfaceDefaultMethodsTarget.java b/org.jacoco.core.test/src-java8/org/jacoco/core/test/validation/targets/InterfaceDefaultMethodsTarget.java index 20ac0f71..65028b99 100644 --- a/org.jacoco.core.test/src/org/jacoco/core/test/validation/java8/InterfaceDefaultMethodsTarget.java +++ b/org.jacoco.core.test/src-java8/org/jacoco/core/test/validation/targets/InterfaceDefaultMethodsTarget.java @@ -9,7 +9,7 @@ * Marc R. Hoffmann - initial API and implementation * *******************************************************************************/ -package org.jacoco.core.test.validation.java8; +package org.jacoco.core.test.validation.targets; import static org.jacoco.core.test.validation.targets.Stubs.i1; diff --git a/org.jacoco.core.test/src/org/jacoco/core/test/validation/java8/LambdaExpressionsTarget.java b/org.jacoco.core.test/src-java8/org/jacoco/core/test/validation/targets/LambdaExpressionsTarget.java index da511cfc..e5e33c89 100644 --- a/org.jacoco.core.test/src/org/jacoco/core/test/validation/java8/LambdaExpressionsTarget.java +++ b/org.jacoco.core.test/src-java8/org/jacoco/core/test/validation/targets/LambdaExpressionsTarget.java @@ -9,7 +9,7 @@ * Marc R. Hoffmann - initial API and implementation * *******************************************************************************/ -package org.jacoco.core.test.validation.java8; +package org.jacoco.core.test.validation.targets; import static org.jacoco.core.test.validation.targets.Stubs.exec; import static org.jacoco.core.test.validation.targets.Stubs.noexec; diff --git a/org.jacoco.core.test/src/org/jacoco/core/test/validation/java8/LambdaInInterfaceTarget.java b/org.jacoco.core.test/src-java8/org/jacoco/core/test/validation/targets/LambdaInInterfaceTarget.java index 23d152c6..73165b74 100644 --- a/org.jacoco.core.test/src/org/jacoco/core/test/validation/java8/LambdaInInterfaceTarget.java +++ b/org.jacoco.core.test/src-java8/org/jacoco/core/test/validation/targets/LambdaInInterfaceTarget.java @@ -9,7 +9,7 @@ * Marc R. Hoffmann - initial API and implementation * *******************************************************************************/ -package org.jacoco.core.test.validation.java8; +package org.jacoco.core.test.validation.targets; import static org.jacoco.core.test.validation.targets.Stubs.nop; diff --git a/org.jacoco.core.test/src/org/jacoco/core/test/validation/Source.java b/org.jacoco.core.test/src/org/jacoco/core/test/validation/Source.java index 49c92977..da918a0e 100644 --- a/org.jacoco.core.test/src/org/jacoco/core/test/validation/Source.java +++ b/org.jacoco.core.test/src/org/jacoco/core/test/validation/Source.java @@ -12,6 +12,7 @@ package org.jacoco.core.test.validation; import java.io.BufferedReader; +import java.io.File; import java.io.FileReader; import java.io.IOException; import java.io.Reader; @@ -31,16 +32,18 @@ import java.util.regex.Pattern; public class Source { /** - * Reads the source for the given type from the <code>./src/</code> folder - * relative to the working directory. + * Reads the source for the given type from the given source folder relative + * to the working directory. * + * @param srcFolder + * source folder * @param type * type to load the source file for - * @throws IOException - * @throws */ - public static Source getSourceFor(final Class<?> type) throws IOException { - String file = "src/" + type.getName().replace('.', '/') + ".java"; + public static Source getSourceFor(final String srcFolder, + final Class<?> type) throws IOException { + File folder = new File(srcFolder); + File file = new File(folder, type.getName().replace('.', '/') + ".java"); return new Source(new FileReader(file)); } diff --git a/org.jacoco.core.test/src/org/jacoco/core/test/validation/SourceTest.java b/org.jacoco.core.test/src/org/jacoco/core/test/validation/SourceTest.java index efd8e5e5..9c6f7e79 100644 --- a/org.jacoco.core.test/src/org/jacoco/core/test/validation/SourceTest.java +++ b/org.jacoco.core.test/src/org/jacoco/core/test/validation/SourceTest.java @@ -78,7 +78,7 @@ public class SourceTest { @Test public void testGetSourceFor() throws IOException { - final Source s = Source.getSourceFor(SourceTest.class); + final Source s = Source.getSourceFor("src", SourceTest.class); // Here we are. $line-testGetSourceFor$ final String l = s.getLine(s.getLineNumber("testGetSourceFor")); assertTrue(l, l.contains("Here we are.")); diff --git a/org.jacoco.core.test/src/org/jacoco/core/test/validation/ValidationTestBase.java b/org.jacoco.core.test/src/org/jacoco/core/test/validation/ValidationTestBase.java index c341fdbd..a3ecabea 100644 --- a/org.jacoco.core.test/src/org/jacoco/core/test/validation/ValidationTestBase.java +++ b/org.jacoco.core.test/src/org/jacoco/core/test/validation/ValidationTestBase.java @@ -47,6 +47,8 @@ public abstract class ValidationTestBase { STATUS_NAME[ICounter.PARTLY_COVERED] = "PARTLY_COVERED"; } + protected final String srcFolder; + protected final Class<?> target; protected IClassCoverage classCoverage; @@ -57,10 +59,15 @@ public abstract class ValidationTestBase { protected TargetLoader loader; - protected ValidationTestBase(final Class<?> target) { + protected ValidationTestBase(final String srcFolder, final Class<?> target) { + this.srcFolder = srcFolder; this.target = target; } + protected ValidationTestBase(final Class<?> target) { + this("src", target); + } + @Before public void setup() throws Exception { loader = new TargetLoader(); @@ -68,7 +75,7 @@ public abstract class ValidationTestBase { TargetLoader.getClassData(target)); final ExecutionDataStore store = execute(reader); analyze(reader, store); - source = Source.getSourceFor(target); + source = Source.getSourceFor(srcFolder, target); } private ExecutionDataStore execute(final ClassReader reader) |