This is the mail archive of the mauve-patches@sourceware.org mailing list for the Mauve project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: JDWP filter test cases


Kyle Galloway wrote:
I have coded up some test cases for two of the JDWP filters(more to come). I would appreciate it if someone would review and commit.

Thanks,
Kyle
Woops, here are the files.
Index: gnu/testlet/gnu/classpath/jdwp/events/filters/TestOfClassExcludeFilter.java
===================================================================
RCS file: gnu/testlet/gnu/classpath/jdwp/events/filters/TestOfClassExcludeFilter.java
diff -N gnu/testlet/gnu/classpath/jdwp/events/filters/TestOfClassExcludeFilter.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/testlet/gnu/classpath/jdwp/events/filters/TestOfClassExcludeFilter.java	1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,98 @@
+/* TestOfClassExcludeFilter.java -- test of ClassExcludeFilter
+
+Written by Kyle Galloway (kgallowa@redhat.com)
+
+This file is part of Mauve.
+
+Mauve is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+Mauve is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Mauve; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+*/
+
+package gnu.testlet.gnu.classpath.jdwp.events.filters;
+
+import gnu.testlet.TestHarness;
+import gnu.testlet.Testlet;
+
+import gnu.classpath.jdwp.event.filters.ClassExcludeFilter;
+import gnu.classpath.jdwp.event.ClassPrepareEvent;
+import gnu.classpath.jdwp.exception.InvalidStringException;
+
+public class TestOfClassExcludeFilter extends TestOfClassMatchFilter 
+  implements Testlet 
+{
+	/**
+	   * Tests the <code>ClassExcludeFilter</code> method
+	   * matches
+	   *
+	   * @param  harness  the TestHarness to use
+	   */	
+	public void testMatches(TestHarness harness)
+	{
+		harness.checkPoint("matches method");
+		String[] validStrings = {"java.lang.Integer", "*nteger",
+								  "java.lang.*", "*"};
+		String[] invalidStrings = {"Float", "Double", "AWT"};
+		
+		ClassExcludeFilter testCEF = null;
+		
+		
+		//create an event to use as a test
+		ClassPrepareEvent testEvent 
+							= new ClassPrepareEvent(Thread.currentThread(), 
+													 Integer.class, 0);
+		//check to see that the valid strings match the class name
+		for (int i = 0; i < validStrings.length; i++) 
+		{	
+			try
+			{
+			testCEF = new ClassExcludeFilter(validStrings[i]);
+			harness.check(testCEF.matches(testEvent), false, "for string: " 
+						   + validStrings[i]);
+			}
+			catch(InvalidStringException ex)
+			{
+				harness.check(false, "String: " + validStrings[i] + " threw " 
+						       + ex);
+			}
+		}
+		//check to see that the invalid strings don't match the class name
+		for (int i = 0; i < invalidStrings.length; i++) 
+		{	
+			try
+			{
+			testCEF = new ClassExcludeFilter(invalidStrings[i]);
+			harness.check(testCEF.matches(testEvent), true, "for string: "
+					       + invalidStrings[i]);
+			}
+			catch(InvalidStringException ex)
+			{
+				harness.check(false, "String: " + validStrings[i] + " threw " 
+						       + ex);
+			}
+		}
+	}
+	
+	/**
+	   * Test the <code>ClassMatchFilter</code> class
+	   *
+	   * @param  harness  the TestHarness to use
+	   */
+	public void test(TestHarness harness) 
+	{
+		testConstructor(harness);
+		testMatches(harness);
+	}
+}
Index: gnu/testlet/gnu/classpath/jdwp/events/filters/TestOfClassMatchFilter.java
===================================================================
RCS file: gnu/testlet/gnu/classpath/jdwp/events/filters/TestOfClassMatchFilter.java
diff -N gnu/testlet/gnu/classpath/jdwp/events/filters/TestOfClassMatchFilter.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/testlet/gnu/classpath/jdwp/events/filters/TestOfClassMatchFilter.java	1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,148 @@
+/* TestOfClassMatchFilter.java -- test of ClassMatchFilter
+
+Written by Kyle Galloway (kgallowa@redhat.com)
+
+This file is part of Mauve.
+
+Mauve is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+Mauve is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Mauve; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+*/
+
+package gnu.testlet.gnu.classpath.jdwp.events.filters;
+
+import gnu.testlet.TestHarness;
+import gnu.testlet.Testlet;
+
+import gnu.classpath.jdwp.event.filters.ClassMatchFilter; 
+import gnu.classpath.jdwp.event.ClassPrepareEvent;
+import gnu.classpath.jdwp.exception.InvalidStringException;
+
+/**
+ * @author Kyle Galloway	(kgallowa@redhat.com)
+ *
+ */
+public class TestOfClassMatchFilter implements Testlet 
+{
+	
+	/**
+	   * Tests the <code>ClassMatchFilter</code> constructor
+	   *
+	   * @param  harness  the TestHarness to use
+	   */
+	public void testConstructor(TestHarness harness)
+	{
+		harness.checkPoint("Constructor");
+		
+		ClassMatchFilter testCMF = null;
+		
+		String[] validStrings = {"SomeString", "", "*omeString", 
+								  "SomeStr*"};
+		String[] invalidStrings = {"Som*String", "SomeStri*g"};
+		
+		//check to see if the valid strings don't throw exceptions
+		for (int i = 0; i < validStrings.length; i++) 
+		{
+			try
+			{
+				testCMF = new ClassMatchFilter(validStrings[i]);
+				harness.check(true);
+			}
+			catch(InvalidStringException ex)
+			{
+				harness.check(false, "constructor threw exception for valid "
+						       + "string: " + validStrings[i]);
+			}
+		}
+		
+		//check that invalid strings throw exceptions
+		for (int i = 0; i < invalidStrings.length; i++) 
+		{
+			try
+			{
+				testCMF = new ClassMatchFilter(invalidStrings[i]);
+				harness.check(false, "constructor didn't throw exception for "
+						       + "invalid string: " + invalidStrings[i]);
+			}
+			catch(InvalidStringException ex)
+			{
+				harness.check(true);
+			}
+		}
+	}
+	
+	/**
+	   * Tests the <code>ClassMatchFilter</code> method
+	   * matches
+	   *
+	   * @param  harness  the TestHarness to use
+	   */
+	public void testMatches(TestHarness harness)
+	{
+		harness.checkPoint("matches method");
+		String[] validStrings = {"java.lang.Integer", "*nteger",
+								  "java.lang.*", "*"};
+		String[] invalidStrings = {"Float", "Double", "AWT"};
+		
+		ClassMatchFilter testCMF = null;
+		
+		//create an event to use as a test
+		ClassPrepareEvent testEvent 
+							= new ClassPrepareEvent(Thread.currentThread(), 
+													 Integer.class, 0);
+		//check to see that the valid strings match the class name
+		for (int i = 0; i < validStrings.length; i++) 
+		{	
+			try
+			{
+			testCMF = new ClassMatchFilter(validStrings[i]);
+			harness.check(testCMF.matches(testEvent), true, "for string: " 
+					   + validStrings[i]);
+			}
+			catch(InvalidStringException ex)
+			{
+				harness.check(false, "String: " + validStrings[i] + " threw " +
+								ex);
+			}
+		}
+		//check to see that the invalid strings don't match the class name
+		for (int i = 0; i < invalidStrings.length; i++) 
+		{	
+			try
+			{
+			testCMF = new ClassMatchFilter(invalidStrings[i]);
+			harness.check(testCMF.matches(testEvent), false, "for string: "
+				       + invalidStrings[i]);
+			}
+			catch(InvalidStringException ex)
+			{
+				harness.check(false, "String: " + validStrings[i] + " threw " +
+						ex);
+			}
+		}
+	}
+
+	/**
+	   * Test the <code>ClassMatchFilter</code> class
+	   *
+	   * @param  harness  the TestHarness to use
+	   */
+	public void test(TestHarness harness) 
+	{
+		testConstructor(harness);
+		testMatches(harness);
+	}
+
+}

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]