diff options
Diffstat (limited to 'radio')
5 files changed, 127 insertions, 1 deletions
diff --git a/radio/1.3/vts/functional/radio_hidl_hal_api.cpp b/radio/1.3/vts/functional/radio_hidl_hal_api.cpp index 6208c677f..1bebae738 100644 --- a/radio/1.3/vts/functional/radio_hidl_hal_api.cpp +++ b/radio/1.3/vts/functional/radio_hidl_hal_api.cpp @@ -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 diff --git a/radio/1.3/vts/functional/radio_response.cpp b/radio/1.3/vts/functional/radio_response.cpp index 900794ec1..84a98908b 100644 --- a/radio/1.3/vts/functional/radio_response.cpp +++ b/radio/1.3/vts/functional/radio_response.cpp @@ -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(); } diff --git a/radio/config/1.1/vts/functional/radio_config_hidl_hal_api.cpp b/radio/config/1.1/vts/functional/radio_config_hidl_hal_api.cpp index a8e939cfd..bd6265caf 100644 --- a/radio/config/1.1/vts/functional/radio_config_hidl_hal_api.cpp +++ b/radio/config/1.1/vts/functional/radio_config_hidl_hal_api.cpp @@ -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})); +} diff --git a/radio/config/1.1/vts/functional/radio_config_hidl_hal_utils.h b/radio/config/1.1/vts/functional/radio_config_hidl_hal_utils.h index 592555f8d..d986c9aff 100644 --- a/radio/config/1.1/vts/functional/radio_config_hidl_hal_utils.h +++ b/radio/config/1.1/vts/functional/radio_config_hidl_hal_utils.h @@ -51,6 +51,7 @@ class RadioConfigResponse : public IRadioConfigResponse { public: RadioResponseInfo rspInfo; + PhoneCapability phoneCap; RadioConfigResponse(RadioConfigHidlTest& parent); virtual ~RadioConfigResponse() = default; diff --git a/radio/config/1.1/vts/functional/radio_config_response.cpp b/radio/config/1.1/vts/functional/radio_config_response.cpp index 6e41aebbc..09ee57f92 100644 --- a/radio/config/1.1/vts/functional/radio_config_response.cpp +++ b/radio/config/1.1/vts/functional/radio_config_response.cpp @@ -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(); } |