Update measurement interval VTS tests
Bug: 253453668
Test: atest VtsHalGnssTargetTest
Change-Id: I2fe394d0ee9f620e93068219a3f73d110120289b
diff --git a/gnss/aidl/vts/gnss_hal_test_cases.cpp b/gnss/aidl/vts/gnss_hal_test_cases.cpp
index 0fbd5e3..96dece4 100644
--- a/gnss/aidl/vts/gnss_hal_test_cases.cpp
+++ b/gnss/aidl/vts/gnss_hal_test_cases.cpp
@@ -1405,8 +1405,8 @@
/*
* TestGnssMeasurementIntervals_WithoutLocation:
- * 1. start measurement with interval
- * 2. verify that the received measurement intervals have expected mean and stdev
+ * 1. Start measurement at intervals
+ * 2. Verify measurement are received at expected intervals
*/
TEST_P(GnssHalTest, TestGnssMeasurementIntervals_WithoutLocation) {
if (aidl_gnss_hal_->getInterfaceVersion() <= 1) {
@@ -1438,8 +1438,9 @@
/*
* TestGnssMeasurementIntervals_LocationOnBeforeMeasurement:
- * 1. start measurement with interval
- * 2. verify that the received measurement intervals have expected mean and stdev
+ * 1. Start location at 1s.
+ * 2. Start measurement at 2s. Verify measurements are received at 1s.
+ * 3. Stop measurement. Stop location.
*/
TEST_P(GnssHalTest, TestGnssMeasurementIntervals_LocationOnBeforeMeasurement) {
if (aidl_gnss_hal_->getInterfaceVersion() <= 1) {
@@ -1474,15 +1475,17 @@
}
/*
- * TestGnssMeasurementIntervals:
- * 1. start measurement with interval
- * 2. verify that the received measurement intervals have expected mean and stddev
+ * TestGnssMeasurementIntervals_LocationOnAfterMeasurement:
+ * 1. Start measurement at 2s
+ * 2. Start location at 1s. Verify measurements are received at 1s
+ * 3. Stop location. Verify measurements are received at 2s
+ * 4. Stop measurement
*/
TEST_P(GnssHalTest, TestGnssMeasurementIntervals_LocationOnAfterMeasurement) {
if (aidl_gnss_hal_->getInterfaceVersion() <= 1) {
return;
}
-
+ const int kFirstMeasTimeoutSec = 10;
std::vector<int> intervals({2000});
sp<IGnssMeasurementInterface> iGnssMeasurement;
@@ -1497,26 +1500,34 @@
auto callback = sp<GnssMeasurementCallbackAidl>::make();
startMeasurementWithInterval(intervalMs, iGnssMeasurement, callback);
+ // Start location and verify the measurements are received at 1Hz
StartAndCheckFirstLocation(locationIntervalMs, /* lowPowerMode= */ false);
std::vector<int> deltas;
- collectMeasurementIntervals(callback, /*numEvents=*/10, /*timeoutSeconds=*/10, deltas);
+ collectMeasurementIntervals(callback, /*numEvents=*/10, kFirstMeasTimeoutSec, deltas);
+ assertMeanAndStdev(locationIntervalMs, deltas);
+ // Stop location request and verify the measurements are received at 2s intervals
StopAndClearLocations();
+ callback->gnss_data_cbq_.reset();
+ deltas.clear();
+ collectMeasurementIntervals(callback, /*numEvents=*/5, kFirstMeasTimeoutSec, deltas);
+ assertMeanAndStdev(intervalMs, deltas);
+
status = iGnssMeasurement->close();
ASSERT_TRUE(status.isOk());
-
- assertMeanAndStdev(locationIntervalMs, deltas);
}
}
/*
- * TestGnssMeasurementSetCallback:
+ * TestGnssMeasurementIntervals_changeIntervals:
* This test ensures setCallback() can be called consecutively without close().
* 1. Start measurement with 20s interval and wait for 1 measurement.
* 2. Start measurement with 1s interval and wait for 5 measurements.
* Verify the measurements were received at 1Hz.
+ * 3. Start measurement with 2s interval and wait for 5 measurements.
+ * Verify the measurements were received at 2s intervals.
*/
-TEST_P(GnssHalTest, TestGnssMeasurementSetCallback) {
+TEST_P(GnssHalTest, TestGnssMeasurementIntervals_changeIntervals) {
if (aidl_gnss_hal_->getInterfaceVersion() <= 2) {
return;
}
@@ -1526,7 +1537,6 @@
ASSERT_TRUE(status.isOk());
ASSERT_TRUE(iGnssMeasurement != nullptr);
- ALOGD("TestGnssMeasurementSetCallback");
auto callback = sp<GnssMeasurementCallbackAidl>::make();
std::vector<int> deltas;
@@ -1537,6 +1547,7 @@
// setCallback at 1s interval and wait for 5 measurements
callback->gnss_data_cbq_.reset();
+ deltas.clear();
startMeasurementWithInterval(1000, iGnssMeasurement, callback);
collectMeasurementIntervals(callback, /* numEvents= */ 5, kFirstGnssMeasurementTimeoutSeconds,
deltas);
@@ -1544,6 +1555,16 @@
// verify the measurements were received at 1Hz
assertMeanAndStdev(1000, deltas);
+ // setCallback at 2s interval and wait for 5 measurements
+ callback->gnss_data_cbq_.reset();
+ deltas.clear();
+ startMeasurementWithInterval(2000, iGnssMeasurement, callback);
+ collectMeasurementIntervals(callback, /* numEvents= */ 5, kFirstGnssMeasurementTimeoutSeconds,
+ deltas);
+
+ // verify the measurements were received at 2s intervals
+ assertMeanAndStdev(2000, deltas);
+
status = iGnssMeasurement->close();
ASSERT_TRUE(status.isOk());
}