Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6acd9509 authored by gopinath's avatar gopinath Committed by Gopinath Elanchezhian
Browse files

Add option to enable tracing all the launches.

This option is disabled by default.

Bug: b/129888684, b/130154337

Test : Ran app launch test case locally.

Change-Id: I1305361adf0cb80e2be6a191b8639f7a53e9abfc
(cherry picked from commit 806aa811)
parent d81cd262
Loading
Loading
Loading
Loading
+37 −12
Original line number Diff line number Diff line
@@ -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";
@@ -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,6 +298,20 @@ public class AppLaunch extends InstrumentationTestCase {
                        // skip if the app has failures while launched first
                        continue;
                    }
                    AtraceLogger atraceLogger = null;
                    if (mTraceAll) {
                        Log.i(TAG, "Started tracing " + launch.getApp());
                        atraceLogger = AtraceLogger
                                .getAtraceLoggerInstance(getInstrumentation());
                    }
                    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());
@@ -308,6 +324,14 @@ public class AppLaunch extends InstrumentationTestCase {
                            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) {