15eefd7711f63bc1b67ec927a8c43363f426121ccGuang Zhupackage com.android.frameworkperf; 25eefd7711f63bc1b67ec927a8c43363f426121ccGuang Zhu 35eefd7711f63bc1b67ec927a8c43363f426121ccGuang Zhuimport android.app.Activity; 45eefd7711f63bc1b67ec927a8c43363f426121ccGuang Zhuimport android.os.Bundle; 55eefd7711f63bc1b67ec927a8c43363f426121ccGuang Zhuimport android.test.ActivityInstrumentationTestCase2; 65eefd7711f63bc1b67ec927a8c43363f426121ccGuang Zhu 75eefd7711f63bc1b67ec927a8c43363f426121ccGuang Zhupublic class FrameworkPerfTest extends ActivityInstrumentationTestCase2<FrameworkPerfActivity> { 85eefd7711f63bc1b67ec927a8c43363f426121ccGuang Zhu 95eefd7711f63bc1b67ec927a8c43363f426121ccGuang Zhu private static final int TEST_TIMEOUT = 15 * 60 * 1000; //15 minutes 105eefd7711f63bc1b67ec927a8c43363f426121ccGuang Zhu 115eefd7711f63bc1b67ec927a8c43363f426121ccGuang Zhu public FrameworkPerfTest() { 125eefd7711f63bc1b67ec927a8c43363f426121ccGuang Zhu super("com.android.frameworkperf", FrameworkPerfActivity.class); 135eefd7711f63bc1b67ec927a8c43363f426121ccGuang Zhu } 145eefd7711f63bc1b67ec927a8c43363f426121ccGuang Zhu 155eefd7711f63bc1b67ec927a8c43363f426121ccGuang Zhu public void testFrameworkPerf() { 165eefd7711f63bc1b67ec927a8c43363f426121ccGuang Zhu final FrameworkPerfActivity activity = getActivity(); 175eefd7711f63bc1b67ec927a8c43363f426121ccGuang Zhu synchronized (activity.mResultNotifier) { 185eefd7711f63bc1b67ec927a8c43363f426121ccGuang Zhu getInstrumentation().runOnMainSync(new Runnable() { 195eefd7711f63bc1b67ec927a8c43363f426121ccGuang Zhu @Override 205eefd7711f63bc1b67ec927a8c43363f426121ccGuang Zhu public void run() { 215eefd7711f63bc1b67ec927a8c43363f426121ccGuang Zhu activity.startRunning(); 225eefd7711f63bc1b67ec927a8c43363f426121ccGuang Zhu } 235eefd7711f63bc1b67ec927a8c43363f426121ccGuang Zhu }); 245eefd7711f63bc1b67ec927a8c43363f426121ccGuang Zhu try { 255eefd7711f63bc1b67ec927a8c43363f426121ccGuang Zhu activity.mResultNotifier.wait(TEST_TIMEOUT); 265eefd7711f63bc1b67ec927a8c43363f426121ccGuang Zhu } catch (InterruptedException e) { 275eefd7711f63bc1b67ec927a8c43363f426121ccGuang Zhu fail("test interrupted."); 285eefd7711f63bc1b67ec927a8c43363f426121ccGuang Zhu } 295eefd7711f63bc1b67ec927a8c43363f426121ccGuang Zhu } 305eefd7711f63bc1b67ec927a8c43363f426121ccGuang Zhu Bundle testResult = new Bundle(); 315eefd7711f63bc1b67ec927a8c43363f426121ccGuang Zhu synchronized (activity.mResults) { 325eefd7711f63bc1b67ec927a8c43363f426121ccGuang Zhu assertTrue("test results were empty.", activity.mResults.size() > 0); 335eefd7711f63bc1b67ec927a8c43363f426121ccGuang Zhu for (RunResult result : activity.mResults) { 345eefd7711f63bc1b67ec927a8c43363f426121ccGuang Zhu testResult.putString(result.name, String.format("%f,%d,%d,%f,%d,%d", 355eefd7711f63bc1b67ec927a8c43363f426121ccGuang Zhu result.getFgMsPerOp(), result.fgOps, result.fgTime, 365eefd7711f63bc1b67ec927a8c43363f426121ccGuang Zhu result.getBgMsPerOp(), result.bgOps, result.bgTime)); 375eefd7711f63bc1b67ec927a8c43363f426121ccGuang Zhu } 385eefd7711f63bc1b67ec927a8c43363f426121ccGuang Zhu } 395eefd7711f63bc1b67ec927a8c43363f426121ccGuang Zhu getInstrumentation().sendStatus(Activity.RESULT_OK, testResult); 405eefd7711f63bc1b67ec927a8c43363f426121ccGuang Zhu } 415eefd7711f63bc1b67ec927a8c43363f426121ccGuang Zhu} 42