diff options
author | gopinath <gelanchezhian@google.com> | 2019-04-03 15:05:43 -0700 |
---|---|---|
committer | gopinath <gelanchezhian@google.com> | 2019-04-03 15:05:43 -0700 |
commit | 806aa81113c8bbbb7c4566f0b87858dc2f41a3b6 (patch) | |
tree | f06509d62d0a61cefa84e38b39e1e577e0eca550 /tests/AppLaunch | |
parent | 3acdae62228f70b5e0913f074bf9726e04d1f5d4 (diff) |
Add option to enable tracing all the launches.
This option is disabled by default.
Bug: b/129888684
Test : Ran app launch test case locally.
Change-Id: I1305361adf0cb80e2be6a191b8639f7a53e9abfc
Diffstat (limited to 'tests/AppLaunch')
-rw-r--r-- | tests/AppLaunch/src/com/android/tests/applaunch/AppLaunch.java | 49 |
1 files changed, 37 insertions, 12 deletions
diff --git a/tests/AppLaunch/src/com/android/tests/applaunch/AppLaunch.java b/tests/AppLaunch/src/com/android/tests/applaunch/AppLaunch.java index 9d7319f7d337..95b8f6700c76 100644 --- a/tests/AppLaunch/src/com/android/tests/applaunch/AppLaunch.java +++ b/tests/AppLaunch/src/com/android/tests/applaunch/AppLaunch.java @@ -78,6 +78,7 @@ public class AppLaunch extends InstrumentationTestCase { private static final String KEY_SIMPLEPERF_CMD = "simpleperf_cmd"; private static final String KEY_SIMPLEPERF_APP = "simpleperf_app"; private static final String KEY_CYCLE_CLEAN = "cycle_clean"; + private static final String KEY_TRACE_ALL = "trace_all"; private static final String KEY_TRACE_ITERATIONS = "trace_iterations"; private static final String KEY_LAUNCH_DIRECTORY = "launch_directory"; private static final String KEY_TRACE_DIRECTORY = "trace_directory"; @@ -111,7 +112,7 @@ public class AppLaunch extends InstrumentationTestCase { private static final String SUCCESS_MESSAGE = "Status: ok"; private static final String TOTAL_TIME_MESSAGE = "TotalTime:"; private static final String COMPILE_SUCCESS = "Success"; - private static final String LAUNCH_ITERATION = "LAUNCH_ITERATION - %d"; + private static final String LAUNCH_ITERATION = "LAUNCH_ITERATION-%d"; private static final String TRACE_ITERATION = "TRACE_ITERATION-%d"; private static final String LAUNCH_ITERATION_PREFIX = "LAUNCH_ITERATION"; private static final String TRACE_ITERATION_PREFIX = "TRACE_ITERATION"; @@ -142,6 +143,7 @@ public class AppLaunch extends InstrumentationTestCase { private String[] mCompilerFilters = null; private String mLastAppName = ""; private boolean mCycleCleanUp = false; + private boolean mTraceAll = false; private boolean mIterationCycle = false; private long mCycleTime = 0; private StringBuilder mCycleTimes = new StringBuilder(); @@ -296,18 +298,40 @@ public class AppLaunch extends InstrumentationTestCase { // skip if the app has failures while launched first continue; } - // In the "applaunch.txt" file app launches are referenced using - // "LAUNCH_ITERATION - ITERATION NUM" - launchResults = startApp(launch.getApp(), launch.getLaunchReason()); - if (launchResults.mLaunchTime < 0) { - addLaunchResult(launch, new AppLaunchResult()); - // if it fails once, skip the rest of the launches - continue; - } else { - mCycleTime += launchResults.mLaunchTime; - addLaunchResult(launch, launchResults); + AtraceLogger atraceLogger = null; + if (mTraceAll) { + Log.i(TAG, "Started tracing " + launch.getApp()); + atraceLogger = AtraceLogger + .getAtraceLoggerInstance(getInstrumentation()); } - sleep(POST_LAUNCH_IDLE_TIMEOUT); + try { + // Start the trace + if (atraceLogger != null) { + atraceLogger.atraceStart(traceCategoriesSet, traceBufferSize, + traceDumpInterval, rootTraceSubDir, + String.format("%s-%s-%s", launch.getApp(), + launch.getCompilerFilter(), launch.getLaunchReason())); + } + // In the "applaunch.txt" file app launches are referenced using + // "LAUNCH_ITERATION - ITERATION NUM" + launchResults = startApp(launch.getApp(), launch.getLaunchReason()); + if (launchResults.mLaunchTime < 0) { + addLaunchResult(launch, new AppLaunchResult()); + // if it fails once, skip the rest of the launches + continue; + } else { + mCycleTime += launchResults.mLaunchTime; + addLaunchResult(launch, launchResults); + } + sleep(POST_LAUNCH_IDLE_TIMEOUT); + } finally { + // Stop the trace + if (atraceLogger != null) { + Log.i(TAG, "Stopped tracing " + launch.getApp()); + atraceLogger.atraceStop(); + } + } + } // App launch times for trace launch will not be used for final @@ -534,6 +558,7 @@ public class AppLaunch extends InstrumentationTestCase { mLaunchOrder = args.getString(KEY_LAUNCH_ORDER, LAUNCH_ORDER_CYCLIC); mSimplePerfAppOnly = Boolean.parseBoolean(args.getString(KEY_SIMPLEPERF_APP)); mCycleCleanUp = Boolean.parseBoolean(args.getString(KEY_CYCLE_CLEAN)); + mTraceAll = Boolean.parseBoolean(args.getString(KEY_TRACE_ALL)); mTrialLaunch = mTrialLaunch || Boolean.parseBoolean(args.getString(KEY_TRIAL_LAUNCH)); if (mSimplePerfCmd != null && mSimplePerfAppOnly) { |