mirror of
https://github.com/Evolution-X/hardware_interfaces
synced 2026-02-01 16:50:18 +00:00
Merge "[vts-core] add VtsHalGatekeeperV1_0TargetTest to vts-core"
am: ddad94ab0e
Change-Id: I5b9c1d9f23421248f5c7ba35a2e47980148e4c68
This commit is contained in:
@@ -19,5 +19,5 @@ cc_test {
|
|||||||
defaults: ["VtsHalTargetTestDefaults"],
|
defaults: ["VtsHalTargetTestDefaults"],
|
||||||
srcs: ["VtsHalGatekeeperV1_0TargetTest.cpp"],
|
srcs: ["VtsHalGatekeeperV1_0TargetTest.cpp"],
|
||||||
static_libs: ["android.hardware.gatekeeper@1.0"],
|
static_libs: ["android.hardware.gatekeeper@1.0"],
|
||||||
test_suites: ["general-tests"],
|
test_suites: ["general-tests", "vts-core"],
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,7 +24,10 @@
|
|||||||
#include <inttypes.h>
|
#include <inttypes.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
|
||||||
|
#include <gtest/gtest.h>
|
||||||
#include <hardware/hw_auth_token.h>
|
#include <hardware/hw_auth_token.h>
|
||||||
|
#include <hidl/GtestPrinter.h>
|
||||||
|
#include <hidl/ServiceManagement.h>
|
||||||
|
|
||||||
#include <android/log.h>
|
#include <android/log.h>
|
||||||
#include <android/hardware/gatekeeper/1.0/IGatekeeper.h>
|
#include <android/hardware/gatekeeper/1.0/IGatekeeper.h>
|
||||||
@@ -32,9 +35,6 @@
|
|||||||
|
|
||||||
#include <log/log.h>
|
#include <log/log.h>
|
||||||
|
|
||||||
#include <VtsHalHidlTargetTestBase.h>
|
|
||||||
#include <VtsHalHidlTargetTestEnvBase.h>
|
|
||||||
|
|
||||||
using ::android::hardware::hidl_string;
|
using ::android::hardware::hidl_string;
|
||||||
using ::android::hardware::hidl_vec;
|
using ::android::hardware::hidl_vec;
|
||||||
using ::android::hardware::gatekeeper::V1_0::IGatekeeper;
|
using ::android::hardware::gatekeeper::V1_0::IGatekeeper;
|
||||||
@@ -78,22 +78,8 @@ static const hw_auth_token_t *toAuthToken(GatekeeperResponse &rsp) {
|
|||||||
return auth_token;
|
return auth_token;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Test environment for Gatekeeper HIDL HAL.
|
|
||||||
class GatekeeperHidlEnvironment : public ::testing::VtsHalHidlTargetTestEnvBase {
|
|
||||||
public:
|
|
||||||
// get the test environment singleton
|
|
||||||
static GatekeeperHidlEnvironment* Instance() {
|
|
||||||
static GatekeeperHidlEnvironment* instance = new GatekeeperHidlEnvironment;
|
|
||||||
return instance;
|
|
||||||
}
|
|
||||||
|
|
||||||
virtual void registerTestServices() override { registerTestService<IGatekeeper>(); }
|
|
||||||
private:
|
|
||||||
GatekeeperHidlEnvironment() {}
|
|
||||||
};
|
|
||||||
|
|
||||||
// The main test class for Gatekeeper HIDL HAL.
|
// The main test class for Gatekeeper HIDL HAL.
|
||||||
class GatekeeperHidlTest : public ::testing::VtsHalHidlTargetTestBase {
|
class GatekeeperHidlTest : public ::testing::TestWithParam<std::string> {
|
||||||
protected:
|
protected:
|
||||||
void setUid(uint32_t uid) { uid_ = uid; }
|
void setUid(uint32_t uid) { uid_ = uid; }
|
||||||
|
|
||||||
@@ -204,8 +190,7 @@ class GatekeeperHidlTest : public ::testing::VtsHalHidlTargetTestBase {
|
|||||||
GatekeeperHidlTest() : uid_(0) {}
|
GatekeeperHidlTest() : uid_(0) {}
|
||||||
virtual void SetUp() override {
|
virtual void SetUp() override {
|
||||||
GatekeeperResponse rsp;
|
GatekeeperResponse rsp;
|
||||||
gatekeeper_ = ::testing::VtsHalHidlTargetTestBase::getService<IGatekeeper>(
|
gatekeeper_ = IGatekeeper::getService(GetParam());
|
||||||
GatekeeperHidlEnvironment::Instance()->getServiceName<IGatekeeper>());
|
|
||||||
ASSERT_NE(nullptr, gatekeeper_.get());
|
ASSERT_NE(nullptr, gatekeeper_.get());
|
||||||
doDeleteAllUsers(rsp);
|
doDeleteAllUsers(rsp);
|
||||||
}
|
}
|
||||||
@@ -219,7 +204,7 @@ class GatekeeperHidlTest : public ::testing::VtsHalHidlTargetTestBase {
|
|||||||
/**
|
/**
|
||||||
* Ensure we can enroll new password
|
* Ensure we can enroll new password
|
||||||
*/
|
*/
|
||||||
TEST_F(GatekeeperHidlTest, EnrollSuccess) {
|
TEST_P(GatekeeperHidlTest, EnrollSuccess) {
|
||||||
hidl_vec<uint8_t> password;
|
hidl_vec<uint8_t> password;
|
||||||
GatekeeperResponse rsp;
|
GatekeeperResponse rsp;
|
||||||
ALOGI("Testing Enroll (expected success)");
|
ALOGI("Testing Enroll (expected success)");
|
||||||
@@ -231,7 +216,7 @@ TEST_F(GatekeeperHidlTest, EnrollSuccess) {
|
|||||||
/**
|
/**
|
||||||
* Ensure we can not enroll empty password
|
* Ensure we can not enroll empty password
|
||||||
*/
|
*/
|
||||||
TEST_F(GatekeeperHidlTest, EnrollNoPassword) {
|
TEST_P(GatekeeperHidlTest, EnrollNoPassword) {
|
||||||
hidl_vec<uint8_t> password;
|
hidl_vec<uint8_t> password;
|
||||||
GatekeeperResponse rsp;
|
GatekeeperResponse rsp;
|
||||||
ALOGI("Testing Enroll (expected failure)");
|
ALOGI("Testing Enroll (expected failure)");
|
||||||
@@ -242,7 +227,7 @@ TEST_F(GatekeeperHidlTest, EnrollNoPassword) {
|
|||||||
/**
|
/**
|
||||||
* Ensure we can successfully verify previously enrolled password
|
* Ensure we can successfully verify previously enrolled password
|
||||||
*/
|
*/
|
||||||
TEST_F(GatekeeperHidlTest, VerifySuccess) {
|
TEST_P(GatekeeperHidlTest, VerifySuccess) {
|
||||||
GatekeeperResponse enrollRsp;
|
GatekeeperResponse enrollRsp;
|
||||||
GatekeeperResponse verifyRsp;
|
GatekeeperResponse verifyRsp;
|
||||||
hidl_vec<uint8_t> password;
|
hidl_vec<uint8_t> password;
|
||||||
@@ -258,7 +243,7 @@ TEST_F(GatekeeperHidlTest, VerifySuccess) {
|
|||||||
* Ensure we can securely update password (keep the same
|
* Ensure we can securely update password (keep the same
|
||||||
* secure user_id) if we prove we know old password
|
* secure user_id) if we prove we know old password
|
||||||
*/
|
*/
|
||||||
TEST_F(GatekeeperHidlTest, TrustedReenroll) {
|
TEST_P(GatekeeperHidlTest, TrustedReenroll) {
|
||||||
GatekeeperResponse enrollRsp;
|
GatekeeperResponse enrollRsp;
|
||||||
GatekeeperRequest reenrollReq;
|
GatekeeperRequest reenrollReq;
|
||||||
GatekeeperResponse reenrollRsp;
|
GatekeeperResponse reenrollRsp;
|
||||||
@@ -297,7 +282,7 @@ TEST_F(GatekeeperHidlTest, TrustedReenroll) {
|
|||||||
* Ensure we can update password (and get new
|
* Ensure we can update password (and get new
|
||||||
* secure user_id) if we don't know old password
|
* secure user_id) if we don't know old password
|
||||||
*/
|
*/
|
||||||
TEST_F(GatekeeperHidlTest, UntrustedReenroll) {
|
TEST_P(GatekeeperHidlTest, UntrustedReenroll) {
|
||||||
GatekeeperResponse enrollRsp;
|
GatekeeperResponse enrollRsp;
|
||||||
GatekeeperResponse reenrollRsp;
|
GatekeeperResponse reenrollRsp;
|
||||||
GatekeeperResponse verifyRsp;
|
GatekeeperResponse verifyRsp;
|
||||||
@@ -327,7 +312,7 @@ TEST_F(GatekeeperHidlTest, UntrustedReenroll) {
|
|||||||
/**
|
/**
|
||||||
* Ensure we dont get successful verify with invalid data
|
* Ensure we dont get successful verify with invalid data
|
||||||
*/
|
*/
|
||||||
TEST_F(GatekeeperHidlTest, VerifyNoData) {
|
TEST_P(GatekeeperHidlTest, VerifyNoData) {
|
||||||
hidl_vec<uint8_t> password;
|
hidl_vec<uint8_t> password;
|
||||||
hidl_vec<uint8_t> passwordHandle;
|
hidl_vec<uint8_t> passwordHandle;
|
||||||
GatekeeperResponse verifyRsp;
|
GatekeeperResponse verifyRsp;
|
||||||
@@ -341,7 +326,7 @@ TEST_F(GatekeeperHidlTest, VerifyNoData) {
|
|||||||
/**
|
/**
|
||||||
* Ensure we can not verify password after we enrolled it and then deleted user
|
* Ensure we can not verify password after we enrolled it and then deleted user
|
||||||
*/
|
*/
|
||||||
TEST_F(GatekeeperHidlTest, DeleteUserTest) {
|
TEST_P(GatekeeperHidlTest, DeleteUserTest) {
|
||||||
hidl_vec<uint8_t> password;
|
hidl_vec<uint8_t> password;
|
||||||
GatekeeperResponse enrollRsp;
|
GatekeeperResponse enrollRsp;
|
||||||
GatekeeperResponse verifyRsp;
|
GatekeeperResponse verifyRsp;
|
||||||
@@ -368,7 +353,7 @@ TEST_F(GatekeeperHidlTest, DeleteUserTest) {
|
|||||||
/**
|
/**
|
||||||
* Ensure we can not delete a user that does not exist
|
* Ensure we can not delete a user that does not exist
|
||||||
*/
|
*/
|
||||||
TEST_F(GatekeeperHidlTest, DeleteInvalidUserTest) {
|
TEST_P(GatekeeperHidlTest, DeleteInvalidUserTest) {
|
||||||
hidl_vec<uint8_t> password;
|
hidl_vec<uint8_t> password;
|
||||||
GatekeeperResponse enrollRsp;
|
GatekeeperResponse enrollRsp;
|
||||||
GatekeeperResponse verifyRsp;
|
GatekeeperResponse verifyRsp;
|
||||||
@@ -400,7 +385,7 @@ TEST_F(GatekeeperHidlTest, DeleteInvalidUserTest) {
|
|||||||
* Ensure we can not verify passwords after we enrolled them and then deleted
|
* Ensure we can not verify passwords after we enrolled them and then deleted
|
||||||
* all users
|
* all users
|
||||||
*/
|
*/
|
||||||
TEST_F(GatekeeperHidlTest, DeleteAllUsersTest) {
|
TEST_P(GatekeeperHidlTest, DeleteAllUsersTest) {
|
||||||
struct UserData {
|
struct UserData {
|
||||||
uint32_t userId;
|
uint32_t userId;
|
||||||
hidl_vec<uint8_t> password;
|
hidl_vec<uint8_t> password;
|
||||||
@@ -448,11 +433,7 @@ TEST_F(GatekeeperHidlTest, DeleteAllUsersTest) {
|
|||||||
ALOGI("Testing deleteAllUsers done: rsp=%" PRIi32, delAllRsp.code);
|
ALOGI("Testing deleteAllUsers done: rsp=%" PRIi32, delAllRsp.code);
|
||||||
}
|
}
|
||||||
|
|
||||||
int main(int argc, char **argv) {
|
INSTANTIATE_TEST_SUITE_P(
|
||||||
::testing::AddGlobalTestEnvironment(GatekeeperHidlEnvironment::Instance());
|
PerInstance, GatekeeperHidlTest,
|
||||||
::testing::InitGoogleTest(&argc, argv);
|
testing::ValuesIn(android::hardware::getAllHalInstanceNames(IGatekeeper::descriptor)),
|
||||||
GatekeeperHidlEnvironment::Instance()->init(&argc, argv);
|
android::hardware::PrintInstanceNameToString);
|
||||||
int status = RUN_ALL_TESTS();
|
|
||||||
ALOGI("Test result = %d", status);
|
|
||||||
return status;
|
|
||||||
}
|
|
||||||
|
|||||||
Reference in New Issue
Block a user