aboutsummaryrefslogtreecommitdiff
path: root/org.jacoco.core.test
diff options
context:
space:
mode:
authorMarc R. Hoffmann <hoffmann@mountainminds.com>2016-05-23 08:59:18 +0200
committerEvgeny Mandrikov <mandrikov@gmail.com>2016-05-23 08:59:18 +0200
commitea548107069803cd37a5410b9bf4c81936e8fcce (patch)
tree120a71b4750eb0310dfeada520f24d454c125df3 /org.jacoco.core.test
parentccbf42b97bf126372ca76431881314e1eb57554e (diff)
downloadjacoco-ea548107069803cd37a5410b9bf4c81936e8fcce.tar.gz
GitHub #300: Allow standard Maven build with any JDK.
Test cases which require source level > 1.5 get separate source folders. These source folders are only considered if the corresponding "bytecode.version" property is specified for integration tests. The standard JaCoCo build targets Java 1.5 and will not execute any of these tests (regardless of the JDK version used for building).
Diffstat (limited to 'org.jacoco.core.test')
-rw-r--r--org.jacoco.core.test/.classpath2
-rw-r--r--org.jacoco.core.test/pom.xml63
-rw-r--r--org.jacoco.core.test/src-java8/org/jacoco/core/test/validation/InterfaceDefaultMethodsTest.java (renamed from org.jacoco.core.test/src/org/jacoco/core/test/validation/java8/InterfaceDefaultMethodsTest.java)6
-rw-r--r--org.jacoco.core.test/src-java8/org/jacoco/core/test/validation/LambdaExpressionsTest.java (renamed from org.jacoco.core.test/src/org/jacoco/core/test/validation/java8/LambdaExpressionsTest.java)6
-rw-r--r--org.jacoco.core.test/src-java8/org/jacoco/core/test/validation/LambdaInInterfaceTest.java (renamed from org.jacoco.core.test/src/org/jacoco/core/test/validation/java8/LambdaInInterfaceTest.java)6
-rw-r--r--org.jacoco.core.test/src-java8/org/jacoco/core/test/validation/targets/InterfaceDefaultMethodsTarget.java (renamed from org.jacoco.core.test/src/org/jacoco/core/test/validation/java8/InterfaceDefaultMethodsTarget.java)2
-rw-r--r--org.jacoco.core.test/src-java8/org/jacoco/core/test/validation/targets/LambdaExpressionsTarget.java (renamed from org.jacoco.core.test/src/org/jacoco/core/test/validation/java8/LambdaExpressionsTarget.java)2
-rw-r--r--org.jacoco.core.test/src-java8/org/jacoco/core/test/validation/targets/LambdaInInterfaceTarget.java (renamed from org.jacoco.core.test/src/org/jacoco/core/test/validation/java8/LambdaInInterfaceTarget.java)2
-rw-r--r--org.jacoco.core.test/src/org/jacoco/core/test/validation/Source.java15
-rw-r--r--org.jacoco.core.test/src/org/jacoco/core/test/validation/SourceTest.java2
-rw-r--r--org.jacoco.core.test/src/org/jacoco/core/test/validation/ValidationTestBase.java11
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)