Author: dbrosius
Date: Sat Jun 23 10:47:38 2007
New Revision: 550066

URL: http://svn.apache.org/viewvc?view=rev&rev=550066
Log:
Add test case to show that InstructionFinder.search returns one more value than 
supposed to, issue found by Nicholson, Jonathan O H

Added:
    
jakarta/bcel/trunk/src/test/java/org/apache/bcel/InstructionFinderTestCase.java

Added: 
jakarta/bcel/trunk/src/test/java/org/apache/bcel/InstructionFinderTestCase.java
URL: 
http://svn.apache.org/viewvc/jakarta/bcel/trunk/src/test/java/org/apache/bcel/InstructionFinderTestCase.java?view=auto&rev=550066
==============================================================================
--- 
jakarta/bcel/trunk/src/test/java/org/apache/bcel/InstructionFinderTestCase.java 
(added)
+++ 
jakarta/bcel/trunk/src/test/java/org/apache/bcel/InstructionFinderTestCase.java 
Sat Jun 23 10:47:38 2007
@@ -0,0 +1,45 @@
+package org.apache.bcel;
+
+import java.util.Iterator;
+
+import org.apache.bcel.AbstractTestCase;
+import org.apache.bcel.classfile.JavaClass;
+import org.apache.bcel.classfile.Method;
+import org.apache.bcel.generic.InstructionList;
+import org.apache.bcel.util.InstructionFinder;
+import org.apache.bcel.util.InstructionFinder.CodeConstraint;
+
+public class InstructionFinderTestCase extends AbstractTestCase
+{
+       public void testSearchAll() throws Exception
+       {
+               JavaClass clazz = 
getTestClass("org.apache.bcel.util.InstructionFinder");
+               Method[] methods = clazz.getMethods();
+               Method searchM = null;
+               for (Method m : methods)
+               {
+                       if (m.getName().equals("search") && 
(m.getArgumentTypes().length == 3))
+                       {
+                               searchM = m;
+                               break;
+                       }
+               }
+               
+               if (searchM == null)
+                       throw new Exception("search method not found");
+               
+               byte[] bytes = searchM.getCode().getCode();
+               InstructionList il = new InstructionList(bytes);
+               InstructionFinder finder = new InstructionFinder(il);
+               Iterator it = finder.search(".*", il.getStart(), null);
+               
+               int cnt = 0;
+               while (it.hasNext())
+               {
+                       it.next();
+                       cnt++;
+               }
+               
+               assertEquals(1, cnt);
+       }
+}



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to