Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fd80e141 authored by Sasha Kuznetsov's avatar Sasha Kuznetsov Committed by Android (Google) Code Review
Browse files

Merge "Fix 2.0 VTS and 2.1 HAL/default implementation"

parents cfb04a43 7fd5cc3a
Loading
Loading
Loading
Loading
+8 −1
Original line number Diff line number Diff line
@@ -172,7 +172,14 @@ bool GnssHalTest::IsGnssHalVersion_1_1() const {
                hasGnssHalVersion_2_0 = registered.size() != 0;
            });

    return hasGnssHalVersion_1_1 && !hasGnssHalVersion_2_0;
    bool hasGnssHalVersion_2_1 = false;
    manager->listManifestByInterface(
            "android.hardware.gnss@2.1::IGnss",
            [&hasGnssHalVersion_2_1](const hidl_vec<hidl_string>& registered) {
                hasGnssHalVersion_2_1 = registered.size() != 0;
            });

    return hasGnssHalVersion_1_1 && !hasGnssHalVersion_2_0 && !hasGnssHalVersion_2_1;
}

GnssConstellationType GnssHalTest::startLocationAndGetNonGpsConstellation(
+25 −2
Original line number Diff line number Diff line
@@ -16,11 +16,14 @@

#define LOG_TAG "GnssHalTest"

#include <android/hidl/manager/1.2/IServiceManager.h>
#include <gnss_hal_test.h>
#include <gtest/gtest.h>
#include <hidl/ServiceManagement.h>
#include <chrono>
#include "Utils.h"

#include <gtest/gtest.h>
using ::android::hardware::hidl_string;

using ::android::hardware::gnss::common::Utils;

@@ -99,7 +102,6 @@ bool GnssHalTest::StartAndCheckFirstLocation() {

    EXPECT_TRUE(result.isOk());
    EXPECT_TRUE(result);

    /*
     * GnssLocationProvider support of AGPS SUPL & XtraDownloader is not available in VTS,
     * so allow time to demodulate ephemeris over the air.
@@ -148,6 +150,27 @@ void GnssHalTest::StartAndCheckLocations(int count) {
    }
}

bool GnssHalTest::IsGnssHalVersion_2_0() const {
    using ::android::hidl::manager::V1_2::IServiceManager;
    sp<IServiceManager> manager = ::android::hardware::defaultServiceManager1_2();

    bool hasGnssHalVersion_2_0 = false;
    manager->listManifestByInterface(
            "android.hardware.gnss@2.0::IGnss",
            [&hasGnssHalVersion_2_0](const hidl_vec<hidl_string>& registered) {
                hasGnssHalVersion_2_0 = registered.size() != 0;
            });

    bool hasGnssHalVersion_2_1 = false;
    manager->listManifestByInterface(
            "android.hardware.gnss@2.1::IGnss",
            [&hasGnssHalVersion_2_1](const hidl_vec<hidl_string>& registered) {
                hasGnssHalVersion_2_1 = registered.size() != 0;
            });

    return hasGnssHalVersion_2_0 && !hasGnssHalVersion_2_1;
}

GnssHalTest::GnssCallback::GnssCallback()
    : info_cbq_("system_info"),
      name_cbq_("name"),
+6 −0
Original line number Diff line number Diff line
@@ -180,6 +180,12 @@ class GnssHalTest : public testing::TestWithParam<std::string> {
     */
    void StopAndClearLocations();

    /*
     * IsGnssHalVersion_2_0:
     * returns  true if the GNSS HAL version is exactly 2.0.
     */
    bool IsGnssHalVersion_2_0() const;

    /*
     * SetPositionMode:
     * Helper function to set positioning mode and verify output
+15 −1
Original line number Diff line number Diff line
@@ -182,6 +182,10 @@ TEST_P(GnssHalTest, TestAGnssRil_UpdateNetworkState_2_0) {
 * 3. state is valid.
 */
TEST_P(GnssHalTest, TestGnssMeasurementFields) {
    if (!IsGnssHalVersion_2_0()) {
        ALOGI("Test GnssMeasurementFields skipped. GNSS HAL version is greater than 2.0.");
        return;
    }
    const int kFirstGnssMeasurementTimeoutSeconds = 10;

    auto gnssMeasurement = gnss_hal_->getExtensionGnssMeasurement_2_0();
@@ -464,7 +468,7 @@ TEST_P(GnssHalTest, GetLocationLowPower) {
        }
        EXPECT_LE(location_called_count, i);
        if (location_called_count != i) {
            ALOGW("GetLocationLowPower test - not enough locations received. %d vs. %d expected ",
            ALOGW("GetLocationLowPower test - too many locations received. %d vs. %d expected ",
                  location_called_count, i);
        }

@@ -601,6 +605,11 @@ IGnssConfiguration_1_1::BlacklistedSource FindStrongFrequentNonGpsSource(
 * formerly strongest satellite
 */
TEST_P(GnssHalTest, BlacklistIndividualSatellites) {
    if (!IsGnssHalVersion_2_0()) {
        ALOGI("Test BlacklistIndividualSatellites skipped. GNSS HAL version is greater than 2.0.");
        return;
    }

    if (!(gnss_cb_->last_capabilities_ & IGnssCallback::Capabilities::SATELLITE_BLACKLIST)) {
        ALOGI("Test BlacklistIndividualSatellites skipped. SATELLITE_BLACKLIST capability"
              " not supported.");
@@ -746,6 +755,11 @@ TEST_P(GnssHalTest, BlacklistIndividualSatellites) {
 * 4a & b) Clean up by turning off location, and send in empty blacklist.
 */
TEST_P(GnssHalTest, BlacklistConstellation) {
    if (!IsGnssHalVersion_2_0()) {
        ALOGI("Test BlacklistConstellation skipped. GNSS HAL version is greater than 2.0.");
        return;
    }

    if (!(gnss_cb_->last_capabilities_ & IGnssCallback::Capabilities::SATELLITE_BLACKLIST)) {
        ALOGI("Test BlacklistConstellation skipped. SATELLITE_BLACKLIST capability not supported.");
        return;
+2 −1
Original line number Diff line number Diff line
@@ -23,8 +23,9 @@ cc_binary {
    srcs: [
        "Gnss.cpp",
        "GnssMeasurement.cpp",
        "GnssMeasurementCorrections.cpp",
        "GnssConfiguration.cpp",
        "service.cpp"
        "service.cpp",
    ],
    shared_libs: [
        "libhidlbase",
Loading