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

Commit 6ffb9d08 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Skip GnssConfiguration v2.1 tests for AIDL HAL"

parents 60f4e1cd cd9f4c47
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ cc_test {
    name: "VtsHalGnssV2_1TargetTest",
    defaults: ["VtsHalTargetTestDefaults"],
    srcs: [
        "gnss_hal_test.cpp",
        "gnss_hal_test_cases.cpp",
        "VtsHalGnssV2_1TargetTest.cpp",
    ],
@@ -31,6 +32,9 @@ cc_test {
        "android.hardware.gnss@2.1",
        "android.hardware.gnss@common-vts-lib",
    ],
    shared_libs: [
        "libvintf",
    ],
    test_suites: [
        "general-tests",
        "vts",
+43 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2020 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

#define LOG_TAG "GnssHalTest"

#include <android/hidl/manager/1.2/IServiceManager.h>
#include <hidl/ServiceManagement.h>
#include <log/log.h>
#include <vintf/VintfObject.h>

#include "gnss_hal_test.h"

using ::android::hardware::hidl_string;
using ::android::hidl::manager::V1_2::IServiceManager;

bool GnssHalTest::IsGnssHalVersion_2_1() const {
    sp<IServiceManager> manager = ::android::hardware::defaultServiceManager1_2();
    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;
            });

    auto deviceManifest = ::android::vintf::VintfObject::GetDeviceHalManifest();
    bool hasGnssAidl =
            deviceManifest->getAidlInstances("android.hardware.gnss", "IGnss").size() > 0;

    return hasGnssHalVersion_2_1 && !hasGnssAidl;
}
 No newline at end of file
+8 −1
Original line number Diff line number Diff line
@@ -22,4 +22,11 @@
using android::hardware::gnss::V2_1::IGnss;

// The main test class for GNSS HAL.
class GnssHalTest : public GnssHalTestTemplate<IGnss> {};
class GnssHalTest : public GnssHalTestTemplate<IGnss> {
  public:
    /**
     * IsGnssHalVersion_2_1:
     * returns  true if the GNSS HAL version is exactly 2.1.
     */
    bool IsGnssHalVersion_2_1() const;
};
+30 −12
Original line number Diff line number Diff line
@@ -87,6 +87,10 @@ TEST_P(GnssHalTest, TestGnssMeasurementExtension) {
 * Gets the GnssConfigurationExtension and verifies that it returns an actual extension.
 */
TEST_P(GnssHalTest, TestGnssConfigurationExtension) {
    if (!IsGnssHalVersion_2_1()) {
        ALOGI("Test TestGnssConfigurationExtension skipped. GNSS HAL version is greater than 2.1.");
        return;
    }
    auto gnssConfiguration_2_1 = gnss_hal_->getExtensionGnssConfiguration_2_1();
    auto gnssConfiguration_2_0 = gnss_hal_->getExtensionGnssConfiguration_2_0();
    auto gnssConfiguration_1_1 = gnss_hal_->getExtensionGnssConfiguration_1_1();
@@ -358,20 +362,24 @@ IGnssConfiguration::BlacklistedSource FindStrongFrequentNonGpsSource(
}

/*
 * BlacklistIndividualSatellites:
 * BlocklistIndividualSatellites:
 *
 * 1) Turns on location, waits for 3 locations, ensuring they are valid, and checks corresponding
 * GnssStatus for common satellites (strongest and one other.)
 * 2a & b) Turns off location, and blacklists common satellites.
 * 2a & b) Turns off location, and blocklists common satellites.
 * 3) Restart location, wait for 3 locations, ensuring they are valid, and checks corresponding
 * GnssStatus does not use those satellites.
 * 4a & b) Turns off location, and send in empty blacklist.
 * 4a & b) Turns off location, and send in empty blocklist.
 * 5a) Restart location, wait for 3 locations, ensuring they are valid, and checks corresponding
 * GnssStatus does re-use at least the previously strongest satellite
 * 5b) Retry a few times, in case GNSS search strategy takes a while to reacquire even the
 * formerly strongest satellite
 */
TEST_P(GnssHalTest, BlacklistIndividualSatellites) {
TEST_P(GnssHalTest, BlocklistIndividualSatellites) {
    if (!IsGnssHalVersion_2_1()) {
        ALOGI("Test BlocklistIndividualSatellites skipped. GNSS HAL version is greater than 2.1.");
        return;
    }
    if (!(gnss_cb_->last_capabilities_ & IGnssCallback_2_1::Capabilities::SATELLITE_BLACKLIST)) {
        ALOGI("Test BlacklistIndividualSatellites skipped. SATELLITE_BLACKLIST capability not "
              "supported.");
@@ -509,16 +517,21 @@ TEST_P(GnssHalTest, BlacklistIndividualSatellites) {
}

/*
 * BlacklistConstellationLocationOff:
 * BlocklistConstellationLocationOff:
 *
 * 1) Turns on location, waits for 3 locations, ensuring they are valid, and checks corresponding
 * GnssStatus for any non-GPS constellations.
 * 2a & b) Turns off location, and blacklist first non-GPS constellations.
 * 2a & b) Turns off location, and blocklist first non-GPS constellations.
 * 3) Restart location, wait for 3 locations, ensuring they are valid, and checks corresponding
 * GnssStatus does not use any constellation but GPS.
 * 4a & b) Clean up by turning off location, and send in empty blacklist.
 * 4a & b) Clean up by turning off location, and send in empty blocklist.
 */
TEST_P(GnssHalTest, BlacklistConstellationLocationOff) {
TEST_P(GnssHalTest, BlocklistConstellationLocationOff) {
    if (!IsGnssHalVersion_2_1()) {
        ALOGI("Test BlocklistConstellationLocationOff skipped. GNSS HAL version is greater than "
              "2.1.");
        return;
    }
    if (!(gnss_cb_->last_capabilities_ & IGnssCallback_2_1::Capabilities::SATELLITE_BLACKLIST)) {
        ALOGI("Test BlacklistConstellationLocationOff skipped. SATELLITE_BLACKLIST capability not "
              "supported.");
@@ -591,16 +604,21 @@ TEST_P(GnssHalTest, BlacklistConstellationLocationOff) {
}

/*
 * BlacklistConstellationLocationOn:
 * BlocklistConstellationLocationOn:
 *
 * 1) Turns on location, waits for 3 locations, ensuring they are valid, and checks corresponding
 * GnssStatus for any non-GPS constellations.
 * 2a & b) Blacklist first non-GPS constellation, and turn off location.
 * 2a & b) Blocklist first non-GPS constellation, and turn off location.
 * 3) Restart location, wait for 3 locations, ensuring they are valid, and checks corresponding
 * GnssStatus does not use any constellation but GPS.
 * 4a & b) Clean up by turning off location, and send in empty blacklist.
 * 4a & b) Clean up by turning off location, and send in empty blocklist.
 */
TEST_P(GnssHalTest, BlacklistConstellationLocationOn) {
TEST_P(GnssHalTest, BlocklistConstellationLocationOn) {
    if (!IsGnssHalVersion_2_1()) {
        ALOGI("Test BlocklistConstellationLocationOn skipped. GNSS HAL version is greater than "
              "2.1.");
        return;
    }
    if (!(gnss_cb_->last_capabilities_ & IGnssCallback_2_1::Capabilities::SATELLITE_BLACKLIST)) {
        ALOGI("Test BlacklistConstellationLocationOn skipped. SATELLITE_BLACKLIST capability not "
              "supported.");