📄 fctest.java
字号:
// $Id: FCTest.java,v 1.10 2006/04/23 13:17:44 belaban Exp $package org.jgroups.tests;import junit.framework.Test;import junit.framework.TestCase;import junit.framework.TestSuite;import org.jgroups.Event;import org.jgroups.Message;import org.jgroups.View;import org.jgroups.debug.Simulator;import org.jgroups.protocols.FC;import org.jgroups.stack.IpAddress;import org.jgroups.stack.Protocol;import org.jgroups.util.Util;import java.util.Properties;import java.util.Vector;/** * Tests the flow control (FC) protocol * @author Bela Ban */public class FCTest extends TestCase { IpAddress a1; Vector members; View v; Simulator s; final int SIZE=1000; // bytes final int NUM_MSGS=100000; public FCTest(String name) { super(name); } public void setUp() throws Exception { super.setUp(); a1=new IpAddress(1111); members=new Vector(); members.add(a1); v=new View(a1, 1, members); s=new Simulator(); s.setLocalAddress(a1); s.setView(v); s.addMember(a1); FC fc=new FC(); Properties props=new Properties(); props.setProperty("max_credits", "10000"); props.setProperty("min_credits", "1000"); props.setProperty("max_block_time", "1000"); fc.setProperties(props); Protocol[] stack=new Protocol[]{fc}; s.setProtocolStack(stack); s.start(); } public void tearDown() throws Exception { super.tearDown(); s.stop(); } public void testReceptionOfAllMessages() { int num_received=0; Receiver r=new Receiver(); s.setReceiver(r); for(int i=1; i <= NUM_MSGS; i++) { Message msg=new Message(null, null, createPayload(SIZE)); Event evt=new Event(Event.MSG, msg); s.send(evt); if(i % 1000 == 0) System.out.println("==> " + i); } int num_tries=10; while(num_tries > 0) { Util.sleep(1000); num_received=r.getNumberOfReceivedMessages(); System.out.println("-- num received=" + num_received + ", stats:\n" + s.dumpStats()); if(num_received >= NUM_MSGS) break; num_tries--; } assertEquals(num_received, NUM_MSGS); } private static byte[] createPayload(int size) { byte[] retval=new byte[size]; for(int i=0; i < size; i++) retval[i]='0'; return retval; } static class Receiver implements Simulator.Receiver { int num_mgs_received=0; public void receive(Event evt) { if(evt.getType() == Event.MSG) { num_mgs_received++; if(num_mgs_received % 1000 == 0) System.out.println("<== " + num_mgs_received); } } public int getNumberOfReceivedMessages() { return num_mgs_received; } } public static Test suite() { return new TestSuite(FCTest.class); } public static void main(String[] args) { junit.textui.TestRunner.run(suite()); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -