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

Commit 5d59df4f authored by vadimt's avatar vadimt
Browse files

Don't check TIS events mismatch for successful gestures

Perhaps, due to a framework bug, events sometimes don't get delivered to
TIS; this doesn't seem to cause user-visible problems.

Later we'll need to investigate why this happens.

Bug: 154157191
Change-Id: I25f45ccab10f6c537c14610e40c2d02d2d3f28ad
parent 3141c99e
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -428,7 +428,7 @@ public final class LauncherInstrumentation {
        if (sCheckingEvents) {
            sCheckingEvents = false;
            if (checkEvents) {
                final String eventMismatch = sEventChecker.verify(0);
                final String eventMismatch = sEventChecker.verify(0, false);
                if (eventMismatch != null) {
                    message = message + ", having produced " + eventMismatch;
                }
@@ -1311,7 +1311,7 @@ public final class LauncherInstrumentation {
            if (sCheckingEvents) {
                sCheckingEvents = false;
                if (mCheckEventsForSuccessfulGestures) {
                    final String message = sEventChecker.verify(WAIT_TIME_MS);
                    final String message = sEventChecker.verify(WAIT_TIME_MS, true);
                    if (message != null) {
                        checkForAnomaly();
                        Assert.fail(formatSystemHealthMessage(
+10 −3
Original line number Diff line number Diff line
@@ -168,7 +168,7 @@ public class LogEventChecker {
        Log.d(TestProtocol.TAPL_EVENTS_TAG, mFinishCommand);
    }

    String verify(long waitForExpectedCountMs) {
    String verify(long waitForExpectedCountMs, boolean successfulGesture) {
        finishSync(waitForExpectedCountMs);

        final StringBuilder sb = new StringBuilder();
@@ -179,7 +179,8 @@ public class LogEventChecker {
            List<String> actual = new ArrayList<>(mEvents.getNonNull(sequence));
            Log.d(SKIP_EVENTS_TAG, "Verifying events");
            final int mismatchPosition = getMismatchPosition(expectedEvents.getValue(), actual);
            hasMismatches = hasMismatches || mismatchPosition != -1;
            hasMismatches = hasMismatches
                    || mismatchPosition != -1 && !ignoreMistatch(successfulGesture, sequence);
            formatSequenceWithMismatch(
                    sb,
                    sequence,
@@ -190,7 +191,8 @@ public class LogEventChecker {
        // Check for unexpected event sequences in the actual data.
        for (String actualNamedSequence : mEvents.keySet()) {
            if (!mExpectedEvents.containsKey(actualNamedSequence)) {
                hasMismatches = true;
                hasMismatches = hasMismatches
                        || !ignoreMistatch(successfulGesture, actualNamedSequence);
                formatSequenceWithMismatch(
                        sb,
                        actualNamedSequence,
@@ -203,6 +205,11 @@ public class LogEventChecker {
        return hasMismatches ? "mismatching events: " + sb.toString() : null;
    }

    // Workaround for b/154157191
    private static boolean ignoreMistatch(boolean successfulGesture, String sequence) {
        return TestProtocol.SEQUENCE_TIS.equals(sequence) && successfulGesture;
    }

    // If the list of actual events matches the list of expected events, returns -1, otherwise
    // the position of the mismatch.
    private static int getMismatchPosition(List<Pattern> expected, List<String> actual) {