diff options
author | Ji Soo Shin <jisshin@google.com> | 2019-05-03 17:02:03 -0700 |
---|---|---|
committer | Ji Soo Shin <jisshin@google.com> | 2019-05-07 18:30:05 -0700 |
commit | cb5a400e0b27ca3d1add01ab18eec187103b62ab (patch) | |
tree | dfeb7befe54df85a88165dc9a9e9e33286bff912 | |
parent | aad6a8cdaa989fa5ac38c9663db312a5eed782ba (diff) | |
download | system-test-harness-cb5a400e0b27ca3d1add01ab18eec187103b62ab.tar.gz |
src/faceauth_tests.cc: return profile id stored
We have AuthToken now. We do not have a good way of testing AuthToken
itself (mac); however, this does allows us to implement additional
feature which is userID to profileID mapping. This adds tests to
make sure the mapping is maintained by citadel correctly.
Bug: 128981297
Test: bazel
Change-Id: Ic4767450aeed00f80a9a28879704172860aec10a
Signed-off-by: Ji Soo Shin <jisshin@google.com>
-rw-r--r-- | src/faceauth_tests.cc | 90 |
1 files changed, 56 insertions, 34 deletions
diff --git a/src/faceauth_tests.cc b/src/faceauth_tests.cc index 8a9d9b9..32088fa 100644 --- a/src/faceauth_tests.cc +++ b/src/faceauth_tests.cc @@ -39,12 +39,21 @@ class FaceAuthTest: public testing::Test { static void UnockProfileTest(uint32_t profile1); static void FullMatchMismatchTest(uint32_t profile1, uint32_t profile2, uint32_t slot1, uint32_t slot2); + static fa_token_t MakeToken(uint32_t profile_id); + + static vector<uint64_t> user_ids; }; +vector<uint64_t> FaceAuthTest::user_ids; + unique_ptr<nos::NuggetClientInterface> FaceAuthTest::client; unique_ptr<test_harness::TestHarness> FaceAuthTest::uart_printer; void FaceAuthTest::SetUpTestCase() { + srand(time(NULL)); + for (int i = 0; i < MAX_NUM_PROFILES; ++i) { + user_ids.push_back(rand()); + } uart_printer = test_harness::TestHarness::MakeUnique(); client = nugget_tools::MakeNuggetClient(); @@ -121,9 +130,14 @@ static fa_result_t MakeResult(uint64_t session_id, int32_t error, return result; } -static vector<uint8_t> Task2Buffer(const fa_task_t task, - const fa_embedding_t* embed, - const fa_token_t* token) { +fa_token_t FaceAuthTest::MakeToken(uint32_t profile_id) { + fa_token_t token; + token.user_id = user_ids[profile_id]; + return token; +} + +vector<uint8_t> Task2Buffer(const fa_task_t task, const fa_embedding_t* embed, + const fa_token_t* token) { vector<uint8_t> buffer; for (size_t i = 0; i < sizeof(fa_task_t); ++i) { buffer.push_back(*(reinterpret_cast<const uint8_t*>(&task) + i)); @@ -194,7 +208,7 @@ TEST_F(FaceAuthTest, SimpleMatchMismatchTest) { Run(MakeResult(session_id, FACEAUTH_SUCCESS, FACEAUTH_NOMATCH), MakeTask(session_id, 0x1, FACEAUTH_CMD_COMP), MakeEmbedding(0x11)); session_id++; - Run(MakeResult(session_id, FACEAUTH_SUCCESS), + Run(MakeResult(session_id, FACEAUTH_SUCCESS, 0x1), MakeTask(session_id, 0x1, FACEAUTH_CMD_ENROLL), MakeEmbedding(0x11)); session_id++; Run(MakeResult(session_id, FACEAUTH_SUCCESS, FACEAUTH_MATCH), @@ -212,12 +226,12 @@ void FaceAuthTest::FullMatchMismatchTest(uint32_t profile1, uint32_t profile2, uint64_t session_id = 0xFACE000022220000ull; for (uint32_t i = 0; i < 20; ++i) { session_id++; - Run(MakeResult(session_id, FACEAUTH_SUCCESS), + Run(MakeResult(session_id, FACEAUTH_SUCCESS, profile1), MakeTask(session_id, profile1, FACEAUTH_CMD_ENROLL), MakeEmbedding((i == slot1) ? 0x11 : 0x0)); session_id++; - Run(MakeResult(session_id, FACEAUTH_SUCCESS), + Run(MakeResult(session_id, FACEAUTH_SUCCESS, profile2), MakeTask(session_id, profile2, FACEAUTH_CMD_ENROLL), MakeEmbedding((i == slot2) ? 0xAA : 0x0)); } @@ -236,32 +250,16 @@ void FaceAuthTest::FullMatchMismatchTest(uint32_t profile1, uint32_t profile2, MakeTask(session_id, profile2, FACEAUTH_CMD_COMP), MakeEmbedding(0xAA)); } -TEST_F(FaceAuthTest, ExhaustiveMatchMismatchTest) { - FullMatchMismatchTest(1, 6, 0, 19); - FullMatchMismatchTest(2, 5, 1, 18); - FullMatchMismatchTest(3, 4, 2, 17); - SetUp(); - FullMatchMismatchTest(2, 4, 3, 16); - FullMatchMismatchTest(1, 5, 4, 15); - FullMatchMismatchTest(3, 6, 5, 14); - SetUp(); - FullMatchMismatchTest(3, 5, 6, 13); - FullMatchMismatchTest(1, 4, 7, 12); - FullMatchMismatchTest(2, 6, 8, 11); - SetUp(); - FullMatchMismatchTest(3, 6, 9, 10); -} - TEST_F(FaceAuthTest, SFSFullTest) { uint64_t session_id = 0xFACE000033330000ull; for (int i = 0; i < 20; ++i) { session_id++; - Run(MakeResult(session_id, FACEAUTH_SUCCESS), + Run(MakeResult(session_id, FACEAUTH_SUCCESS, 0x1), MakeTask(session_id, 0x1, FACEAUTH_CMD_ENROLL), MakeEmbedding(0x0)); } session_id++; - Run(MakeResult(session_id, FACEAUTH_ERR_SFS_FULL), + Run(MakeResult(session_id, FACEAUTH_ERR_SFS_FULL, 0x1), MakeTask(session_id, 0x1, FACEAUTH_CMD_ENROLL), MakeEmbedding(0x0)); } @@ -326,21 +324,29 @@ TEST_F(FaceAuthTest, ExhaustiveLockoutTest) { EXPECT_EQ(IsProfileLocked(6), false); } -TEST_F(FaceAuthTest, ValidProfileIDTest) { +TEST_F(FaceAuthTest, ValidProfileUserIDTest) { + fa_token_t token; uint64_t session_id = 0xFACE000088880000ull; session_id++; - Run(MakeResult(session_id, FACEAUTH_ERR_INVALID_ARGS), - MakeTask(session_id, 0, FACEAUTH_CMD_ENROLL), MakeEmbedding(0x0)); + token = MakeToken(1); + Run(MakeResult(session_id, FACEAUTH_SUCCESS, 1), + MakeTask(session_id, 0, FACEAUTH_CMD_ENROLL), MakeEmbedding(0x0), &token); - for (int i = 1; i <= MAX_NUM_PROFILES; ++i) { + for (int i = 1; i <= 6; ++i) { session_id++; - Run(MakeResult(session_id, FACEAUTH_SUCCESS), - MakeTask(session_id, i, FACEAUTH_CMD_ENROLL), MakeEmbedding(0x0)); + token = MakeToken(i); + Run(MakeResult(session_id, FACEAUTH_SUCCESS, i), + MakeTask(session_id, (i % 2) ? i : 0, FACEAUTH_CMD_ENROLL), + MakeEmbedding(0x0), &token); } session_id++; - Run(MakeResult(session_id, FACEAUTH_ERR_INVALID_ARGS), - MakeTask(session_id, MAX_NUM_PROFILES + 1, FACEAUTH_CMD_ENROLL)); + token = MakeToken(2); + Run(MakeResult(session_id, FACEAUTH_ERR_INVALID_TOKEN), + MakeTask(session_id, 3, FACEAUTH_CMD_ENROLL), MakeEmbedding(0x0), &token); + session_id++; + Run(MakeResult(session_id, FACEAUTH_ERR_SFS_FULL), + MakeTask(session_id, 0, FACEAUTH_CMD_ENROLL)); } TEST_F(FaceAuthTest, InvalidCommandTest) { @@ -393,7 +399,7 @@ TEST_F(FaceAuthTest, SimpleFeatureTest) { TEST_F(FaceAuthTest, EmbeddingVersionTest) { uint64_t session_id = 0xFACE0000BBBB0000ull; session_id++; - Run(MakeResult(session_id, FACEAUTH_SUCCESS), + Run(MakeResult(session_id, FACEAUTH_SUCCESS, 1), MakeTask(session_id, 0x1, FACEAUTH_CMD_ENROLL), MakeEmbedding(0x11)); session_id++; Run(MakeResult(session_id, FACEAUTH_SUCCESS, FACEAUTH_MATCH), @@ -406,7 +412,7 @@ TEST_F(FaceAuthTest, EmbeddingVersionTest) { TEST_F(FaceAuthTest, FirmwareVersionTest) { uint64_t session_id = 0xFACE0000CCCC0000ull; session_id++; - Run(MakeResult(session_id, FACEAUTH_SUCCESS), + Run(MakeResult(session_id, FACEAUTH_SUCCESS, 1), MakeTask(session_id, 0x1, FACEAUTH_CMD_ENROLL), MakeEmbedding(0x11)); session_id++; Run(MakeResult(session_id, FACEAUTH_ERR_VERSION, FACEAUTH_NOMATCH), @@ -428,5 +434,21 @@ TEST_F(FaceAuthTest, FirmwareVersionTest) { FACEAUTH_MIN_ABH_VERSION + 0x100), MakeEmbedding(0x11)); } + +TEST_F(FaceAuthTest, ExhaustiveMatchMismatchTest) { + FullMatchMismatchTest(1, 6, 0, 19); + FullMatchMismatchTest(2, 5, 1, 18); + FullMatchMismatchTest(3, 4, 2, 17); + SetUp(); + FullMatchMismatchTest(2, 4, 3, 16); + FullMatchMismatchTest(1, 5, 4, 15); + FullMatchMismatchTest(3, 6, 5, 14); + SetUp(); + FullMatchMismatchTest(3, 5, 6, 13); + FullMatchMismatchTest(1, 4, 7, 12); + FullMatchMismatchTest(2, 6, 8, 11); + SetUp(); + FullMatchMismatchTest(3, 6, 9, 10); +} } |