Specify minInterval in StartAndCheckFirstLocation
Bug: 186499722
Test: on device
Change-Id: Ie7cdc958333351863d71dccc89b2034c225d060a
diff --git a/gnss/1.0/vts/functional/VtsHalGnssV1_0TargetTest.cpp b/gnss/1.0/vts/functional/VtsHalGnssV1_0TargetTest.cpp
index 237e8ec..699ce9a 100644
--- a/gnss/1.0/vts/functional/VtsHalGnssV1_0TargetTest.cpp
+++ b/gnss/1.0/vts/functional/VtsHalGnssV1_0TargetTest.cpp
@@ -135,12 +135,29 @@
}
/*
+ * SetPositionMode:
+ * Helper function to set positioning mode and verify output
+ */
+ void SetPositionMode(const int min_interval_msec) {
+ const int kPreferredAccuracy = 0; // Ideally perfect (matches GnssLocationProvider)
+ const int kPreferredTimeMsec = 0; // Ideally immediate
+
+ auto result = gnss_hal_->setPositionMode(
+ IGnss::GnssPositionMode::MS_BASED, IGnss::GnssPositionRecurrence::RECURRENCE_PERIODIC,
+ min_interval_msec, kPreferredAccuracy, kPreferredTimeMsec);
+
+ ASSERT_TRUE(result.isOk());
+ EXPECT_TRUE(result);
+ }
+
+ /*
* StartAndGetSingleLocation:
* Helper function to get one Location and check fields
*
* returns true if a location was successfully generated
*/
- bool StartAndGetSingleLocation(bool checkAccuracies) {
+ bool StartAndGetSingleLocation(const bool checkAccuracies, const int min_interval_msec) {
+ SetPositionMode(min_interval_msec);
auto result = gnss_hal_->start();
EXPECT_TRUE(result.isOk());
@@ -349,37 +366,24 @@
* and checks them for reasonable validity.
*/
TEST_P(GnssHalTest, GetLocation) {
-#define MIN_INTERVAL_MSEC 500
-#define PREFERRED_ACCURACY 0 // Ideally perfect (matches GnssLocationProvider)
-#define PREFERRED_TIME_MSEC 0 // Ideally immediate
+ const int kMinIntervalMsec = 500;
+ const int kLocationTimeoutSubsequentSec = 3;
+ const int kLocationsToCheck = 5;
-#define LOCATION_TIMEOUT_SUBSEQUENT_SEC 3
-#define LOCATIONS_TO_CHECK 5
+ bool checkMoreAccuracies = (info_called_count_ > 0 && last_info_.yearOfHw >= 2017);
- bool checkMoreAccuracies =
- (info_called_count_ > 0 && last_info_.yearOfHw >= 2017);
+ /*
+ * GPS signals initially optional for this test, so don't expect timeout yet.
+ */
+ bool gotLocation = StartAndGetSingleLocation(checkMoreAccuracies, kMinIntervalMsec);
- auto result = gnss_hal_->setPositionMode(
- IGnss::GnssPositionMode::MS_BASED,
- IGnss::GnssPositionRecurrence::RECURRENCE_PERIODIC, MIN_INTERVAL_MSEC,
- PREFERRED_ACCURACY, PREFERRED_TIME_MSEC);
-
- ASSERT_TRUE(result.isOk());
- EXPECT_TRUE(result);
-
- /*
- * GPS signals initially optional for this test, so don't expect no timeout
- * yet
- */
- bool gotLocation = StartAndGetSingleLocation(checkMoreAccuracies);
-
- if (gotLocation) {
- for (int i = 1; i < LOCATIONS_TO_CHECK; i++) {
- EXPECT_EQ(std::cv_status::no_timeout, wait(LOCATION_TIMEOUT_SUBSEQUENT_SEC));
- EXPECT_EQ(location_called_count_, i + 1);
- CheckLocation(last_location_, checkMoreAccuracies, true);
+ if (gotLocation) {
+ for (int i = 1; i < kLocationsToCheck; i++) {
+ EXPECT_EQ(std::cv_status::no_timeout, wait(kLocationTimeoutSubsequentSec));
+ EXPECT_EQ(location_called_count_, i + 1);
+ CheckLocation(last_location_, checkMoreAccuracies, true);
+ }
}
- }
StopAndClearLocations();
}
@@ -410,7 +414,7 @@
ASSERT_TRUE(resultVoid.isOk());
// Ensure we can get a good location after a bad injection has been deleted
- StartAndGetSingleLocation(false);
+ StartAndGetSingleLocation(false, /* min_interval_sec= */ 1000);
StopAndClearLocations();
}
@@ -430,7 +434,7 @@
ASSERT_TRUE(result.isOk());
EXPECT_TRUE(result);
- StartAndGetSingleLocation(false);
+ StartAndGetSingleLocation(false, /* min_interval_msec= */ 1000);
// Ensure we don't get a location anywhere within 111km (1 degree of lat or lng) of the seed
// location.