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

Commit 27c44d04 authored by Anil Admal's avatar Anil Admal Committed by Android (Google) Code Review
Browse files

Merge "Add GNSS satellite blacklist VTS 2.0 test" into qt-r1-dev

parents 8c124107 f4260267
Loading
Loading
Loading
Loading
+28 −0
Original line number Diff line number Diff line
@@ -16,10 +16,16 @@

#define LOG_TAG "GnssHalTest"

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

#include <gnss_hal_test.h>
#include <chrono>
#include "Utils.h"

using ::android::hardware::hidl_string;
using ::android::hardware::hidl_vec;

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

// Implementations for the main test class for GNSS HAL
@@ -149,6 +155,28 @@ void GnssHalTest::StartAndCheckLocations(int count) {
    }
}

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

    bool hasGnssHalVersion_1_1 = false;
    manager->listManifestByInterface(
            "android.hardware.gnss@1.1::IGnss",
            [&hasGnssHalVersion_1_1](const hidl_vec<hidl_string>& registered) {
                ASSERT_EQ(1, registered.size());
                hasGnssHalVersion_1_1 = true;
            });

    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;
            });

    return hasGnssHalVersion_1_1 && !hasGnssHalVersion_2_0;
}

void GnssHalTest::notify() {
    std::unique_lock<std::mutex> lock(mtx_);
    notify_count_++;
+6 −0
Original line number Diff line number Diff line
@@ -145,6 +145,12 @@ class GnssHalTest : public ::testing::VtsHalHidlTargetTestBase {
     */
    void SetPositionMode(const int min_interval_msec, const bool low_power_mode);

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

    sp<IGnss> gnss_hal_;         // GNSS HAL to call into
    sp<IGnssCallback> gnss_cb_;  // Primary callback interface

+10 −0
Original line number Diff line number Diff line
@@ -202,6 +202,11 @@ IGnssConfiguration::BlacklistedSource FindStrongFrequentNonGpsSource(
 * formerly strongest satellite
 */
TEST_F(GnssHalTest, BlacklistIndividualSatellites) {
    if (!IsGnssHalVersion_1_1()) {
        ALOGI("Test BlacklistIndividualSatellites skipped. GNSS HAL version is greater than 1.1.");
        return;
    }

    const int kLocationsToAwait = 3;
    const int kRetriesToUnBlacklist = 10;

@@ -323,6 +328,11 @@ TEST_F(GnssHalTest, BlacklistIndividualSatellites) {
 * 4a & b) Clean up by turning off location, and send in empty blacklist.
 */
TEST_F(GnssHalTest, BlacklistConstellation) {
    if (!IsGnssHalVersion_1_1()) {
        ALOGI("Test BlacklistConstellation skipped. GNSS HAL version is greater than 1.1.");
        return;
    }

    const int kLocationsToAwait = 3;

    StartAndCheckLocations(kLocationsToAwait);
+0 −1
Original line number Diff line number Diff line
@@ -23,7 +23,6 @@ int main(int argc, char** argv) {
    ::testing::AddGlobalTestEnvironment(GnssHidlEnvironment::Instance());
    ::testing::InitGoogleTest(&argc, argv);
    GnssHidlEnvironment::Instance()->init(&argc, argv);
    // TODO (b/122463165): Expand coverage to include 1.1 and 1.0 VTS tests.
    int status = RUN_ALL_TESTS();
    ALOGI("Test result = %d", status);
    return status;
+2 −2
Original line number Diff line number Diff line
@@ -152,7 +152,7 @@ GnssHalTest::GnssCallback::GnssCallback()
      name_cbq_("name"),
      capabilities_cbq_("capabilities"),
      location_cbq_("location"),
      sv_info_cbq_("sv_info") {}
      sv_info_list_cbq_("sv_info") {}

Return<void> GnssHalTest::GnssCallback::gnssSetSystemInfoCb(
        const IGnssCallback_1_0::GnssSystemInfo& info) {
@@ -204,7 +204,7 @@ Return<void> GnssHalTest::GnssCallback::gnssSvStatusCb(const IGnssCallback_1_0::
Return<void> GnssHalTest::GnssCallback::gnssSvStatusCb_2_0(
        const hidl_vec<IGnssCallback_2_0::GnssSvInfo>& svInfoList) {
    ALOGI("gnssSvStatusCb_2_0. Size = %d", (int)svInfoList.size());
    sv_info_cbq_.store(svInfoList);
    sv_info_list_cbq_.store(svInfoList);
    return Void();
}

Loading