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

Commit 56fe9150 authored by vadimt's avatar vadimt
Browse files

Improving diagnostics when Launcher dies during a gesture

Instead of crashing upon getting uninitialized event sequence, we show a
meaningful message.

Bug: 159921830
Change-Id: Ie42039b39a453c60bd5df3e54058d582137bba06
parent 072e4c27
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -164,6 +164,12 @@ public class DebugTestInformationHandler extends TestInformationHandler {
            }

            case TestProtocol.REQUEST_GET_TEST_EVENTS: {
                if (sEvents == null) {
                    // sEvents can be null if Launcher died and restarted after
                    // REQUEST_START_EVENT_LOGGING.
                    return response;
                }

                synchronized (sEvents) {
                    response.putStringArrayList(
                            TestProtocol.TEST_INFO_RESPONSE_FIELD, new ArrayList<>(sEvents));
+3 −0
Original line number Diff line number Diff line
@@ -57,6 +57,8 @@ public class LogEventChecker {
        while (true) {
            rawEvents = mLauncher.getTestInfo(TestProtocol.REQUEST_GET_TEST_EVENTS)
                    .getStringArrayList(TestProtocol.TEST_INFO_RESPONSE_FIELD);
            if (rawEvents == null) return null;

            final int expectedCount = mExpectedEvents.entrySet()
                    .stream().mapToInt(e -> e.getValue().size()).sum();
            if (rawEvents.size() >= expectedCount
@@ -83,6 +85,7 @@ public class LogEventChecker {

    String verify(long waitForExpectedCountMs, boolean successfulGesture) {
        final ListMap<String> actualEvents = finishSync(waitForExpectedCountMs);
        if (actualEvents == null) return "null event sequences because launcher likely died";

        final StringBuilder sb = new StringBuilder();
        boolean hasMismatches = false;