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

Commit 51f286c9 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Testdrive: allow multiple atoms in pulled atoms" into qt-dev

parents da7156d1 97b2e1a6
Loading
Loading
Loading
Loading
+22 −1
Original line number Diff line number Diff line
@@ -33,9 +33,10 @@ import java.util.logging.Logger;
 */
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_LOG_APP_BREADCRUMB = "cmd stats log-app-breadcrumb";
    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.

@@ -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) {
        ConsoleHandler handler = new ConsoleHandler();
        handler.setFormatter(new LocalToolsFormatter());
+19 −5
Original line number Diff line number Diff line
@@ -43,7 +43,10 @@ public class TestDrive {

    private static final int METRIC_ID_BASE = 1111;
    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 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 String[] ALLOWED_LOG_SOURCES = {
        "AID_GRAPHICS",
@@ -110,9 +113,10 @@ public class TestDrive {
                                + "be dumped after 1 min ...");
                Thread.sleep(60_000);
            } else {
                // wait for 2 min
                LOGGER.info("Now wait for 2 minutes ...");
                Thread.sleep(120_000);
                LOGGER.info("Now wait for 1.5 minutes ...");
                Thread.sleep(15_000);
                Utils.logAppBreadcrumb(0, 0, LOGGER);
                Thread.sleep(75_000);
            }
            testDrive.dumpMetrics();
        } catch (Exception e) {
@@ -156,6 +160,12 @@ public class TestDrive {
            .addAllAllowedLogSource(allowedSources)
            .setHashStringsInMetricReport(false);

        if (hasPulledAtom(atomIds)) {
            builder.addAtomMatcher(
                    createAtomMatcher(
                            Atom.APP_BREADCRUMB_REPORTED_FIELD_NUMBER, APP_BREADCRUMB_MATCHER_ID));
        }

        for (int atomId : atomIds) {
            if (isPulledAtom(atomId)) {
                builder.addAtomMatcher(createAtomMatcher(atomId, atomMatcherId));
@@ -163,8 +173,11 @@ public class TestDrive {
                gaugeMetricBuilder
                    .setId(metricId)
                    .setWhat(atomMatcherId)
                    .setTriggerEvent(APP_BREADCRUMB_MATCHER_ID)
                    .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());
            } else {
                EventMetric.Builder eventMetricBuilder = EventMetric.newBuilder();
@@ -210,7 +223,8 @@ public class TestDrive {
    }

    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) {