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

Commit d6245c05 authored by Xiangyu/Malcolm Chen's avatar Xiangyu/Malcolm Chen Committed by Gerrit Code Review
Browse files

Merge "Add vts tests on CBRS related HAL APIs"

parents 183665d2 5d51ea67
Loading
Loading
Loading
Loading
+33 −0
Original line number Diff line number Diff line
@@ -75,3 +75,36 @@ TEST_F(RadioHidlTest_v1_3, getModemStackStatus) {
            radioRsp_v1_3->rspInfo.error,
            {RadioError::NONE, RadioError::RADIO_NOT_AVAILABLE, RadioError::MODEM_ERR}));
}

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

    RadioAccessSpecifier specifier = {.radioAccessNetwork = RadioAccessNetworks::GERAN,
                                      .geranBands = {GeranBands::BAND_450, GeranBands::BAND_480},
                                      .channels = {1, 2}};

    Return<void> res = radio_v1_3->setSystemSelectionChannels(serial, true, {specifier});
    ASSERT_OK(res);
    EXPECT_EQ(std::cv_status::no_timeout, wait());
    EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp_v1_3->rspInfo.type);
    EXPECT_EQ(serial, radioRsp_v1_3->rspInfo.serial);
    ALOGI("setSystemSelectionChannels, rspInfo.error = %s\n",
          toString(radioRsp_v1_3->rspInfo.error).c_str());
    ASSERT_TRUE(CheckAnyOfErrors(
            radioRsp_v1_3->rspInfo.error,
            {RadioError::NONE, RadioError::RADIO_NOT_AVAILABLE, RadioError::INTERNAL_ERR}));

    if (radioRsp_v1_3->rspInfo.error == RadioError::NONE) {
        Return<void> res = radio_v1_3->setSystemSelectionChannels(serial, false, {specifier});
        ASSERT_OK(res);
        EXPECT_EQ(std::cv_status::no_timeout, wait());
        EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp_v1_3->rspInfo.type);
        EXPECT_EQ(serial, radioRsp_v1_3->rspInfo.serial);
        ALOGI("setSystemSelectionChannels, rspInfo.error = %s\n",
              toString(radioRsp_v1_3->rspInfo.error).c_str());
        EXPECT_EQ(RadioError::NONE, radioRsp_v1_3->rspInfo.error);
    }
}
 No newline at end of file
+3 −0
Original line number Diff line number Diff line
@@ -769,12 +769,14 @@ Return<void> RadioResponse_v1_3::getDataRegistrationStateResponse_1_2(
/* 1.3 Api */
Return<void> RadioResponse_v1_3::setSystemSelectionChannelsResponse(const RadioResponseInfo& info) {
    rspInfo = info;
    parent_v1_3.notify(info.serial);
    return Void();
}

Return<void> RadioResponse_v1_3::enableModemResponse(const RadioResponseInfo& info) {
    rspInfo = info;
    enableModemResponseToggle = !enableModemResponseToggle;
    parent_v1_3.notify(info.serial);
    return Void();
}

@@ -782,5 +784,6 @@ Return<void> RadioResponse_v1_3::getModemStackStatusResponse(const RadioResponse
                                                             const bool enabled) {
    rspInfo = info;
    isModemEnabled = enabled;
    parent_v1_3.notify(info.serial);
    return Void();
}
+86 −0
Original line number Diff line number Diff line
@@ -69,3 +69,89 @@ TEST_F(RadioConfigHidlTest, setModemsConfig_goodRequest) {
    ASSERT_TRUE(CheckAnyOfErrors(radioConfigRsp->rspInfo.error,
                                 {RadioError::NONE, RadioError::REQUEST_NOT_SUPPORTED}));
}

/*
 * Test IRadioConfig.getPhoneCapability()
 */
TEST_F(RadioConfigHidlTest, getPhoneCapability) {
    serial = GetRandomSerialNumber();
    Return<void> res = radioConfig->getPhoneCapability(serial);
    ASSERT_OK(res);
    EXPECT_EQ(std::cv_status::no_timeout, wait());
    EXPECT_EQ(RadioResponseType::SOLICITED, radioConfigRsp->rspInfo.type);
    EXPECT_EQ(serial, radioConfigRsp->rspInfo.serial);
    ALOGI("getPhoneCapability, rspInfo.error = %s\n",
          toString(radioConfigRsp->rspInfo.error).c_str());

    ASSERT_TRUE(CheckAnyOfErrors(
            radioConfigRsp->rspInfo.error,
            {RadioError::NONE, RadioError::RADIO_NOT_AVAILABLE, RadioError::INTERNAL_ERR}));

    if (radioConfigRsp->rspInfo.error == RadioError ::NONE) {
        // maxActiveData should be greater than or equal to maxActiveInternetData.
        EXPECT_GE(radioConfigRsp->phoneCap.maxActiveData,
                  radioConfigRsp->phoneCap.maxActiveInternetData);
        // maxActiveData and maxActiveInternetData should be 0 or positive numbers.
        EXPECT_GE(radioConfigRsp->phoneCap.maxActiveInternetData, 0);
    }
}

/*
 * Test IRadioConfig.getPhoneCapability()
 */
TEST_F(RadioConfigHidlTest, setPreferredDataModem) {
    serial = GetRandomSerialNumber();
    Return<void> res = radioConfig->getPhoneCapability(serial);
    ASSERT_OK(res);
    EXPECT_EQ(std::cv_status::no_timeout, wait());
    EXPECT_EQ(RadioResponseType::SOLICITED, radioConfigRsp->rspInfo.type);
    EXPECT_EQ(serial, radioConfigRsp->rspInfo.serial);
    ALOGI("getPhoneCapability, rspInfo.error = %s\n",
          toString(radioConfigRsp->rspInfo.error).c_str());

    ASSERT_TRUE(CheckAnyOfErrors(
            radioConfigRsp->rspInfo.error,
            {RadioError::NONE, RadioError::RADIO_NOT_AVAILABLE, RadioError::INTERNAL_ERR}));

    if (radioConfigRsp->rspInfo.error != RadioError ::NONE) {
        return;
    }

    if (radioConfigRsp->phoneCap.logicalModemList.size() == 0) {
        return;
    }

    // We get phoneCapability. send setPreferredDataModem command
    serial = GetRandomSerialNumber();
    uint8_t modemId = radioConfigRsp->phoneCap.logicalModemList[0].modemId;
    res = radioConfig->setPreferredDataModem(serial, modemId);

    ASSERT_OK(res);
    EXPECT_EQ(std::cv_status::no_timeout, wait());
    EXPECT_EQ(RadioResponseType::SOLICITED, radioConfigRsp->rspInfo.type);
    EXPECT_EQ(serial, radioConfigRsp->rspInfo.serial);
    ALOGI("getModemsConfig, rspInfo.error = %s\n", toString(radioConfigRsp->rspInfo.error).c_str());

    ASSERT_TRUE(CheckAnyOfErrors(
            radioConfigRsp->rspInfo.error,
            {RadioError::NONE, RadioError::RADIO_NOT_AVAILABLE, RadioError::INTERNAL_ERR}));
}

/*
 * Test IRadioConfig.getPhoneCapability()
 */
TEST_F(RadioConfigHidlTest, setPreferredDataModem_invalidArgument) {
    serial = GetRandomSerialNumber();
    uint8_t modemId = -1;
    Return<void> res = radioConfig->setPreferredDataModem(serial, modemId);

    ASSERT_OK(res);
    EXPECT_EQ(std::cv_status::no_timeout, wait());
    EXPECT_EQ(RadioResponseType::SOLICITED, radioConfigRsp->rspInfo.type);
    EXPECT_EQ(serial, radioConfigRsp->rspInfo.serial);
    ALOGI("getModemsConfig, rspInfo.error = %s\n", toString(radioConfigRsp->rspInfo.error).c_str());

    ASSERT_TRUE(CheckAnyOfErrors(radioConfigRsp->rspInfo.error,
                                 {RadioError::INVALID_ARGUMENTS, RadioError::RADIO_NOT_AVAILABLE,
                                  RadioError::INTERNAL_ERR}));
}
+1 −0
Original line number Diff line number Diff line
@@ -51,6 +51,7 @@ class RadioConfigResponse : public IRadioConfigResponse {

   public:
    RadioResponseInfo rspInfo;
    PhoneCapability phoneCap;

    RadioConfigResponse(RadioConfigHidlTest& parent);
    virtual ~RadioConfigResponse() = default;
+4 −1
Original line number Diff line number Diff line
@@ -31,7 +31,10 @@ Return<void> RadioConfigResponse::setSimSlotsMappingResponse(const RadioResponse
}

Return<void> RadioConfigResponse::getPhoneCapabilityResponse(
        const RadioResponseInfo& /* info */, const PhoneCapability& /* phoneCapability */) {
        const RadioResponseInfo& info, const PhoneCapability& phoneCapability) {
    rspInfo = info;
    phoneCap = phoneCapability;
    parent.notify(info.serial);
    return Void();
}