Make GetLocationLowPower test warning instead of failing am: 5f0bbe9324 am: 2d8c961797 am: 3c23ac7af6

Change-Id: I0a1b236c38295944ad60615f7dc1f0f99eae40b7
This commit is contained in:
Yu-Han Yang
2020-03-28 22:58:47 +00:00
committed by Automerger Merge Worker
6 changed files with 29 additions and 20 deletions

View File

@@ -99,7 +99,7 @@ void GnssHalTest::SetPositionMode(const int min_interval_msec, const bool low_po
EXPECT_TRUE(result);
}
bool GnssHalTest::StartAndCheckFirstLocation() {
bool GnssHalTest::StartAndCheckFirstLocation(bool strict) {
auto result = gnss_hal_->start();
EXPECT_TRUE(result.isOk());
@@ -110,11 +110,14 @@ bool GnssHalTest::StartAndCheckFirstLocation() {
* so allow time to demodulate ephemeris over the air.
*/
const int kFirstGnssLocationTimeoutSeconds = 75;
int locationCalledCount = 0;
EXPECT_TRUE(gnss_cb_->location_cbq_.retrieve(gnss_cb_->last_location_,
kFirstGnssLocationTimeoutSeconds));
int locationCalledCount = gnss_cb_->location_cbq_.calledCount();
EXPECT_EQ(locationCalledCount, 1);
if (strict) {
EXPECT_TRUE(gnss_cb_->location_cbq_.retrieve(gnss_cb_->last_location_,
kFirstGnssLocationTimeoutSeconds));
locationCalledCount = gnss_cb_->location_cbq_.calledCount();
EXPECT_EQ(locationCalledCount, 1);
}
if (locationCalledCount > 0) {
// don't require speed on first fix
@@ -138,7 +141,7 @@ void GnssHalTest::StartAndCheckLocations(int count) {
SetPositionMode(kMinIntervalMsec, kLowPowerMode);
EXPECT_TRUE(StartAndCheckFirstLocation());
EXPECT_TRUE(StartAndCheckFirstLocation(/* strict= */ true));
for (int i = 1; i < count; i++) {
EXPECT_TRUE(gnss_cb_->location_cbq_.retrieve(gnss_cb_->last_location_,

View File

@@ -102,9 +102,11 @@ class GnssHalTest : public testing::TestWithParam<std::string> {
* <p> Note this leaves the Location request active, to enable Stop call vs. other call
* reordering tests.
*
* <p> if 'strict' is true, the test will fail if no location is generated.
*
* returns true if a location was successfully generated
*/
bool StartAndCheckFirstLocation();
bool StartAndCheckFirstLocation(bool strict);
/*
* CheckLocation:

View File

@@ -93,7 +93,7 @@ TEST_P(GnssHalTest, GetLocationLowPower) {
SetPositionMode(kMinIntervalMsec, kLowPowerMode);
// Don't expect true - as without AGPS access
if (!StartAndCheckFirstLocation()) {
if (!StartAndCheckFirstLocation(/* strict= */ false)) {
ALOGW("GetLocationLowPower test - no first low power location received.");
}

View File

@@ -97,7 +97,7 @@ void GnssHalTest::SetPositionMode(const int min_interval_msec, const bool low_po
EXPECT_TRUE(result);
}
bool GnssHalTest::StartAndCheckFirstLocation() {
bool GnssHalTest::StartAndCheckFirstLocation(bool strict) {
const auto result = gnss_hal_->start();
EXPECT_TRUE(result.isOk());
@@ -107,12 +107,14 @@ bool GnssHalTest::StartAndCheckFirstLocation() {
* so allow time to demodulate ephemeris over the air.
*/
const int kFirstGnssLocationTimeoutSeconds = 75;
int locationCalledCount = 0;
EXPECT_TRUE(gnss_cb_->location_cbq_.retrieve(gnss_cb_->last_location_,
kFirstGnssLocationTimeoutSeconds));
int locationCalledCount = gnss_cb_->location_cbq_.calledCount();
EXPECT_EQ(locationCalledCount, 1);
if (strict) {
EXPECT_TRUE(gnss_cb_->location_cbq_.retrieve(gnss_cb_->last_location_,
kFirstGnssLocationTimeoutSeconds));
locationCalledCount = gnss_cb_->location_cbq_.calledCount();
EXPECT_EQ(locationCalledCount, 1);
}
if (locationCalledCount > 0) {
// don't require speed on first fix
CheckLocation(gnss_cb_->last_location_, false);
@@ -135,7 +137,7 @@ void GnssHalTest::StartAndCheckLocations(int count) {
SetPositionMode(kMinIntervalMsec, kLowPowerMode);
EXPECT_TRUE(StartAndCheckFirstLocation());
EXPECT_TRUE(StartAndCheckFirstLocation(/* strict= */ true));
for (int i = 1; i < count; i++) {
EXPECT_TRUE(gnss_cb_->location_cbq_.retrieve(gnss_cb_->last_location_,

View File

@@ -152,9 +152,11 @@ class GnssHalTest : public testing::TestWithParam<std::string> {
* <p> Note this leaves the Location request active, to enable Stop call vs. other call
* reordering tests.
*
* <p> if 'strict' is true, the test will fail if no location is generated.
*
* returns true if a location was successfully generated
*/
bool StartAndCheckFirstLocation();
bool StartAndCheckFirstLocation(bool strict);
/*
* CheckLocation:

View File

@@ -395,7 +395,7 @@ TEST_P(GnssHalTest, TestGnssDataElapsedRealtimeFlags) {
}
TEST_P(GnssHalTest, TestGnssLocationElapsedRealtime) {
StartAndCheckFirstLocation();
StartAndCheckFirstLocation(/* strict= */ true);
ASSERT_TRUE((int)gnss_cb_->last_location_.elapsedRealtime.flags <=
(int)(ElapsedRealtimeFlags::HAS_TIMESTAMP_NS |
@@ -411,7 +411,7 @@ TEST_P(GnssHalTest, TestGnssLocationElapsedRealtime) {
// This test only verify that injectBestLocation_2_0 does not crash.
TEST_P(GnssHalTest, TestInjectBestLocation_2_0) {
StartAndCheckFirstLocation();
StartAndCheckFirstLocation(/* strict= */ true);
gnss_hal_->injectBestLocation_2_0(gnss_cb_->last_location_);
StopAndClearLocations();
}
@@ -455,7 +455,7 @@ TEST_P(GnssHalTest, GetLocationLowPower) {
SetPositionMode(kMinIntervalMsec, kLowPowerMode);
// Don't expect true - as without AGPS access
if (!StartAndCheckFirstLocation()) {
if (!StartAndCheckFirstLocation(/* strict= */ false)) {
ALOGW("GetLocationLowPower test - no first low power location received.");
}
@@ -854,4 +854,4 @@ TEST_P(GnssHalTest, BlacklistConstellation) {
result = gnss_configuration_hal->setBlacklist(sources);
ASSERT_TRUE(result.isOk());
EXPECT_TRUE(result);
}
}