Commit 809bf6db authored by Eric Bruneton's avatar Eric Bruneton

Switch to JUnit 5.

parent 3f8159e0
Pipeline #288 passed with stage
in 6 minutes and 28 seconds
......@@ -27,11 +27,11 @@
// THE POSSIBILITY OF SUCH DAMAGE.
package org.objectweb.asm.tree.analysis;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.fail;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.fail;
import org.junit.Before;
import org.junit.Test;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.objectweb.asm.ClassReader;
import org.objectweb.asm.ClassVisitor;
import org.objectweb.asm.ClassWriter;
......@@ -53,7 +53,7 @@ public class AnalyzerUnitTest {
private Label start;
@Before
@BeforeEach
public void setUp() throws Exception {
cw = new ClassWriter(0);
cw.visit(Opcodes.V1_1, Opcodes.ACC_PUBLIC, "C", null, "java/lang/Object", null);
......@@ -845,8 +845,8 @@ public class AnalyzerUnitTest {
mLocals = Math.max(mLocals, frames[i].getLocals());
}
}
assertEquals("maxStack", maxStack, mStack);
assertEquals("maxLocals", maxLocals, mLocals);
assertEquals(maxStack, mStack, "maxStack");
assertEquals(maxLocals, mLocals, "maxLocals");
} catch (Exception e) {
fail(e.getMessage());
}
......
......@@ -27,10 +27,8 @@
// THE POSSIBILITY OF SUCH DAMAGE.
package org.objectweb.asm.tree.analysis;
import java.util.Collection;
import org.junit.Test;
import org.junit.runners.Parameterized.Parameters;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.MethodSource;
import org.objectweb.asm.ClassReader;
import org.objectweb.asm.test.AsmTest;
import org.objectweb.asm.tree.ClassNode;
......@@ -43,19 +41,15 @@ import org.objectweb.asm.tree.MethodNode;
*/
public class BasicInterpreterTest extends AsmTest {
/** @return test parameters to test all the precompiled classes with ASM6. */
@Parameters(name = NAME)
public static Collection<Object[]> data() {
return data(Api.ASM6);
}
/**
* Tests that the precompiled classes can be successfully analyzed with a BasicInterpreter.
*
* @throws AnalyzerException
*/
@Test
public void testAnalyze() throws AnalyzerException {
@ParameterizedTest
@MethodSource(ALL_CLASSES_AND_LATEST_API)
public void testAnalyze(PrecompiledClass classParameter, Api apiParameter)
throws AnalyzerException {
ClassNode classNode = new ClassNode();
new ClassReader(classParameter.getBytes()).accept(classNode, 0);
for (MethodNode methodNode : classNode.methods) {
......
......@@ -27,10 +27,8 @@
// THE POSSIBILITY OF SUCH DAMAGE.
package org.objectweb.asm.tree.analysis;
import java.util.Collection;
import org.junit.Test;
import org.junit.runners.Parameterized.Parameters;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.MethodSource;
import org.objectweb.asm.ClassReader;
import org.objectweb.asm.test.AsmTest;
import org.objectweb.asm.tree.ClassNode;
......@@ -43,19 +41,15 @@ import org.objectweb.asm.tree.MethodNode;
*/
public class BasicVerifierTest extends AsmTest {
/** @return test parameters to test all the precompiled classes with ASM6. */
@Parameters(name = NAME)
public static Collection<Object[]> data() {
return data(Api.ASM6);
}
/**
* Tests that the precompiled classes can be successfully analyzed with a BasicVerifier.
*
* @throws AnalyzerException
*/
@Test
public void testAnalyze() throws AnalyzerException {
@ParameterizedTest
@MethodSource(ALL_CLASSES_AND_LATEST_API)
public void testAnalyze(PrecompiledClass classParameter, Api apiParameter)
throws AnalyzerException {
ClassNode classNode = new ClassNode();
new ClassReader(classParameter.getBytes()).accept(classNode, 0);
for (MethodNode methodNode : classNode.methods) {
......
......@@ -27,10 +27,8 @@
// THE POSSIBILITY OF SUCH DAMAGE.
package org.objectweb.asm.tree.analysis;
import java.util.Collection;
import org.junit.Test;
import org.junit.runners.Parameterized.Parameters;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.MethodSource;
import org.objectweb.asm.ClassReader;
import org.objectweb.asm.test.AsmTest;
import org.objectweb.asm.tree.ClassNode;
......@@ -43,19 +41,15 @@ import org.objectweb.asm.tree.MethodNode;
*/
public class SimpleVerifierTest extends AsmTest {
/** @return test parameters to test all the precompiled classes with ASM6. */
@Parameters(name = NAME)
public static Collection<Object[]> data() {
return data(Api.ASM6);
}
/**
* Tests that the precompiled classes can be successfully analyzed with a SimpleVerifier.
*
* @throws AnalyzerException
*/
@Test
public void testAnalyze() throws AnalyzerException {
@ParameterizedTest
@MethodSource(ALL_CLASSES_AND_LATEST_API)
public void testAnalyze(PrecompiledClass classParameter, Api apiParameter)
throws AnalyzerException {
ClassNode classNode = new ClassNode();
new ClassReader(classParameter.getBytes()).accept(classNode, 0);
for (MethodNode methodNode : classNode.methods) {
......
......@@ -27,11 +27,11 @@
// THE POSSIBILITY OF SUCH DAMAGE.
package org.objectweb.asm.tree.analysis;
import static org.junit.Assert.fail;
import static org.junit.jupiter.api.Assertions.assertThrows;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import org.objectweb.asm.Label;
import org.objectweb.asm.MethodVisitor;
import org.objectweb.asm.Opcodes;
......@@ -49,7 +49,7 @@ public class SimpleVerifierUnitTest implements Opcodes {
private MethodNode mn;
@Before
@BeforeEach
public void setUp() {
Type c = Type.getType("LC;");
Type d = Type.getType("Ljava/lang/Number;");
......@@ -73,13 +73,7 @@ public class SimpleVerifierUnitTest implements Opcodes {
private void assertInvalid() {
mn.visitInsn(RETURN);
mn.visitMaxs(10, 10);
try {
a.analyze("C", mn);
fail();
} catch (AnalyzerException e) {
success();
} catch (RuntimeException e) {
}
assertThrows(AnalyzerException.class, () -> a.analyze("C", mn));
}
@Test
......@@ -343,13 +337,7 @@ public class SimpleVerifierUnitTest implements Opcodes {
@Test
public void testInvalidFalloff() {
mn.visitMaxs(10, 10);
try {
a.analyze("C", mn);
fail();
} catch (AnalyzerException e) {
success();
} catch (RuntimeException e) {
}
assertThrows(AnalyzerException.class, () -> a.analyze("C", mn));
}
@Test
......@@ -363,13 +351,7 @@ public class SimpleVerifierUnitTest implements Opcodes {
mn.visitLabel(l0);
mn.visitJumpInsn(JSR, l1);
mn.visitMaxs(10, 10);
try {
a.analyze("C", mn);
fail();
} catch (AnalyzerException e) {
success();
} catch (RuntimeException e) {
}
assertThrows(AnalyzerException.class, () -> a.analyze("C", mn));
}
@Test
......@@ -419,7 +401,7 @@ public class SimpleVerifierUnitTest implements Opcodes {
assertValid();
}
@Ignore("TODO currently Analyzer can not detect this situation")
@Disabled("TODO currently Analyzer can not detect this situation")
@Test
public void testOverlappingSubroutines() {
// The problem is that other overlapping subroutine situations are valid, such as
......@@ -474,13 +456,6 @@ public class SimpleVerifierUnitTest implements Opcodes {
mn.visitVarInsn(ASTORE, 1);
mn.visitJumpInsn(GOTO, l0);
mn.visitMaxs(10, 10);
try {
a.analyze("C", mn);
fail();
} catch (Exception e) {
assertThrows(Exception.class, () -> a.analyze("C", mn));
}
}
/** Dummy method to avoid a FindBugs warning. */
private static void success() {}
}
......@@ -27,11 +27,11 @@
// THE POSSIBILITY OF SUCH DAMAGE.
package org.objectweb.asm.tree.analysis;
import static org.junit.Assert.assertEquals;
import static org.junit.jupiter.api.Assertions.assertEquals;
import java.util.Set;
import org.junit.Test;
import org.junit.jupiter.api.Test;
/**
* SmallSet unit tests.
......
......@@ -27,10 +27,8 @@
// THE POSSIBILITY OF SUCH DAMAGE.
package org.objectweb.asm.tree.analysis;
import java.util.Collection;
import org.junit.Test;
import org.junit.runners.Parameterized.Parameters;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.MethodSource;
import org.objectweb.asm.ClassReader;
import org.objectweb.asm.test.AsmTest;
import org.objectweb.asm.tree.ClassNode;
......@@ -43,19 +41,15 @@ import org.objectweb.asm.tree.MethodNode;
*/
public class SourceInterpreterTest extends AsmTest {
/** @return test parameters to test all the precompiled classes with ASM6. */
@Parameters(name = NAME)
public static Collection<Object[]> data() {
return data(Api.ASM6);
}
/**
* Tests that the precompiled classes can be successfully analyzed with a SourceInterpreter.
*
* @throws AnalyzerException
*/
@Test
public void testAnalyze() throws AnalyzerException {
@ParameterizedTest
@MethodSource(ALL_CLASSES_AND_LATEST_API)
public void testAnalyze(PrecompiledClass classParameter, Api apiParameter)
throws AnalyzerException {
ClassNode classNode = new ClassNode();
new ClassReader(classParameter.getBytes()).accept(classNode, 0);
for (MethodNode methodNode : classNode.methods) {
......
......@@ -27,9 +27,9 @@
// THE POSSIBILITY OF SUCH DAMAGE.
package org.objectweb.asm.tree.analysis;
import static org.junit.Assert.assertFalse;
import static org.junit.jupiter.api.Assertions.assertFalse;
import org.junit.Test;
import org.junit.jupiter.api.Test;
/**
* BasicValue and SourceValue unit tests.
......
......@@ -27,10 +27,10 @@
// THE POSSIBILITY OF SUCH DAMAGE.
package org.objectweb.asm.commons;
import java.util.Collection;
import static org.junit.jupiter.api.Assertions.assertThrows;
import org.junit.Test;
import org.junit.runners.Parameterized.Parameters;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.MethodSource;
import org.objectweb.asm.ClassReader;
import org.objectweb.asm.ClassVisitor;
import org.objectweb.asm.ClassWriter;
......@@ -45,25 +45,28 @@ import org.objectweb.asm.test.AsmTest;
*/
public class AdviceAdapterTest extends AsmTest {
/** @return test parameters to test all the precompiled classes with all the apis. */
@Parameters(name = NAME)
public static Collection<Object[]> data() {
return data(Api.ASM4, Api.ASM5, Api.ASM6);
}
@Test
public void testEmptyAdviceAdapter() throws Exception {
@ParameterizedTest
@MethodSource(ALL_CLASSES_AND_ALL_APIS)
public void testEmptyAdviceAdapter(PrecompiledClass classParameter, Api apiParameter)
throws Exception {
ClassReader classReader = new ClassReader(classParameter.getBytes());
ClassWriter expectedClassWriter = new ClassWriter(0);
ClassWriter actualClassWriter = new ClassWriter(0);
ClassVisitor expectedClassVisitor =
new ReferenceClassAdapter(apiParameter.value(), expectedClassWriter);
ClassVisitor actualClassVisitor =
new AdviceClassAdapter(apiParameter.value(), actualClassWriter);
if (classParameter.isMoreRecentThan(apiParameter)) {
thrown.expect(RuntimeException.class);
assertThrows(
RuntimeException.class,
() -> classReader.accept(expectedClassVisitor, ClassReader.EXPAND_FRAMES));
assertThrows(
RuntimeException.class,
() -> classReader.accept(actualClassVisitor, ClassReader.EXPAND_FRAMES));
return;
}
classReader.accept(
new ReferenceClassAdapter(apiParameter.value(), expectedClassWriter),
ClassReader.EXPAND_FRAMES);
classReader.accept(
new AdviceClassAdapter(apiParameter.value(), actualClassWriter), ClassReader.EXPAND_FRAMES);
classReader.accept(expectedClassVisitor, ClassReader.EXPAND_FRAMES);
classReader.accept(actualClassVisitor, ClassReader.EXPAND_FRAMES);
assertThatClass(actualClassWriter.toByteArray()).isEqualTo(expectedClassWriter.toByteArray());
}
......@@ -84,7 +87,7 @@ public class AdviceAdapterTest extends AsmTest {
if (mv == null || (access & (Opcodes.ACC_ABSTRACT | Opcodes.ACC_NATIVE)) > 0) {
return mv;
}
return new LocalVariablesSorter(access, desc, mv);
return new LocalVariablesSorter(api, access, desc, mv);
}
}
......
......@@ -31,7 +31,7 @@ import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import org.junit.Test;
import org.junit.jupiter.api.Test;
import org.objectweb.asm.ClassReader;
import org.objectweb.asm.ClassVisitor;
import org.objectweb.asm.ClassWriter;
......
......@@ -27,14 +27,14 @@
// THE POSSIBILITY OF SUCH DAMAGE.
package org.objectweb.asm.commons;
import static org.junit.Assert.assertTrue;
import static org.junit.jupiter.api.Assertions.assertThrows;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import org.junit.Test;
import org.junit.runners.Parameterized.Parameters;
import org.junit.jupiter.api.function.Executable;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.MethodSource;
import org.objectweb.asm.ClassReader;
import org.objectweb.asm.ClassVisitor;
import org.objectweb.asm.ClassWriter;
......@@ -51,19 +51,15 @@ import org.objectweb.asm.test.AsmTest;
*/
public class AnalyzerAdapterTest extends AsmTest {
/** @return test parameters to test all the precompiled classes with all the apis. */
@Parameters(name = NAME)
public static Collection<Object[]> data() {
return data(Api.ASM4, Api.ASM5, Api.ASM6);
}
/**
* Tests that classes with additional frames inserted at each instruction, using the results of an
* AnalyzerAdapter, can be instantiated and loaded. This makes sure the intermediate frames
* computed by AnalyzerAdapter are correct, i.e. pass bytecode verification.
*/
@Test
public void testAnalyzeLoadAndInstantiate() throws Exception {
@ParameterizedTest
@MethodSource(ALL_CLASSES_AND_ALL_APIS)
public void testAnalyzeLoadAndInstantiate(PrecompiledClass classParameter, Api apiParameter)
throws Exception {
byte[] classFile = classParameter.getBytes();
ClassReader classReader = new ClassReader(classFile);
ClassWriter classWriter = new ClassWriter(0);
......@@ -100,17 +96,22 @@ public class AnalyzerAdapterTest extends AsmTest {
return analyzerAdapter;
}
};
Executable test =
() -> {
classReader.accept(classVisitor, ClassReader.EXPAND_FRAMES);
loadAndInstantiate(classParameter.getName(), classWriter.toByteArray());
};
// jdk3.AllInstructions and jdk3.LargeMethod contain jsr/ret instructions,
// which are not supported.
if (classParameter == PrecompiledClass.JDK3_ALL_INSTRUCTIONS
|| classParameter == PrecompiledClass.JDK3_LARGE_METHOD
|| classParameter.isMoreRecentThan(apiParameter)) {
thrown.expect(RuntimeException.class);
} else if (classParameter.isMoreRecentThanCurrentJdk()) {
thrown.expect(UnsupportedClassVersionError.class);
assertThrows(RuntimeException.class, test);
} else {
assertThat(test)
.succeedsOrThrows(UnsupportedClassVersionError.class)
.when(classParameter.isMoreRecentThanCurrentJdk());
}
classReader.accept(classVisitor, ClassReader.EXPAND_FRAMES);
assertTrue(loadAndInstantiate(classParameter.getName(), classWriter.toByteArray()));
}
/**
......
......@@ -27,27 +27,20 @@
// THE POSSIBILITY OF SUCH DAMAGE.
package org.objectweb.asm.commons;
import static org.junit.Assert.assertTrue;
import static org.junit.jupiter.api.Assertions.assertThrows;
import java.util.Collection;
import org.junit.Test;
import org.junit.runners.Parameterized.Parameters;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.MethodSource;
import org.objectweb.asm.ClassReader;
import org.objectweb.asm.ClassWriter;
import org.objectweb.asm.test.AsmTest;
public class ClassRemapperTest extends AsmTest {
/** @return test parameters to test all the precompiled classes with all the apis. */
@Parameters(name = NAME)
public static Collection<Object[]> data() {
return data(Api.ASM4, Api.ASM5, Api.ASM6);
}
/** Tests that classes transformed with a ClassRemapper can be loaded and instantiated. */
@Test
public void testRemapLoadAndInstantiate() {
@ParameterizedTest
@MethodSource(ALL_CLASSES_AND_ALL_APIS)
public void testRemapLoadAndInstantiate(PrecompiledClass classParameter, Api apiParameter) {
ClassReader classReader = new ClassReader(classParameter.getBytes());
ClassWriter classWriter = new ClassWriter(0);
Remapper upperCaseRemapper =
......@@ -78,13 +71,16 @@ public class ClassRemapperTest extends AsmTest {
: typeName;
}
};
ClassRemapper classRemapper =
new ClassRemapper(apiParameter.value(), classWriter, upperCaseRemapper);
if (classParameter.isMoreRecentThan(apiParameter)) {
thrown.expect(RuntimeException.class);
} else if (classParameter.isMoreRecentThanCurrentJdk()) {
thrown.expect(UnsupportedClassVersionError.class);
assertThrows(RuntimeException.class, () -> classReader.accept(classRemapper, 0));
return;
}
classReader.accept(new ClassRemapper(apiParameter.value(), classWriter, upperCaseRemapper), 0);
assertTrue(
loadAndInstantiate(classParameter.getName().toUpperCase(), classWriter.toByteArray()));
classReader.accept(classRemapper, 0);
byte[] classFile = classWriter.toByteArray();
assertThat(() -> loadAndInstantiate(classParameter.getName().toUpperCase(), classFile))
.succeedsOrThrows(UnsupportedClassVersionError.class)
.when(classParameter.isMoreRecentThanCurrentJdk());
}
}
......@@ -27,7 +27,7 @@
// THE POSSIBILITY OF SUCH DAMAGE.
package org.objectweb.asm.commons;
import static org.junit.Assert.assertEquals;
import static org.junit.jupiter.api.Assertions.assertEquals;
import java.util.Arrays;
import java.util.Collections;
......@@ -35,7 +35,7 @@ import java.util.HashMap;
import java.util.ListIterator;
import java.util.Map;
import org.junit.Test;
import org.junit.jupiter.api.Test;
import org.objectweb.asm.ClassVisitor;
import org.objectweb.asm.Label;
import org.objectweb.asm.MethodVisitor;
......
......@@ -27,11 +27,11 @@
// THE POSSIBILITY OF SUCH DAMAGE.
package org.objectweb.asm.commons;
import static org.junit.Assert.assertTrue;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.junit.jupiter.api.Assertions.assertTrue;
import java.util.Collection;
import org.junit.Test;
import org.junit.runners.Parameterized.Parameters;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.MethodSource;
import org.objectweb.asm.Attribute;
import org.objectweb.asm.ClassReader;
import org.objectweb.asm.ClassVisitor;
......@@ -47,25 +47,17 @@ import org.objectweb.asm.test.AsmTest;
*/
public class CodeSizeEvaluatorTest extends AsmTest {
/** @return test parameters to test all the precompiled classes with all the apis. */
@Parameters(name = NAME)
public static Collection<Object[]> data() {
return data(Api.ASM4, Api.ASM5, Api.ASM6);
}
/**
* Tests that the size estimations of CodeSizeEvaluator are correct, and that classes are
* unchanged with a ClassReader->CodeSizeEvaluator->ClassWriter transform.
*/
@Test
public void testSizeEvaluation() {
@ParameterizedTest
@MethodSource(ALL_CLASSES_AND_ALL_APIS)
public void testSizeEvaluation(PrecompiledClass classParameter, Api apiParameter) {
byte[] classFile = classParameter.getBytes();
ClassReader classReader = new ClassReader(classFile);
ClassWriter classWriter = new ClassWriter(0);
if (classParameter.isMoreRecentThan(apiParameter)) {
thrown.expect(RuntimeException.class);
}
classReader.accept(
ClassVisitor classVisitor =
new ClassVisitor(apiParameter.value(), classWriter) {
@Override
public MethodVisitor visitMethod(
......@@ -87,9 +79,16 @@ public class CodeSizeEvaluatorTest extends AsmTest {
}
};
}
},
new Attribute[] {new Comment(), new CodeComment()},
0);
};
if (classParameter.isMoreRecentThan(apiParameter)) {
assertThrows(RuntimeException.class, () -> classReader.accept(classVisitor, attributes(), 0));
return;
}
classReader.accept(classVisitor, attributes(), 0);
assertThatClass(classWriter.toByteArray()).isEqualTo(classFile);
}
private static Attribute[] attributes() {
return new Attribute[] {new Comment(), new CodeComment()};
}
}
......@@ -27,12 +27,8 @@
// THE POSSIBILITY OF SUCH DAMAGE.
package org.objectweb.asm.commons;
import static org.junit.Assert.assertTrue;
import java.util.Collection;
import org.junit.Test;
import org.junit.runners.Parameterized.Parameters;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.MethodSource;
import org.objectweb.asm.ClassReader;
import org.objectweb.asm.ClassVisitor;
import org.objectweb.asm.ClassWriter;
......@@ -46,15 +42,10 @@ import org.objectweb.asm.test.AsmTest;
*/
public class JSRInlinerAdapterTest extends AsmTest {
/** @return test parameters to test all the precompiled classes with ASM6. */
@Parameters(name = NAME)
public static Collection<Object[]> data() {
return data(Api.ASM6);
}
/** Tests that classes transformed with JSRInlinerAdapter can be loaded and instantiated. */
@Test
public void testInlineJsrAndInstantiate() {
@ParameterizedTest
@MethodSource(ALL_CLASSES_AND_LATEST_API)
public void testInlineJsrAndInstantiate(PrecompiledClass classParameter, Api apiParameter) {
ClassReader classReader = new ClassReader(classParameter.getBytes());
ClassWriter classWriter = new ClassWriter(0);
classReader.accept(
......@@ -71,9 +62,8 @@ public class JSRInlinerAdapterTest extends AsmTest {
}
},
0);
if (classParameter.isMoreRecentThanCurrentJdk()) {
thrown.expect(UnsupportedClassVersionError.class);
}
assertTrue(loadAndInstantiate(classParameter.getName(), classWriter.toByteArray()));
assertThat(() -> loadAndInstantiate(classParameter.getName(), classWriter.toByteArray()))
.succeedsOrThrows(UnsupportedClassVersionError.class)
.when(classParameter.isMoreRecentThanCurrentJdk());
}
}
......@@ -27,11 +27,11 @@
// THE POSSIBILITY OF SUCH DAMAGE.
package org.objectweb.asm.commons;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.fail;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.fail;
import org.junit.Before;
import org.junit.Test;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.objectweb.asm.ClassWriter;
import org.objectweb.asm.Label;
import org.objectweb.asm.MethodVisitor;
......@@ -51,7 +51,7 @@ public class JSRInlinerAdapterUnitTest {
private MethodNode exp;
private MethodVisitor current;
@Before
@BeforeEach
public void setUp() throws Exception {