diff --git a/test/build.xml b/test/build.xml index 0ebe61fdf03c21d93ccdcf9eb7c960d8864374c8..c9e8c126dcd7d1c8502c59bc8c969b288d5e06ab 100644 --- a/test/build.xml +++ b/test/build.xml @@ -162,7 +162,6 @@ - diff --git a/test/conform/jsrinlineradapter.xml b/test/conform/jsrinlineradapter.xml deleted file mode 100644 index 661d86b03cbc83301bbb0f4dd17e3d3881593ca6..0000000000000000000000000000000000000000 --- a/test/conform/jsrinlineradapter.xml +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/test/conform/org/objectweb/asm/commons/JSRInlinerAdapterTest.java b/test/conform/org/objectweb/asm/commons/JSRInlinerAdapterTest.java index b79f92d69f7d5b8cdc683ffb547c13370f234d40..a60ec2f54ff0bb4e4c17a1fcd3be70801fa8f12f 100644 --- a/test/conform/org/objectweb/asm/commons/JSRInlinerAdapterTest.java +++ b/test/conform/org/objectweb/asm/commons/JSRInlinerAdapterTest.java @@ -27,35 +27,38 @@ // THE POSSIBILITY OF SUCH DAMAGE. package org.objectweb.asm.commons; -import junit.framework.TestSuite; +import static org.junit.Assert.assertTrue; -import org.objectweb.asm.AbstractTest; +import java.util.Collection; + +import org.junit.Test; +import org.junit.runners.Parameterized.Parameters; import org.objectweb.asm.ClassReader; import org.objectweb.asm.ClassVisitor; import org.objectweb.asm.ClassWriter; import org.objectweb.asm.MethodVisitor; -import org.objectweb.asm.Opcodes; +import org.objectweb.asm.test.AsmTest; /** * JSRInliner tests. * * @author Eric Bruneton */ -public class JSRInlinerAdapterTest extends AbstractTest { - - private static final TestClassLoader LOADER = new TestClassLoader(); +public class JSRInlinerAdapterTest extends AsmTest { - public static TestSuite suite() throws Exception { - return new JSRInlinerAdapterTest().getSuite(); + /** @return test parameters to test all the precompiled classes with ASM6. */ + @Parameters(name = NAME) + public static Collection data() { + return data(Api.ASM6); } - @Override - public void test() throws Exception { - ClassReader cr = new ClassReader(is); - ClassWriter cw = new ClassWriter(0); - cr.accept( - new ClassVisitor(Opcodes.ASM5, cw) { - + /** Tests that classes transformed with JSRInlinerAdapter can be loaded and instantiated. */ + @Test + public void testInlineJsrAndInstantiate() { + ClassReader classReader = new ClassReader(classParameter.getBytes()); + ClassWriter classWriter = new ClassWriter(0); + classReader.accept( + new ClassVisitor(apiParameter.value(), classWriter) { @Override public MethodVisitor visitMethod( final int access, @@ -64,25 +67,13 @@ public class JSRInlinerAdapterTest extends AbstractTest { final String signature, final String[] exceptions) { MethodVisitor mv = super.visitMethod(access, name, desc, signature, exceptions); - return new JSRInlinerAdapter(mv, access, name, desc, signature, exceptions); + return new JSRInlinerAdapter(api, mv, access, name, desc, signature, exceptions); } }, 0); - byte[] b = cw.toByteArray(); - try { - LOADER.defineClass(n, b); - } catch (ClassFormatError cfe) { - fail(cfe.getMessage()); - } catch (Throwable ignored) { - } - } - - // ------------------------------------------------------------------------ - - static class TestClassLoader extends ClassLoader { - - public Class defineClass(final String name, final byte[] b) { - return defineClass(name, b, 0, b.length); + if (classParameter.isMoreRecentThanCurrentJdk()) { + thrown.expect(UnsupportedClassVersionError.class); } + assertTrue(loadAndInstantiate(classParameter.getName(), classWriter.toByteArray())); } } diff --git a/test/conform/unit.xml b/test/conform/unit.xml index a20726554d61e0f834f7a8803726d2cac7090d53..5a1555497cf5da5c743d3fe59accc4deb2aa7736 100644 --- a/test/conform/unit.xml +++ b/test/conform/unit.xml @@ -46,6 +46,7 @@ +