Merge "Testdrive: allow multiple atoms in pulled atoms" into qt-dev
am: 51f286c974
Change-Id: Id8669f0ef426348f4326c22abe0d6108f1dca7e2
This commit is contained in:
@@ -33,9 +33,10 @@ import java.util.logging.Logger;
|
|||||||
*/
|
*/
|
||||||
public class Utils {
|
public class Utils {
|
||||||
|
|
||||||
public static final String CMD_UPDATE_CONFIG = "cmd stats config update";
|
|
||||||
public static final String CMD_DUMP_REPORT = "cmd stats dump-report";
|
public static final String CMD_DUMP_REPORT = "cmd stats dump-report";
|
||||||
|
public static final String CMD_LOG_APP_BREADCRUMB = "cmd stats log-app-breadcrumb";
|
||||||
public static final String CMD_REMOVE_CONFIG = "cmd stats config remove";
|
public static final String CMD_REMOVE_CONFIG = "cmd stats config remove";
|
||||||
|
public static final String CMD_UPDATE_CONFIG = "cmd stats config update";
|
||||||
|
|
||||||
public static final String SHELL_UID = "2000"; // Use shell, even if rooted.
|
public static final String SHELL_UID = "2000"; // Use shell, even if rooted.
|
||||||
|
|
||||||
@@ -107,6 +108,26 @@ public class Utils {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Logs an AppBreadcrumbReported atom.
|
||||||
|
* @param label which label to log for the app breadcrumb atom.
|
||||||
|
* @param state which state to log for the app breadcrumb atom.
|
||||||
|
* @param logger Logger to log error messages
|
||||||
|
*
|
||||||
|
* @throws IOException
|
||||||
|
* @throws InterruptedException
|
||||||
|
*/
|
||||||
|
public static void logAppBreadcrumb(int label, int state, Logger logger)
|
||||||
|
throws IOException, InterruptedException {
|
||||||
|
runCommand(
|
||||||
|
null,
|
||||||
|
logger,
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
CMD_LOG_APP_BREADCRUMB,
|
||||||
|
String.valueOf(label),
|
||||||
|
String.valueOf(state));
|
||||||
|
}
|
||||||
public static void setUpLogger(Logger logger, boolean debug) {
|
public static void setUpLogger(Logger logger, boolean debug) {
|
||||||
ConsoleHandler handler = new ConsoleHandler();
|
ConsoleHandler handler = new ConsoleHandler();
|
||||||
handler.setFormatter(new LocalToolsFormatter());
|
handler.setFormatter(new LocalToolsFormatter());
|
||||||
|
|||||||
@@ -43,7 +43,10 @@ public class TestDrive {
|
|||||||
|
|
||||||
private static final int METRIC_ID_BASE = 1111;
|
private static final int METRIC_ID_BASE = 1111;
|
||||||
private static final long ATOM_MATCHER_ID_BASE = 1234567;
|
private static final long ATOM_MATCHER_ID_BASE = 1234567;
|
||||||
|
private static final long APP_BREADCRUMB_MATCHER_ID = 1111111;
|
||||||
private static final int PULL_ATOM_START = 10000;
|
private static final int PULL_ATOM_START = 10000;
|
||||||
|
private static final int MAX_PLATFORM_ATOM_TAG = 100000;
|
||||||
|
private static final int VENDOR_PULLED_ATOM_START_TAG = 150000;
|
||||||
private static final long CONFIG_ID = 54321;
|
private static final long CONFIG_ID = 54321;
|
||||||
private static final String[] ALLOWED_LOG_SOURCES = {
|
private static final String[] ALLOWED_LOG_SOURCES = {
|
||||||
"AID_GRAPHICS",
|
"AID_GRAPHICS",
|
||||||
@@ -110,9 +113,10 @@ public class TestDrive {
|
|||||||
+ "be dumped after 1 min ...");
|
+ "be dumped after 1 min ...");
|
||||||
Thread.sleep(60_000);
|
Thread.sleep(60_000);
|
||||||
} else {
|
} else {
|
||||||
// wait for 2 min
|
LOGGER.info("Now wait for 1.5 minutes ...");
|
||||||
LOGGER.info("Now wait for 2 minutes ...");
|
Thread.sleep(15_000);
|
||||||
Thread.sleep(120_000);
|
Utils.logAppBreadcrumb(0, 0, LOGGER);
|
||||||
|
Thread.sleep(75_000);
|
||||||
}
|
}
|
||||||
testDrive.dumpMetrics();
|
testDrive.dumpMetrics();
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
@@ -156,6 +160,12 @@ public class TestDrive {
|
|||||||
.addAllAllowedLogSource(allowedSources)
|
.addAllAllowedLogSource(allowedSources)
|
||||||
.setHashStringsInMetricReport(false);
|
.setHashStringsInMetricReport(false);
|
||||||
|
|
||||||
|
if (hasPulledAtom(atomIds)) {
|
||||||
|
builder.addAtomMatcher(
|
||||||
|
createAtomMatcher(
|
||||||
|
Atom.APP_BREADCRUMB_REPORTED_FIELD_NUMBER, APP_BREADCRUMB_MATCHER_ID));
|
||||||
|
}
|
||||||
|
|
||||||
for (int atomId : atomIds) {
|
for (int atomId : atomIds) {
|
||||||
if (isPulledAtom(atomId)) {
|
if (isPulledAtom(atomId)) {
|
||||||
builder.addAtomMatcher(createAtomMatcher(atomId, atomMatcherId));
|
builder.addAtomMatcher(createAtomMatcher(atomId, atomMatcherId));
|
||||||
@@ -163,8 +173,11 @@ public class TestDrive {
|
|||||||
gaugeMetricBuilder
|
gaugeMetricBuilder
|
||||||
.setId(metricId)
|
.setId(metricId)
|
||||||
.setWhat(atomMatcherId)
|
.setWhat(atomMatcherId)
|
||||||
|
.setTriggerEvent(APP_BREADCRUMB_MATCHER_ID)
|
||||||
.setGaugeFieldsFilter(FieldFilter.newBuilder().setIncludeAll(true).build())
|
.setGaugeFieldsFilter(FieldFilter.newBuilder().setIncludeAll(true).build())
|
||||||
.setBucket(TimeUnit.ONE_MINUTE);
|
.setBucket(TimeUnit.ONE_MINUTE)
|
||||||
|
.setSamplingType(GaugeMetric.SamplingType.FIRST_N_SAMPLES)
|
||||||
|
.setMaxNumGaugeAtomsPerBucket(100);
|
||||||
builder.addGaugeMetric(gaugeMetricBuilder.build());
|
builder.addGaugeMetric(gaugeMetricBuilder.build());
|
||||||
} else {
|
} else {
|
||||||
EventMetric.Builder eventMetricBuilder = EventMetric.newBuilder();
|
EventMetric.Builder eventMetricBuilder = EventMetric.newBuilder();
|
||||||
@@ -210,7 +223,8 @@ public class TestDrive {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static boolean isPulledAtom(int atomId) {
|
private static boolean isPulledAtom(int atomId) {
|
||||||
return atomId >= PULL_ATOM_START;
|
return atomId >= PULL_ATOM_START && atomId <= MAX_PLATFORM_ATOM_TAG
|
||||||
|
|| atomId >= VENDOR_PULLED_ATOM_START_TAG;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static boolean hasPulledAtom(Set<Integer> atoms) {
|
private static boolean hasPulledAtom(Set<Integer> atoms) {
|
||||||
|
|||||||
Reference in New Issue
Block a user