summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tests/AppLaunch/src/com/android/tests/applaunch/AppLaunch.java44
1 files changed, 38 insertions, 6 deletions
diff --git a/tests/AppLaunch/src/com/android/tests/applaunch/AppLaunch.java b/tests/AppLaunch/src/com/android/tests/applaunch/AppLaunch.java
index 2f9a1c8ade0d..6b24b065d7ec 100644
--- a/tests/AppLaunch/src/com/android/tests/applaunch/AppLaunch.java
+++ b/tests/AppLaunch/src/com/android/tests/applaunch/AppLaunch.java
@@ -46,6 +46,7 @@ import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedHashMap;
@@ -72,6 +73,7 @@ public class AppLaunch extends InstrumentationTestCase {
private static final String KEY_REQUIRED_ACCOUNTS = "required_accounts";
private static final String KEY_APPS = "apps";
private static final String KEY_IORAP_TRIAL_LAUNCH = "iorap_trial_launch";
+ private static final String KEY_IORAP_COMPILER_FILTERS = "iorap_compiler_filters";
private static final String KEY_TRIAL_LAUNCH = "trial_launch";
private static final String KEY_LAUNCH_ITERATIONS = "launch_iterations";
private static final String KEY_LAUNCH_ORDER = "launch_order";
@@ -153,6 +155,7 @@ public class AppLaunch extends InstrumentationTestCase {
private BufferedWriter mBufferedWriter = null;
private boolean mSimplePerfAppOnly = false;
private String[] mCompilerFilters = null;
+ private List<String> mIorapCompilerFilters = null;
private String mLastAppName = "";
private boolean mCycleCleanUp = false;
private boolean mTraceAll = false;
@@ -566,6 +569,24 @@ public class AppLaunch extends InstrumentationTestCase {
return reason;
}
+ private boolean shouldIncludeIorap(String compilerFilter) {
+ if (!mIorapTrialLaunch) {
+ return false;
+ }
+
+ // No iorap compiler filters specified: treat all compiler filters as ok.
+ if (mIorapCompilerFilters == null) {
+ return true;
+ }
+
+ // iorap compiler filters specified: the compilerFilter must be in the whitelist.
+ if (mIorapCompilerFilters.indexOf(compilerFilter) != -1) {
+ return true;
+ }
+
+ return false;
+ }
+
/**
* If launch order is "cyclic" then apps will be launched one after the
* other for each iteration count.
@@ -580,7 +601,7 @@ public class AppLaunch extends InstrumentationTestCase {
mLaunchOrderList.add(new LaunchOrder(app, compilerFilter, TRIAL_LAUNCH, /*iorapEnabled*/false));
}
}
- if (mIorapTrialLaunch) {
+ if (shouldIncludeIorap(compilerFilter)) {
for (int launchCount = 0; launchCount < IORAP_TRIAL_LAUNCH_ITERATIONS; ++launchCount) {
for (String app : mNameToResultKey.keySet()) {
String reason = makeReasonForIorapTrialLaunch(launchCount);
@@ -594,14 +615,16 @@ public class AppLaunch extends InstrumentationTestCase {
for (int launchCount = 0; launchCount < mLaunchIterations; launchCount++) {
for (String app : mNameToResultKey.keySet()) {
mLaunchOrderList.add(new LaunchOrder(app, compilerFilter,
- String.format(LAUNCH_ITERATION, launchCount), mIorapTrialLaunch));
+ String.format(LAUNCH_ITERATION, launchCount),
+ shouldIncludeIorap(compilerFilter)));
}
}
if (mTraceDirectoryStr != null && !mTraceDirectoryStr.isEmpty()) {
for (int traceCount = 0; traceCount < mTraceLaunchCount; traceCount++) {
for (String app : mNameToResultKey.keySet()) {
mLaunchOrderList.add(new LaunchOrder(app, compilerFilter,
- String.format(TRACE_ITERATION, traceCount), mIorapTrialLaunch));
+ String.format(TRACE_ITERATION, traceCount),
+ shouldIncludeIorap(compilerFilter)));
}
}
}
@@ -612,7 +635,7 @@ public class AppLaunch extends InstrumentationTestCase {
if (mTrialLaunch) {
mLaunchOrderList.add(new LaunchOrder(app, compilerFilter, TRIAL_LAUNCH, /*iorapEnabled*/false));
}
- if (mIorapTrialLaunch) {
+ if (shouldIncludeIorap(compilerFilter)) {
for (int launchCount = 0; launchCount < IORAP_TRIAL_LAUNCH_ITERATIONS; ++launchCount) {
String reason = makeReasonForIorapTrialLaunch(launchCount);
mLaunchOrderList.add(
@@ -623,12 +646,14 @@ public class AppLaunch extends InstrumentationTestCase {
}
for (int launchCount = 0; launchCount < mLaunchIterations; launchCount++) {
mLaunchOrderList.add(new LaunchOrder(app, compilerFilter,
- String.format(LAUNCH_ITERATION, launchCount), mIorapTrialLaunch));
+ String.format(LAUNCH_ITERATION, launchCount),
+ shouldIncludeIorap(compilerFilter)));
}
if (mTraceDirectoryStr != null && !mTraceDirectoryStr.isEmpty()) {
for (int traceCount = 0; traceCount < mTraceLaunchCount; traceCount++) {
mLaunchOrderList.add(new LaunchOrder(app, compilerFilter,
- String.format(TRACE_ITERATION, traceCount), mIorapTrialLaunch));
+ String.format(TRACE_ITERATION, traceCount),
+ shouldIncludeIorap(compilerFilter)));
}
}
}
@@ -770,6 +795,13 @@ public class AppLaunch extends InstrumentationTestCase {
mCompilerFilters = new String[1];
}
+ String iorapCompilerFilterList = args.getString(KEY_IORAP_COMPILER_FILTERS);
+ if (iorapCompilerFilterList != null) {
+ // Passing in iorap compiler filters implies an iorap trial launch.
+ mIorapTrialLaunch = true;
+ mIorapCompilerFilters = Arrays.asList(iorapCompilerFilterList.split("\\|"));
+ }
+
// Pre-populate the results map to avoid null checks.
for (String app : mNameToLaunchTime.keySet()) {
HashMap<String, List<AppLaunchResult>> map = new HashMap<>();