*/
	public void testVerySmallReadWrite() throws Exception {
		ByteBuffer b = ByteBuffer.allocate(4000);
		
		log.info("getting all proper connections");
		int size = 40;
		String[] methodNames = new String[size];
		for(int i = 0; i < size; i++) {
			methodNames[i] = "finished";
		}
		TCPChannel[] clients = new TCPChannel[size];	
		for(int i = 0; i < size; i++) {
			clients[i] = chanMgr.createTCPChannel("Client["+i+"]", getClientFactoryHolder());
			FutureOperation future = clients[i].connect(svrAddr);
			future.setListener((OperationCallback) mockConnectOp);
		}
		mockConnectOp.expect(methodNames);
		log.info("done getting all connections");
		
		for(TCPChannel client : clients) {
			client.registerForReads((DataListener)mockHandler);
		}
		
		int numWrites = 200;
		String payload = "hello";
		helper.putString(b, payload);
		helper.doneFillingBuffer(b);
		int numBytes = b.remaining();
		methodNames = new String[size];
		for(int i = 0; i < size; i++) {
			methodNames[i] = "incomingData";
		}		
		
		String[] finNames = new String[size];
		for(int i = 0;i < size;i++) {
			finNames[i] = "finished";
		}
		
		PerfTimer timer = new PerfTimer();
		PerfTimer timer2 = new PerfTimer();
		timer.start();
		timer2.start();

		CalledMethod[] methods = null;
		for(int i = 0; i < numWrites; i++) {
			for(TCPChannel client : clients) {
				FutureOperation write = client.write(b);
				write.setListener((OperationCallback) mockConnectOp);
				//client.oldWrite(b);
				b.rewind();
			}
			mockConnectOp.expect(finNames);
			methods = mockHandler.expect(methodNames);
		}
		long result2 = timer2.stop();
		long result = timer.stop();
		
		//pick a method and verify right data came back for performance test
		//to make sure performance test is valid....
		ByteBuffer actualBuf = (ByteBuffer)methods[5].getAllParams()[1];
		String actual = helper.readString(actualBuf, actualBuf.remaining());
		assertEquals(payload, actual);
		log.info("payload="+actual);
		
		long readWriteTime = result/size;
		long byteTime = 100*result / (numWrites*numBytes);
		log.info("total write time         ="+result2);		
		log.info("total write/read time    ="+result);
		log.info("--time per 100 bytes     ="+byteTime);
        log.info("test result info:");
        log.info("--time per write/read    ="+readWriteTime);
		log.info("  time to beat           ="+getSmallReadWriteTimeLimit());
		assertTrue(readWriteTime < getSmallReadWriteTimeLimit());
	}