📄 endpointapitest.java
字号:
m.sendMessage(new Message(), null, null, this); int n = 0; while ((m.getState() & Messenger.RESOLVED) == 0) { try { Thread.sleep(100); } catch(InterruptedException ie) { } if (n++ > 10) { break; } } while ((m.getState() & Messenger.RESOLVED) == 0) { fail("could not resolve immediate messenger to local peer"); } if (! waitForMessageSent()) { if (! waitForMessage()) { try { m.sendMessageB(new Message(), null, null); } catch(IOException ioe) { fail("messenger resolved automatically, but cannot send messages. sendMessage Listener was NOT invoked."); } if (!waitForMessage()) { fail("messenger resolved automatically, but messages get lost after that. sendMessage Listener was NOT invoked."); } fail("messenger resolved automatically, but initial message was lost. sendMessage Listener was NOT invoked."); } fail("Message was sent but senMessageListener was NOT invoked."); } if (! waitForMessage()) { try { m.sendMessageB(new Message(), null, null); } catch(IOException ioe) { fail("messenger resolved automatically, but cannot send messages. sendMassage Listener was invoked."); } if (!waitForMessage()) { fail("messenger resolved automatically, but messages get lost after that. sendMassage Listener was invoked."); } fail("messenger resolved automatically, but initial message was lost. sendMassage Listener was invoked."); } } public void testCantGetRawMessenger() { try { Thread.sleep(5000); } catch (Exception e) { } EndpointService endp = endp = pg.getEndpointService(); EndpointAddress badAddr = new EndpointAddress( "tcp://1.1.1.1:1/EndpointApiTest/0" ); Messenger m = endp.getMessengerImmediate(badAddr, null); if (m == null) { fail("could not get tcp messenger to local peer...tcp is on ?"); } try { m.sendMessageB(new Message(), null, null); } catch(IOException ioe) { fail("Cannot send messages to unresolved messenger"); } // Leak test for (int i=0; i< 1000000; i++) { m = endp.getMessengerImmediate(badAddr, null); } m = null; // Bottleneck test for (int i=0; i< 1000000; i++) { EndpointAddress changingSvc = new EndpointAddress( "tcp://1.1.1.1:1/EndpointApiTest/"+i); m = endp.getMessengerImmediate(changingSvc, null); } m = null; } public void testCantGetRouterMessenger() { try { Thread.sleep(5000); } catch (Exception e) { } EndpointService endp = endp = pg.getEndpointService(); EndpointAddress badAddr = new EndpointAddress( "jxta://uuid-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA03/EndpointApiTest/0"); Messenger m = endp.getMessengerImmediate(badAddr, null); if (m == null) { fail("could not get tcp messenger to local peer...tcp is on ?"); } try { m.sendMessageB(new Message(), null, null); } catch(IOException ioe) { fail("Cannot send messages to unresolved messenger"); } // Leak test for (int i=0; i< 1000000; i++) { m = endp.getMessengerImmediate(badAddr, null); } m = null; // Bottleneck test for (int i=0; i< 1000000; i++) { EndpointAddress changingSvc = new EndpointAddress( "tcp://1.1.1.1:1/EndpointApiTest/"+i); m = endp.getMessengerImmediate(changingSvc, null); } m = null; } // This will exhaust the heap if channel caching does not work for unresolved messengers. public void testMessageQueueHog() { try { Thread.sleep(5000); } catch (Exception e) { } EndpointService endp = endp = pg.getEndpointService(); EndpointAddress badAddr = new EndpointAddress( "tcp://1.1.1.1:1/EndpointApiTest/0"); Messenger m = endp.getMessengerImmediate(badAddr, null); if (m == null) { fail("could not get tcp messenger to local peer...tcp is on ?"); } try { m.sendMessageB(new Message(), null, null); } catch(IOException ioe) { fail("Cannot send messages through unresolved messenger"); } // Leak test...should explode the heap, as of now. for (int i=0; i< 1000000; i++) { m = endp.getMessengerImmediate(badAddr, null); m.sendMessageN(new Message(), null, null); } m = null; } // This will exhaust the heap if channel caching does not work for resolved messengers. public void testMessageQueueHog2() { try { Thread.sleep(5000); } catch (Exception e) { } EndpointService endp = endp = pg.getEndpointService(); EndpointAddress localAddr = new EndpointAddress( "jxta", pg.getPeerID().getUniqueValue().toString(),"EndpointApiTest", "0"); Messenger m = endp.getMessengerImmediate(localAddr, null); if (m == null) { fail("could not get tcp messenger to local peer...tcp is on ?"); } try { m.sendMessageB(new Message(), null, null); } catch(IOException ioe) { fail("Cannot send messages through unresolved messenger"); } // Leak test...should explode the heap, as of now. for (int i=0; i< 1000000; i++) { m = endp.getMessengerImmediate(localAddr, null); m.sendMessageN(new Message(), null, null); } m = null; } public void testAddRmListener() { try { Thread.sleep(5000); } catch (Exception e) { } EndpointService endp = endp = pg.getEndpointService(); // A few basic tests. // Remove listener from previous test. endp.removeIncomingMessageListener("EndpointApiTest", "0"); if ( endp.addIncomingMessageListener(this, "EndpointApiTest", "0") == false ) { fail("Could not add listener"); } if ( endp.addIncomingMessageListener(this, "EndpointApiTest", "0") == true ) { fail("Could add redundant listener"); } Object o = endp.removeIncomingMessageListener("EndpointApiTest", "0"); if (o != this ) { fail("Wrong listener removed: " + o + " instead of " + this); } if ( endp.addIncomingMessageListener(this, "EndpointApiTest", "0") == false ) { fail("Could not add/remove/add listener"); } if ( endp.removeIncomingMessageListener("EndpointApiTest", "0") != this ) { fail("Wrong listener add/remove/add/removed"); } if ( endp.removeIncomingMessageListener("EndpointApiTest", "0") != null ) { fail("Listener removed twice"); } // Leak tests. EndpointAddress localAddr = new EndpointAddress( "jxta", pg.getPeerID().getUniqueValue().toString(),"EndpointApiTest", "0"); Messenger m = endp.getMessenger(localAddr); if (m == null) { fail("could not get tcp messenger to local peer...tcp is on ?"); } // add/remove 500,000 times the same listener for (int i = 1; i<500000; i++) { if ( endp.addIncomingMessageListener(this, "EndpointApiTest", "0") == false ) { fail("Could not add fixed listener after " + i + " cycles"); } try { m.sendMessage(new Message()); } catch (IOException ioe) { fail("Cannot send messages to local fixed listener after " + i + " cycles"); } if (! waitForMessage()) { fail("Cannot receive messages through fixed listener after " + i + " cycles"); } if ( endp.removeIncomingMessageListener("EndpointApiTest", "0") != this ) { fail("Wrong fixed listener removed after " + i + " cycles"); } } // add/remove 500,000 different listeners for (int i = 1; i<500000; i++) { if ( endp.addIncomingMessageListener(this, "EndpointApiTest", ""+i) == false ) { fail("Could not add variable listener after " + i + " cycles"); } if ( endp.removeIncomingMessageListener("EndpointApiTest", ""+i) != this ) { fail("Wrong variable listener removed after " + i + " cycles"); } } } public static Test suite() { TestSuite suite = new TestSuite(EndpointApiTest.class); return suite; } public static void main(java.lang.String[] args) { junit.textui.TestRunner.run(suite()); pg.unref(); pg = null; System.out.flush(); System.err.flush(); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -