From e64262f91e96829cef587e4c30ca60fa6b581b38 Mon Sep 17 00:00:00 2001 From: Dan Shi Date: Fri, 18 Oct 2019 10:47:43 -0700 Subject: [PATCH] Convert VtsHalNfcV1_*TargetTest to be parameterized test Bug: 142397658 Test: atest Change-Id: Id8fdc7128ead21d734f0dfa8b9428de9724b490c --- nfc/1.0/vts/functional/Android.bp | 2 +- nfc/1.0/vts/functional/AndroidTest.xml | 33 ++++++++++ .../functional/VtsHalNfcV1_0TargetTest.cpp | 61 ++++++++----------- nfc/1.1/vts/functional/Android.bp | 2 +- .../functional/VtsHalNfcV1_1TargetTest.cpp | 38 +++++------- nfc/1.2/vts/functional/Android.bp | 1 + .../functional/VtsHalNfcV1_2TargetTest.cpp | 33 ++++------ 7 files changed, 86 insertions(+), 84 deletions(-) create mode 100644 nfc/1.0/vts/functional/AndroidTest.xml diff --git a/nfc/1.0/vts/functional/Android.bp b/nfc/1.0/vts/functional/Android.bp index c2e365e532..40b82bbf98 100644 --- a/nfc/1.0/vts/functional/Android.bp +++ b/nfc/1.0/vts/functional/Android.bp @@ -21,5 +21,5 @@ cc_test { static_libs: [ "android.hardware.nfc@1.0", ], - test_suites: ["general-tests"], + test_suites: ["general-tests", "vts-core"], } diff --git a/nfc/1.0/vts/functional/AndroidTest.xml b/nfc/1.0/vts/functional/AndroidTest.xml new file mode 100644 index 0000000000..364672b6da --- /dev/null +++ b/nfc/1.0/vts/functional/AndroidTest.xml @@ -0,0 +1,33 @@ + + + + diff --git a/nfc/1.0/vts/functional/VtsHalNfcV1_0TargetTest.cpp b/nfc/1.0/vts/functional/VtsHalNfcV1_0TargetTest.cpp index e17c961d64..1feae9d50f 100644 --- a/nfc/1.0/vts/functional/VtsHalNfcV1_0TargetTest.cpp +++ b/nfc/1.0/vts/functional/VtsHalNfcV1_0TargetTest.cpp @@ -20,11 +20,12 @@ #include #include #include +#include #include +#include +#include #include -#include -#include using ::android::hardware::nfc::V1_0::INfc; using ::android::hardware::nfc::V1_0::INfcClientCallback; @@ -94,26 +95,11 @@ class NfcClientCallback }; }; -// Test environment for Nfc HIDL HAL. -class NfcHidlEnvironment : public ::testing::VtsHalHidlTargetTestEnvBase { - public: - // get the test environment singleton - static NfcHidlEnvironment* Instance() { - static NfcHidlEnvironment* instance = new NfcHidlEnvironment; - return instance; - } - - virtual void registerTestServices() override { registerTestService(); } - private: - NfcHidlEnvironment() {} -}; - // The main test class for NFC HIDL HAL. -class NfcHidlTest : public ::testing::VtsHalHidlTargetTestBase { +class NfcHidlTest : public ::testing::TestWithParam { public: virtual void SetUp() override { - nfc_ = ::testing::VtsHalHidlTargetTestBase::getService( - NfcHidlEnvironment::Instance()->getServiceName()); + nfc_ = INfc::getService(GetParam()); ASSERT_NE(nfc_, nullptr); nfc_cb_ = new NfcClientCallback(); @@ -186,7 +172,7 @@ class NfcHidlTest : public ::testing::VtsHalHidlTargetTestBase { * Since open and close calls are a part of SetUp() and TearDown(), * the function definition is intentionally kept empty */ -TEST_F(NfcHidlTest, OpenAndClose) {} +TEST_P(NfcHidlTest, OpenAndClose) {} /* * WriteCoreReset: @@ -194,7 +180,7 @@ TEST_F(NfcHidlTest, OpenAndClose) {} * Waits for CORE_RESET_RSP * Checks the status, version number and configuration status */ -TEST_F(NfcHidlTest, WriteCoreReset) { +TEST_P(NfcHidlTest, WriteCoreReset) { std::vector cmd = CORE_RESET_CMD; NfcData data = cmd; EXPECT_EQ(data.size(), nfc_->write(data)); @@ -229,7 +215,7 @@ TEST_F(NfcHidlTest, WriteCoreReset) { * Waits for CORE_RESET_RSP * Checks the status, version number and configuration status */ -TEST_F(NfcHidlTest, WriteCoreResetConfigReset) { +TEST_P(NfcHidlTest, WriteCoreResetConfigReset) { std::vector cmd = CORE_RESET_CMD_CONFIG_RESET; NfcData data = cmd; EXPECT_EQ(data.size(), nfc_->write(data)); @@ -264,7 +250,7 @@ TEST_F(NfcHidlTest, WriteCoreResetConfigReset) { * Waits for response * Checks SYNTAX_ERROR status */ -TEST_F(NfcHidlTest, WriteInvalidCommand) { +TEST_P(NfcHidlTest, WriteInvalidCommand) { // Send an Error Command std::vector cmd = INVALID_COMMAND; NfcData data = cmd; @@ -285,7 +271,7 @@ TEST_F(NfcHidlTest, WriteInvalidCommand) { * Send CORE_CONN_CREATE_CMD for loop-back mode * Check the response */ -TEST_F(NfcHidlTest, WriteInvalidAndThenValidCommand) { +TEST_P(NfcHidlTest, WriteInvalidAndThenValidCommand) { std::vector cmd = CORE_RESET_CMD; NfcData data = cmd; EXPECT_EQ(data.size(), nfc_->write(data)); @@ -349,7 +335,7 @@ TEST_F(NfcHidlTest, WriteInvalidAndThenValidCommand) { * Checks the data received * Repeat to send total of 1Mb data */ -TEST_F(NfcHidlTest, Bandwidth) { +TEST_P(NfcHidlTest, Bandwidth) { std::vector cmd = CORE_RESET_CMD; NfcData data = cmd; EXPECT_EQ(data.size(), nfc_->write(data)); @@ -437,7 +423,7 @@ TEST_F(NfcHidlTest, Bandwidth) { * Waits for NfcEvent.OPEN_CPLT * Checks status */ -TEST_F(NfcHidlTest, PowerCycle) { +TEST_P(NfcHidlTest, PowerCycle) { EXPECT_EQ(NfcStatus::OK, nfc_->powerCycle()); // Wait for NfcEvent.OPEN_CPLT auto res = nfc_cb_->WaitForCallback(kCallbackNameSendEvent); @@ -451,7 +437,7 @@ TEST_F(NfcHidlTest, PowerCycle) { * Calls powerCycle() after close() * Checks status */ -TEST_F(NfcHidlTest, PowerCycleAfterClose) { +TEST_P(NfcHidlTest, PowerCycleAfterClose) { EXPECT_EQ(NfcStatus::OK, nfc_->close()); // Wait for CLOSE_CPLT event auto res = nfc_cb_->WaitForCallback(kCallbackNameSendEvent); @@ -474,7 +460,7 @@ TEST_F(NfcHidlTest, PowerCycleAfterClose) { * Calls coreInitialized() with different data * Waits for NfcEvent.POST_INIT_CPLT */ -TEST_F(NfcHidlTest, CoreInitialized) { +TEST_P(NfcHidlTest, CoreInitialized) { NfcData data; data.resize(1); // These parameters might lead to device specific proprietary behavior @@ -501,7 +487,7 @@ TEST_F(NfcHidlTest, CoreInitialized) { * Calls controlGranted() * Checks the return value */ -TEST_F(NfcHidlTest, ControlGranted) { +TEST_P(NfcHidlTest, ControlGranted) { EXPECT_EQ(NfcStatus::OK, nfc_->controlGranted()); } @@ -510,7 +496,7 @@ TEST_F(NfcHidlTest, ControlGranted) { * Call controlGranted() after close * Checks the return value */ -TEST_F(NfcHidlTest, ControlGrantedAfterClose) { +TEST_P(NfcHidlTest, ControlGrantedAfterClose) { EXPECT_EQ(NfcStatus::OK, nfc_->close()); // Wait for CLOSE_CPLT event auto res = nfc_cb_->WaitForCallback(kCallbackNameSendEvent); @@ -532,7 +518,7 @@ TEST_F(NfcHidlTest, ControlGrantedAfterClose) { * Calls prediscover() * Checks the return value */ -TEST_F(NfcHidlTest, PreDiscover) { +TEST_P(NfcHidlTest, PreDiscover) { EXPECT_EQ(NfcStatus::OK, nfc_->prediscover()); } @@ -541,7 +527,7 @@ TEST_F(NfcHidlTest, PreDiscover) { * Call prediscover() after close * Checks the return value */ -TEST_F(NfcHidlTest, PreDiscoverAfterClose) { +TEST_P(NfcHidlTest, PreDiscoverAfterClose) { EXPECT_EQ(NfcStatus::OK, nfc_->close()); // Wait for CLOSE_CPLT event auto res = nfc_cb_->WaitForCallback(kCallbackNameSendEvent); @@ -564,7 +550,7 @@ TEST_F(NfcHidlTest, PreDiscoverAfterClose) { * Calls close() multiple times * Checks status */ -TEST_F(NfcHidlTest, CloseAfterClose) { +TEST_P(NfcHidlTest, CloseAfterClose) { EXPECT_EQ(NfcStatus::OK, nfc_->close()); // Wait for CLOSE_CPLT event auto res = nfc_cb_->WaitForCallback(kCallbackNameSendEvent); @@ -587,15 +573,18 @@ TEST_F(NfcHidlTest, CloseAfterClose) { * Calls open() multiple times * Checks status */ -TEST_F(NfcHidlTest, OpenAfterOpen) { +TEST_P(NfcHidlTest, OpenAfterOpen) { EXPECT_EQ(NfcStatus::OK, nfc_->open(nfc_cb_)); EXPECT_EQ(NfcStatus::OK, nfc_->open(nfc_cb_)); } +INSTANTIATE_TEST_SUITE_P( + PerInstance, NfcHidlTest, + testing::ValuesIn(android::hardware::getAllHalInstanceNames(INfc::descriptor)), + android::hardware::PrintInstanceNameToString); + int main(int argc, char** argv) { - ::testing::AddGlobalTestEnvironment(NfcHidlEnvironment::Instance()); ::testing::InitGoogleTest(&argc, argv); - NfcHidlEnvironment::Instance()->init(&argc, argv); std::system("svc nfc disable"); /* Turn off NFC */ sleep(5); diff --git a/nfc/1.1/vts/functional/Android.bp b/nfc/1.1/vts/functional/Android.bp index 6698c5a4eb..8da0ce3a78 100644 --- a/nfc/1.1/vts/functional/Android.bp +++ b/nfc/1.1/vts/functional/Android.bp @@ -22,5 +22,5 @@ cc_test { "android.hardware.nfc@1.0", "android.hardware.nfc@1.1", ], - test_suites: ["general-tests"], + test_suites: ["general-tests", "vts-core"], } diff --git a/nfc/1.1/vts/functional/VtsHalNfcV1_1TargetTest.cpp b/nfc/1.1/vts/functional/VtsHalNfcV1_1TargetTest.cpp index 0b7c88bbc2..13537e41f3 100644 --- a/nfc/1.1/vts/functional/VtsHalNfcV1_1TargetTest.cpp +++ b/nfc/1.1/vts/functional/VtsHalNfcV1_1TargetTest.cpp @@ -21,11 +21,12 @@ #include #include #include +#include #include +#include +#include #include -#include -#include using ::android::hardware::nfc::V1_1::INfc; using ::android::hardware::nfc::V1_1::INfcClientCallback; @@ -83,25 +84,11 @@ class NfcClientCallback : public ::testing::VtsHalHidlTargetCallbackBase(); } - private: - NfcHidlEnvironment() {} -}; - // The main test class for NFC HIDL HAL. -class NfcHidlTest : public ::testing::VtsHalHidlTargetTestBase { +class NfcHidlTest : public ::testing::TestWithParam { public: virtual void SetUp() override { - nfc_ = ::testing::VtsHalHidlTargetTestBase::getService(); + nfc_ = INfc::getService(GetParam()); ASSERT_NE(nfc_, nullptr); nfc_cb_ = new NfcClientCallback(); @@ -151,7 +138,7 @@ class NfcHidlTest : public ::testing::VtsHalHidlTargetTestBase { * calls factoryReset() * checks status */ -TEST_F(NfcHidlTest, FactoryReset) { +TEST_P(NfcHidlTest, FactoryReset) { nfc_->factoryReset(); EXPECT_EQ(NfcStatus::OK, nfc_->close()); @@ -174,7 +161,7 @@ TEST_F(NfcHidlTest, FactoryReset) { * Makes an open call, waits for NfcEvent.OPEN_CPLT * Immediately calls closeforPowerOffCase() and waits for NfcEvent.CLOSE_CPLT */ -TEST_F(NfcHidlTest, OpenAndCloseForPowerOff) { +TEST_P(NfcHidlTest, OpenAndCloseForPowerOff) { EXPECT_EQ(NfcStatus::OK, nfc_->closeForPowerOffCase()); // Wait for CLOSE_CPLT event auto res = nfc_cb_->WaitForCallback(kCallbackNameSendEvent); @@ -195,7 +182,7 @@ TEST_F(NfcHidlTest, OpenAndCloseForPowerOff) { * Calls closeForPowerOffCase() * Calls close() - checks failed status */ -TEST_F(NfcHidlTest, CloseForPowerCaseOffAfterClose) { +TEST_P(NfcHidlTest, CloseForPowerCaseOffAfterClose) { EXPECT_EQ(NfcStatus::OK, nfc_->closeForPowerOffCase()); // Wait for CLOSE_CPLT event auto res = nfc_cb_->WaitForCallback(kCallbackNameSendEvent); @@ -218,16 +205,19 @@ TEST_F(NfcHidlTest, CloseForPowerCaseOffAfterClose) { * Calls getConfig() * checks if fields in NfcConfig are populated correctly */ -TEST_F(NfcHidlTest, GetConfig) { +TEST_P(NfcHidlTest, GetConfig) { nfc_->getConfig([](NfcConfig config) { EXPECT_GE(config.maxIsoDepTransceiveLength, MIN_ISO_DEP_TRANSCEIVE_LENGTH); }); } +INSTANTIATE_TEST_SUITE_P( + PerInstance, NfcHidlTest, + testing::ValuesIn(android::hardware::getAllHalInstanceNames(INfc::descriptor)), + android::hardware::PrintInstanceNameToString); + int main(int argc, char** argv) { - ::testing::AddGlobalTestEnvironment(NfcHidlEnvironment::Instance()); ::testing::InitGoogleTest(&argc, argv); - NfcHidlEnvironment::Instance()->init(&argc, argv); std::system("svc nfc disable"); /* Turn off NFC */ sleep(5); diff --git a/nfc/1.2/vts/functional/Android.bp b/nfc/1.2/vts/functional/Android.bp index 13b254cdc0..7b50a36d74 100644 --- a/nfc/1.2/vts/functional/Android.bp +++ b/nfc/1.2/vts/functional/Android.bp @@ -23,4 +23,5 @@ cc_test { "android.hardware.nfc@1.1", "android.hardware.nfc@1.2", ], + test_suites: ["general-tests", "vts-core"], } diff --git a/nfc/1.2/vts/functional/VtsHalNfcV1_2TargetTest.cpp b/nfc/1.2/vts/functional/VtsHalNfcV1_2TargetTest.cpp index 54d3127a75..3ec088d351 100644 --- a/nfc/1.2/vts/functional/VtsHalNfcV1_2TargetTest.cpp +++ b/nfc/1.2/vts/functional/VtsHalNfcV1_2TargetTest.cpp @@ -20,11 +20,12 @@ #include #include #include +#include #include +#include +#include #include -#include -#include using ::android::sp; using ::android::hardware::hidl_vec; @@ -83,26 +84,11 @@ class NfcClientCallback : public ::testing::VtsHalHidlTargetCallbackBase(); } - - private: - NfcHidlEnvironment() {} -}; - // The main test class for NFC HIDL HAL. -class NfcHidlTest : public ::testing::VtsHalHidlTargetTestBase { +class NfcHidlTest : public ::testing::TestWithParam { public: virtual void SetUp() override { - nfc_ = ::testing::VtsHalHidlTargetTestBase::getService(); + nfc_ = INfc::getService(GetParam()); ASSERT_NE(nfc_, nullptr); nfc_cb_ = new NfcClientCallback(); @@ -152,7 +138,7 @@ class NfcHidlTest : public ::testing::VtsHalHidlTargetTestBase { * Calls getConfig() * checks if fields in NfcConfig are populated correctly */ -TEST_F(NfcHidlTest, GetExtendedConfig) { +TEST_P(NfcHidlTest, GetExtendedConfig) { nfc_->getConfig_1_2([](NfcConfig config) { for (uint8_t uicc : config.offHostRouteUicc) { EXPECT_GE(uicc, MIN_OFFHOST_ROUTE_ID); @@ -169,10 +155,13 @@ TEST_F(NfcHidlTest, GetExtendedConfig) { }); } +INSTANTIATE_TEST_SUITE_P( + PerInstance, NfcHidlTest, + testing::ValuesIn(android::hardware::getAllHalInstanceNames(INfc::descriptor)), + android::hardware::PrintInstanceNameToString); + int main(int argc, char** argv) { - ::testing::AddGlobalTestEnvironment(NfcHidlEnvironment::Instance()); ::testing::InitGoogleTest(&argc, argv); - NfcHidlEnvironment::Instance()->init(&argc, argv); std::system("svc nfc disable"); /* Turn off NFC */ sleep(5);