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

Commit 7a8bfb2e authored by Automerger Merge Worker's avatar Automerger Merge Worker Committed by Android (Google) Code Review
Browse files

Merge "Merge "Fix flaky tests" into udc-qpr-dev am: a810888e" into udc-qpr-dev-plus-aosp

parents 4e2466bd 9d2c3a44
Loading
Loading
Loading
Loading
+12 −0
Original line number Original line Diff line number Diff line
@@ -149,6 +149,17 @@ public class FaceProvider implements IBinder.DeathRecipient, ServiceProvider {
            @NonNull String halInstanceName,
            @NonNull String halInstanceName,
            @NonNull LockoutResetDispatcher lockoutResetDispatcher,
            @NonNull LockoutResetDispatcher lockoutResetDispatcher,
            @NonNull BiometricContext biometricContext) {
            @NonNull BiometricContext biometricContext) {
        this(context, biometricStateCallback, props, halInstanceName, lockoutResetDispatcher,
                biometricContext, null /* daemon */);
    }

    @VisibleForTesting FaceProvider(@NonNull Context context,
            @NonNull BiometricStateCallback biometricStateCallback,
            @NonNull SensorProps[] props,
            @NonNull String halInstanceName,
            @NonNull LockoutResetDispatcher lockoutResetDispatcher,
            @NonNull BiometricContext biometricContext,
            IFace daemon) {
        mContext = context;
        mContext = context;
        mBiometricStateCallback = biometricStateCallback;
        mBiometricStateCallback = biometricStateCallback;
        mHalInstanceName = halInstanceName;
        mHalInstanceName = halInstanceName;
@@ -160,6 +171,7 @@ public class FaceProvider implements IBinder.DeathRecipient, ServiceProvider {
        mTaskStackListener = new BiometricTaskStackListener();
        mTaskStackListener = new BiometricTaskStackListener();
        mBiometricContext = biometricContext;
        mBiometricContext = biometricContext;
        mAuthSessionCoordinator = mBiometricContext.getAuthSessionCoordinator();
        mAuthSessionCoordinator = mBiometricContext.getAuthSessionCoordinator();
        mDaemon = daemon;


        for (SensorProps prop : props) {
        for (SensorProps prop : props) {
            final int sensorId = prop.commonProps.sensorId;
            final int sensorId = prop.commonProps.sensorId;
+12 −0
Original line number Original line Diff line number Diff line
@@ -160,6 +160,17 @@ public class FingerprintProvider implements IBinder.DeathRecipient, ServiceProvi
            @NonNull LockoutResetDispatcher lockoutResetDispatcher,
            @NonNull LockoutResetDispatcher lockoutResetDispatcher,
            @NonNull GestureAvailabilityDispatcher gestureAvailabilityDispatcher,
            @NonNull GestureAvailabilityDispatcher gestureAvailabilityDispatcher,
            @NonNull BiometricContext biometricContext) {
            @NonNull BiometricContext biometricContext) {
        this(context, biometricStateCallback, props, halInstanceName, lockoutResetDispatcher,
                gestureAvailabilityDispatcher, biometricContext, null /* daemon */);
    }

    @VisibleForTesting FingerprintProvider(@NonNull Context context,
            @NonNull BiometricStateCallback biometricStateCallback,
            @NonNull SensorProps[] props, @NonNull String halInstanceName,
            @NonNull LockoutResetDispatcher lockoutResetDispatcher,
            @NonNull GestureAvailabilityDispatcher gestureAvailabilityDispatcher,
            @NonNull BiometricContext biometricContext,
            IFingerprint daemon) {
        mContext = context;
        mContext = context;
        mBiometricStateCallback = biometricStateCallback;
        mBiometricStateCallback = biometricStateCallback;
        mHalInstanceName = halInstanceName;
        mHalInstanceName = halInstanceName;
@@ -170,6 +181,7 @@ public class FingerprintProvider implements IBinder.DeathRecipient, ServiceProvi
        mTaskStackListener = new BiometricTaskStackListener();
        mTaskStackListener = new BiometricTaskStackListener();
        mBiometricContext = biometricContext;
        mBiometricContext = biometricContext;
        mAuthSessionCoordinator = mBiometricContext.getAuthSessionCoordinator();
        mAuthSessionCoordinator = mBiometricContext.getAuthSessionCoordinator();
        mDaemon = daemon;


        final List<SensorLocationInternal> workaroundLocations = getWorkaroundSensorProps(context);
        final List<SensorLocationInternal> workaroundLocations = getWorkaroundSensorProps(context);


+6 −26
Original line number Original line Diff line number Diff line
@@ -36,7 +36,6 @@ import android.os.UserHandle;
import android.os.UserManager;
import android.os.UserManager;
import android.platform.test.annotations.Presubmit;
import android.platform.test.annotations.Presubmit;


import androidx.annotation.NonNull;
import androidx.test.InstrumentationRegistry;
import androidx.test.InstrumentationRegistry;
import androidx.test.filters.SmallTest;
import androidx.test.filters.SmallTest;


@@ -73,7 +72,7 @@ public class FaceProviderTest {


    private SensorProps[] mSensorProps;
    private SensorProps[] mSensorProps;
    private LockoutResetDispatcher mLockoutResetDispatcher;
    private LockoutResetDispatcher mLockoutResetDispatcher;
    private TestableFaceProvider mFaceProvider;
    private FaceProvider mFaceProvider;


    private static void waitForIdle() {
    private static void waitForIdle() {
        InstrumentationRegistry.getInstrumentation().waitForIdleSync();
        InstrumentationRegistry.getInstrumentation().waitForIdleSync();
@@ -98,8 +97,9 @@ public class FaceProviderTest {


        mLockoutResetDispatcher = new LockoutResetDispatcher(mContext);
        mLockoutResetDispatcher = new LockoutResetDispatcher(mContext);


        mFaceProvider = new TestableFaceProvider(mDaemon, mContext, mBiometricStateCallback,
        mFaceProvider = new FaceProvider(mContext, mBiometricStateCallback,
                mSensorProps, TAG, mLockoutResetDispatcher, mBiometricContext);
                mSensorProps, TAG, mLockoutResetDispatcher, mBiometricContext,
                mDaemon);
    }
    }


    @Test
    @Test
@@ -130,6 +130,7 @@ public class FaceProviderTest {
        for (SensorProps prop : mSensorProps) {
        for (SensorProps prop : mSensorProps) {
            final BiometricScheduler scheduler =
            final BiometricScheduler scheduler =
                    mFaceProvider.mFaceSensors.get(prop.commonProps.sensorId).getScheduler();
                    mFaceProvider.mFaceSensors.get(prop.commonProps.sensorId).getScheduler();
            scheduler.reset();
            for (int i = 0; i < numFakeOperations; i++) {
            for (int i = 0; i < numFakeOperations; i++) {
                final HalClientMonitor testMonitor = mock(HalClientMonitor.class);
                final HalClientMonitor testMonitor = mock(HalClientMonitor.class);
                when(testMonitor.getFreshDaemon()).thenReturn(new Object());
                when(testMonitor.getFreshDaemon()).thenReturn(new Object());
@@ -142,7 +143,7 @@ public class FaceProviderTest {
        for (SensorProps prop : mSensorProps) {
        for (SensorProps prop : mSensorProps) {
            final BiometricScheduler scheduler =
            final BiometricScheduler scheduler =
                    mFaceProvider.mFaceSensors.get(prop.commonProps.sensorId).getScheduler();
                    mFaceProvider.mFaceSensors.get(prop.commonProps.sensorId).getScheduler();
            assertEquals(numFakeOperations, scheduler.getCurrentPendingCount());
            assertEquals(numFakeOperations - 1, scheduler.getCurrentPendingCount());
            assertNotNull(scheduler.getCurrentClient());
            assertNotNull(scheduler.getCurrentClient());
        }
        }


@@ -159,25 +160,4 @@ public class FaceProviderTest {
            assertEquals(0, scheduler.getCurrentPendingCount());
            assertEquals(0, scheduler.getCurrentPendingCount());
        }
        }
    }
    }

    private static class TestableFaceProvider extends FaceProvider {
        private final IFace mDaemon;

        TestableFaceProvider(@NonNull IFace daemon,
                @NonNull Context context,
                @NonNull BiometricStateCallback biometricStateCallback,
                @NonNull SensorProps[] props,
                @NonNull String halInstanceName,
                @NonNull LockoutResetDispatcher lockoutResetDispatcher,
                @NonNull BiometricContext biometricContext) {
            super(context, biometricStateCallback, props, halInstanceName, lockoutResetDispatcher,
                    biometricContext);
            mDaemon = daemon;
        }

        @Override
        synchronized IFace getHalInstance() {
            return mDaemon;
        }
    }
}
}
+5 −31
Original line number Original line Diff line number Diff line
@@ -39,7 +39,6 @@ import android.os.UserHandle;
import android.os.UserManager;
import android.os.UserManager;
import android.platform.test.annotations.Presubmit;
import android.platform.test.annotations.Presubmit;


import androidx.annotation.NonNull;
import androidx.test.InstrumentationRegistry;
import androidx.test.InstrumentationRegistry;
import androidx.test.filters.SmallTest;
import androidx.test.filters.SmallTest;


@@ -81,7 +80,7 @@ public class FingerprintProviderTest {


    private SensorProps[] mSensorProps;
    private SensorProps[] mSensorProps;
    private LockoutResetDispatcher mLockoutResetDispatcher;
    private LockoutResetDispatcher mLockoutResetDispatcher;
    private TestableFingerprintProvider mFingerprintProvider;
    private FingerprintProvider mFingerprintProvider;


    private static void waitForIdle() {
    private static void waitForIdle() {
        InstrumentationRegistry.getInstrumentation().waitForIdleSync();
        InstrumentationRegistry.getInstrumentation().waitForIdleSync();
@@ -110,17 +109,13 @@ public class FingerprintProviderTest {


        mLockoutResetDispatcher = new LockoutResetDispatcher(mContext);
        mLockoutResetDispatcher = new LockoutResetDispatcher(mContext);


        mFingerprintProvider = new TestableFingerprintProvider(mDaemon, mContext,
        mFingerprintProvider = new FingerprintProvider(mContext,
                mBiometricStateCallback, mSensorProps, TAG, mLockoutResetDispatcher,
                mBiometricStateCallback, mSensorProps, TAG, mLockoutResetDispatcher,
                mGestureAvailabilityDispatcher, mBiometricContext);
                mGestureAvailabilityDispatcher, mBiometricContext, mDaemon);
    }
    }


    @Test
    @Test
    public void testAddingSensors() {
    public void testAddingSensors() {
        mFingerprintProvider = new TestableFingerprintProvider(mDaemon, mContext,
                mBiometricStateCallback, mSensorProps, TAG, mLockoutResetDispatcher,
                mGestureAvailabilityDispatcher, mBiometricContext);

        waitForIdle();
        waitForIdle();


        for (SensorProps prop : mSensorProps) {
        for (SensorProps prop : mSensorProps) {
@@ -147,6 +142,7 @@ public class FingerprintProviderTest {
            final BiometricScheduler scheduler =
            final BiometricScheduler scheduler =
                    mFingerprintProvider.mFingerprintSensors.get(prop.commonProps.sensorId)
                    mFingerprintProvider.mFingerprintSensors.get(prop.commonProps.sensorId)
                            .getScheduler();
                            .getScheduler();
            scheduler.reset();
            for (int i = 0; i < numFakeOperations; i++) {
            for (int i = 0; i < numFakeOperations; i++) {
                final HalClientMonitor testMonitor = mock(HalClientMonitor.class);
                final HalClientMonitor testMonitor = mock(HalClientMonitor.class);
                when(testMonitor.getFreshDaemon()).thenReturn(new Object());
                when(testMonitor.getFreshDaemon()).thenReturn(new Object());
@@ -160,7 +156,7 @@ public class FingerprintProviderTest {
            final BiometricScheduler scheduler =
            final BiometricScheduler scheduler =
                    mFingerprintProvider.mFingerprintSensors.get(prop.commonProps.sensorId)
                    mFingerprintProvider.mFingerprintSensors.get(prop.commonProps.sensorId)
                            .getScheduler();
                            .getScheduler();
            assertEquals(numFakeOperations, scheduler.getCurrentPendingCount());
            assertEquals(numFakeOperations - 1, scheduler.getCurrentPendingCount());
            assertNotNull(scheduler.getCurrentClient());
            assertNotNull(scheduler.getCurrentClient());
        }
        }


@@ -178,26 +174,4 @@ public class FingerprintProviderTest {
            assertEquals(0, scheduler.getCurrentPendingCount());
            assertEquals(0, scheduler.getCurrentPendingCount());
        }
        }
    }
    }

    private static class TestableFingerprintProvider extends FingerprintProvider {
        private final IFingerprint mDaemon;

        TestableFingerprintProvider(@NonNull IFingerprint daemon,
                @NonNull Context context,
                @NonNull BiometricStateCallback biometricStateCallback,
                @NonNull SensorProps[] props,
                @NonNull String halInstanceName,
                @NonNull LockoutResetDispatcher lockoutResetDispatcher,
                @NonNull GestureAvailabilityDispatcher gestureAvailabilityDispatcher,
                @NonNull BiometricContext biometricContext) {
            super(context, biometricStateCallback, props, halInstanceName, lockoutResetDispatcher,
                    gestureAvailabilityDispatcher, biometricContext);
            mDaemon = daemon;
        }

        @Override
        synchronized IFingerprint getHalInstance() {
            return mDaemon;
        }
    }
}
}