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

Commit cf57d790 authored by Ilya Matyukhin's avatar Ilya Matyukhin Committed by android-build-merger
Browse files

Merge "Check for the correct userId in callbacks" am: 6692f8b5

am: fe113382

Change-Id: I9559e717dfd33adbe319a95caa5d98ebda5727c8
parents 5a3d7538 fe113382
Loading
Loading
Loading
Loading
+24 −10
Original line number Diff line number Diff line
@@ -64,7 +64,7 @@ struct FaceCallbackArgs {
    // The error passed to the last onError() callback.
    FaceError error;

    // The userId passed to the last onRemoved() callback.
    // The userId passed to the last callback.
    int32_t userId;
};

@@ -74,24 +74,32 @@ struct FaceCallbackArgs {
class FaceCallback : public ::testing::VtsHalHidlTargetCallbackBase<FaceCallbackArgs>,
                     public IBiometricsFaceClientCallback {
  public:
    Return<void> onEnrollResult(uint64_t, uint32_t, int32_t, uint32_t) override {
        NotifyFromCallback(kCallbackNameOnEnrollResult);
    Return<void> onEnrollResult(uint64_t, uint32_t, int32_t userId, uint32_t) override {
        FaceCallbackArgs args = {};
        args.userId = userId;
        NotifyFromCallback(kCallbackNameOnEnrollResult, args);
        return Void();
    }

    Return<void> onAuthenticated(uint64_t, uint32_t, int32_t, const hidl_vec<uint8_t>&) override {
        NotifyFromCallback(kCallbackNameOnAuthenticated);
    Return<void> onAuthenticated(uint64_t, uint32_t, int32_t userId,
                                 const hidl_vec<uint8_t>&) override {
        FaceCallbackArgs args = {};
        args.userId = userId;
        NotifyFromCallback(kCallbackNameOnAuthenticated, args);
        return Void();
    }

    Return<void> onAcquired(uint64_t, int32_t, FaceAcquiredInfo, int32_t) override {
        NotifyFromCallback(kCallbackNameOnAcquired);
    Return<void> onAcquired(uint64_t, int32_t userId, FaceAcquiredInfo, int32_t) override {
        FaceCallbackArgs args = {};
        args.userId = userId;
        NotifyFromCallback(kCallbackNameOnAcquired, args);
        return Void();
    }

    Return<void> onError(uint64_t, int32_t, FaceError error, int32_t) override {
    Return<void> onError(uint64_t, int32_t userId, FaceError error, int32_t) override {
        FaceCallbackArgs args = {};
        args.error = error;
        args.userId = userId;
        NotifyFromCallback(kCallbackNameOnError, args);
        return Void();
    }
@@ -103,8 +111,10 @@ class FaceCallback : public ::testing::VtsHalHidlTargetCallbackBase<FaceCallback
        return Void();
    }

    Return<void> onEnumerate(uint64_t, const hidl_vec<uint32_t>&, int32_t) override {
        NotifyFromCallback(kCallbackNameOnEnumerate);
    Return<void> onEnumerate(uint64_t, const hidl_vec<uint32_t>&, int32_t userId) override {
        FaceCallbackArgs args = {};
        args.userId = userId;
        NotifyFromCallback(kCallbackNameOnEnumerate, args);
        return Void();
    }

@@ -185,6 +195,7 @@ TEST_F(FaceHidlTest, EnrollZeroHatTest) {
    // onError should be called with a meaningful (nonzero) error.
    auto res = mCallback->WaitForCallback(kCallbackNameOnError);
    EXPECT_TRUE(res.no_timeout);
    EXPECT_EQ(kUserId, res.args->userId);
    EXPECT_EQ(FaceError::UNABLE_TO_PROCESS, res.args->error);
}

@@ -205,6 +216,7 @@ TEST_F(FaceHidlTest, EnrollGarbageHatTest) {
    // onError should be called with a meaningful (nonzero) error.
    auto res = mCallback->WaitForCallback(kCallbackNameOnError);
    EXPECT_TRUE(res.no_timeout);
    EXPECT_EQ(kUserId, res.args->userId);
    EXPECT_EQ(FaceError::UNABLE_TO_PROCESS, res.args->error);
}

@@ -271,6 +283,7 @@ TEST_F(FaceHidlTest, EnumerateTest) {
    Return<Status> ret = mService->enumerate();
    ASSERT_EQ(Status::OK, static_cast<Status>(ret));
    auto res = mCallback->WaitForCallback(kCallbackNameOnEnumerate);
    EXPECT_EQ(kUserId, res.args->userId);
    EXPECT_TRUE(res.no_timeout);
}

@@ -330,6 +343,7 @@ TEST_F(FaceHidlTest, CancelTest) {
    auto res = mCallback->WaitForCallback(kCallbackNameOnError);
    // make sure callback was invoked within kRevokeChallengeTimeout
    EXPECT_TRUE(res.no_timeout);
    EXPECT_EQ(kUserId, res.args->userId);
    EXPECT_EQ(FaceError::CANCELED, res.args->error);
}