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

Commit d1f22ba2 authored by Anil Admal's avatar Anil Admal Committed by android-build-merger
Browse files

Merge "Update GNSS VTS 2.0 tests to address sub-HAL support requirements" into...

Merge "Update GNSS VTS 2.0 tests to address sub-HAL support requirements" into qt-dev am: bb477b95
am: f9e2ec1b

Change-Id: I01c674b9cbe53d18bd3f292deb4434f11ce1e28e
parents ab3c6805 f9e2ec1b
Loading
Loading
Loading
Loading
+44 −55
Original line number Diff line number Diff line
@@ -29,6 +29,7 @@ using IGnssMeasurement_2_0 = android::hardware::gnss::V2_0::IGnssMeasurement;
using IGnssMeasurement_1_1 = android::hardware::gnss::V1_1::IGnssMeasurement;
using IGnssMeasurement_1_0 = android::hardware::gnss::V1_0::IGnssMeasurement;
using IAGnssRil_2_0 = android::hardware::gnss::V2_0::IAGnssRil;
using IAGnssRil_1_0 = android::hardware::gnss::V1_0::IAGnssRil;
using IAGnss_2_0 = android::hardware::gnss::V2_0::IAGnss;
using IAGnss_1_0 = android::hardware::gnss::V1_0::IAGnss;
using IAGnssCallback_2_0 = android::hardware::gnss::V2_0::IAGnssCallback;
@@ -125,16 +126,21 @@ TEST_F(GnssHalTest, TestGnssConfiguration_setGpsLock_Deprecation) {
 * TestAGnssRilExtension:
 * Gets the AGnssRilExtension and verifies that it returns an actual extension.
 *
 * The GNSS HAL 2.0 implementation must support @2.0::IAGnssRil interface due to the deprecation
 * of framework network API methods needed to support the @1.0::IAGnssRil interface.
 *
 * TODO (b/121287858): Enforce gnss@2.0 HAL package is supported on devices launched with Q or later
 * If IAGnssRil interface is supported, then the GNSS HAL 2.0 implementation must support
 * @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) {
    auto agnssRil = gnss_hal_->getExtensionAGnssRil_2_0();
    ASSERT_TRUE(agnssRil.isOk());
    sp<IAGnssRil_2_0> iAGnssRil = agnssRil;
    ASSERT_NE(iAGnssRil, nullptr);
    auto agnssRil_2_0 = gnss_hal_->getExtensionAGnssRil_2_0();
    ASSERT_TRUE(agnssRil_2_0.isOk());
    sp<IAGnssRil_2_0> iAGnssRil_2_0 = agnssRil_2_0;
    if (iAGnssRil_2_0 == nullptr) {
        // Verify IAGnssRil 1.0 is not supported.
        auto agnssRil_1_0 = gnss_hal_->getExtensionAGnssRil();
        ASSERT_TRUE(agnssRil_1_0.isOk());
        sp<IAGnssRil_1_0> iAGnssRil_1_0 = agnssRil_1_0;
        ASSERT_EQ(iAGnssRil_1_0, nullptr);
    }
}

/*
@@ -146,7 +152,9 @@ TEST_F(GnssHalTest, TestAGnssRil_UpdateNetworkState_2_0) {
    auto agnssRil = gnss_hal_->getExtensionAGnssRil_2_0();
    ASSERT_TRUE(agnssRil.isOk());
    sp<IAGnssRil_2_0> iAGnssRil = agnssRil;
    ASSERT_NE(iAGnssRil, nullptr);
    if (iAGnssRil == nullptr) {
        return;
    }

    // Update GNSS HAL that a network has connected.
    IAGnssRil_2_0::NetworkAttributes networkAttributes = {
@@ -219,44 +227,35 @@ TEST_F(GnssHalTest, TestGnssMeasurementFields) {

/*
 * TestAGnssExtension:
 * Gets the AGnssExtension and verifies that it supports @2.0::IAGnss interface by invoking
 * a method.
 * Gets the AGnssExtension and verifies that it returns an actual extension.
 *
 * The GNSS HAL 2.0 implementation must support @2.0::IAGnss interface due to the deprecation
 * of framework network API methods needed to support the @1.0::IAGnss interface.
 *
 * TODO (b/121287858): Enforce gnss@2.0 HAL package is supported on devices launched with Q or later
 * If IAGnss interface is supported, then the GNSS HAL 2.0 implementation must support
 * @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) {
    // Verify IAGnss 2.0 is supported.
    auto agnss = gnss_hal_->getExtensionAGnss_2_0();
    ASSERT_TRUE(agnss.isOk());
    sp<IAGnss_2_0> iAGnss = agnss;
    ASSERT_NE(iAGnss, nullptr);
    auto agnss_2_0 = gnss_hal_->getExtensionAGnss_2_0();
    ASSERT_TRUE(agnss_2_0.isOk());
    sp<IAGnss_2_0> iAGnss_2_0 = agnss_2_0;
    if (iAGnss_2_0 == nullptr) {
        // Verify IAGnss 1.0 is not supported.
        auto agnss_1_0 = gnss_hal_->getExtensionAGnss();
        ASSERT_TRUE(agnss_1_0.isOk());
        sp<IAGnss_1_0> iAGnss_1_0 = agnss_1_0;
        ASSERT_EQ(iAGnss_1_0, nullptr);
        return;
    }

    // Set SUPL server host/port
    auto result = iAGnss->setServer(IAGnssCallback_2_0::AGnssType::SUPL, "supl.google.com", 7275);
    auto result =
            iAGnss_2_0->setServer(IAGnssCallback_2_0::AGnssType::SUPL, "supl.google.com", 7275);
    ASSERT_TRUE(result.isOk());
    EXPECT_TRUE(result);
}

/*
 * TestAGnssExtension_1_0_Deprecation:
 * Gets the @1.0::IAGnss extension and verifies that it is a nullptr.
 *
 * TODO (b/121287858): Enforce gnss@2.0 HAL package is supported on devices launched with Q or later
 */
TEST_F(GnssHalTest, TestAGnssExtension_1_0_Deprecation) {
    // Verify IAGnss 1.0 is not supported.
    auto agnss_1_0 = gnss_hal_->getExtensionAGnss();
    ASSERT_TRUE(!agnss_1_0.isOk() || ((sp<IAGnss_1_0>)agnss_1_0) == nullptr);
}

/*
 * TestGnssNiExtension_Deprecation:
 * Gets the @1.0::IGnssNi extension and verifies that it is a nullptr.
 *
 * TODO (b/121287858): Enforce gnss@2.0 HAL package is supported on devices launched with Q or later
 */
TEST_F(GnssHalTest, TestGnssNiExtension_Deprecation) {
    // Verify IGnssNi 1.0 is not supported.
@@ -266,22 +265,19 @@ TEST_F(GnssHalTest, TestGnssNiExtension_Deprecation) {

/*
 * TestGnssVisibilityControlExtension:
 * Gets the GnssVisibilityControlExtension and verifies that it supports the
 * gnss.visibility_control@1.0::IGnssVisibilityControl interface by invoking a method.
 *
 * The GNSS HAL 2.0 implementation must support gnss.visibility_control@1.0::IGnssVisibilityControl.
 *
 * TODO (b/121287858): Enforce gnss@2.0 HAL package is supported on devices launched with Q or later
 * 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) {
    // Verify IGnssVisibilityControl is supported.
    auto gnssVisibilityControl = gnss_hal_->getExtensionVisibilityControl();
    ASSERT_TRUE(gnssVisibilityControl.isOk());
    sp<IGnssVisibilityControl> iGnssVisibilityControl = gnssVisibilityControl;
    ASSERT_NE(iGnssVisibilityControl, nullptr);
    if (iGnssVisibilityControl == nullptr) {
        return;
    }

    // Set non-framework proxy apps.
    hidl_vec<hidl_string> proxyApps{"ims.example.com", "mdt.example.com"};
    hidl_vec<hidl_string> proxyApps{"com.example.ims", "com.example.mdt"};
    auto result = iGnssVisibilityControl->enableNfwLocationAccess(proxyApps);
    ASSERT_TRUE(result.isOk());
    EXPECT_TRUE(result);
@@ -408,17 +404,10 @@ TEST_F(GnssHalTest, TestInjectBestLocation_2_0) {

/*
 * TestGnssBatchingExtension:
 * Gets the GnssBatchingExtension and verifies that it supports either the @1.0::IGnssBatching
 * or @2.0::IGnssBatching extension.
 * 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) {
    auto gnssBatching_V2_0 = gnss_hal_->getExtensionGnssBatching_2_0();
    ASSERT_TRUE(gnssBatching_V2_0.isOk());

    auto gnssBatching_V1_0 = gnss_hal_->getExtensionGnssBatching();
    ASSERT_TRUE(gnssBatching_V1_0.isOk());

    sp<IGnssBatching_V1_0> iGnssBatching_V1_0 = gnssBatching_V1_0;
    sp<IGnssBatching_V2_0> iGnssBatching_V2_0 = gnssBatching_V2_0;
    ASSERT_TRUE(iGnssBatching_V1_0 != nullptr || iGnssBatching_V2_0 != nullptr);
    auto gnssBatching_2_0 = gnss_hal_->getExtensionGnssBatching_2_0();
    ASSERT_TRUE(gnssBatching_2_0.isOk());
}