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

Commit 89d877e9 authored by Sandeep Jawalkar's avatar Sandeep Jawalkar Committed by Gerrit Code Review
Browse files

Merge "VTS testcases for HAL API setSimSlotMapping"

parents 1b7abc43 3bb50006
Loading
Loading
Loading
Loading
+20 −0
Original line number Original line Diff line number Diff line
@@ -24,6 +24,7 @@
#define WAIT_TIMEOUT_PERIOD 75
#define WAIT_TIMEOUT_PERIOD 75


sim::CardStatus cardStatus = {};
sim::CardStatus cardStatus = {};
config::SimSlotStatus slotStatus = {};
int serial = 0;
int serial = 0;
int count_ = 0;
int count_ = 0;


@@ -204,3 +205,22 @@ void RadioServiceTest::updateSimCardStatus() {
    EXPECT_EQ(serial, radioSimRsp->rspInfo.serial);
    EXPECT_EQ(serial, radioSimRsp->rspInfo.serial);
    EXPECT_EQ(RadioError::NONE, radioSimRsp->rspInfo.error);
    EXPECT_EQ(RadioError::NONE, radioSimRsp->rspInfo.error);
}
}

void RadioServiceTest::updateSimSlotStatus() {
    // Update SimSlotStatus from RadioConfig
    std::shared_ptr<RadioConfigResponse> radioConfigRsp =
            ndk::SharedRefBase::make<RadioConfigResponse>(*this);
    std::shared_ptr<RadioConfigIndication> radioConfigInd =
            ndk::SharedRefBase::make<RadioConfigIndication>(*this);
    radio_config->setResponseFunctions(radioConfigRsp, radioConfigInd);
    serial = GetRandomSerialNumber();
    radio_config->getSimSlotsStatus(serial);
    EXPECT_EQ(std::cv_status::no_timeout, wait());
    EXPECT_EQ(RadioResponseType::SOLICITED, radioConfigRsp->rspInfo.type);
    EXPECT_EQ(serial, radioConfigRsp->rspInfo.serial);
    EXPECT_EQ(RadioError::NONE, radioConfigRsp->rspInfo.error);
    // assuming only 1 slot
    for (const SimSlotStatus& slotStatusResponse : radioConfigRsp->simSlotStatus) {
        slotStatus = slotStatusResponse;
    }
}
+6 −0
Original line number Original line Diff line number Diff line
@@ -20,6 +20,7 @@
#include <aidl/Vintf.h>
#include <aidl/Vintf.h>
#include <aidl/android/hardware/radio/RadioError.h>
#include <aidl/android/hardware/radio/RadioError.h>
#include <aidl/android/hardware/radio/config/IRadioConfig.h>
#include <aidl/android/hardware/radio/config/IRadioConfig.h>
#include <aidl/android/hardware/radio/config/SimSlotStatus.h>
#include <aidl/android/hardware/radio/network/RegState.h>
#include <aidl/android/hardware/radio/network/RegState.h>
#include <aidl/android/hardware/radio/sim/CardStatus.h>
#include <aidl/android/hardware/radio/sim/CardStatus.h>
#include <aidl/android/hardware/radio/sim/IRadioSim.h>
#include <aidl/android/hardware/radio/sim/IRadioSim.h>
@@ -27,10 +28,12 @@
#include <vector>
#include <vector>


using namespace aidl::android::hardware::radio;
using namespace aidl::android::hardware::radio;
using aidl::android::hardware::radio::config::SimSlotStatus;
using aidl::android::hardware::radio::network::RegState;
using aidl::android::hardware::radio::network::RegState;
using aidl::android::hardware::radio::sim::CardStatus;
using aidl::android::hardware::radio::sim::CardStatus;


extern CardStatus cardStatus;
extern CardStatus cardStatus;
extern SimSlotStatus slotStatus;
extern int serial;
extern int serial;
extern int count_;
extern int count_;


@@ -141,4 +144,7 @@ class RadioServiceTest {


    /* Update SIM card status */
    /* Update SIM card status */
    void updateSimCardStatus();
    void updateSimCardStatus();

    /* Update SIM slot status */
    void updateSimSlotStatus();
};
};
+2 −1
Original line number Original line Diff line number Diff line
@@ -19,8 +19,9 @@
RadioConfigResponse::RadioConfigResponse(RadioServiceTest& parent) : parent_config(parent) {}
RadioConfigResponse::RadioConfigResponse(RadioServiceTest& parent) : parent_config(parent) {}


ndk::ScopedAStatus RadioConfigResponse::getSimSlotsStatusResponse(
ndk::ScopedAStatus RadioConfigResponse::getSimSlotsStatusResponse(
        const RadioResponseInfo& info, const std::vector<SimSlotStatus>& /* slotStatus */) {
        const RadioResponseInfo& info, const std::vector<SimSlotStatus>& slotStatus) {
    rspInfo = info;
    rspInfo = info;
    simSlotStatus = slotStatus;
    parent_config.notify(info.serial);
    parent_config.notify(info.serial);
    return ndk::ScopedAStatus::ok();
    return ndk::ScopedAStatus::ok();
}
}
+56 −0
Original line number Original line Diff line number Diff line
@@ -39,6 +39,19 @@ void RadioConfigTest::SetUp() {
    radio_config->setResponseFunctions(radioRsp_config, radioInd_config);
    radio_config->setResponseFunctions(radioRsp_config, radioInd_config);
}
}


void RadioConfigTest::updateSimSlotStatus() {
    serial = GetRandomSerialNumber();
    radio_config->getSimSlotsStatus(serial);
    EXPECT_EQ(std::cv_status::no_timeout, wait());
    EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp_config->rspInfo.type);
    EXPECT_EQ(serial, radioRsp_config->rspInfo.serial);
    EXPECT_EQ(RadioError::NONE, radioRsp_config->rspInfo.error);
    // assuming only 1 slot
    for (const SimSlotStatus& slotStatusResponse : radioRsp_config->simSlotStatus) {
        slotStatus = slotStatusResponse;
    }
}

/*
/*
 * Test IRadioConfig.getHalDeviceCapabilities() for the response returned.
 * Test IRadioConfig.getHalDeviceCapabilities() for the response returned.
 */
 */
@@ -148,3 +161,46 @@ TEST_P(RadioConfigTest, setPreferredDataModem_invalidArgument) {
                                 {RadioError::INVALID_ARGUMENTS, RadioError::RADIO_NOT_AVAILABLE,
                                 {RadioError::INVALID_ARGUMENTS, RadioError::RADIO_NOT_AVAILABLE,
                                  RadioError::INTERNAL_ERR}));
                                  RadioError::INTERNAL_ERR}));
}
}

/*
 * Test IRadioConfig.setSimSlotsMapping() for the response returned.
 */
TEST_P(RadioConfigTest, setSimSlotsMapping) {
    serial = GetRandomSerialNumber();
    SlotPortMapping slotPortMapping;
    slotPortMapping.physicalSlotId = 0;
    slotPortMapping.portId = 0;
    std::vector<SlotPortMapping> slotPortMappingList = {slotPortMapping};
    ndk::ScopedAStatus res = radio_config->setSimSlotsMapping(serial, slotPortMappingList);
    ASSERT_OK(res);
    EXPECT_EQ(std::cv_status::no_timeout, wait());
    EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp_config->rspInfo.type);
    EXPECT_EQ(serial, radioRsp_config->rspInfo.serial);
    ALOGI("setSimSlotsMapping, rspInfo.error = %s\n",
          toString(radioRsp_config->rspInfo.error).c_str());
    ASSERT_TRUE(CheckAnyOfErrors(radioRsp_config->rspInfo.error, {RadioError::NONE}));
}

/*
 * Test IRadioConfig.getSimSlotStatus() for the response returned.
 */

TEST_P(RadioConfigTest, checkPortInfoExistsAndPortActive) {
    serial = GetRandomSerialNumber();
    ndk::ScopedAStatus res = radio_config->getSimSlotsStatus(serial);
    ASSERT_OK(res);
    ALOGI("getSimSlotsStatus, rspInfo.error = %s\n",
          toString(radioRsp_config->rspInfo.error).c_str());
    EXPECT_EQ(std::cv_status::no_timeout, wait());
    EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp_config->rspInfo.type);
    EXPECT_EQ(serial, radioRsp_config->rspInfo.serial);
    if (radioRsp_config->rspInfo.error == RadioError::NONE) {
        // check if cardState is present, portInfo size should be more than 0
        for (const SimSlotStatus& slotStatusResponse : radioRsp_config->simSlotStatus) {
            if (slotStatusResponse.cardState == CardStatus::STATE_PRESENT) {
                ASSERT_TRUE(slotStatusResponse.portInfo.size() > 0);
                ASSERT_TRUE(slotStatusResponse.portInfo[0].portActive);
            }
        }
    }
}
+3 −0
Original line number Original line Diff line number Diff line
@@ -38,6 +38,7 @@ class RadioConfigResponse : public BnRadioConfigResponse {
    RadioResponseInfo rspInfo;
    RadioResponseInfo rspInfo;
    PhoneCapability phoneCap;
    PhoneCapability phoneCap;
    bool modemReducedFeatureSet1;
    bool modemReducedFeatureSet1;
    std::vector<SimSlotStatus> simSlotStatus;


    virtual ndk::ScopedAStatus getSimSlotsStatusResponse(
    virtual ndk::ScopedAStatus getSimSlotsStatusResponse(
            const RadioResponseInfo& info, const std::vector<SimSlotStatus>& slotStatus) override;
            const RadioResponseInfo& info, const std::vector<SimSlotStatus>& slotStatus) override;
@@ -77,6 +78,8 @@ class RadioConfigTest : public ::testing::TestWithParam<std::string>, public Rad
  public:
  public:
    virtual void SetUp() override;
    virtual void SetUp() override;
    ndk::ScopedAStatus updateSimCardStatus();
    ndk::ScopedAStatus updateSimCardStatus();
    /* Override updateSimSlotStatus in RadioServiceTest to not call setResponseFunctions */
    void updateSimSlotStatus();


    /* radio config service handle in RadioServiceTest */
    /* radio config service handle in RadioServiceTest */
    /* radio config response handle */
    /* radio config response handle */
Loading