package org.threadly.litesockets.tcp;
import java.io.IOException;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.threadly.concurrent.PriorityScheduler;
import org.threadly.concurrent.SingleThreadScheduler;
import org.threadly.litesockets.NoThreadSocketExecuter;
import org.threadly.litesockets.utils.PortUtils;
public class NoThreadTCPTests extends TCPTests {
NoThreadSocketExecuter ntSE;
SingleThreadScheduler STS;
volatile boolean keepRunning = true;
@Before
public void start() throws IOException {
keepRunning = true;
port = PortUtils.findTCPPort();
STS = new SingleThreadScheduler();
PS = new PriorityScheduler(5);
ntSE = new NoThreadSocketExecuter();
SE = ntSE;
SE.start();
STS.execute(new Runnable() {
@Override
public void run() {
while(ntSE.isRunning() && keepRunning) {
ntSE.select(100);
}
}});
serverFC = new FakeTCPServerClient();
server = SE.createTCPServer("localhost", port);
server.setClientAcceptor(serverFC);
server.addCloseListener(serverFC);
server.start();
}
@Override
@After
public void stop() throws Exception{
super.stop();
STS.shutdownNow();
keepRunning = false;
System.gc();
System.gc();
System.gc();
System.out.println("Used Memory:"
+ (Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory()) / (1024*1024));
}
@Test
public void manyClientsMemoryTest() throws Exception {
super.manyClientsMemoryTest();
}
}