aboutsummaryrefslogtreecommitdiff
path: root/org.jacoco.core.test/src/org/jacoco
diff options
context:
space:
mode:
authorEvgeny Mandrikov <Godin@users.noreply.github.com>2016-11-14 20:39:46 +0100
committerMarc R. Hoffmann <hoffmann@mountainminds.com>2016-11-14 20:39:46 +0100
commit0988e8c083f34f84312056dc7782488c6e147504 (patch)
tree461e2f80f3ca5d174d0a5256be7d22a4a3b908d1 /org.jacoco.core.test/src/org/jacoco
parent7c61c383ada571689a4a1309c1e0c96ad765f022 (diff)
downloadjacoco-0988e8c083f34f84312056dc7782488c6e147504.tar.gz
To prevent regressions add test for annotation with an initializer (#460)
Diffstat (limited to 'org.jacoco.core.test/src/org/jacoco')
-rw-r--r--org.jacoco.core.test/src/org/jacoco/core/test/validation/AnnotationInitializerTest.java47
-rw-r--r--org.jacoco.core.test/src/org/jacoco/core/test/validation/targets/AnnotationInitializer.java23
2 files changed, 70 insertions, 0 deletions
diff --git a/org.jacoco.core.test/src/org/jacoco/core/test/validation/AnnotationInitializerTest.java b/org.jacoco.core.test/src/org/jacoco/core/test/validation/AnnotationInitializerTest.java
new file mode 100644
index 00000000..a8069a1d
--- /dev/null
+++ b/org.jacoco.core.test/src/org/jacoco/core/test/validation/AnnotationInitializerTest.java
@@ -0,0 +1,47 @@
+/*******************************************************************************
+ * Copyright (c) 2009, 2016 Mountainminds GmbH & Co. KG and Contributors
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Evgeny Mandrikov - initial API and implementation
+ *
+ *******************************************************************************/
+package org.jacoco.core.test.validation;
+
+import org.jacoco.core.analysis.ICounter;
+import org.jacoco.core.test.validation.targets.AnnotationInitializer;
+import org.junit.Test;
+
+import static org.junit.Assert.assertEquals;
+
+/**
+ * Test of initializer in annotations.
+ */
+public class AnnotationInitializerTest extends ValidationTestBase {
+
+ public AnnotationInitializerTest() {
+ super(AnnotationInitializer.class);
+ }
+
+ @Override
+ protected void run(Class<?> targetClass) throws Exception {
+ // Instrumentation should not add members,
+ // otherwise sun.reflect.annotation.AnnotationInvocationHandler
+ // can throw java.lang.annotation.AnnotationFormatError
+ assertEquals(1, targetClass.getDeclaredFields().length);
+ assertEquals(1, targetClass.getDeclaredMethods().length);
+
+ // Force initialization
+ targetClass.getField("CONST").get(null);
+ }
+
+ @Test
+ public void testCoverageResult() {
+ assertLine("const", ICounter.FULLY_COVERED);
+ assertLine("value", ICounter.EMPTY);
+ }
+
+}
diff --git a/org.jacoco.core.test/src/org/jacoco/core/test/validation/targets/AnnotationInitializer.java b/org.jacoco.core.test/src/org/jacoco/core/test/validation/targets/AnnotationInitializer.java
new file mode 100644
index 00000000..87c66783
--- /dev/null
+++ b/org.jacoco.core.test/src/org/jacoco/core/test/validation/targets/AnnotationInitializer.java
@@ -0,0 +1,23 @@
+/*******************************************************************************
+ * Copyright (c) 2009, 2016 Mountainminds GmbH & Co. KG and Contributors
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Evgeny Mandrikov - initial API and implementation
+ *
+ *******************************************************************************/
+package org.jacoco.core.test.validation.targets;
+
+/**
+ * This test target is an annotation with an initializer.
+ */
+public @interface AnnotationInitializer {
+
+ Object CONST = new Object(); // $line-const$
+
+ int value() default 0; // $line-value$
+
+}