--- /dev/null
+package jp.sourceforge.stigmata.birthmarks;\r
+\r
+import java.util.Iterator;\r
+\r
+import junit.framework.Assert;\r
+\r
+import org.junit.Before;\r
+import org.junit.Test;\r
+import org.objectweb.asm.ClassReader;\r
+import org.objectweb.asm.ClassWriter;\r
+\r
+public class ControlFlowGraphTest {\r
+ private ControlFlowGraphExtractVisitor visitor;\r
+\r
+ @Before\r
+ public void setUp() throws Exception{\r
+ ClassReader reader = new ClassReader(getClass().getResource("/resources/MyServer.class").openStream());\r
+\r
+ visitor = new ControlFlowGraphExtractVisitor(new ClassWriter(0));\r
+ reader.accept(visitor, 0);\r
+ }\r
+\r
+ @Test\r
+ public void testBasic() throws Exception{\r
+ Iterator<String> iterator = visitor.getMethodNames();\r
+\r
+ Assert.assertTrue(iterator.hasNext());\r
+ Assert.assertEquals("<init>(I)V", iterator.next());\r
+ Assert.assertFalse(iterator.hasNext());\r
+\r
+ ControlFlowGraph graph = visitor.getGraph("<init>(I)V");\r
+\r
+ Assert.assertEquals(6, graph.getBasicBlockSize());\r
+\r
+ graph.setIncludingExceptionFlow(true);\r
+ Assert.assertEquals(7, graph.getBasicBlockSize());\r
+ }\r
+}\r