diff options
author | Marc R. Hoffmann <hoffmann@mountainminds.com> | 2018-08-09 19:46:04 +0200 |
---|---|---|
committer | Evgeny Mandrikov <Godin@users.noreply.github.com> | 2018-08-09 19:46:04 +0200 |
commit | 1001adda9a37f262c6162c1fec99487a5a79e7fa (patch) | |
tree | ba8e6436a44ba6d6525df8eda33f60dc14898954 /org.jacoco.core.test.validation.java8 | |
parent | 592533c898da5c11d99c9fa09177d92ad50a0455 (diff) | |
download | jacoco-1001adda9a37f262c6162c1fec99487a5a79e7fa.tar.gz |
Simplify validation test setup (#718)
Diffstat (limited to 'org.jacoco.core.test.validation.java8')
12 files changed, 45 insertions, 75 deletions
diff --git a/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/java8/AnnotationOnLocalVariableTest.java b/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/java8/AnnotationOnLocalVariableTest.java index 0b9a3c1d..e1f88bf8 100644 --- a/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/java8/AnnotationOnLocalVariableTest.java +++ b/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/java8/AnnotationOnLocalVariableTest.java @@ -11,10 +11,8 @@ *******************************************************************************/ package org.jacoco.core.test.validation.java8; -import org.jacoco.core.analysis.ICounter; import org.jacoco.core.test.validation.ValidationTestBase; import org.jacoco.core.test.validation.java8.targets.AnnotationOnLocalVariableTarget; -import org.junit.Test; /** * Test of ASM bug @@ -26,11 +24,4 @@ public class AnnotationOnLocalVariableTest extends ValidationTestBase { super(AnnotationOnLocalVariableTarget.class); } - @Test - public void testCoverageResult() { - - assertLine("var", ICounter.FULLY_COVERED); - - } - } diff --git a/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/java8/BadCycleInterfaceTest.java b/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/java8/BadCycleInterfaceTest.java index b9f0a469..b1591b34 100644 --- a/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/java8/BadCycleInterfaceTest.java +++ b/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/java8/BadCycleInterfaceTest.java @@ -11,7 +11,7 @@ *******************************************************************************/ package org.jacoco.core.test.validation.java8; -import org.jacoco.core.analysis.ICounter; +import org.jacoco.core.test.validation.Source.Line; import org.jacoco.core.test.validation.ValidationTestBase; import org.jacoco.core.test.validation.java8.targets.BadCycleInterfaceTarget; import org.junit.Test; @@ -26,25 +26,41 @@ public class BadCycleInterfaceTest extends ValidationTestBase { } @Test - public void test() throws Exception { + public void method_execution_sequence() throws Exception { + if (JAVA_VERSION.isBefore("1.8.0_152")) { + assertLogEvents("baseclinit", "childdefaultmethod", "childclinit", + "childstaticmethod"); + } else { + assertLogEvents("childclinit", "childstaticmethod"); + } + } + + public void assertBaseClInit(final Line line) { if (JAVA_VERSION.isBefore("1.8.0_152")) { // Incorrect interpetation of JVMS 5.5 in JDK 8 causes a default // method to be called before the static initializer of an interface // (see JDK-8098557 and JDK-8164302): - assertLine("baseclinit", ICounter.FULLY_COVERED); - assertLine("childdefault", ICounter.FULLY_COVERED); + assertFullyCovered(line); - assertLogEvents("baseclinit", "childdefaultmethod", "childclinit", - "childstaticmethod"); } else { // This shouldn't happen with JDK 9 (see also JDK-8043275) // and starting with JDK 8u152 (see JDK-8167607): - assertLine("baseclinit", ICounter.EMPTY); - assertLine("childdefault", ICounter.NOT_COVERED); - assertLogEvents("childclinit", "childstaticmethod"); + assertEmpty(line); + } + } + + public void assertChildDefault(final Line line) throws Exception { + if (JAVA_VERSION.isBefore("1.8.0_152")) { + // Incorrect interpetation of JVMS 5.5 in JDK 8 causes a default + // method to be called before the static initializer of an interface + // (see JDK-8098557 and JDK-8164302): + assertFullyCovered(line); + + } else { + // This shouldn't happen with JDK 9 (see also JDK-8043275) + // and starting with JDK 8u152 (see JDK-8167607): + assertNotCovered(line); } - assertLine("childclinit", ICounter.FULLY_COVERED); - assertLine("childstatic", ICounter.FULLY_COVERED); } } diff --git a/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/java8/InterfaceDefaultMethodsTest.java b/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/java8/InterfaceDefaultMethodsTest.java index 4701e27f..2317d7c5 100644 --- a/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/java8/InterfaceDefaultMethodsTest.java +++ b/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/java8/InterfaceDefaultMethodsTest.java @@ -11,10 +11,8 @@ *******************************************************************************/ package org.jacoco.core.test.validation.java8; -import org.jacoco.core.analysis.ICounter; import org.jacoco.core.test.validation.ValidationTestBase; import org.jacoco.core.test.validation.java8.targets.InterfaceDefaultMethodsTarget; -import org.junit.Test; /** * Tests of static initializer and default methods in interfaces. @@ -25,11 +23,4 @@ public class InterfaceDefaultMethodsTest extends ValidationTestBase { super(InterfaceDefaultMethodsTarget.class); } - @Test - public void testCoverageResult() { - assertLine("clinit", ICounter.FULLY_COVERED); - assertLine("m1", ICounter.FULLY_COVERED); - assertLine("m2", ICounter.NOT_COVERED); - } - } diff --git a/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/java8/InterfaceOnlyDefaultMethodsTest.java b/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/java8/InterfaceOnlyDefaultMethodsTest.java index e0ffc723..07fc9f51 100644 --- a/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/java8/InterfaceOnlyDefaultMethodsTest.java +++ b/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/java8/InterfaceOnlyDefaultMethodsTest.java @@ -11,10 +11,8 @@ *******************************************************************************/ package org.jacoco.core.test.validation.java8; -import org.jacoco.core.analysis.ICounter; import org.jacoco.core.test.validation.ValidationTestBase; import org.jacoco.core.test.validation.java8.targets.InterfaceOnlyDefaultMethodsTarget; -import org.junit.Test; /** * Tests of default methods in interfaces. @@ -25,10 +23,4 @@ public class InterfaceOnlyDefaultMethodsTest extends ValidationTestBase { super(InterfaceOnlyDefaultMethodsTarget.class); } - @Test - public void testCoverageResult() { - assertLine("m1", ICounter.FULLY_COVERED); - assertLine("m2", ICounter.NOT_COVERED); - } - } diff --git a/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/java8/LambdaExpressionsTest.java b/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/java8/LambdaExpressionsTest.java index 1d97a3dc..bc137c91 100644 --- a/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/java8/LambdaExpressionsTest.java +++ b/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/java8/LambdaExpressionsTest.java @@ -11,10 +11,8 @@ *******************************************************************************/ package org.jacoco.core.test.validation.java8; -import org.jacoco.core.analysis.ICounter; import org.jacoco.core.test.validation.ValidationTestBase; import org.jacoco.core.test.validation.java8.targets.LambdaExpressionsTarget; -import org.junit.Test; /** * Tests for different lambda expressions. @@ -25,13 +23,4 @@ public class LambdaExpressionsTest extends ValidationTestBase { super(LambdaExpressionsTarget.class); } - @Test - public void testCoverageResult() { - - // Coverage of lambda bodies - assertLine("executedlambdabody", ICounter.FULLY_COVERED); - assertLine("notexecutedlambdabody", ICounter.NOT_COVERED); - - } - } diff --git a/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/java8/LambdaInInterfaceTest.java b/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/java8/LambdaInInterfaceTest.java index 4d4d184f..7888d610 100644 --- a/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/java8/LambdaInInterfaceTest.java +++ b/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/java8/LambdaInInterfaceTest.java @@ -11,10 +11,8 @@ *******************************************************************************/ package org.jacoco.core.test.validation.java8; -import org.jacoco.core.analysis.ICounter; import org.jacoco.core.test.validation.ValidationTestBase; import org.jacoco.core.test.validation.java8.targets.LambdaInInterfaceTarget; -import org.junit.Test; /** * Tests a constant with a lambda value in an interface. @@ -30,12 +28,4 @@ public class LambdaInInterfaceTest extends ValidationTestBase { ((Runnable) targetClass.getField("RUN").get(null)).run(); } - @Test - public void testCoverageResult() { - - // Coverage of lambda body - assertLine("lambdabody", ICounter.FULLY_COVERED); - - } - } diff --git a/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/java8/targets/AnnotationOnLocalVariableTarget.java b/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/java8/targets/AnnotationOnLocalVariableTarget.java index b2d6acbf..315d6c90 100644 --- a/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/java8/targets/AnnotationOnLocalVariableTarget.java +++ b/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/java8/targets/AnnotationOnLocalVariableTarget.java @@ -34,7 +34,7 @@ public class AnnotationOnLocalVariableTarget { public static void main(String[] args) { @NonNull - Object o = legacy(); // $line-var$ + Object o = legacy(); // assertFullyCovered() } } diff --git a/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/java8/targets/BadCycleInterfaceTarget.java b/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/java8/targets/BadCycleInterfaceTarget.java index bac69f81..1f1215ec 100644 --- a/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/java8/targets/BadCycleInterfaceTarget.java +++ b/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/java8/targets/BadCycleInterfaceTarget.java @@ -18,7 +18,7 @@ public class BadCycleInterfaceTarget { public interface Base { static final Object BASE_CONST = new Child() { { - Stubs.logEvent("baseclinit"); // $line-baseclinit$ + Stubs.logEvent("baseclinit"); // assertBaseClInit() } }.childDefaultMethod(); @@ -29,17 +29,17 @@ public class BadCycleInterfaceTarget { public interface Child extends Base { static final Object CHILD_CONST = new Object() { { - Stubs.logEvent("childclinit"); // $line-childclinit$ + Stubs.logEvent("childclinit"); // assertFullyCovered() } }; default Object childDefaultMethod() { - Stubs.logEvent("childdefaultmethod"); // $line-childdefault$ + Stubs.logEvent("childdefaultmethod"); // assertChildDefault() return null; } static void childStaticMethod() { - Stubs.logEvent("childstaticmethod"); // $line-childstatic$ + Stubs.logEvent("childstaticmethod"); // assertFullyCovered() } } diff --git a/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/java8/targets/InterfaceDefaultMethodsTarget.java b/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/java8/targets/InterfaceDefaultMethodsTarget.java index 2c8a13db..b7390f73 100644 --- a/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/java8/targets/InterfaceDefaultMethodsTarget.java +++ b/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/java8/targets/InterfaceDefaultMethodsTarget.java @@ -14,18 +14,19 @@ package org.jacoco.core.test.validation.java8.targets; import static org.jacoco.core.test.validation.targets.Stubs.i1; /** - * This test target is an interface with a class initializer and default methods. + * This test target is an interface with a class initializer and default + * methods. */ public interface InterfaceDefaultMethodsTarget { - public static final int CONST = i1(); // $line-clinit$ + public static final int CONST = i1(); // assertFullyCovered() default void m1() { - return; // $line-m1$ + return; // assertFullyCovered() } default void m2() { - return; // $line-m2$ + return; // assertNotCovered() } public class Impl implements InterfaceDefaultMethodsTarget { @@ -34,7 +35,7 @@ public interface InterfaceDefaultMethodsTarget { m1(); } } - + public static void main(String[] args) { new Impl(); } diff --git a/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/java8/targets/InterfaceOnlyDefaultMethodsTarget.java b/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/java8/targets/InterfaceOnlyDefaultMethodsTarget.java index dd96e0ad..6ae4c5cb 100644 --- a/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/java8/targets/InterfaceOnlyDefaultMethodsTarget.java +++ b/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/java8/targets/InterfaceOnlyDefaultMethodsTarget.java @@ -16,14 +16,14 @@ package org.jacoco.core.test.validation.java8.targets; */ public interface InterfaceOnlyDefaultMethodsTarget { - // no <clinit>, only default methods: + /* no <clinit>, only default methods: */ default void m1() { - return; // $line-m1$ + return; // assertFullyCovered() } default void m2() { - return; // $line-m2$ + return; // assertNotCovered() } public class Impl implements InterfaceOnlyDefaultMethodsTarget { diff --git a/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/java8/targets/LambdaExpressionsTarget.java b/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/java8/targets/LambdaExpressionsTarget.java index a8c7bd8b..5a26d0b0 100644 --- a/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/java8/targets/LambdaExpressionsTarget.java +++ b/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/java8/targets/LambdaExpressionsTarget.java @@ -23,11 +23,11 @@ public class LambdaExpressionsTarget { public static void main(String[] args) { exec(() -> { - nop(); // $line-executedlambdabody$ + nop(); // assertFullyCovered() }); - + noexec(() -> { - nop(); // $line-notexecutedlambdabody$ + nop(); // assertNotCovered() }); } diff --git a/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/java8/targets/LambdaInInterfaceTarget.java b/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/java8/targets/LambdaInInterfaceTarget.java index 4a9db74b..5759ca5f 100644 --- a/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/java8/targets/LambdaInInterfaceTarget.java +++ b/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/java8/targets/LambdaInInterfaceTarget.java @@ -19,7 +19,7 @@ import static org.jacoco.core.test.validation.targets.Stubs.nop; public interface LambdaInInterfaceTarget { public static final Runnable RUN = () -> { - nop(); // $line-lambdabody$ + nop(); // assertFullyCovered() }; } |