From ac4058a7210a4ce5b3c77bbf38e1a17b6fb91dee Mon Sep 17 00:00:00 2001 From: Dan Shi Date: Wed, 11 Dec 2019 10:47:47 -0800 Subject: [PATCH] Convert VtsHalSecureElementV1_*TargetTest to be parameterized test Bug: 142397658 Test: atest VtsHalSecureElementV1_0TargetTest \ VtsHalSecureElementV1_1TargetTest Change-Id: Ied7b7b8ad53ac0f79cceb567257c14cd3bd221f1 --- secure_element/1.0/vts/functional/Android.bp | 2 +- .../VtsHalSecureElementV1_0TargetTest.cpp | 54 ++++++------------- secure_element/1.1/vts/functional/Android.bp | 2 +- .../VtsHalSecureElementV1_1TargetTest.cpp | 46 +++++----------- 4 files changed, 30 insertions(+), 74 deletions(-) diff --git a/secure_element/1.0/vts/functional/Android.bp b/secure_element/1.0/vts/functional/Android.bp index 2b2b73e1dd..6dbd027747 100644 --- a/secure_element/1.0/vts/functional/Android.bp +++ b/secure_element/1.0/vts/functional/Android.bp @@ -21,5 +21,5 @@ cc_test { static_libs: [ "android.hardware.secure_element@1.0", ], - test_suites: ["general-tests"], + test_suites: ["general-tests", "vts-core"], } diff --git a/secure_element/1.0/vts/functional/VtsHalSecureElementV1_0TargetTest.cpp b/secure_element/1.0/vts/functional/VtsHalSecureElementV1_0TargetTest.cpp index 671923a616..93ffd0538d 100644 --- a/secure_element/1.0/vts/functional/VtsHalSecureElementV1_0TargetTest.cpp +++ b/secure_element/1.0/vts/functional/VtsHalSecureElementV1_0TargetTest.cpp @@ -20,10 +20,11 @@ #include #include #include +#include +#include +#include #include -#include -#include using ::android::hardware::secure_element::V1_0::ISecureElement; using ::android::hardware::secure_element::V1_0::ISecureElementHalCallback; @@ -32,7 +33,6 @@ using ::android::hardware::secure_element::V1_0::LogicalChannelResponse; using ::android::hardware::Return; using ::android::hardware::Void; using ::android::sp; -using ::testing::VtsHalHidlTargetTestEnvBase; #define DATA_APDU \ { 0x00, 0x08, 0x00, 0x00, 0x00 } @@ -63,30 +63,11 @@ class SecureElementHalCallback }; }; -class SecureElementHidlEnvironment : public VtsHalHidlTargetTestEnvBase { - public: - // get the test environment singleton - static SecureElementHidlEnvironment* Instance() { - static SecureElementHidlEnvironment* instance = new SecureElementHidlEnvironment; - return instance; - } - - virtual void registerTestServices() override { registerTestService(); } - - private: - SecureElementHidlEnvironment() {} - - GTEST_DISALLOW_COPY_AND_ASSIGN_(SecureElementHidlEnvironment); -}; - -class SecureElementHidlTest : public ::testing::VtsHalHidlTargetTestBase { - public: +class SecureElementHidlTest : public ::testing::TestWithParam { + public: virtual void SetUp() override { - std::string serviceName = - SecureElementHidlEnvironment::Instance()->getServiceName("eSE1"); - LOG(INFO) << "get service with name:" << serviceName; - ASSERT_FALSE(serviceName.empty()); - se_ = ::testing::VtsHalHidlTargetTestBase::getService(serviceName); + LOG(INFO) << "get service with name:" << GetParam(); + se_ = ISecureElement::getService(GetParam()); ASSERT_NE(se_, nullptr); se_cb_ = new SecureElementHalCallback(); @@ -105,7 +86,7 @@ class SecureElementHidlTest : public ::testing::VtsHalHidlTargetTestBase { * isCardPresent: * Expects the card to be present */ -TEST_F(SecureElementHidlTest, isCardPresent) { +TEST_P(SecureElementHidlTest, isCardPresent) { EXPECT_TRUE(se_->isCardPresent()); } @@ -113,7 +94,7 @@ TEST_F(SecureElementHidlTest, isCardPresent) { * transmit: * Check status word in the response */ -TEST_F(SecureElementHidlTest, transmit) { +TEST_P(SecureElementHidlTest, transmit) { std::vector aid = ANDROID_TEST_AID; SecureElementStatus statusReturned; LogicalChannelResponse response; @@ -153,7 +134,7 @@ TEST_F(SecureElementHidlTest, transmit) { * If the secure element allows opening of basic channel: * open channel, check the length of selectResponse and close the channel */ -TEST_F(SecureElementHidlTest, openBasicChannel) { +TEST_P(SecureElementHidlTest, openBasicChannel) { std::vector aid = ANDROID_TEST_AID; SecureElementStatus statusReturned; std::vector response; @@ -179,7 +160,7 @@ TEST_F(SecureElementHidlTest, openBasicChannel) { /* * GetATR */ -TEST_F(SecureElementHidlTest, getAtr) { +TEST_P(SecureElementHidlTest, getAtr) { std::vector atr; se_->getAtr([&atr](std::vector atrReturned) { atr.resize(atrReturned.size()); @@ -200,7 +181,7 @@ TEST_F(SecureElementHidlTest, getAtr) { * Check status * Close Channel */ -TEST_F(SecureElementHidlTest, openCloseLogicalChannel) { +TEST_P(SecureElementHidlTest, openCloseLogicalChannel) { std::vector aid = ANDROID_TEST_AID; SecureElementStatus statusReturned; LogicalChannelResponse response; @@ -223,10 +204,7 @@ TEST_F(SecureElementHidlTest, openCloseLogicalChannel) { EXPECT_EQ(SecureElementStatus::SUCCESS, se_->closeChannel(response.channelNumber)); } -int main(int argc, char** argv) { - ::testing::AddGlobalTestEnvironment(SecureElementHidlEnvironment::Instance()); - ::testing::InitGoogleTest(&argc, argv); - SecureElementHidlEnvironment::Instance()->init(&argc, argv); - int status = RUN_ALL_TESTS(); - return status; -} +INSTANTIATE_TEST_SUITE_P( + PerInstance, SecureElementHidlTest, + testing::ValuesIn(android::hardware::getAllHalInstanceNames(ISecureElement::descriptor)), + android::hardware::PrintInstanceNameToString); \ No newline at end of file diff --git a/secure_element/1.1/vts/functional/Android.bp b/secure_element/1.1/vts/functional/Android.bp index 51410bde15..a2c39dc973 100644 --- a/secure_element/1.1/vts/functional/Android.bp +++ b/secure_element/1.1/vts/functional/Android.bp @@ -22,5 +22,5 @@ cc_test { "android.hardware.secure_element@1.0", "android.hardware.secure_element@1.1", ], - test_suites: ["general-tests"], + test_suites: ["general-tests", "vts-core"], } diff --git a/secure_element/1.1/vts/functional/VtsHalSecureElementV1_1TargetTest.cpp b/secure_element/1.1/vts/functional/VtsHalSecureElementV1_1TargetTest.cpp index f8765ca834..66fc47cca1 100644 --- a/secure_element/1.1/vts/functional/VtsHalSecureElementV1_1TargetTest.cpp +++ b/secure_element/1.1/vts/functional/VtsHalSecureElementV1_1TargetTest.cpp @@ -22,10 +22,11 @@ #include #include #include +#include +#include +#include #include -#include -#include using ::android::sp; using ::android::hardware::hidl_string; @@ -33,7 +34,6 @@ using ::android::hardware::Return; using ::android::hardware::Void; using ::android::hardware::secure_element::V1_1::ISecureElement; using ::android::hardware::secure_element::V1_1::ISecureElementHalCallback; -using ::testing::VtsHalHidlTargetTestEnvBase; constexpr char kCallbackNameOnStateChange[] = "onStateChange"; @@ -60,30 +60,11 @@ class SecureElementHalCallback Return onStateChange(__attribute__((unused)) bool state) override { return Void(); } }; -class SecureElementHidlEnvironment : public VtsHalHidlTargetTestEnvBase { - public: - // get the test environment singleton - static SecureElementHidlEnvironment* Instance() { - static SecureElementHidlEnvironment* instance = new SecureElementHidlEnvironment; - return instance; - } - - virtual void registerTestServices() override { registerTestService(); } - - private: - SecureElementHidlEnvironment() {} - - GTEST_DISALLOW_COPY_AND_ASSIGN_(SecureElementHidlEnvironment); -}; - -class SecureElementHidlTest : public ::testing::VtsHalHidlTargetTestBase { - public: +class SecureElementHidlTest : public ::testing::TestWithParam { + public: virtual void SetUp() override { - std::string serviceName = - SecureElementHidlEnvironment::Instance()->getServiceName("eSE1"); - LOG(INFO) << "get service with name:" << serviceName; - ASSERT_FALSE(serviceName.empty()); - se_ = ::testing::VtsHalHidlTargetTestBase::getService(serviceName); + LOG(INFO) << "get service with name:" << GetParam(); + se_ = ISecureElement::getService(GetParam()); ASSERT_NE(se_, nullptr); se_cb_ = new SecureElementHalCallback(); @@ -103,14 +84,11 @@ class SecureElementHidlTest : public ::testing::VtsHalHidlTargetTestBase { * isCardPresent: * Expects the card to be present */ -TEST_F(SecureElementHidlTest, isCardPresent) { +TEST_P(SecureElementHidlTest, isCardPresent) { EXPECT_TRUE(se_->isCardPresent()); } -int main(int argc, char** argv) { - ::testing::AddGlobalTestEnvironment(SecureElementHidlEnvironment::Instance()); - ::testing::InitGoogleTest(&argc, argv); - SecureElementHidlEnvironment::Instance()->init(&argc, argv); - int status = RUN_ALL_TESTS(); - return status; -} +INSTANTIATE_TEST_SUITE_P( + PerInstance, SecureElementHidlTest, + testing::ValuesIn(android::hardware::getAllHalInstanceNames(ISecureElement::descriptor)), + android::hardware::PrintInstanceNameToString);