From 89af69eb05fde34496367c78082e25bfc24492af Mon Sep 17 00:00:00 2001 From: Dan Shi Date: Tue, 15 Oct 2019 13:32:02 -0700 Subject: [PATCH] Convert VtsHalGnssV2_0TargetTest to be parameterized test Bug: 142397658 Test: atest VtsHalGnssV2_0TargetTest atest VtsHalGnssV2_0Target Change-Id: I0402e62265f71b4e2c141624ce12b627d965c8ee --- gnss/2.0/vts/functional/Android.bp | 1 + .../functional/VtsHalGnssV2_0TargetTest.cpp | 18 +++---- gnss/2.0/vts/functional/gnss_hal_test.cpp | 5 +- gnss/2.0/vts/functional/gnss_hal_test.h | 23 ++------- .../vts/functional/gnss_hal_test_cases.cpp | 47 ++++++++++--------- 5 files changed, 41 insertions(+), 53 deletions(-) diff --git a/gnss/2.0/vts/functional/Android.bp b/gnss/2.0/vts/functional/Android.bp index 278d87b117..9aa13349b0 100644 --- a/gnss/2.0/vts/functional/Android.bp +++ b/gnss/2.0/vts/functional/Android.bp @@ -30,4 +30,5 @@ cc_test { "android.hardware.gnss@2.0", "android.hardware.gnss@common-vts-lib", ], + test_suites: ["general-tests", "vts-core"], } diff --git a/gnss/2.0/vts/functional/VtsHalGnssV2_0TargetTest.cpp b/gnss/2.0/vts/functional/VtsHalGnssV2_0TargetTest.cpp index ae36c50689..2c74fa37be 100644 --- a/gnss/2.0/vts/functional/VtsHalGnssV2_0TargetTest.cpp +++ b/gnss/2.0/vts/functional/VtsHalGnssV2_0TargetTest.cpp @@ -15,15 +15,15 @@ */ #define LOG_TAG "VtsHalGnssV2_0TargetTest" -#include +#include +#include +#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; -} +using android::hardware::gnss::V2_0::IGnss; + +INSTANTIATE_TEST_SUITE_P( + PerInstance, GnssHalTest, + testing::ValuesIn(android::hardware::getAllHalInstanceNames(IGnss::descriptor)), + android::hardware::PrintInstanceNameToString); \ No newline at end of file diff --git a/gnss/2.0/vts/functional/gnss_hal_test.cpp b/gnss/2.0/vts/functional/gnss_hal_test.cpp index 14ae43ce26..8ca3f684a3 100644 --- a/gnss/2.0/vts/functional/gnss_hal_test.cpp +++ b/gnss/2.0/vts/functional/gnss_hal_test.cpp @@ -20,12 +20,13 @@ #include #include "Utils.h" +#include + using ::android::hardware::gnss::common::Utils; // Implementations for the main test class for GNSS HAL void GnssHalTest::SetUp() { - gnss_hal_ = ::testing::VtsHalHidlTargetTestBase::getService( - GnssHidlEnvironment::Instance()->getServiceName()); + gnss_hal_ = IGnss::getService(GetParam()); ASSERT_NE(gnss_hal_, nullptr); SetUpGnssCallback(); diff --git a/gnss/2.0/vts/functional/gnss_hal_test.h b/gnss/2.0/vts/functional/gnss_hal_test.h index 7d07c0f423..4f7b87a485 100644 --- a/gnss/2.0/vts/functional/gnss_hal_test.h +++ b/gnss/2.0/vts/functional/gnss_hal_test.h @@ -17,11 +17,11 @@ #ifndef GNSS_HAL_TEST_H_ #define GNSS_HAL_TEST_H_ -#include -#include #include #include "GnssCallbackEventQueue.h" +#include + using android::hardware::hidl_vec; using android::hardware::Return; using android::hardware::Void; @@ -45,24 +45,9 @@ 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: +class GnssHalTest : public testing::TestWithParam { + public: virtual void SetUp() override; virtual void TearDown() override; diff --git a/gnss/2.0/vts/functional/gnss_hal_test_cases.cpp b/gnss/2.0/vts/functional/gnss_hal_test_cases.cpp index ca3edc57d4..c442cc6bf8 100644 --- a/gnss/2.0/vts/functional/gnss_hal_test_cases.cpp +++ b/gnss/2.0/vts/functional/gnss_hal_test_cases.cpp @@ -16,10 +16,11 @@ #define LOG_TAG "GnssHalTestCases" -#include #include #include "Utils.h" +#include + using android::hardware::hidl_string; using android::hardware::hidl_vec; @@ -51,13 +52,13 @@ using android::hardware::gnss::visibility_control::V1_0::IGnssVisibilityControl; * * Empty test fixture to verify basic Setup & Teardown */ -TEST_F(GnssHalTest, SetupTeardownCreateCleanup) {} +TEST_P(GnssHalTest, SetupTeardownCreateCleanup) {} /* * TestGnssMeasurementExtension: * Gets the GnssMeasurementExtension and verifies that it returns an actual extension. */ -TEST_F(GnssHalTest, TestGnssMeasurementExtension) { +TEST_P(GnssHalTest, TestGnssMeasurementExtension) { auto gnssMeasurement_2_0 = gnss_hal_->getExtensionGnssMeasurement_2_0(); auto gnssMeasurement_1_1 = gnss_hal_->getExtensionGnssMeasurement_1_1(); auto gnssMeasurement_1_0 = gnss_hal_->getExtensionGnssMeasurement(); @@ -80,7 +81,7 @@ TEST_F(GnssHalTest, TestGnssMeasurementExtension) { * The GNSS HAL 2.0 implementation must support @2.0::IGnssConfiguration interface due to * the deprecation of some methods in @1.0::IGnssConfiguration interface. */ -TEST_F(GnssHalTest, TestGnssConfigurationExtension) { +TEST_P(GnssHalTest, TestGnssConfigurationExtension) { auto gnssConfiguration = gnss_hal_->getExtensionGnssConfiguration_2_0(); ASSERT_TRUE(gnssConfiguration.isOk()); sp iGnssConfiguration = gnssConfiguration; @@ -96,7 +97,7 @@ TEST_F(GnssHalTest, TestGnssConfigurationExtension) { * TestGnssConfiguration_setSuplEs_Deprecation: * Calls setSuplEs and verifies that it returns false. */ -TEST_F(GnssHalTest, TestGnssConfiguration_setSuplEs_Deprecation) { +TEST_P(GnssHalTest, TestGnssConfiguration_setSuplEs_Deprecation) { auto gnssConfiguration = gnss_hal_->getExtensionGnssConfiguration_2_0(); ASSERT_TRUE(gnssConfiguration.isOk()); sp iGnssConfiguration = gnssConfiguration; @@ -111,7 +112,7 @@ TEST_F(GnssHalTest, TestGnssConfiguration_setSuplEs_Deprecation) { * TestGnssConfiguration_setGpsLock_Deprecation: * Calls setGpsLock and verifies that it returns false. */ -TEST_F(GnssHalTest, TestGnssConfiguration_setGpsLock_Deprecation) { +TEST_P(GnssHalTest, TestGnssConfiguration_setGpsLock_Deprecation) { auto gnssConfiguration = gnss_hal_->getExtensionGnssConfiguration_2_0(); ASSERT_TRUE(gnssConfiguration.isOk()); sp iGnssConfiguration = gnssConfiguration; @@ -130,7 +131,7 @@ TEST_F(GnssHalTest, TestGnssConfiguration_setGpsLock_Deprecation) { * @2.0::IAGnssRil interface due to the deprecation of framework network API methods needed * to support the @1.0::IAGnssRil interface. */ -TEST_F(GnssHalTest, TestAGnssRilExtension) { +TEST_P(GnssHalTest, TestAGnssRilExtension) { auto agnssRil_2_0 = gnss_hal_->getExtensionAGnssRil_2_0(); ASSERT_TRUE(agnssRil_2_0.isOk()); sp iAGnssRil_2_0 = agnssRil_2_0; @@ -148,7 +149,7 @@ TEST_F(GnssHalTest, TestAGnssRilExtension) { * 1. Updates GNSS HAL that a network has connected. * 2. Updates GNSS HAL that network has disconnected. */ -TEST_F(GnssHalTest, TestAGnssRil_UpdateNetworkState_2_0) { +TEST_P(GnssHalTest, TestAGnssRil_UpdateNetworkState_2_0) { auto agnssRil = gnss_hal_->getExtensionAGnssRil_2_0(); ASSERT_TRUE(agnssRil.isOk()); sp iAGnssRil = agnssRil; @@ -180,7 +181,7 @@ TEST_F(GnssHalTest, TestAGnssRil_UpdateNetworkState_2_0) { * 2. constellation is valid. * 3. state is valid. */ -TEST_F(GnssHalTest, TestGnssMeasurementFields) { +TEST_P(GnssHalTest, TestGnssMeasurementFields) { const int kFirstGnssMeasurementTimeoutSeconds = 10; auto gnssMeasurement = gnss_hal_->getExtensionGnssMeasurement_2_0(); @@ -234,7 +235,7 @@ TEST_F(GnssHalTest, TestGnssMeasurementFields) { * @2.0::IAGnss interface due to the deprecation of framework network API methods needed * to support the @1.0::IAGnss interface. */ -TEST_F(GnssHalTest, TestAGnssExtension) { +TEST_P(GnssHalTest, TestAGnssExtension) { auto agnss_2_0 = gnss_hal_->getExtensionAGnss_2_0(); ASSERT_TRUE(agnss_2_0.isOk()); sp iAGnss_2_0 = agnss_2_0; @@ -258,7 +259,7 @@ TEST_F(GnssHalTest, TestAGnssExtension) { * TestGnssNiExtension_Deprecation: * Gets the @1.0::IGnssNi extension and verifies that it is a nullptr. */ -TEST_F(GnssHalTest, TestGnssNiExtension_Deprecation) { +TEST_P(GnssHalTest, TestGnssNiExtension_Deprecation) { // Verify IGnssNi 1.0 is not supported. auto gnssNi = gnss_hal_->getExtensionGnssNi(); ASSERT_TRUE(!gnssNi.isOk() || ((sp)gnssNi) == nullptr); @@ -269,7 +270,7 @@ TEST_F(GnssHalTest, TestGnssNiExtension_Deprecation) { * Gets the GnssVisibilityControlExtension and if it is not null, verifies that it supports * the gnss.visibility_control@1.0::IGnssVisibilityControl interface by invoking a method. */ -TEST_F(GnssHalTest, TestGnssVisibilityControlExtension) { +TEST_P(GnssHalTest, TestGnssVisibilityControlExtension) { auto gnssVisibilityControl = gnss_hal_->getExtensionVisibilityControl(); ASSERT_TRUE(gnssVisibilityControl.isOk()); sp iGnssVisibilityControl = gnssVisibilityControl; @@ -290,7 +291,7 @@ TEST_F(GnssHalTest, TestGnssVisibilityControlExtension) { * capabilities are reported and the mandatory LOS_SATS or the EXCESS_PATH_LENGTH * capability flag is set. */ -TEST_F(GnssHalTest, TestGnssMeasurementCorrectionsCapabilities) { +TEST_P(GnssHalTest, TestGnssMeasurementCorrectionsCapabilities) { if (!(gnss_cb_->last_capabilities_ & IGnssCallback::Capabilities::MEASUREMENT_CORRECTIONS)) { return; } @@ -318,7 +319,7 @@ TEST_F(GnssHalTest, TestGnssMeasurementCorrectionsCapabilities) { * If measurement corrections capability is supported, verifies that it supports the * gnss.measurement_corrections@1.0::IMeasurementCorrections interface by invoking a method. */ -TEST_F(GnssHalTest, TestGnssMeasurementCorrections) { +TEST_P(GnssHalTest, TestGnssMeasurementCorrections) { if (!(gnss_cb_->last_capabilities_ & IGnssCallback::Capabilities::MEASUREMENT_CORRECTIONS)) { return; } @@ -348,7 +349,7 @@ TEST_F(GnssHalTest, TestGnssMeasurementCorrections) { * Sets a GnssMeasurementCallback, waits for a GnssData object, and verifies the flags in member * elapsedRealitme are valid. */ -TEST_F(GnssHalTest, TestGnssDataElapsedRealtimeFlags) { +TEST_P(GnssHalTest, TestGnssDataElapsedRealtimeFlags) { const int kFirstGnssMeasurementTimeoutSeconds = 10; auto gnssMeasurement = gnss_hal_->getExtensionGnssMeasurement_2_0(); @@ -383,7 +384,7 @@ TEST_F(GnssHalTest, TestGnssDataElapsedRealtimeFlags) { iGnssMeasurement->close(); } -TEST_F(GnssHalTest, TestGnssLocationElapsedRealtime) { +TEST_P(GnssHalTest, TestGnssLocationElapsedRealtime) { StartAndCheckFirstLocation(); ASSERT_TRUE((int)gnss_cb_->last_location_.elapsedRealtime.flags <= @@ -399,7 +400,7 @@ TEST_F(GnssHalTest, TestGnssLocationElapsedRealtime) { } // This test only verify that injectBestLocation_2_0 does not crash. -TEST_F(GnssHalTest, TestInjectBestLocation_2_0) { +TEST_P(GnssHalTest, TestInjectBestLocation_2_0) { StartAndCheckFirstLocation(); gnss_hal_->injectBestLocation_2_0(gnss_cb_->last_location_); StopAndClearLocations(); @@ -410,7 +411,7 @@ TEST_F(GnssHalTest, TestInjectBestLocation_2_0) { * Gets the @2.0::IGnssBatching extension and verifies that it doesn't return an error. Support * for this interface is optional. */ -TEST_F(GnssHalTest, TestGnssBatchingExtension) { +TEST_P(GnssHalTest, TestGnssBatchingExtension) { auto gnssBatching_2_0 = gnss_hal_->getExtensionGnssBatching_2_0(); ASSERT_TRUE(gnssBatching_2_0.isOk()); } @@ -422,7 +423,7 @@ TEST_F(GnssHalTest, TestGnssBatchingExtension) { * NO_LOCATION_PERIOD_SEC and verfiy that no location is received. Also perform validity checks on * each received location. */ -TEST_F(GnssHalTest, GetLocationLowPower) { +TEST_P(GnssHalTest, GetLocationLowPower) { if (!(gnss_cb_->last_capabilities_ & IGnssCallback::Capabilities::LOW_POWER_MODE)) { ALOGI("Test GetLocationLowPower skipped. LOW_POWER_MODE capability not supported."); return; @@ -513,7 +514,7 @@ GnssConstellationType_1_0 MapConstellationType(GnssConstellationType_2_0 constel * or a source with constellation == UNKNOWN if none are found sufficient times */ IGnssConfiguration_1_1::BlacklistedSource FindStrongFrequentNonGpsSource( - const list>& sv_info_lists, + const std::list>& sv_info_lists, const int min_observations) { struct ComparableBlacklistedSource { IGnssConfiguration_1_1::BlacklistedSource id; @@ -599,7 +600,7 @@ IGnssConfiguration_1_1::BlacklistedSource FindStrongFrequentNonGpsSource( * 5b) Retry a few times, in case GNSS search strategy takes a while to reacquire even the * formerly strongest satellite */ -TEST_F(GnssHalTest, BlacklistIndividualSatellites) { +TEST_P(GnssHalTest, BlacklistIndividualSatellites) { if (!(gnss_cb_->last_capabilities_ & IGnssCallback::Capabilities::SATELLITE_BLACKLIST)) { ALOGI("Test BlacklistIndividualSatellites skipped. SATELLITE_BLACKLIST capability" " not supported."); @@ -626,7 +627,7 @@ TEST_F(GnssHalTest, BlacklistIndividualSatellites) { */ const int kGnssSvStatusTimeout = 2; - list> sv_info_lists; + std::list> sv_info_lists; int count = gnss_cb_->sv_info_list_cbq_.retrieve(sv_info_lists, sv_info_list_cbq_size, kGnssSvStatusTimeout); ASSERT_EQ(count, sv_info_list_cbq_size); @@ -744,7 +745,7 @@ TEST_F(GnssHalTest, BlacklistIndividualSatellites) { * GnssStatus does not use any constellation but GPS. * 4a & b) Clean up by turning off location, and send in empty blacklist. */ -TEST_F(GnssHalTest, BlacklistConstellation) { +TEST_P(GnssHalTest, BlacklistConstellation) { if (!(gnss_cb_->last_capabilities_ & IGnssCallback::Capabilities::SATELLITE_BLACKLIST)) { ALOGI("Test BlacklistConstellation skipped. SATELLITE_BLACKLIST capability not supported."); return;