package org.googlecode.perftrace;
import java.util.concurrent.Executor;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
import org.googlecode.perftrace.stat.StatMonitorFacade;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
public class StatMonitorFacadeTest {
@Before
public void setUp() throws Exception {
}
@After
public void tearDown() throws Exception {
}
@Test
public void testStatMonitor() throws InterruptedException
{
ExecutorService exec = Executors.newCachedThreadPool();
Runnable task = new Runnable() {
@Override
public void run() {
for(;;)
{
StatMonitorFacade.start("test");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
StatMonitorFacade.stop("test", 5L, false);
}
}
};
Runnable task2 = new Runnable() {
@Override
public void run() {
for(;;)
{
StatMonitorFacade.start("test");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
StatMonitorFacade.stop("test", 5L, true);
}
}
};
Runnable task3 = new Runnable() {
@Override
public void run() {
for(;;)
{
StatMonitorFacade.start("test1333");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
StatMonitorFacade.stop("test1333", 5L, true);
}
}
};
for(int i = 0;i<10;i++)
{
exec.submit(task);
}
for(int i = 0;i<5;i++)
{
exec.submit(task2);
}
for(int i = 0;i<10;i++)
{
exec.submit(task3);
}
exec.awaitTermination(100, TimeUnit.SECONDS);
exec.shutdown();
}
}