Loading radio/aidl/vts/radio_aidl_hal_utils.cpp +20 −0 Original line number Original line Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; } } radio/aidl/vts/radio_aidl_hal_utils.h +6 −0 Original line number Original line Diff line number Diff line Loading @@ -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> Loading @@ -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_; Loading Loading @@ -141,4 +144,7 @@ class RadioServiceTest { /* Update SIM card status */ /* Update SIM card status */ void updateSimCardStatus(); void updateSimCardStatus(); /* Update SIM slot status */ void updateSimSlotStatus(); }; }; radio/aidl/vts/radio_config_response.cpp +2 −1 Original line number Original line Diff line number Diff line Loading @@ -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(); } } Loading radio/aidl/vts/radio_config_test.cpp +56 −0 Original line number Original line Diff line number Diff line Loading @@ -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. */ */ Loading Loading @@ -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); } } } } radio/aidl/vts/radio_config_utils.h +3 −0 Original line number Original line Diff line number Diff line Loading @@ -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; Loading Loading @@ -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 Loading
radio/aidl/vts/radio_aidl_hal_utils.cpp +20 −0 Original line number Original line Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; } }
radio/aidl/vts/radio_aidl_hal_utils.h +6 −0 Original line number Original line Diff line number Diff line Loading @@ -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> Loading @@ -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_; Loading Loading @@ -141,4 +144,7 @@ class RadioServiceTest { /* Update SIM card status */ /* Update SIM card status */ void updateSimCardStatus(); void updateSimCardStatus(); /* Update SIM slot status */ void updateSimSlotStatus(); }; };
radio/aidl/vts/radio_config_response.cpp +2 −1 Original line number Original line Diff line number Diff line Loading @@ -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(); } } Loading
radio/aidl/vts/radio_config_test.cpp +56 −0 Original line number Original line Diff line number Diff line Loading @@ -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. */ */ Loading Loading @@ -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); } } } }
radio/aidl/vts/radio_config_utils.h +3 −0 Original line number Original line Diff line number Diff line Loading @@ -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; Loading Loading @@ -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