return new ASMifierTest().getSuite();
}
@Override
public void test() throws Exception {
ClassReader cr = new ClassReader(is);
if (cr.b.length > 20000) {
return;
}
StringWriter sw = new StringWriter();
ASMifierClassVisitor cv = new ASMifierClassVisitor(new PrintWriter(sw));
cr.accept(cv, new Attribute[] { new Comment(), new CodeComment() }, 0);
String generated = sw.toString();
byte[] generatorClassData;
try {
generatorClassData = Compiler.compile(n, generated);
} catch (Exception ex) {
System.err.println(generated);
System.err.println("------------------");
throw ex;
}
String nd = n + "Dump";
if (n.indexOf('.') != -1) {
nd = "asm." + nd;
}
Class<?> c = LOADER.defineClass(nd, generatorClassData);
Method m = c.getMethod("dump", new Class[0]);
byte[] b = (byte[]) m.invoke(null, new Object[0]);
assertEquals(cr, new ClassReader(b));
}