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

Commit 93be0288 authored by Michele Berionne's avatar Michele Berionne Committed by android-build-merger
Browse files

Merge "VTS test cases for IRadio 1.4 API for carrier restrictions" am: 0be84989

am: 2cafc87f

Change-Id: I7dd0d1a0584ab1f4dcbd667c3b0eca147adf2a29
parents 5dbbaec6 2cafc87f
Loading
Loading
Loading
Loading
+113 −0
Original line number Diff line number Diff line
@@ -563,3 +563,116 @@ TEST_F(RadioHidlTest_v1_4, setupDataCall_1_4) {
                                      RadioError::OP_NOT_ALLOWED_BEFORE_REG_TO_NW}));
    }
}

/*
 * Test IRadio.getAllowedCarriers_1_4() for the response returned.
 */
TEST_F(RadioHidlTest_v1_4, getAllowedCarriers_1_4) {
    serial = GetRandomSerialNumber();

    radio_v1_4->getAllowedCarriers_1_4(serial);
    EXPECT_EQ(std::cv_status::no_timeout, wait());
    EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp_v1_4->rspInfo.type);
    EXPECT_EQ(serial, radioRsp_v1_4->rspInfo.serial);

    ASSERT_TRUE(CheckAnyOfErrors(radioRsp_v1_4->rspInfo.error,
                                 {RadioError::NONE, RadioError::REQUEST_NOT_SUPPORTED}));
}

/**
 * Test IRadio.setAllowedCarriers_1_4() for the response returned.
 */
TEST_F(RadioHidlTest_v1_4, setAllowedCarriers_1_4) {
    serial = GetRandomSerialNumber();
    CarrierRestrictionsWithPriority carrierRestrictions;
    memset(&carrierRestrictions, 0, sizeof(carrierRestrictions));
    carrierRestrictions.allowedCarriers.resize(1);
    carrierRestrictions.excludedCarriers.resize(0);
    carrierRestrictions.allowedCarriers[0].mcc = hidl_string("123");
    carrierRestrictions.allowedCarriers[0].mnc = hidl_string("456");
    carrierRestrictions.allowedCarriers[0].matchType = CarrierMatchType::ALL;
    carrierRestrictions.allowedCarriers[0].matchData = hidl_string();
    carrierRestrictions.allowedCarriersPrioritized = true;
    SimLockMultiSimPolicy multisimPolicy = SimLockMultiSimPolicy::NO_MULTISIM_POLICY;

    radio_v1_4->setAllowedCarriers_1_4(serial, carrierRestrictions, multisimPolicy);
    EXPECT_EQ(std::cv_status::no_timeout, wait());
    EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp_v1_4->rspInfo.type);
    EXPECT_EQ(serial, radioRsp_v1_4->rspInfo.serial);

    ASSERT_TRUE(CheckAnyOfErrors(radioRsp_v1_4->rspInfo.error,
                                 {RadioError::NONE, RadioError::REQUEST_NOT_SUPPORTED}));

    if (radioRsp_v1_4->rspInfo.error == RadioError::NONE) {
        /* Verify the update of the SIM status. This might need some time */
        if (cardStatus.base.base.cardState != CardState::ABSENT) {
            updateSimCardStatus();
            auto startTime = std::chrono::system_clock::now();
            while (cardStatus.base.base.cardState != CardState::RESTRICTED &&
                   std::chrono::duration_cast<chrono::seconds>(std::chrono::system_clock::now() -
                                                               startTime)
                                   .count() < 10) {
                /* Set 2 seconds as interval to check card status */
                sleep(2);
                updateSimCardStatus();
            }
            EXPECT_EQ(CardState::RESTRICTED, cardStatus.base.base.cardState);
        }

        /* Verify that configuration was set correctly, retrieving it from the modem */
        serial = GetRandomSerialNumber();

        radio_v1_4->getAllowedCarriers_1_4(serial);
        EXPECT_EQ(std::cv_status::no_timeout, wait());
        EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp_v1_4->rspInfo.type);
        EXPECT_EQ(serial, radioRsp_v1_4->rspInfo.serial);
        EXPECT_EQ(RadioError::NONE, radioRsp_v1_4->rspInfo.error);

        EXPECT_EQ(1, radioRsp_v1_4->carrierRestrictionsResp.allowedCarriers.size());
        EXPECT_EQ(0, radioRsp_v1_4->carrierRestrictionsResp.excludedCarriers.size());
        ASSERT_TRUE(hidl_string("123") ==
                    radioRsp_v1_4->carrierRestrictionsResp.allowedCarriers[0].mcc);
        ASSERT_TRUE(hidl_string("456") ==
                    radioRsp_v1_4->carrierRestrictionsResp.allowedCarriers[0].mnc);
        EXPECT_EQ(CarrierMatchType::ALL,
                  radioRsp_v1_4->carrierRestrictionsResp.allowedCarriers[0].matchType);
        ASSERT_TRUE(radioRsp_v1_4->carrierRestrictionsResp.allowedCarriersPrioritized);
        EXPECT_EQ(SimLockMultiSimPolicy::NO_MULTISIM_POLICY, radioRsp_v1_4->multiSimPolicyResp);

        sleep(10);

        /**
         * Another test case of the API to cover to allow carrier.
         * If the API is supported, this is also used to reset to no carrier restriction
         * status for cardStatus.
         */
        memset(&carrierRestrictions, 0, sizeof(carrierRestrictions));
        carrierRestrictions.allowedCarriers.resize(0);
        carrierRestrictions.excludedCarriers.resize(0);
        carrierRestrictions.allowedCarriersPrioritized = false;

        serial = GetRandomSerialNumber();
        radio_v1_4->setAllowedCarriers_1_4(serial, carrierRestrictions, multisimPolicy);
        EXPECT_EQ(std::cv_status::no_timeout, wait());
        EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp_v1_4->rspInfo.type);
        EXPECT_EQ(serial, radioRsp_v1_4->rspInfo.serial);

        EXPECT_EQ(RadioError::NONE, radioRsp_v1_4->rspInfo.error);

        if (cardStatus.base.base.cardState != CardState::ABSENT) {
            /* Resetting back to no carrier restriction needs some time */
            updateSimCardStatus();
            auto startTime = std::chrono::system_clock::now();
            while (cardStatus.base.base.cardState == CardState::RESTRICTED &&
                   std::chrono::duration_cast<chrono::seconds>(std::chrono::system_clock::now() -
                                                               startTime)
                                   .count() < 10) {
                /* Set 2 seconds as interval to check card status */
                sleep(2);
                updateSimCardStatus();
            }
            EXPECT_NE(CardState::RESTRICTED, cardStatus.base.base.cardState);
            sleep(10);
        }
    }
}
+4 −0
Original line number Diff line number Diff line
@@ -67,6 +67,10 @@ class RadioResponse_v1_4 : public ::android::hardware::radio::V1_4::IRadioRespon
    // Data
    ::android::hardware::radio::V1_4::DataRegStateResult dataRegResp;

    // SimLock status
    ::android::hardware::radio::V1_4::CarrierRestrictionsWithPriority carrierRestrictionsResp;
    ::android::hardware::radio::V1_4::SimLockMultiSimPolicy multiSimPolicyResp;

    RadioResponse_v1_4(RadioHidlTest_v1_4& parent_v1_4);
    virtual ~RadioResponse_v1_4() = default;

+9 −3
Original line number Diff line number Diff line
@@ -862,12 +862,18 @@ Return<void> RadioResponse_v1_4::setupDataCallResponse_1_4(
    return Void();
}

Return<void> RadioResponse_v1_4::setAllowedCarriersResponse_1_4(const RadioResponseInfo& /*info*/) {
Return<void> RadioResponse_v1_4::setAllowedCarriersResponse_1_4(const RadioResponseInfo& info) {
    rspInfo = info;
    parent_v1_4.notify(info.serial);
    return Void();
}

Return<void> RadioResponse_v1_4::getAllowedCarriersResponse_1_4(
        const RadioResponseInfo& /*info*/, const CarrierRestrictionsWithPriority& /*carriers*/,
        SimLockMultiSimPolicy /*multiSimPolicy*/) {
        const RadioResponseInfo& info, const CarrierRestrictionsWithPriority& carriers,
        SimLockMultiSimPolicy multiSimPolicy) {
    rspInfo = info;
    carrierRestrictionsResp = carriers;
    multiSimPolicyResp = multiSimPolicy;
    parent_v1_4.notify(info.serial);
    return Void();
}