diff options
author | Evgeny Mandrikov <Godin@users.noreply.github.com> | 2017-12-28 20:15:33 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-12-28 20:15:33 +0100 |
commit | 7f7c246f797fabf8a6e23da22d9c2ae2d8c2a51c (patch) | |
tree | 9c4c939791e41ea7d31e2f48efba6a10618e643f | |
parent | e050f1948abedc1f298ce2c10392309801039f49 (diff) | |
download | jacoco-7f7c246f797fabf8a6e23da22d9c2ae2d8c2a51c.tar.gz |
Offline instrumentation should not damage module-info (#634)
-rw-r--r-- | org.jacoco.core.test/src/org/jacoco/core/internal/instr/ProbeArrayStrategyFactoryTest.java | 13 | ||||
-rw-r--r-- | org.jacoco.core/src/org/jacoco/core/internal/instr/ProbeArrayStrategyFactory.java | 7 |
2 files changed, 17 insertions, 3 deletions
diff --git a/org.jacoco.core.test/src/org/jacoco/core/internal/instr/ProbeArrayStrategyFactoryTest.java b/org.jacoco.core.test/src/org/jacoco/core/internal/instr/ProbeArrayStrategyFactoryTest.java index a68e4990..2c655a79 100644 --- a/org.jacoco.core.test/src/org/jacoco/core/internal/instr/ProbeArrayStrategyFactoryTest.java +++ b/org.jacoco.core.test/src/org/jacoco/core/internal/instr/ProbeArrayStrategyFactoryTest.java @@ -211,6 +211,19 @@ public class ProbeArrayStrategyFactoryTest { true, 0); } + @Test + public void testModule() { + final ClassWriter writer = new ClassWriter(0); + writer.visit(Opcodes.V9, Opcodes.ACC_MODULE, "module-info", null, null, + null); + writer.visitModule("module", 0, null).visitEnd(); + writer.visitEnd(); + + final IProbeArrayStrategy strategy = ProbeArrayStrategyFactory + .createFor(new ClassReader(writer.toByteArray()), generator); + assertEquals(NoneProbeArrayStrategy.class, strategy.getClass()); + } + private IProbeArrayStrategy test(int version, int access, boolean clinit, boolean method, boolean abstractMethod) { final ClassWriter writer = new ClassWriter(0); diff --git a/org.jacoco.core/src/org/jacoco/core/internal/instr/ProbeArrayStrategyFactory.java b/org.jacoco.core/src/org/jacoco/core/internal/instr/ProbeArrayStrategyFactory.java index a537b815..d5f4d49d 100644 --- a/org.jacoco.core/src/org/jacoco/core/internal/instr/ProbeArrayStrategyFactory.java +++ b/org.jacoco.core/src/org/jacoco/core/internal/instr/ProbeArrayStrategyFactory.java @@ -45,7 +45,7 @@ public final class ProbeArrayStrategyFactory { final long classId = CRC64.checksum(reader.b); final boolean withFrames = version >= Opcodes.V1_6; - if (isInterface(reader)) { + if (isInterfaceOrModule(reader)) { final ProbeCounter counter = getProbeCounter(reader); if (counter.getCount() == 0) { return new NoneProbeArrayStrategy(); @@ -63,8 +63,9 @@ public final class ProbeArrayStrategyFactory { } } - private static boolean isInterface(final ClassReader reader) { - return (reader.getAccess() & Opcodes.ACC_INTERFACE) != 0; + private static boolean isInterfaceOrModule(final ClassReader reader) { + return (reader.getAccess() + & (Opcodes.ACC_INTERFACE | Opcodes.ACC_MODULE)) != 0; } private static int getVersion(final ClassReader reader) { |