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

Commit cd9f4c47 authored by Yu-Han Yang's avatar Yu-Han Yang
Browse files

Skip GnssConfiguration v2.1 tests for AIDL HAL

- the same tests for AIDL HAL have been added in aidl/vts.

Bug: 172989709
Test: atest VtsHalGnssV2_1TargetTest
Change-Id: Ib1ace156d9b012a1b751a1f2f31a8b1765f964a4
parent b724b479
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.");