Loading biometrics/fingerprint/aidl/default/FakeFingerprintEngine.cpp +21 −0 Original line number Diff line number Diff line Loading @@ -62,12 +62,17 @@ void FakeFingerprintEngine::enrollImpl(ISessionCallback* cb, return; } waitForFingerDown(cb, cancel); updateContext(WorkMode::kEnroll, cb, const_cast<std::future<void>&>(cancel), 0, hat); } void FakeFingerprintEngine::authenticateImpl(ISessionCallback* cb, int64_t operationId, const std::future<void>& cancel) { BEGIN_OP(0); waitForFingerDown(cb, cancel); updateContext(WorkMode::kAuthenticate, cb, const_cast<std::future<void>&>(cancel), operationId, keymaster::HardwareAuthToken()); } Loading @@ -84,6 +89,8 @@ void FakeFingerprintEngine::detectInteractionImpl(ISessionCallback* cb, return; } waitForFingerDown(cb, cancel); updateContext(WorkMode::kDetectInteract, cb, const_cast<std::future<void>&>(cancel), 0, keymaster::HardwareAuthToken()); } Loading Loading @@ -398,6 +405,7 @@ ndk::ScopedAStatus FakeFingerprintEngine::onPointerDownImpl(int32_t /*pointerId* ndk::ScopedAStatus FakeFingerprintEngine::onPointerUpImpl(int32_t /*pointerId*/) { BEGIN_OP(0); mFingerIsDown = false; return ndk::ScopedAStatus::ok(); } Loading Loading @@ -533,4 +541,17 @@ void FakeFingerprintEngine::lockoutTimerExpired(ISessionCallback* cb) { isLockoutTimerStarted = false; isLockoutTimerAborted = false; } void FakeFingerprintEngine::waitForFingerDown(ISessionCallback* cb, const std::future<void>& cancel) { while (!mFingerIsDown) { if (shouldCancel(cancel)) { LOG(ERROR) << "waitForFingerDown, Fail: cancel"; cb->onError(Error::CANCELED, 0 /* vendorCode */); return; } SLEEP_MS(10); } } } // namespace aidl::android::hardware::biometrics::fingerprint biometrics/fingerprint/aidl/default/Session.cpp +1 −0 Original line number Diff line number Diff line Loading @@ -249,6 +249,7 @@ ndk::ScopedAStatus Session::close() { ndk::ScopedAStatus Session::onPointerDown(int32_t pointerId, int32_t x, int32_t y, float minor, float major) { LOG(INFO) << "onPointerDown"; mEngine->notifyFingerdown(); mWorker->schedule(Callable::from([this, pointerId, x, y, minor, major] { mEngine->onPointerDownImpl(pointerId, x, y, minor, major); enterIdling(); Loading biometrics/fingerprint/aidl/default/include/FakeFingerprintEngine.h +3 −0 Original line number Diff line number Diff line Loading @@ -75,6 +75,7 @@ class FakeFingerprintEngine { enum class WorkMode : int8_t { kIdle = 0, kAuthenticate, kEnroll, kDetectInteract }; WorkMode getWorkMode() { return mWorkMode; } void notifyFingerdown() { mFingerIsDown = true; } virtual std::string toString() const { std::ostringstream os; Loading @@ -100,6 +101,7 @@ class FakeFingerprintEngine { keymaster::HardwareAuthToken mHat; std::future<void> mCancel; int64_t mOperationId; bool mFingerIsDown; private: static constexpr int32_t FINGERPRINT_ACQUIRED_VENDOR_BASE = 1000; Loading @@ -109,6 +111,7 @@ class FakeFingerprintEngine { int32_t getRandomInRange(int32_t bound1, int32_t bound2); bool checkSensorLockout(ISessionCallback*); void clearLockout(ISessionCallback* cb); void waitForFingerDown(ISessionCallback* cb, const std::future<void>& cancel); FakeLockoutTracker mLockoutTracker; Loading biometrics/fingerprint/aidl/default/tests/FakeFingerprintEngineTest.cpp +19 −0 Original line number Diff line number Diff line Loading @@ -185,6 +185,7 @@ TEST_F(FakeFingerprintEngineTest, Enroll) { FingerprintHalProperties::enrollments({}); FingerprintHalProperties::next_enrollment("4:0,0:true"); keymaster::HardwareAuthToken hat{.mac = {2, 4}}; mEngine.notifyFingerdown(); mEngine.enrollImpl(mCallback.get(), hat, mCancel.get_future()); ASSERT_EQ(mEngine.getWorkMode(), FakeFingerprintEngine::WorkMode::kEnroll); mEngine.fingerDownAction(); Loading @@ -202,6 +203,7 @@ TEST_F(FakeFingerprintEngineTest, EnrollCancel) { FingerprintHalProperties::next_enrollment(next); keymaster::HardwareAuthToken hat{.mac = {2, 4}}; mCancel.set_value(); mEngine.notifyFingerdown(); mEngine.enrollImpl(mCallback.get(), hat, mCancel.get_future()); mEngine.fingerDownAction(); ASSERT_EQ(Error::CANCELED, mCallback->mError); Loading @@ -215,6 +217,7 @@ TEST_F(FakeFingerprintEngineTest, EnrollFail) { auto next = "2:0,0:false"; FingerprintHalProperties::next_enrollment(next); keymaster::HardwareAuthToken hat{.mac = {2, 4}}; mEngine.notifyFingerdown(); mEngine.enrollImpl(mCallback.get(), hat, mCancel.get_future()); mEngine.fingerDownAction(); ASSERT_EQ(Error::UNABLE_TO_PROCESS, mCallback->mError); Loading @@ -228,6 +231,7 @@ TEST_F(FakeFingerprintEngineTest, EnrollAcquired) { FingerprintHalProperties::next_enrollment("4:0,5-[12,1013]:true"); keymaster::HardwareAuthToken hat{.mac = {2, 4}}; int32_t prevCnt = mCallback->mLastAcquiredCount; mEngine.notifyFingerdown(); mEngine.enrollImpl(mCallback.get(), hat, mCancel.get_future()); mEngine.fingerDownAction(); ASSERT_FALSE(FingerprintHalProperties::next_enrollment().has_value()); Loading @@ -242,6 +246,7 @@ TEST_F(FakeFingerprintEngineTest, EnrollAcquired) { TEST_F(FakeFingerprintEngineTest, Authenticate) { FingerprintHalProperties::enrollments({1, 2}); FingerprintHalProperties::enrollment_hit(2); mEngine.notifyFingerdown(); mEngine.authenticateImpl(mCallback.get(), 0, mCancel.get_future()); ASSERT_EQ(mEngine.getWorkMode(), FakeFingerprintEngine::WorkMode::kAuthenticate); mEngine.fingerDownAction(); Loading @@ -255,6 +260,7 @@ TEST_F(FakeFingerprintEngineTest, AuthenticateCancel) { FingerprintHalProperties::enrollments({2}); FingerprintHalProperties::enrollment_hit(2); mCancel.set_value(); mEngine.notifyFingerdown(); mEngine.authenticateImpl(mCallback.get(), 0, mCancel.get_future()); mEngine.fingerDownAction(); ASSERT_EQ(Error::CANCELED, mCallback->mError); Loading @@ -264,6 +270,7 @@ TEST_F(FakeFingerprintEngineTest, AuthenticateCancel) { TEST_F(FakeFingerprintEngineTest, AuthenticateNotSet) { FingerprintHalProperties::enrollments({1, 2}); FingerprintHalProperties::enrollment_hit({}); mEngine.notifyFingerdown(); mEngine.authenticateImpl(mCallback.get(), 0, mCancel.get_future()); mEngine.fingerDownAction(); ASSERT_TRUE(mCallback->mAuthenticateFailed); Loading @@ -272,6 +279,7 @@ TEST_F(FakeFingerprintEngineTest, AuthenticateNotSet) { TEST_F(FakeFingerprintEngineTest, AuthenticateNotEnrolled) { FingerprintHalProperties::enrollments({1, 2}); FingerprintHalProperties::enrollment_hit(3); mEngine.notifyFingerdown(); mEngine.authenticateImpl(mCallback.get(), 0, mCancel.get_future()); mEngine.fingerDownAction(); ASSERT_TRUE(mCallback->mAuthenticateFailed); Loading @@ -282,6 +290,7 @@ TEST_F(FakeFingerprintEngineTest, AuthenticateLockout) { FingerprintHalProperties::enrollments({22, 2}); FingerprintHalProperties::enrollment_hit(2); FingerprintHalProperties::lockout(true); mEngine.notifyFingerdown(); mEngine.authenticateImpl(mCallback.get(), 0, mCancel.get_future()); mEngine.fingerDownAction(); ASSERT_TRUE(mCallback->mLockoutPermanent); Loading @@ -290,6 +299,7 @@ TEST_F(FakeFingerprintEngineTest, AuthenticateLockout) { TEST_F(FakeFingerprintEngineTest, AuthenticateError8) { FingerprintHalProperties::operation_authenticate_error(8); mEngine.notifyFingerdown(); mEngine.authenticateImpl(mCallback.get(), 0, mCancel.get_future()); mEngine.fingerDownAction(); ASSERT_EQ(mCallback->mError, (Error)8); Loading @@ -298,6 +308,7 @@ TEST_F(FakeFingerprintEngineTest, AuthenticateError8) { TEST_F(FakeFingerprintEngineTest, AuthenticateError9) { FingerprintHalProperties::operation_authenticate_error(1009); mEngine.notifyFingerdown(); mEngine.authenticateImpl(mCallback.get(), 0, mCancel.get_future()); mEngine.fingerDownAction(); ASSERT_EQ(mCallback->mError, (Error)7); Loading @@ -306,6 +317,7 @@ TEST_F(FakeFingerprintEngineTest, AuthenticateError9) { TEST_F(FakeFingerprintEngineTest, AuthenticateFails) { FingerprintHalProperties::operation_authenticate_fails(true); mEngine.notifyFingerdown(); mEngine.authenticateImpl(mCallback.get(), 0, mCancel.get_future()); mEngine.fingerDownAction(); ASSERT_TRUE(mCallback->mAuthenticateFailed); Loading @@ -318,6 +330,7 @@ TEST_F(FakeFingerprintEngineTest, AuthenticateAcquired) { FingerprintHalProperties::enrollment_hit(2); FingerprintHalProperties::operation_authenticate_acquired("4,1009"); int32_t prevCount = mCallback->mLastAcquiredCount; mEngine.notifyFingerdown(); mEngine.authenticateImpl(mCallback.get(), 0, mCancel.get_future()); mEngine.fingerDownAction(); ASSERT_FALSE(mCallback->mAuthenticateFailed); Loading @@ -332,6 +345,7 @@ TEST_F(FakeFingerprintEngineTest, InteractionDetect) { FingerprintHalProperties::enrollments({1, 2}); FingerprintHalProperties::enrollment_hit(2); FingerprintHalProperties::operation_detect_interaction_acquired(""); mEngine.notifyFingerdown(); mEngine.detectInteractionImpl(mCallback.get(), mCancel.get_future()); ASSERT_EQ(mEngine.getWorkMode(), FakeFingerprintEngine::WorkMode::kDetectInteract); mEngine.fingerDownAction(); Loading @@ -345,6 +359,7 @@ TEST_F(FakeFingerprintEngineTest, InteractionDetectCancel) { FingerprintHalProperties::enrollments({1, 2}); FingerprintHalProperties::enrollment_hit(2); mCancel.set_value(); mEngine.notifyFingerdown(); mEngine.detectInteractionImpl(mCallback.get(), mCancel.get_future()); mEngine.fingerDownAction(); ASSERT_EQ(Error::CANCELED, mCallback->mError); Loading @@ -355,6 +370,7 @@ TEST_F(FakeFingerprintEngineTest, InteractionDetectNotSet) { FingerprintHalProperties::detect_interaction(true); FingerprintHalProperties::enrollments({1, 2}); FingerprintHalProperties::enrollment_hit({}); mEngine.notifyFingerdown(); mEngine.detectInteractionImpl(mCallback.get(), mCancel.get_future()); mEngine.fingerDownAction(); ASSERT_EQ(1, mCallback->mInteractionDetectedCount); Loading @@ -363,6 +379,7 @@ TEST_F(FakeFingerprintEngineTest, InteractionDetectNotSet) { TEST_F(FakeFingerprintEngineTest, InteractionDetectNotEnrolled) { FingerprintHalProperties::enrollments({1, 2}); FingerprintHalProperties::enrollment_hit(25); mEngine.notifyFingerdown(); mEngine.detectInteractionImpl(mCallback.get(), mCancel.get_future()); mEngine.fingerDownAction(); ASSERT_EQ(1, mCallback->mInteractionDetectedCount); Loading @@ -371,6 +388,7 @@ TEST_F(FakeFingerprintEngineTest, InteractionDetectNotEnrolled) { TEST_F(FakeFingerprintEngineTest, InteractionDetectError) { FingerprintHalProperties::detect_interaction(true); FingerprintHalProperties::operation_detect_interaction_error(8); mEngine.notifyFingerdown(); mEngine.detectInteractionImpl(mCallback.get(), mCancel.get_future()); mEngine.fingerDownAction(); ASSERT_EQ(0, mCallback->mInteractionDetectedCount); Loading @@ -384,6 +402,7 @@ TEST_F(FakeFingerprintEngineTest, InteractionDetectAcquired) { FingerprintHalProperties::enrollment_hit(2); FingerprintHalProperties::operation_detect_interaction_acquired("4,1013"); int32_t prevCount = mCallback->mLastAcquiredCount; mEngine.notifyFingerdown(); mEngine.detectInteractionImpl(mCallback.get(), mCancel.get_future()); mEngine.fingerDownAction(); ASSERT_EQ(1, mCallback->mInteractionDetectedCount); Loading biometrics/fingerprint/aidl/default/tests/FakeFingerprintEngineUdfpsTest.cpp +3 −0 Original line number Diff line number Diff line Loading @@ -145,6 +145,7 @@ TEST_F(FakeFingerprintEngineUdfpsTest, initialization) { TEST_F(FakeFingerprintEngineUdfpsTest, authenticate) { std::shared_ptr<TestSessionCallback> cb = ndk::SharedRefBase::make<TestSessionCallback>(); std::promise<void> cancel; mEngine.notifyFingerdown(); mEngine.authenticateImpl(cb.get(), 1, cancel.get_future()); ASSERT_TRUE(mEngine.getWorkMode() == FakeFingerprintEngineUdfps::WorkMode::kAuthenticate); mEngine.onPointerDownImpl(1, 2, 3, 4.0, 5.0); Loading @@ -158,6 +159,7 @@ TEST_F(FakeFingerprintEngineUdfpsTest, enroll) { std::promise<void> cancel; keymaster::HardwareAuthToken hat{.mac = {5, 6}}; FingerprintHalProperties::next_enrollment("5:0,0:true"); mEngine.notifyFingerdown(); mEngine.enrollImpl(cb.get(), hat, cancel.get_future()); ASSERT_TRUE(mEngine.getWorkMode() == FakeFingerprintEngineUdfps::WorkMode::kEnroll); mEngine.onPointerDownImpl(1, 2, 3, 4.0, 5.0); Loading @@ -173,6 +175,7 @@ TEST_F(FakeFingerprintEngineUdfpsTest, detectInteraction) { FingerprintHalProperties::operation_detect_interaction_acquired(""); std::shared_ptr<TestSessionCallback> cb = ndk::SharedRefBase::make<TestSessionCallback>(); std::promise<void> cancel; mEngine.notifyFingerdown(); mEngine.detectInteractionImpl(cb.get(), cancel.get_future()); ASSERT_TRUE(mEngine.getWorkMode() == FakeFingerprintEngineUdfps::WorkMode::kDetectInteract); mEngine.onPointerDownImpl(1, 2, 3, 4.0, 5.0); Loading Loading
biometrics/fingerprint/aidl/default/FakeFingerprintEngine.cpp +21 −0 Original line number Diff line number Diff line Loading @@ -62,12 +62,17 @@ void FakeFingerprintEngine::enrollImpl(ISessionCallback* cb, return; } waitForFingerDown(cb, cancel); updateContext(WorkMode::kEnroll, cb, const_cast<std::future<void>&>(cancel), 0, hat); } void FakeFingerprintEngine::authenticateImpl(ISessionCallback* cb, int64_t operationId, const std::future<void>& cancel) { BEGIN_OP(0); waitForFingerDown(cb, cancel); updateContext(WorkMode::kAuthenticate, cb, const_cast<std::future<void>&>(cancel), operationId, keymaster::HardwareAuthToken()); } Loading @@ -84,6 +89,8 @@ void FakeFingerprintEngine::detectInteractionImpl(ISessionCallback* cb, return; } waitForFingerDown(cb, cancel); updateContext(WorkMode::kDetectInteract, cb, const_cast<std::future<void>&>(cancel), 0, keymaster::HardwareAuthToken()); } Loading Loading @@ -398,6 +405,7 @@ ndk::ScopedAStatus FakeFingerprintEngine::onPointerDownImpl(int32_t /*pointerId* ndk::ScopedAStatus FakeFingerprintEngine::onPointerUpImpl(int32_t /*pointerId*/) { BEGIN_OP(0); mFingerIsDown = false; return ndk::ScopedAStatus::ok(); } Loading Loading @@ -533,4 +541,17 @@ void FakeFingerprintEngine::lockoutTimerExpired(ISessionCallback* cb) { isLockoutTimerStarted = false; isLockoutTimerAborted = false; } void FakeFingerprintEngine::waitForFingerDown(ISessionCallback* cb, const std::future<void>& cancel) { while (!mFingerIsDown) { if (shouldCancel(cancel)) { LOG(ERROR) << "waitForFingerDown, Fail: cancel"; cb->onError(Error::CANCELED, 0 /* vendorCode */); return; } SLEEP_MS(10); } } } // namespace aidl::android::hardware::biometrics::fingerprint
biometrics/fingerprint/aidl/default/Session.cpp +1 −0 Original line number Diff line number Diff line Loading @@ -249,6 +249,7 @@ ndk::ScopedAStatus Session::close() { ndk::ScopedAStatus Session::onPointerDown(int32_t pointerId, int32_t x, int32_t y, float minor, float major) { LOG(INFO) << "onPointerDown"; mEngine->notifyFingerdown(); mWorker->schedule(Callable::from([this, pointerId, x, y, minor, major] { mEngine->onPointerDownImpl(pointerId, x, y, minor, major); enterIdling(); Loading
biometrics/fingerprint/aidl/default/include/FakeFingerprintEngine.h +3 −0 Original line number Diff line number Diff line Loading @@ -75,6 +75,7 @@ class FakeFingerprintEngine { enum class WorkMode : int8_t { kIdle = 0, kAuthenticate, kEnroll, kDetectInteract }; WorkMode getWorkMode() { return mWorkMode; } void notifyFingerdown() { mFingerIsDown = true; } virtual std::string toString() const { std::ostringstream os; Loading @@ -100,6 +101,7 @@ class FakeFingerprintEngine { keymaster::HardwareAuthToken mHat; std::future<void> mCancel; int64_t mOperationId; bool mFingerIsDown; private: static constexpr int32_t FINGERPRINT_ACQUIRED_VENDOR_BASE = 1000; Loading @@ -109,6 +111,7 @@ class FakeFingerprintEngine { int32_t getRandomInRange(int32_t bound1, int32_t bound2); bool checkSensorLockout(ISessionCallback*); void clearLockout(ISessionCallback* cb); void waitForFingerDown(ISessionCallback* cb, const std::future<void>& cancel); FakeLockoutTracker mLockoutTracker; Loading
biometrics/fingerprint/aidl/default/tests/FakeFingerprintEngineTest.cpp +19 −0 Original line number Diff line number Diff line Loading @@ -185,6 +185,7 @@ TEST_F(FakeFingerprintEngineTest, Enroll) { FingerprintHalProperties::enrollments({}); FingerprintHalProperties::next_enrollment("4:0,0:true"); keymaster::HardwareAuthToken hat{.mac = {2, 4}}; mEngine.notifyFingerdown(); mEngine.enrollImpl(mCallback.get(), hat, mCancel.get_future()); ASSERT_EQ(mEngine.getWorkMode(), FakeFingerprintEngine::WorkMode::kEnroll); mEngine.fingerDownAction(); Loading @@ -202,6 +203,7 @@ TEST_F(FakeFingerprintEngineTest, EnrollCancel) { FingerprintHalProperties::next_enrollment(next); keymaster::HardwareAuthToken hat{.mac = {2, 4}}; mCancel.set_value(); mEngine.notifyFingerdown(); mEngine.enrollImpl(mCallback.get(), hat, mCancel.get_future()); mEngine.fingerDownAction(); ASSERT_EQ(Error::CANCELED, mCallback->mError); Loading @@ -215,6 +217,7 @@ TEST_F(FakeFingerprintEngineTest, EnrollFail) { auto next = "2:0,0:false"; FingerprintHalProperties::next_enrollment(next); keymaster::HardwareAuthToken hat{.mac = {2, 4}}; mEngine.notifyFingerdown(); mEngine.enrollImpl(mCallback.get(), hat, mCancel.get_future()); mEngine.fingerDownAction(); ASSERT_EQ(Error::UNABLE_TO_PROCESS, mCallback->mError); Loading @@ -228,6 +231,7 @@ TEST_F(FakeFingerprintEngineTest, EnrollAcquired) { FingerprintHalProperties::next_enrollment("4:0,5-[12,1013]:true"); keymaster::HardwareAuthToken hat{.mac = {2, 4}}; int32_t prevCnt = mCallback->mLastAcquiredCount; mEngine.notifyFingerdown(); mEngine.enrollImpl(mCallback.get(), hat, mCancel.get_future()); mEngine.fingerDownAction(); ASSERT_FALSE(FingerprintHalProperties::next_enrollment().has_value()); Loading @@ -242,6 +246,7 @@ TEST_F(FakeFingerprintEngineTest, EnrollAcquired) { TEST_F(FakeFingerprintEngineTest, Authenticate) { FingerprintHalProperties::enrollments({1, 2}); FingerprintHalProperties::enrollment_hit(2); mEngine.notifyFingerdown(); mEngine.authenticateImpl(mCallback.get(), 0, mCancel.get_future()); ASSERT_EQ(mEngine.getWorkMode(), FakeFingerprintEngine::WorkMode::kAuthenticate); mEngine.fingerDownAction(); Loading @@ -255,6 +260,7 @@ TEST_F(FakeFingerprintEngineTest, AuthenticateCancel) { FingerprintHalProperties::enrollments({2}); FingerprintHalProperties::enrollment_hit(2); mCancel.set_value(); mEngine.notifyFingerdown(); mEngine.authenticateImpl(mCallback.get(), 0, mCancel.get_future()); mEngine.fingerDownAction(); ASSERT_EQ(Error::CANCELED, mCallback->mError); Loading @@ -264,6 +270,7 @@ TEST_F(FakeFingerprintEngineTest, AuthenticateCancel) { TEST_F(FakeFingerprintEngineTest, AuthenticateNotSet) { FingerprintHalProperties::enrollments({1, 2}); FingerprintHalProperties::enrollment_hit({}); mEngine.notifyFingerdown(); mEngine.authenticateImpl(mCallback.get(), 0, mCancel.get_future()); mEngine.fingerDownAction(); ASSERT_TRUE(mCallback->mAuthenticateFailed); Loading @@ -272,6 +279,7 @@ TEST_F(FakeFingerprintEngineTest, AuthenticateNotSet) { TEST_F(FakeFingerprintEngineTest, AuthenticateNotEnrolled) { FingerprintHalProperties::enrollments({1, 2}); FingerprintHalProperties::enrollment_hit(3); mEngine.notifyFingerdown(); mEngine.authenticateImpl(mCallback.get(), 0, mCancel.get_future()); mEngine.fingerDownAction(); ASSERT_TRUE(mCallback->mAuthenticateFailed); Loading @@ -282,6 +290,7 @@ TEST_F(FakeFingerprintEngineTest, AuthenticateLockout) { FingerprintHalProperties::enrollments({22, 2}); FingerprintHalProperties::enrollment_hit(2); FingerprintHalProperties::lockout(true); mEngine.notifyFingerdown(); mEngine.authenticateImpl(mCallback.get(), 0, mCancel.get_future()); mEngine.fingerDownAction(); ASSERT_TRUE(mCallback->mLockoutPermanent); Loading @@ -290,6 +299,7 @@ TEST_F(FakeFingerprintEngineTest, AuthenticateLockout) { TEST_F(FakeFingerprintEngineTest, AuthenticateError8) { FingerprintHalProperties::operation_authenticate_error(8); mEngine.notifyFingerdown(); mEngine.authenticateImpl(mCallback.get(), 0, mCancel.get_future()); mEngine.fingerDownAction(); ASSERT_EQ(mCallback->mError, (Error)8); Loading @@ -298,6 +308,7 @@ TEST_F(FakeFingerprintEngineTest, AuthenticateError8) { TEST_F(FakeFingerprintEngineTest, AuthenticateError9) { FingerprintHalProperties::operation_authenticate_error(1009); mEngine.notifyFingerdown(); mEngine.authenticateImpl(mCallback.get(), 0, mCancel.get_future()); mEngine.fingerDownAction(); ASSERT_EQ(mCallback->mError, (Error)7); Loading @@ -306,6 +317,7 @@ TEST_F(FakeFingerprintEngineTest, AuthenticateError9) { TEST_F(FakeFingerprintEngineTest, AuthenticateFails) { FingerprintHalProperties::operation_authenticate_fails(true); mEngine.notifyFingerdown(); mEngine.authenticateImpl(mCallback.get(), 0, mCancel.get_future()); mEngine.fingerDownAction(); ASSERT_TRUE(mCallback->mAuthenticateFailed); Loading @@ -318,6 +330,7 @@ TEST_F(FakeFingerprintEngineTest, AuthenticateAcquired) { FingerprintHalProperties::enrollment_hit(2); FingerprintHalProperties::operation_authenticate_acquired("4,1009"); int32_t prevCount = mCallback->mLastAcquiredCount; mEngine.notifyFingerdown(); mEngine.authenticateImpl(mCallback.get(), 0, mCancel.get_future()); mEngine.fingerDownAction(); ASSERT_FALSE(mCallback->mAuthenticateFailed); Loading @@ -332,6 +345,7 @@ TEST_F(FakeFingerprintEngineTest, InteractionDetect) { FingerprintHalProperties::enrollments({1, 2}); FingerprintHalProperties::enrollment_hit(2); FingerprintHalProperties::operation_detect_interaction_acquired(""); mEngine.notifyFingerdown(); mEngine.detectInteractionImpl(mCallback.get(), mCancel.get_future()); ASSERT_EQ(mEngine.getWorkMode(), FakeFingerprintEngine::WorkMode::kDetectInteract); mEngine.fingerDownAction(); Loading @@ -345,6 +359,7 @@ TEST_F(FakeFingerprintEngineTest, InteractionDetectCancel) { FingerprintHalProperties::enrollments({1, 2}); FingerprintHalProperties::enrollment_hit(2); mCancel.set_value(); mEngine.notifyFingerdown(); mEngine.detectInteractionImpl(mCallback.get(), mCancel.get_future()); mEngine.fingerDownAction(); ASSERT_EQ(Error::CANCELED, mCallback->mError); Loading @@ -355,6 +370,7 @@ TEST_F(FakeFingerprintEngineTest, InteractionDetectNotSet) { FingerprintHalProperties::detect_interaction(true); FingerprintHalProperties::enrollments({1, 2}); FingerprintHalProperties::enrollment_hit({}); mEngine.notifyFingerdown(); mEngine.detectInteractionImpl(mCallback.get(), mCancel.get_future()); mEngine.fingerDownAction(); ASSERT_EQ(1, mCallback->mInteractionDetectedCount); Loading @@ -363,6 +379,7 @@ TEST_F(FakeFingerprintEngineTest, InteractionDetectNotSet) { TEST_F(FakeFingerprintEngineTest, InteractionDetectNotEnrolled) { FingerprintHalProperties::enrollments({1, 2}); FingerprintHalProperties::enrollment_hit(25); mEngine.notifyFingerdown(); mEngine.detectInteractionImpl(mCallback.get(), mCancel.get_future()); mEngine.fingerDownAction(); ASSERT_EQ(1, mCallback->mInteractionDetectedCount); Loading @@ -371,6 +388,7 @@ TEST_F(FakeFingerprintEngineTest, InteractionDetectNotEnrolled) { TEST_F(FakeFingerprintEngineTest, InteractionDetectError) { FingerprintHalProperties::detect_interaction(true); FingerprintHalProperties::operation_detect_interaction_error(8); mEngine.notifyFingerdown(); mEngine.detectInteractionImpl(mCallback.get(), mCancel.get_future()); mEngine.fingerDownAction(); ASSERT_EQ(0, mCallback->mInteractionDetectedCount); Loading @@ -384,6 +402,7 @@ TEST_F(FakeFingerprintEngineTest, InteractionDetectAcquired) { FingerprintHalProperties::enrollment_hit(2); FingerprintHalProperties::operation_detect_interaction_acquired("4,1013"); int32_t prevCount = mCallback->mLastAcquiredCount; mEngine.notifyFingerdown(); mEngine.detectInteractionImpl(mCallback.get(), mCancel.get_future()); mEngine.fingerDownAction(); ASSERT_EQ(1, mCallback->mInteractionDetectedCount); Loading
biometrics/fingerprint/aidl/default/tests/FakeFingerprintEngineUdfpsTest.cpp +3 −0 Original line number Diff line number Diff line Loading @@ -145,6 +145,7 @@ TEST_F(FakeFingerprintEngineUdfpsTest, initialization) { TEST_F(FakeFingerprintEngineUdfpsTest, authenticate) { std::shared_ptr<TestSessionCallback> cb = ndk::SharedRefBase::make<TestSessionCallback>(); std::promise<void> cancel; mEngine.notifyFingerdown(); mEngine.authenticateImpl(cb.get(), 1, cancel.get_future()); ASSERT_TRUE(mEngine.getWorkMode() == FakeFingerprintEngineUdfps::WorkMode::kAuthenticate); mEngine.onPointerDownImpl(1, 2, 3, 4.0, 5.0); Loading @@ -158,6 +159,7 @@ TEST_F(FakeFingerprintEngineUdfpsTest, enroll) { std::promise<void> cancel; keymaster::HardwareAuthToken hat{.mac = {5, 6}}; FingerprintHalProperties::next_enrollment("5:0,0:true"); mEngine.notifyFingerdown(); mEngine.enrollImpl(cb.get(), hat, cancel.get_future()); ASSERT_TRUE(mEngine.getWorkMode() == FakeFingerprintEngineUdfps::WorkMode::kEnroll); mEngine.onPointerDownImpl(1, 2, 3, 4.0, 5.0); Loading @@ -173,6 +175,7 @@ TEST_F(FakeFingerprintEngineUdfpsTest, detectInteraction) { FingerprintHalProperties::operation_detect_interaction_acquired(""); std::shared_ptr<TestSessionCallback> cb = ndk::SharedRefBase::make<TestSessionCallback>(); std::promise<void> cancel; mEngine.notifyFingerdown(); mEngine.detectInteractionImpl(cb.get(), cancel.get_future()); ASSERT_TRUE(mEngine.getWorkMode() == FakeFingerprintEngineUdfps::WorkMode::kDetectInteract); mEngine.onPointerDownImpl(1, 2, 3, 4.0, 5.0); Loading