diff options
-rw-r--r-- | radio/aidl/vts/radio_aidl_hal_utils.cpp | 20 | ||||
-rw-r--r-- | radio/aidl/vts/radio_aidl_hal_utils.h | 6 | ||||
-rw-r--r-- | radio/aidl/vts/radio_config_response.cpp | 3 | ||||
-rw-r--r-- | radio/aidl/vts/radio_config_test.cpp | 56 | ||||
-rw-r--r-- | radio/aidl/vts/radio_config_utils.h | 3 | ||||
-rw-r--r-- | radio/aidl/vts/radio_sim_test.cpp | 6 |
6 files changed, 93 insertions, 1 deletions
diff --git a/radio/aidl/vts/radio_aidl_hal_utils.cpp b/radio/aidl/vts/radio_aidl_hal_utils.cpp index 76f15bfa4c..861885111f 100644 --- a/radio/aidl/vts/radio_aidl_hal_utils.cpp +++ b/radio/aidl/vts/radio_aidl_hal_utils.cpp @@ -24,6 +24,7 @@ #define WAIT_TIMEOUT_PERIOD 75 sim::CardStatus cardStatus = {}; +config::SimSlotStatus slotStatus = {}; int serial = 0; int count_ = 0; @@ -204,3 +205,22 @@ void RadioServiceTest::updateSimCardStatus() { EXPECT_EQ(serial, radioSimRsp->rspInfo.serial); 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; + } +} diff --git a/radio/aidl/vts/radio_aidl_hal_utils.h b/radio/aidl/vts/radio_aidl_hal_utils.h index 414ffbc456..d6f7bf75b6 100644 --- a/radio/aidl/vts/radio_aidl_hal_utils.h +++ b/radio/aidl/vts/radio_aidl_hal_utils.h @@ -20,6 +20,7 @@ #include <aidl/Vintf.h> #include <aidl/android/hardware/radio/RadioError.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/sim/CardStatus.h> #include <aidl/android/hardware/radio/sim/IRadioSim.h> @@ -27,10 +28,12 @@ #include <vector> 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::sim::CardStatus; extern CardStatus cardStatus; +extern SimSlotStatus slotStatus; extern int serial; extern int count_; @@ -141,4 +144,7 @@ class RadioServiceTest { /* Update SIM card status */ void updateSimCardStatus(); + + /* Update SIM slot status */ + void updateSimSlotStatus(); }; diff --git a/radio/aidl/vts/radio_config_response.cpp b/radio/aidl/vts/radio_config_response.cpp index 8d8160519a..7384f87adc 100644 --- a/radio/aidl/vts/radio_config_response.cpp +++ b/radio/aidl/vts/radio_config_response.cpp @@ -19,8 +19,9 @@ RadioConfigResponse::RadioConfigResponse(RadioServiceTest& parent) : parent_config(parent) {} ndk::ScopedAStatus RadioConfigResponse::getSimSlotsStatusResponse( - const RadioResponseInfo& info, const std::vector<SimSlotStatus>& /* slotStatus */) { + const RadioResponseInfo& info, const std::vector<SimSlotStatus>& slotStatus) { rspInfo = info; + simSlotStatus = slotStatus; parent_config.notify(info.serial); return ndk::ScopedAStatus::ok(); } diff --git a/radio/aidl/vts/radio_config_test.cpp b/radio/aidl/vts/radio_config_test.cpp index 43b63e8209..83c4de0090 100644 --- a/radio/aidl/vts/radio_config_test.cpp +++ b/radio/aidl/vts/radio_config_test.cpp @@ -39,6 +39,19 @@ void RadioConfigTest::SetUp() { 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. */ @@ -148,3 +161,46 @@ TEST_P(RadioConfigTest, setPreferredDataModem_invalidArgument) { {RadioError::INVALID_ARGUMENTS, RadioError::RADIO_NOT_AVAILABLE, 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); + } + } + } +} diff --git a/radio/aidl/vts/radio_config_utils.h b/radio/aidl/vts/radio_config_utils.h index 465c10653b..3db430db5f 100644 --- a/radio/aidl/vts/radio_config_utils.h +++ b/radio/aidl/vts/radio_config_utils.h @@ -38,6 +38,7 @@ class RadioConfigResponse : public BnRadioConfigResponse { RadioResponseInfo rspInfo; PhoneCapability phoneCap; bool modemReducedFeatureSet1; + std::vector<SimSlotStatus> simSlotStatus; virtual ndk::ScopedAStatus getSimSlotsStatusResponse( const RadioResponseInfo& info, const std::vector<SimSlotStatus>& slotStatus) override; @@ -77,6 +78,8 @@ class RadioConfigTest : public ::testing::TestWithParam<std::string>, public Rad public: virtual void SetUp() override; ndk::ScopedAStatus updateSimCardStatus(); + /* Override updateSimSlotStatus in RadioServiceTest to not call setResponseFunctions */ + void updateSimSlotStatus(); /* radio config service handle in RadioServiceTest */ /* radio config response handle */ diff --git a/radio/aidl/vts/radio_sim_test.cpp b/radio/aidl/vts/radio_sim_test.cpp index e82235c2b6..f94a2a05b4 100644 --- a/radio/aidl/vts/radio_sim_test.cpp +++ b/radio/aidl/vts/radio_sim_test.cpp @@ -108,7 +108,13 @@ TEST_P(RadioSimTest, setSimCardPower) { // have CardStatus::STATE_PRESENT after turning the power back on if (radioRsp_sim->rspInfo.error == RadioError::NONE) { updateSimCardStatus(); + updateSimSlotStatus(); EXPECT_EQ(CardStatus::STATE_PRESENT, cardStatus.cardState); + EXPECT_EQ(CardStatus::STATE_PRESENT, slotStatus.cardState); + if (CardStatus::STATE_PRESENT == slotStatus.cardState) { + ASSERT_TRUE(slotStatus.portInfo[0].portActive); + EXPECT_EQ(0, cardStatus.slotMap.portId); + } } } |