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

Commit a10570cd authored by Ilya Matyukhin's avatar Ilya Matyukhin Committed by Nelson Li
Browse files

Check for the correct userId in callbacks

Sync the code to aosp, then we can start to covert it to parameterized test.

Bug: 142397658
Test: vts-tradefed run commandAndExit vts-hal -m VtsHalBiometricsFaceV1_0Target
Change-Id: I0c9478d635f67c8ac5c4b47c022d76a6f91de230
parent 9854f58e
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);
}