1 17 18 package org.sape.carbon.services.perflog.test; 19 20 21 import org.sape.carbon.core.component.Lookup; 22 import org.sape.carbon.services.perflog.PerformanceLogger; 23 import org.sape.carbon.services.perflog.ReportingPerformanceLogger; 24 25 import junit.extensions.ActiveTestSuite; 26 import junit.framework.Test; 27 import junit.framework.TestCase; 28 import junit.framework.TestSuite; 29 30 import org.apache.commons.logging.Log; 31 import org.apache.commons.logging.LogFactory; 32 33 42 public class BoundedBufferPerformanceLoggerPerformanceTest extends TestCase { 43 44 47 private Log log = LogFactory.getLog(this.getClass()); 48 49 private static final String PERF_LOG_SERVICE = "/log/perf/BoundBufferPerformanceLogger"; 50 51 private static final int TRACKED_ITEMS = 50; 52 53 private static final int TRACKED_THREADS = 10; 54 55 private static final int PER_THREAD_EXECUTIONS = 1000; 56 57 private static String [] trackings; 58 static { 59 trackings = new String [TRACKED_ITEMS]; 60 for (int i = 0; i < TRACKED_ITEMS; i++) { 61 trackings[i] = "Function" + Math.random(); 62 } 63 } 64 65 public BoundedBufferPerformanceLoggerPerformanceTest(String name) { 66 super(name); 67 } 68 69 70 public void testSimpleCalls() { 71 for (int i = 0; i < PER_THREAD_EXECUTIONS; i++) { 72 int item = (int) (Math.random() * (double)TRACKED_ITEMS); 73 74 PerformanceLogger logger = 75 (PerformanceLogger) 76 Lookup.getInstance().fetchComponent(PERF_LOG_SERVICE); 77 78 logger.start(trackings[item]); 79 80 try { 81 Thread.sleep((int)(100D * Math.random())); 82 } catch (InterruptedException ie) { } 83 84 logger.end(trackings[item]); 85 } 86 } 87 88 public void testReport() { 89 ReportingPerformanceLogger logger = 90 (ReportingPerformanceLogger) 91 Lookup.getInstance().fetchComponent(PERF_LOG_SERVICE); 92 93 log.info(logger.getReport()); 94 } 95 96 97 101 public static Test suite() { 102 TestSuite masterSuite = new TestSuite(); 103 104 Test multiThreadedTests = getMultiThreadedTests(); 106 if(multiThreadedTests != null) { 107 masterSuite.addTest(multiThreadedTests); 108 } 109 110 Test singleThreadedTests = getSingleThreadedTests(); 112 if(singleThreadedTests != null) { 113 masterSuite.addTest(singleThreadedTests); 114 } 115 116 return masterSuite; 117 } 118 119 128 private static Test getSingleThreadedTests() { 129 TestSuite suite = new TestSuite(); 130 131 suite.addTest(new BoundedBufferPerformanceLoggerPerformanceTest("testReport")); 132 133 return suite; 134 } 135 136 145 private static Test getMultiThreadedTests() { 146 TestSuite suite = new ActiveTestSuite(); 147 148 addTest(suite,"testSimpleCalls",TRACKED_THREADS); 149 150 return suite; 151 } 152 153 163 private static void addTest(TestSuite suite, String testName, int number) { 164 for(int count=0; count<number; count++) { 165 suite.addTest(new BoundedBufferPerformanceLoggerPerformanceTest(testName)); 166 } 167 } 168 } 169 | Popular Tags |