Skip to content

Commit

Permalink
Simplify validation test setup (#718)
Browse files Browse the repository at this point in the history
  • Loading branch information
marchof authored and Godin committed Aug 9, 2018
1 parent 592533c commit 1001add
Show file tree
Hide file tree
Showing 63 changed files with 1,400 additions and 1,468 deletions.
Expand Up @@ -11,12 +11,10 @@
*******************************************************************************/ *******************************************************************************/
package org.jacoco.core.test.validation.java5; package org.jacoco.core.test.validation.java5;


import org.jacoco.core.analysis.ICounter; import static org.junit.Assert.assertEquals;

import org.jacoco.core.test.validation.ValidationTestBase; import org.jacoco.core.test.validation.ValidationTestBase;
import org.jacoco.core.test.validation.java5.targets.AnnotationInitializerTarget; import org.jacoco.core.test.validation.java5.targets.AnnotationInitializerTarget;
import org.junit.Test;

import static org.junit.Assert.assertEquals;


/** /**
* Test of initializer in annotations. * Test of initializer in annotations.
Expand All @@ -39,10 +37,4 @@ protected void run(Class<?> targetClass) throws Exception {
targetClass.getField("CONST").get(null); targetClass.getField("CONST").get(null);
} }


@Test
public void testCoverageResult() {
assertLine("const", ICounter.FULLY_COVERED);
assertLine("value", ICounter.EMPTY);
}

} }
Expand Up @@ -11,7 +11,6 @@
*******************************************************************************/ *******************************************************************************/
package org.jacoco.core.test.validation.java5; package org.jacoco.core.test.validation.java5;


import org.jacoco.core.analysis.ICounter;
import org.jacoco.core.test.validation.ValidationTestBase; import org.jacoco.core.test.validation.ValidationTestBase;
import org.jacoco.core.test.validation.java5.targets.BadCycleClassTarget; import org.jacoco.core.test.validation.java5.targets.BadCycleClassTarget;
import org.junit.Test; import org.junit.Test;
Expand All @@ -26,11 +25,7 @@ public BadCycleClassTest() throws Exception {
} }


@Test @Test
public void test() throws Exception { public void method_execution_sequence() throws Exception {
assertLine("childinit", ICounter.FULLY_COVERED);
assertLine("childsomeMethod", ICounter.FULLY_COVERED);
assertLine("childclinit", ICounter.FULLY_COVERED);

// The cycle causes a constructor and instance method to be called // The cycle causes a constructor and instance method to be called
// before the static initializer of a class: // before the static initializer of a class:
assertLogEvents("childinit", "childsomeMethod", "childclinit", assertLogEvents("childinit", "childsomeMethod", "childclinit",
Expand Down
Expand Up @@ -11,10 +11,8 @@
*******************************************************************************/ *******************************************************************************/
package org.jacoco.core.test.validation.java5; package org.jacoco.core.test.validation.java5;


import org.jacoco.core.analysis.ICounter;
import org.jacoco.core.test.validation.ValidationTestBase; import org.jacoco.core.test.validation.ValidationTestBase;
import org.jacoco.core.test.validation.java5.targets.BooleanExpressionsTarget; import org.jacoco.core.test.validation.java5.targets.BooleanExpressionsTarget;
import org.junit.Test;


/** /**
* Tests of basic Java boolean expressions. * Tests of basic Java boolean expressions.
Expand All @@ -25,56 +23,4 @@ public BooleanExpressionsTest() {
super(BooleanExpressionsTarget.class); super(BooleanExpressionsTarget.class);
} }


@Test
public void testCoverageResult() {

// 1. Boolean comparison result (one case)
assertLine("booleancmp1", ICounter.PARTLY_COVERED, 1, 1);

// 2. Boolean comparison result (both cases)
assertLine("booleancmp2", ICounter.FULLY_COVERED, 0, 2);

// 3. And
assertLine("andFF", ICounter.FULLY_COVERED, 1, 1);
assertLine("andFT", ICounter.FULLY_COVERED, 1, 1);
assertLine("andTF", ICounter.FULLY_COVERED, 1, 1);
assertLine("andTT", ICounter.FULLY_COVERED, 1, 1);

// 4. Conditional And
assertLine("conditionalandFF", ICounter.PARTLY_COVERED, 3, 1);
assertLine("conditionalandFT", ICounter.PARTLY_COVERED, 3, 1);
assertLine("conditionalandTF", ICounter.FULLY_COVERED, 2, 2);
assertLine("conditionalandTT", ICounter.FULLY_COVERED, 2, 2);

// 5. Or
assertLine("orFF", ICounter.FULLY_COVERED, 1, 1);
assertLine("orFT", ICounter.FULLY_COVERED, 1, 1);
assertLine("orTF", ICounter.FULLY_COVERED, 1, 1);
assertLine("orTT", ICounter.FULLY_COVERED, 1, 1);

// 6. Conditional Or
assertLine("conditionalorFF", ICounter.FULLY_COVERED, 2, 2);
assertLine("conditionalorFT", ICounter.FULLY_COVERED, 2, 2);
assertLine("conditionalorTF", ICounter.PARTLY_COVERED, 3, 1);
assertLine("conditionalorTT", ICounter.PARTLY_COVERED, 3, 1);

// 7. Exclusive Or
assertLine("xorFF", ICounter.FULLY_COVERED, 1, 1);
assertLine("xorFT", ICounter.FULLY_COVERED, 1, 1);
assertLine("xorTF", ICounter.FULLY_COVERED, 1, 1);
assertLine("xorTT", ICounter.FULLY_COVERED, 1, 1);

// 8. Conditional Operator
assertLine("condT", ICounter.PARTLY_COVERED, 1, 1);
assertLine("condF", ICounter.PARTLY_COVERED, 1, 1);

// 9. Not (one case)
assertLine("notT", ICounter.PARTLY_COVERED, 1, 1);
assertLine("notF", ICounter.PARTLY_COVERED, 1, 1);

// 10. Not (both cases)
assertLine("notTF", ICounter.FULLY_COVERED, 0, 2);

}

} }
Expand Up @@ -11,10 +11,8 @@
*******************************************************************************/ *******************************************************************************/
package org.jacoco.core.test.validation.java5; package org.jacoco.core.test.validation.java5;


import org.jacoco.core.analysis.ICounter;
import org.jacoco.core.test.validation.ValidationTestBase; import org.jacoco.core.test.validation.ValidationTestBase;
import org.jacoco.core.test.validation.java5.targets.ClassInitializerTarget; import org.jacoco.core.test.validation.java5.targets.ClassInitializerTarget;
import org.junit.Test;


/** /**
* Tests of static initializer in classes. * Tests of static initializer in classes.
Expand All @@ -25,21 +23,4 @@ public ClassInitializerTest() {
super(ClassInitializerTarget.class); super(ClassInitializerTarget.class);
} }


@Test
public void testCoverageResult() {

assertLine("const1", ICounter.EMPTY);
assertLine("const2", ICounter.EMPTY);

assertLine("const3", ICounter.FULLY_COVERED);
assertLine("const4", ICounter.FULLY_COVERED);

assertLine("field1", ICounter.FULLY_COVERED);
assertLine("field2", ICounter.FULLY_COVERED);
assertLine("field3", ICounter.FULLY_COVERED);
assertLine("field4", ICounter.FULLY_COVERED);

assertLine("staticblock", ICounter.FULLY_COVERED);
}

} }
Expand Up @@ -11,10 +11,8 @@
*******************************************************************************/ *******************************************************************************/
package org.jacoco.core.test.validation.java5; package org.jacoco.core.test.validation.java5;


import org.jacoco.core.analysis.ICounter;
import org.jacoco.core.test.validation.ValidationTestBase; import org.jacoco.core.test.validation.ValidationTestBase;
import org.jacoco.core.test.validation.java5.targets.ConstructorsTarget; import org.jacoco.core.test.validation.java5.targets.ConstructorsTarget;
import org.junit.Test;


/** /**
* Tests for different constructors. Private empty constructors without * Tests for different constructors. Private empty constructors without
Expand All @@ -26,38 +24,4 @@ public ConstructorsTest() {
super(ConstructorsTarget.class); super(ConstructorsTarget.class);
} }


@Test
public void testCoverageResult() {
// not filtered because not private:
assertLine("packageLocal", ICounter.FULLY_COVERED);

// not filtered because has argument:
assertLine("arg", ICounter.FULLY_COVERED);

// not filtered because not empty - prepares arguments for super
// constructor:
assertLine("super", ICounter.FULLY_COVERED);

// not filtered because contains initialization of a field to hold
// reference to an instance of outer class that is passed as an
// argument:
assertLine("inner", ICounter.FULLY_COVERED);

// not filtered because not empty - contains initialization of
// a field:
assertLine("innerStatic", ICounter.FULLY_COVERED);

// not filtered because default constructor for not private inner
// classes is not private:
assertLine("publicDefault", ICounter.FULLY_COVERED);
assertLine("packageLocalDefault", ICounter.FULLY_COVERED);

assertLine("privateDefault", ICounter.EMPTY);

assertLine("privateNonEmptyNoArg", ICounter.FULLY_COVERED);

assertLine("privateEmptyNoArg", ICounter.EMPTY);
assertLine("return", ICounter.EMPTY);
}

} }
Expand Up @@ -11,25 +11,17 @@
*******************************************************************************/ *******************************************************************************/
package org.jacoco.core.test.validation.java5; package org.jacoco.core.test.validation.java5;


import org.jacoco.core.analysis.ICounter;
import org.jacoco.core.test.validation.ValidationTestBase; import org.jacoco.core.test.validation.ValidationTestBase;
import org.jacoco.core.test.validation.java5.targets.ControlStructureBeforeSuperConstructorTarget; import org.jacoco.core.test.validation.java5.targets.ControlStructureBeforeSuperConstructorTarget;
import org.junit.Test;


/** /**
* Test of probes before the super constructor call. * Test of probes before the super constructor call.
*/ */
public class ControlStructureBeforeSuperConstructorTest extends ValidationTestBase { public class ControlStructureBeforeSuperConstructorTest
extends ValidationTestBase {


public ControlStructureBeforeSuperConstructorTest() { public ControlStructureBeforeSuperConstructorTest() {
super(ControlStructureBeforeSuperConstructorTarget.class); super(ControlStructureBeforeSuperConstructorTarget.class);
} }


@Test
public void testCoverageResult() {

assertLine("super", ICounter.PARTLY_COVERED, 3, 1);

}

} }
Expand Up @@ -11,10 +11,8 @@
*******************************************************************************/ *******************************************************************************/
package org.jacoco.core.test.validation.java5; package org.jacoco.core.test.validation.java5;


import org.jacoco.core.analysis.ICounter;
import org.jacoco.core.test.validation.ValidationTestBase; import org.jacoco.core.test.validation.ValidationTestBase;
import org.jacoco.core.test.validation.java5.targets.ControlStructuresTarget; import org.jacoco.core.test.validation.java5.targets.ControlStructuresTarget;
import org.junit.Test;


/** /**
* Tests of basic Java control structures. * Tests of basic Java control structures.
Expand All @@ -25,114 +23,4 @@ public ControlStructuresTest() {
super(ControlStructuresTarget.class); super(ControlStructuresTarget.class);
} }


@Test
public void testCoverageResult() {

// 1. Direct unconditional execution
assertLine("unconditional", ICounter.FULLY_COVERED);

// 2. Missed if block
assertLine("iffalse", ICounter.FULLY_COVERED, 1, 1);
assertLine("missedif", ICounter.NOT_COVERED);
assertLine("executedelse", ICounter.FULLY_COVERED);

// 3. Executed if block
assertLine("iftrue", ICounter.FULLY_COVERED, 1, 1);
assertLine("executedif", ICounter.FULLY_COVERED);
assertLine("missedelse", ICounter.NOT_COVERED);

// 4. Missed while block
assertLine("whilefalse", ICounter.FULLY_COVERED, 1, 1);
assertLine("missedwhile", ICounter.NOT_COVERED);

// 5. Always true while block
assertLine("whiletrue", ICounter.FULLY_COVERED, 1, 1);

// 6. Executed while block
assertLine("whiletruefalse", ICounter.FULLY_COVERED, 0, 2);
assertLine("executedwhile", ICounter.FULLY_COVERED);

// 7. Executed do while block
assertLine("executeddowhile", ICounter.FULLY_COVERED);
assertLine("executeddowhilefalse", ICounter.FULLY_COVERED, 1, 1);

// 8. Missed for block
assertLine("missedforincrementer", ICounter.PARTLY_COVERED, 1, 1);
assertLine("missedfor", ICounter.NOT_COVERED);

// 9. Executed for block
assertLine("executedforincrementer", ICounter.FULLY_COVERED, 0, 2);
assertLine("executedfor", ICounter.FULLY_COVERED);

// 10. Missed for each block
assertLine("missedforeachincrementer", ICounter.PARTLY_COVERED, 1, 1);
assertLine("missedforeach", ICounter.NOT_COVERED);

// 11. Executed for each block
assertLine("executedforeachincrementer", ICounter.FULLY_COVERED, 0, 2);
assertLine("executedforeach", ICounter.FULLY_COVERED);

// 12. Table switch with hit
assertLine("tswitch1", ICounter.FULLY_COVERED, 3, 1);
assertLine("tswitch1case1", ICounter.NOT_COVERED);
assertLine("tswitch1case2", ICounter.FULLY_COVERED);
assertLine("tswitch1case3", ICounter.NOT_COVERED);
assertLine("tswitch1default", ICounter.NOT_COVERED);

// 13. Continued table switch with hit
assertLine("tswitch2", ICounter.FULLY_COVERED, 3, 1);
assertLine("tswitch2case1", ICounter.NOT_COVERED);
assertLine("tswitch2case2", ICounter.FULLY_COVERED);
assertLine("tswitch2case3", ICounter.FULLY_COVERED);
assertLine("tswitch2default", ICounter.FULLY_COVERED);

// 14. Table switch without hit
assertLine("tswitch2", ICounter.FULLY_COVERED, 3, 1);
assertLine("tswitch3case1", ICounter.NOT_COVERED);
assertLine("tswitch3case2", ICounter.NOT_COVERED);
assertLine("tswitch3case3", ICounter.NOT_COVERED);
assertLine("tswitch3default", ICounter.FULLY_COVERED);

// 15. Lookup switch with hit
assertLine("lswitch1", ICounter.FULLY_COVERED, 3, 1);
assertLine("lswitch1case1", ICounter.NOT_COVERED);
assertLine("lswitch1case2", ICounter.FULLY_COVERED);
assertLine("lswitch1case3", ICounter.NOT_COVERED);
assertLine("lswitch1default", ICounter.NOT_COVERED);

// 16. Continued lookup switch with hit
assertLine("lswitch2", ICounter.FULLY_COVERED, 3, 1);
assertLine("lswitch2case1", ICounter.NOT_COVERED);
assertLine("lswitch2case2", ICounter.FULLY_COVERED);
assertLine("lswitch2case3", ICounter.FULLY_COVERED);
assertLine("lswitch2default", ICounter.FULLY_COVERED);

// 17. Lookup switch without hit
assertLine("lswitch3", ICounter.FULLY_COVERED, 3, 1);
assertLine("lswitch3case1", ICounter.NOT_COVERED);
assertLine("lswitch3case2", ICounter.NOT_COVERED);
assertLine("lswitch3case3", ICounter.NOT_COVERED);
assertLine("lswitch3default", ICounter.FULLY_COVERED);

// 18. Break statement
assertLine("executedbreak", ICounter.FULLY_COVERED);
assertLine("missedafterbreak", ICounter.NOT_COVERED);

// 19. Continue statement
assertLine("executedcontinue", ICounter.FULLY_COVERED);
assertLine("missedaftercontinue", ICounter.NOT_COVERED);

// 20. Conditional return statement
assertLine("conditionalreturn", ICounter.FULLY_COVERED);
assertLine("afterconditionalreturn", ICounter.NOT_COVERED);

// 21. Implicit return
assertLine("implicitreturn", ICounter.FULLY_COVERED);

// 22. Explicit return
assertLine("explicitreturn", ICounter.FULLY_COVERED);
assertLine("afterexplicitreturn", ICounter.EMPTY);

}

} }

0 comments on commit 1001add

Please sign in to comment.