public inbox for mauve-patches@sourceware.org
 help / color / mirror / Atom feed
* JDWP filter test cases
@ 2006-06-05 16:59 Kyle Galloway
  2006-06-05 17:02 ` Kyle Galloway
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Kyle Galloway @ 2006-06-05 16:59 UTC (permalink / raw)
  To: mauve-patches

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

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: JDWP filter test cases
  2006-06-05 16:59 JDWP filter test cases Kyle Galloway
@ 2006-06-05 17:02 ` Kyle Galloway
  2006-06-05 17:05 ` Mark Wielaard
  2006-06-05 20:56 ` Tom Tromey
  2 siblings, 0 replies; 6+ messages in thread
From: Kyle Galloway @ 2006-06-05 17:02 UTC (permalink / raw)
  To: Kyle Galloway; +Cc: mauve-patches

[-- Attachment #1: Type: text/plain, Size: 206 bytes --]

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.

[-- Attachment #2: JDWP-tests.patch --]
[-- Type: text/x-patch, Size: 8033 bytes --]

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);
+	}
+
+}

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: JDWP filter test cases
  2006-06-05 16:59 JDWP filter test cases Kyle Galloway
  2006-06-05 17:02 ` Kyle Galloway
@ 2006-06-05 17:05 ` Mark Wielaard
  2006-06-05 20:56 ` Tom Tromey
  2 siblings, 0 replies; 6+ messages in thread
From: Mark Wielaard @ 2006-06-05 17:05 UTC (permalink / raw)
  To: Kyle Galloway; +Cc: mauve-patches

[-- Attachment #1: Type: text/plain, Size: 325 bytes --]

Hi Kyle,

On Mon, 2006-06-05 at 12:58 -0400, 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.

Sure that would be cool. But it seems you forgot to attach the actual
test cases you wrote.

Cheers,

Mark

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: JDWP filter test cases
  2006-06-05 16:59 JDWP filter test cases Kyle Galloway
  2006-06-05 17:02 ` Kyle Galloway
  2006-06-05 17:05 ` Mark Wielaard
@ 2006-06-05 20:56 ` Tom Tromey
  2006-06-05 21:13   ` Keith Seitz
  2 siblings, 1 reply; 6+ messages in thread
From: Tom Tromey @ 2006-06-05 20:56 UTC (permalink / raw)
  To: Kyle Galloway; +Cc: mauve-patches, Keith Seitz

>>>>> "Kyle" == Kyle Galloway <kgallowa@redhat.com> writes:

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

So, these are unit tests for parts of the classpath jdwp
implementation?

You do need to add "Tags" comments to the new files.

I think it is fine to do this, even a good thing :-).  However I'd
like Keith to weigh in on his preferred testing approach.

Tom

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: JDWP filter test cases
  2006-06-05 20:56 ` Tom Tromey
@ 2006-06-05 21:13   ` Keith Seitz
  2006-06-06 14:55     ` Tom Tromey
  0 siblings, 1 reply; 6+ messages in thread
From: Keith Seitz @ 2006-06-05 21:13 UTC (permalink / raw)
  To: tromey; +Cc: Kyle Galloway, mauve-patches

Tom Tromey wrote:
>>>>>> "Kyle" == Kyle Galloway <kgallowa@redhat.com> writes:
> 
> Kyle> I have coded up some test cases for two of the JDWP filters(more to
> Kyle> come).  I would appreciate it if someone would review and commit.
> 
> So, these are unit tests for parts of the classpath jdwp
> implementation?
> 
> You do need to add "Tags" comments to the new files.
> 
> I think it is fine to do this, even a good thing :-).  However I'd
> like Keith to weigh in on his preferred testing approach.

Yes, I definitely think this is a right step. I've spoken to Kyle about 
it already, but, alas, I didn't know there was a mauve-patches list!

In any case, it has always been my intent to add unit tests for the 
various generic classes, like events, "exceptions"/errors, filters, and 
so on. Especially the filters, since those are rather strictly defined. 
At one time, I actually did have tests for several of these things 
(including VMIdManager, EventManager, and more), but I think I lost most 
of that when my hard drive went south last year. Or I misplaced it (in 
the trash) by mistake. I don't remember any more. :-(

Since we can't really do much more with classpath alone, we would need 
to do more functional testing from the VM side, and this is where I have 
to figure out how proceed. Right now I have my own little Itcl testing 
suite that I use. We'll have to discuss how to either integrate it or 
implement something similar. [My Itcl app is actually more a debugging 
tool than testing. It will dump packets and the like, too, for example.]

Keith

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: JDWP filter test cases
  2006-06-05 21:13   ` Keith Seitz
@ 2006-06-06 14:55     ` Tom Tromey
  0 siblings, 0 replies; 6+ messages in thread
From: Tom Tromey @ 2006-06-06 14:55 UTC (permalink / raw)
  To: Keith Seitz; +Cc: Kyle Galloway, mauve-patches

>>>>> "Keith" == Keith Seitz <keiths@redhat.com> writes:

Keith> Yes, I definitely think this is a right step. I've spoken to Kyle
Keith> about it already, but, alas, I didn't know there was a mauve-patches
Keith> list!

Half the time I forget about it too :)
Anyway, cool.

Keith> Since we can't really do much more with classpath alone, we would need
Keith> to do more functional testing from the VM side, and this is where I
Keith> have to figure out how proceed. Right now I have my own little Itcl
Keith> testing suite that I use. We'll have to discuss how to either
Keith> integrate it or implement something similar. [My Itcl app is actually
Keith> more a debugging tool than testing. It will dump packets and the like,
Keith> too, for example.]

Yeah, this sounds like something that would be pretty useful to have
around for debugging.  Where it should go, I don't know.  Maybe
classpath/scripts.

Tom

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2006-06-06 14:55 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-06-05 16:59 JDWP filter test cases Kyle Galloway
2006-06-05 17:02 ` Kyle Galloway
2006-06-05 17:05 ` Mark Wielaard
2006-06-05 20:56 ` Tom Tromey
2006-06-05 21:13   ` Keith Seitz
2006-06-06 14:55     ` Tom Tromey

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).