diff options
author | Evgeny Mandrikov <Godin@users.noreply.github.com> | 2018-08-14 22:47:58 +0200 |
---|---|---|
committer | Marc R. Hoffmann <hoffmann@mountainminds.com> | 2018-08-14 22:47:58 +0200 |
commit | 1283826e5c230f833036266c24b7921ae5f51142 (patch) | |
tree | 450132785a8523a41d09de702c1e7d9999a38d05 /org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation | |
parent | 29a770dd29cd5ed4a7ad7896c33eda670b2750f2 (diff) | |
download | jacoco-1283826e5c230f833036266c24b7921ae5f51142.tar.gz |
Add filter for classes and methods with annotation `Generated` (#731)
Diffstat (limited to 'org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation')
2 files changed, 115 insertions, 0 deletions
diff --git a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/AnnotationGeneratedTest.java b/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/AnnotationGeneratedTest.java new file mode 100644 index 00000000..3532d9e6 --- /dev/null +++ b/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/AnnotationGeneratedTest.java @@ -0,0 +1,23 @@ +/******************************************************************************* + * Copyright (c) 2009, 2018 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.java5; + +import org.jacoco.core.test.validation.ValidationTestBase; +import org.jacoco.core.test.validation.java5.targets.AnnotationGeneratedTarget; + +public class AnnotationGeneratedTest extends ValidationTestBase { + + public AnnotationGeneratedTest() { + super(AnnotationGeneratedTarget.class); + } + +} diff --git a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/targets/AnnotationGeneratedTarget.java b/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/targets/AnnotationGeneratedTarget.java new file mode 100644 index 00000000..bfff621c --- /dev/null +++ b/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/targets/AnnotationGeneratedTarget.java @@ -0,0 +1,92 @@ +/******************************************************************************* + * Copyright (c) 2009, 2018 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.java5.targets; + +import static org.jacoco.core.test.validation.targets.Stubs.nop; + +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +public class AnnotationGeneratedTarget { + + private static class RetentionPolicyRuntime { + + @Retention(RetentionPolicy.RUNTIME) + @interface Generated { + } + + @RetentionPolicyRuntime.Generated + static void annotatedMethod() { + nop(); // assertEmpty() + } + + @RetentionPolicyRuntime.Generated + static class AnnotatedClass { + AnnotatedClass() { + nop(); // assertEmpty() + } + } + + } + + private static class RetentionPolicyClass { + + @Retention(RetentionPolicy.CLASS) + @interface Generated { + } + + @RetentionPolicyClass.Generated + static void annotatedMethod() { + nop(); // assertEmpty() + } + + @RetentionPolicyClass.Generated + static class AnnotatedClass { + AnnotatedClass() { + nop(); // assertEmpty() + } + } + + } + + private static class RetentionPolicySource { + + @Retention(RetentionPolicy.SOURCE) + @interface Generated { + } + + @RetentionPolicySource.Generated + static void annotatedMethod() { + nop(); // assertFullyCovered() + } + + @RetentionPolicySource.Generated + static class AnnotatedClass { + AnnotatedClass() { + nop(); // assertFullyCovered() + } + } + + } + + public static void main(String[] args) { + RetentionPolicyRuntime.annotatedMethod(); + new RetentionPolicyRuntime.AnnotatedClass(); + + RetentionPolicyClass.annotatedMethod(); + new RetentionPolicyClass.AnnotatedClass(); + + RetentionPolicySource.annotatedMethod(); + new RetentionPolicySource.AnnotatedClass(); + } + +} |