User: juhalindfors
Date: 02/02/28 12:08:51
Modified: src/main/test/compliance/server MBeanServerTEST.java
Log:
three trivial invocation tests that are tricky for the optimized dispatcher:
handling of double word primitives and calculating the correct operand stack size
Revision Changes Path
1.6 +174 -1 jmx/src/main/test/compliance/server/MBeanServerTEST.java
Index: MBeanServerTEST.java
===================================================================
RCS file: /cvsroot/jboss/jmx/src/main/test/compliance/server/MBeanServerTEST.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- MBeanServerTEST.java 22 Feb 2002 16:44:33 -0000 1.5
+++ MBeanServerTEST.java 28 Feb 2002 20:08:51 -0000 1.6
@@ -33,7 +33,7 @@
* Tests the MBean server impl. through the <tt>MBeanServer</tt> interface.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Juha Lindfors</a>.
- * @version $Revision: 1.5 $
+ * @version $Revision: 1.6 $
*
*/
public class MBeanServerTEST
@@ -46,6 +46,179 @@
// MBeanServer invoke --------------------------------------------
+
+ /**
+ * Tests invoke with primitive boolean return type
+ */
+ public void testInvokeWithPrimitiveBooleanReturn()
+ {
+ try
+ {
+ MBeanServer server = MBeanServerFactory.createMBeanServer();
+ ObjectName name = new ObjectName(":test=test");
+ server.registerMBean(new Test(), name);
+
+ Boolean bool = (Boolean)server.invoke(name, "opWithPrimBooleanReturn",
null, null);
+
+ assertTrue(bool.booleanValue() == true);
+
+ System.setProperty("jbossmx.optimized.dispatcher", "true");
+
+ server = MBeanServerFactory.createMBeanServer();
+ name = new ObjectName(":test=test");
+ server.registerMBean(new Test(), name);
+
+ bool = (Boolean)server.invoke(name, "opWithPrimBooleanReturn", null, null);
+
+ assertTrue(bool.booleanValue() == true);
+
+ }
+ catch (AssertionFailedError e)
+ {
+ throw e;
+ }
+ catch (Throwable t)
+ {
+ t.printStackTrace();
+ fail("Unexpected error: " + t.toString());
+ }
+ finally
+ {
+ System.setProperty("jbossmx.optimized.dispatcher", "false");
+ }
+ }
+
+ /**
+ * Tests invoke with primitive long return type
+ */
+ public void testInvokeWithPrimitiveLongReturn()
+ {
+ try
+ {
+ MBeanServer server = MBeanServerFactory.createMBeanServer();
+ ObjectName name = new ObjectName(":test=test");
+ server.registerMBean(new Test(), name);
+
+ Long l = (Long)server.invoke(name, "opWithPrimLongReturn", null, null);
+
+ assertTrue(l.longValue() == 1234567890123l);
+
+ System.setProperty("jbossmx.optimized.dispatcher", "true");
+
+ server = MBeanServerFactory.createMBeanServer();
+ name = new ObjectName(":test=test");
+ server.registerMBean(new Test(), name);
+
+ l = (Long)server.invoke(name, "opWithPrimLongReturn", null, null);
+
+ assertTrue(l.longValue() == 1234567890123l);
+
+ }
+ catch (AssertionFailedError e)
+ {
+ throw e;
+ }
+ catch (Throwable t)
+ {
+ t.printStackTrace();
+ fail("Unexpected error: " + t.toString());
+ }
+ finally
+ {
+ System.setProperty("jbossmx.optimized.dispatcher", "false");
+ }
+ }
+
+ /**
+ * Tests invoke with primitive double return type
+ */
+ public void testInvokeWithPrimitiveDoubleReturn()
+ {
+ try
+ {
+ MBeanServer server = MBeanServerFactory.createMBeanServer();
+ ObjectName name = new ObjectName(":test=test");
+ server.registerMBean(new Test(), name);
+
+ Double d = (Double)server.invoke(name, "opWithPrimDoubleReturn", null,
null);
+
+ assertTrue(d.doubleValue() == 0.1234567890123d);
+
+ System.setProperty("jbossmx.optimized.dispatcher", "true");
+
+ server = MBeanServerFactory.createMBeanServer();
+ name = new ObjectName(":test=test");
+ server.registerMBean(new Test(), name);
+
+ d = (Double)server.invoke(name, "opWithPrimDoubleReturn", null, null);
+
+ assertTrue(d.doubleValue() == 0.1234567890123d);
+
+ }
+ catch (AssertionFailedError e)
+ {
+ throw e;
+ }
+ catch (Throwable t)
+ {
+ t.printStackTrace();
+ fail("Unexpected error: " + t.toString());
+ }
+ finally
+ {
+ System.setProperty("jbossmx.optimized.dispatcher", "false");
+ }
+ }
+
+ /**
+ * Tests invoke with long signature
+ */
+ public void testInvokeWithLongSignature()
+ {
+ try
+ {
+ MBeanServer server = MBeanServerFactory.createMBeanServer();
+ ObjectName name = new ObjectName(":test=test");
+ server.registerMBean(new Test(), name);
+
+ server.invoke(name, "opWithLongSignature",
+ new Object[] { new Integer(1), new Integer(2), new Integer(3), new
Integer(4), new Integer(5),
+ new Integer(6), new Integer(7), new Integer(8), new
Integer(9), new Integer(10),
+ new Integer(11), new Integer(12), new Integer(13), new
Integer(14), new Integer(15),
+ new Integer(16), new Integer(17), new Integer(18), new
Integer(19), new Integer(20) },
+ new String[] { "int", "int", "int", "int", "int", "int", "int", "int",
"int", "int",
+ "int", "int", "int", "int", "int", "int", "int", "int",
"int", "int" }
+ );
+
+ System.setProperty("jbossmx.optimized.dispatcher", "true");
+
+ server = MBeanServerFactory.createMBeanServer();
+ name = new ObjectName(":test=test");
+ server.registerMBean(new Test(), name);
+
+ server.invoke(name, "opWithLongSignature",
+ new Object[] { new Integer(1), new Integer(2), new Integer(3), new
Integer(4), new Integer(5),
+ new Integer(6), new Integer(7), new Integer(8), new
Integer(9), new Integer(10),
+ new Integer(11), new Integer(12), new Integer(13), new
Integer(14), new Integer(15),
+ new Integer(16), new Integer(17), new Integer(18), new
Integer(19), new Integer(20) },
+ new String[] { "int", "int", "int", "int", "int", "int", "int", "int",
"int", "int",
+ "int", "int", "int", "int", "int", "int", "int", "int",
"int", "int" }
+ );
+ }
+ catch (AssertionFailedError e)
+ {
+ throw e;
+ }
+ catch (Throwable t)
+ {
+ t.printStackTrace();
+ fail("Unexpected error: " + t.toString());
+ }
+ finally
+ {
+ System.setProperty("jbossmx.optimized.dispatcher", "false");
+ }
+ }
/**
* Attempts to invoke a method on an unregistered MBean;
<tt>InstanceNotFoundException</tt> should occur.
_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development