aboutsummaryrefslogtreecommitdiff
path: root/org.jacoco.agent.test/src
diff options
context:
space:
mode:
authorMarc R. Hoffmann <hoffmann@mountainminds.com>2010-01-01 19:56:30 +0000
committerMarc R. Hoffmann <hoffmann@mountainminds.com>2010-01-01 19:56:30 +0000
commit854775e9e5f00909cf571c9804f9c53c3da307c7 (patch)
tree966495dac4f0f3ceb3c9cc15ab90138ea53ad0ce /org.jacoco.agent.test/src
parentbe9fc2525c517a72198964c4f667cf8a0f984f43 (diff)
downloadjacoco-854775e9e5f00909cf571c9804f9c53c3da307c7.tar.gz
#50: New bundle for agent resource.
Diffstat (limited to 'org.jacoco.agent.test/src')
-rw-r--r--org.jacoco.agent.test/src/org/jacoco/agent/rt/CoverageTransformerTest.java110
1 files changed, 110 insertions, 0 deletions
diff --git a/org.jacoco.agent.test/src/org/jacoco/agent/rt/CoverageTransformerTest.java b/org.jacoco.agent.test/src/org/jacoco/agent/rt/CoverageTransformerTest.java
new file mode 100644
index 00000000..08c0fa36
--- /dev/null
+++ b/org.jacoco.agent.test/src/org/jacoco/agent/rt/CoverageTransformerTest.java
@@ -0,0 +1,110 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Mountainminds GmbH & Co. KG and others
+ * 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:
+ * Marc R. Hoffmann - initial API and implementation
+ *
+ * $Id: $
+ *******************************************************************************/
+package org.jacoco.agent.rt;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+import org.jacoco.core.runtime.AbstractRuntime;
+import org.jacoco.core.runtime.AgentOptions;
+import org.junit.Before;
+import org.junit.Test;
+import org.objectweb.asm.commons.GeneratorAdapter;
+
+/**
+ * Unit tests for {@link CoverageTransformer}.
+ *
+ * @author Marc R. Hoffmann
+ * @version $Revision: $
+ */
+public class CoverageTransformerTest {
+
+ private AgentOptions options;
+
+ @Before
+ public void setup() {
+ options = new AgentOptions();
+ }
+
+ @Test
+ public void testFilterSystemClass() {
+ CoverageTransformer t = createTransformer();
+ assertFalse(t.filter(null, "org/example/Foo"));
+ }
+
+ @Test
+ public void testFilterClassLoaderPositive() {
+ options.setExclClassloader("org.jacoco.agent.SomeWhere$*");
+ CoverageTransformer t = createTransformer();
+ assertTrue(t.filter(new ClassLoader(null) {
+ }, "org/example/Foo"));
+ }
+
+ @Test
+ public void testFilterClassLoaderNegative() {
+ options
+ .setExclClassloader("org.jacoco.agent.rt.CoverageTransformerTest$*");
+ CoverageTransformer t = createTransformer();
+ assertFalse(t.filter(new ClassLoader(null) {
+ }, "org/example/Foo"));
+ }
+
+ @Test
+ public void testFilterIncludedClassPositive() {
+ options.setIncludes("org.jacoco.core.*|org.jacoco.agent.rt.*");
+ CoverageTransformer t = createTransformer();
+ assertTrue(t.filter(new ClassLoader(null) {
+ }, "org/jacoco/core/Foo"));
+ }
+
+ @Test
+ public void testFilterIncludedClassNegative() {
+ options.setIncludes("org.jacoco.core.*|org.jacoco.agent.rt.*");
+ CoverageTransformer t = createTransformer();
+ assertFalse(t.filter(new ClassLoader(null) {
+ }, "org/jacoco/report/Foo"));
+ }
+
+ @Test
+ public void testFilterExcludedClassPositive() {
+ options.setExcludes("*Test");
+ CoverageTransformer t = createTransformer();
+ assertFalse(t.filter(new ClassLoader(null) {
+ }, "org/jacoco/core/FooTest"));
+ }
+
+ @Test
+ public void testFilterExcludedClassNegative() {
+ options.setExcludes("*Test");
+ CoverageTransformer t = createTransformer();
+ assertTrue(t.filter(new ClassLoader(null) {
+ }, "org/jacoco/core/Foo"));
+ }
+
+ private CoverageTransformer createTransformer() {
+ return new CoverageTransformer(new StubRuntime(), options);
+ }
+
+ private static class StubRuntime extends AbstractRuntime {
+ public int generateDataAccessor(long classid, GeneratorAdapter gen) {
+ return 0;
+ }
+
+ public void startup() {
+ }
+
+ public void shutdown() {
+ }
+ }
+
+}