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

Commit 15be13ea authored by Xin Li's avatar Xin Li
Browse files

Merge qt-r1-dev-plus-aosp-without-vendor (5817612) into stage-aosp-master

Bug: 135460123
Change-Id: Ia07db5c8afeed7fe22a2b18d867a38390f910a81
Merged-In: Ibbd540dbb5baee46360d3fe9469212cfd8f550ba
parents f7b2330d 23046724
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -24,7 +24,7 @@
#include <android/hardware/drm/1.0/types.h>
#include <android/hardware/drm/1.1/types.h>
#include <android/hidl/allocator/1.0/IAllocator.h>
#include <android/hidl/manager/1.0/IServiceManager.h>
#include <android/hidl/manager/1.2/IServiceManager.h>
#include <gtest/gtest.h>
#include <hidl/HidlSupport.h>
#include <hidl/ServiceManagement.h>
@@ -129,9 +129,9 @@ public:
        ALOGD("DrmHalClearkeyTest: Running test %s.%s", test_info->test_case_name(),
                test_info->name());

        auto manager = android::hardware::defaultServiceManager();
        auto manager = android::hardware::defaultServiceManager1_2();
        ASSERT_NE(nullptr, manager.get());
        manager->listByInterface(IDrmFactory::descriptor,
        manager->listManifestByInterface(IDrmFactory::descriptor,
                [&](const hidl_vec<hidl_string> &registered) {
                    for (const auto &instance : registered) {
                        sp<IDrmFactory> drmFactory =
@@ -144,7 +144,7 @@ public:
                }
            );

        manager->listByInterface(ICryptoFactory::descriptor,
        manager->listManifestByInterface(ICryptoFactory::descriptor,
                [&](const hidl_vec<hidl_string> &registered) {
                    for (const auto &instance : registered) {
                        sp<ICryptoFactory> cryptoFactory =
+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

+26 −4
Original line number Diff line number Diff line
@@ -24,6 +24,9 @@

using android::hardware::hidl_vec;

using IGnssMeasurement_1_0 = android::hardware::gnss::V1_0::IGnssMeasurement;
using IGnssMeasurement_1_1 = android::hardware::gnss::V1_1::IGnssMeasurement;

using android::hardware::gnss::V1_0::GnssConstellationType;
using android::hardware::gnss::V1_0::GnssLocation;
using android::hardware::gnss::V1_0::IGnssDebug;
@@ -43,11 +46,15 @@ TEST_F(GnssHalTest, SetupTeardownCreateCleanup) {}
 * Gets the GnssMeasurementExtension and verify that it returns an actual extension.
 */
TEST_F(GnssHalTest, TestGnssMeasurementCallback) {
    auto gnssMeasurement = gnss_hal_->getExtensionGnssMeasurement_1_1();
    ASSERT_TRUE(gnssMeasurement.isOk());
    auto gnssMeasurement_1_1 = gnss_hal_->getExtensionGnssMeasurement_1_1();
    ASSERT_TRUE(gnssMeasurement_1_1.isOk());
    auto gnssMeasurement_1_0 = gnss_hal_->getExtensionGnssMeasurement();
    ASSERT_TRUE(gnssMeasurement_1_0.isOk());
    if (last_capabilities_ & IGnssCallback::Capabilities::MEASUREMENTS) {
        sp<IGnssMeasurement> iGnssMeas = gnssMeasurement;
        EXPECT_NE(iGnssMeas, nullptr);
        sp<IGnssMeasurement_1_1> iGnssMeas_1_1 = gnssMeasurement_1_1;
        sp<IGnssMeasurement_1_0> iGnssMeas_1_0 = gnssMeasurement_1_0;
        // At least one interface must be non-null.
        ASSERT_TRUE(iGnssMeas_1_1 != nullptr || iGnssMeas_1_0 != nullptr);
    }
}

@@ -59,6 +66,11 @@ TEST_F(GnssHalTest, TestGnssMeasurementCallback) {
 * each received location.
 */
TEST_F(GnssHalTest, GetLocationLowPower) {
    if (!IsGnssHalVersion_1_1()) {
        ALOGI("Test GetLocationLowPower skipped. GNSS HAL version is greater than 1.1.");
        return;
    }

    const int kMinIntervalMsec = 5000;
    const int kLocationTimeoutSubsequentSec = (kMinIntervalMsec / 1000) * 2;
    const int kNoLocationPeriodSec = (kMinIntervalMsec / 1000) / 2;
@@ -202,6 +214,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 +340,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;
Loading