From 989afbaff5d9f69dced8947ec0b16543cb74ddb6 Mon Sep 17 00:00:00 2001 From: Zhuoyao Zhang Date: Thu, 8 Feb 2018 20:53:56 -0800 Subject: [PATCH] Convert gnss hal test to use VtsHalHidlTargetTestEnvBase Bug: 64203181 Test: make vts vts-tradefed run vts -m VtsHalGnssV1_0Target Change-Id: I2d5fa6ef8f37c80c13ab33418821755f1dd2b748 --- .../functional/VtsHalGnssV1_0TargetTest.cpp | 29 +++++++++++++++---- .../functional/VtsHalGnssV1_1TargetTest.cpp | 7 ++++- gnss/1.1/vts/functional/gnss_hal_test.cpp | 3 +- gnss/1.1/vts/functional/gnss_hal_test.h | 18 ++++++++++-- 4 files changed, 48 insertions(+), 9 deletions(-) diff --git a/gnss/1.0/vts/functional/VtsHalGnssV1_0TargetTest.cpp b/gnss/1.0/vts/functional/VtsHalGnssV1_0TargetTest.cpp index b3ab594445..010a46dbc2 100644 --- a/gnss/1.0/vts/functional/VtsHalGnssV1_0TargetTest.cpp +++ b/gnss/1.0/vts/functional/VtsHalGnssV1_0TargetTest.cpp @@ -19,6 +19,7 @@ #include #include +#include #include #include @@ -41,6 +42,21 @@ using android::sp; bool sAgpsIsPresent = false; // if SUPL or XTRA assistance available bool sSignalIsWeak = false; // if GNSS signals are weak (e.g. light indoor) +// Test environment for GNSS HIDL HAL. +class GnssHidlEnvironment : public ::testing::VtsHalHidlTargetTestEnvBase { + public: + // get the test environment singleton + static GnssHidlEnvironment* Instance() { + static GnssHidlEnvironment* instance = new GnssHidlEnvironment; + return instance; + } + + virtual void registerTestServices() override { registerTestService(); } + + private: + GnssHidlEnvironment() {} +}; + // The main test class for GNSS HAL. class GnssHalTest : public ::testing::VtsHalHidlTargetTestBase { public: @@ -51,7 +67,8 @@ class GnssHalTest : public ::testing::VtsHalHidlTargetTestBase { info_called_count_ = 0; notify_count_ = 0; - gnss_hal_ = ::testing::VtsHalHidlTargetTestBase::getService(); + gnss_hal_ = ::testing::VtsHalHidlTargetTestBase::getService( + GnssHidlEnvironment::Instance()->getServiceName()); ASSERT_NE(gnss_hal_, nullptr); gnss_cb_ = new GnssCallback(*this); @@ -456,17 +473,19 @@ TEST_F(GnssHalTest, MeasurementCapabilites) { } int main(int argc, char** argv) { + ::testing::AddGlobalTestEnvironment(GnssHidlEnvironment::Instance()); ::testing::InitGoogleTest(&argc, argv); + GnssHidlEnvironment::Instance()->init(&argc, argv); /* * These arguments not used by automated VTS testing. * Only for use in manual testing, when wanting to run * stronger tests that require the presence of GPS signal. */ for (int i = 1; i < argc; i++) { - if (strcmp(argv[i], "-agps") == 0) { - sAgpsIsPresent = true; - } else if (strcmp(argv[i], "-weak") == 0) { - sSignalIsWeak = true; + if (strcmp(argv[i], "-agps") == 0) { + sAgpsIsPresent = true; + } else if (strcmp(argv[i], "-weak") == 0) { + sSignalIsWeak = true; } } int status = RUN_ALL_TESTS(); diff --git a/gnss/1.1/vts/functional/VtsHalGnssV1_1TargetTest.cpp b/gnss/1.1/vts/functional/VtsHalGnssV1_1TargetTest.cpp index 9b805e490e..ca9eef4822 100644 --- a/gnss/1.1/vts/functional/VtsHalGnssV1_1TargetTest.cpp +++ b/gnss/1.1/vts/functional/VtsHalGnssV1_1TargetTest.cpp @@ -13,12 +13,17 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +#define LOG_TAG "VtsHalGnssV1_1TargetTest" #include +#include "gnss_hal_test.h" + int main(int argc, char** argv) { + ::testing::AddGlobalTestEnvironment(GnssHidlEnvironment::Instance()); ::testing::InitGoogleTest(&argc, argv); + GnssHidlEnvironment::Instance()->init(&argc, argv); int status = RUN_ALL_TESTS(); ALOGI("Test result = %d", status); return status; -} \ No newline at end of file +} diff --git a/gnss/1.1/vts/functional/gnss_hal_test.cpp b/gnss/1.1/vts/functional/gnss_hal_test.cpp index 7e43b92ede..23b73171c0 100644 --- a/gnss/1.1/vts/functional/gnss_hal_test.cpp +++ b/gnss/1.1/vts/functional/gnss_hal_test.cpp @@ -27,7 +27,8 @@ GnssHalTest::GnssHalTest() notify_count_(0) {} void GnssHalTest::SetUp() { - gnss_hal_ = ::testing::VtsHalHidlTargetTestBase::getService(); + gnss_hal_ = ::testing::VtsHalHidlTargetTestBase::getService( + GnssHidlEnvironment::Instance()->getServiceName()); list_gnss_sv_status_.clear(); ASSERT_NE(gnss_hal_, nullptr); } diff --git a/gnss/1.1/vts/functional/gnss_hal_test.h b/gnss/1.1/vts/functional/gnss_hal_test.h index 6aab3cbf88..6d5bb4c0d5 100644 --- a/gnss/1.1/vts/functional/gnss_hal_test.h +++ b/gnss/1.1/vts/functional/gnss_hal_test.h @@ -17,11 +17,10 @@ #ifndef GNSS_HAL_TEST_H_ #define GNSS_HAL_TEST_H_ -#define LOG_TAG "VtsHalGnssV1_1TargetTest" - #include #include +#include #include #include @@ -40,6 +39,21 @@ using android::sp; #define TIMEOUT_SEC 2 // for basic commands/responses +// Test environment for GNSS HIDL HAL. +class GnssHidlEnvironment : public ::testing::VtsHalHidlTargetTestEnvBase { + public: + // get the test environment singleton + static GnssHidlEnvironment* Instance() { + static GnssHidlEnvironment* instance = new GnssHidlEnvironment; + return instance; + } + + virtual void registerTestServices() override { registerTestService(); } + + private: + GnssHidlEnvironment() {} +}; + // The main test class for GNSS HAL. class GnssHalTest : public ::testing::VtsHalHidlTargetTestBase { public: