diff --git a/radio/1.4/vts/functional/radio_hidl_hal_api.cpp b/radio/1.4/vts/functional/radio_hidl_hal_api.cpp index c395df64c3..15a8acc613 100644 --- a/radio/1.4/vts/functional/radio_hidl_hal_api.cpp +++ b/radio/1.4/vts/functional/radio_hidl_hal_api.cpp @@ -95,6 +95,56 @@ TEST_F(RadioHidlTest_v1_4, emergencyDial_withEmergencyRouting) { EXPECT_EQ(RadioError::NONE, radioRsp_v1_4->rspInfo.error); } +/* + * Test IRadio.getPreferredNetworkTypeBitmap() for the response returned. + */ +TEST_F(RadioHidlTest_v1_4, getPreferredNetworkTypeBitmap) { + serial = GetRandomSerialNumber(); + + Return res = radio_v1_4->getPreferredNetworkTypeBitmap(serial); + + ASSERT_OK(res); + EXPECT_EQ(std::cv_status::no_timeout, wait()); + EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp_v1_4->rspInfo.type); + EXPECT_EQ(serial, radioRsp_v1_4->rspInfo.serial); + ALOGI("getPreferredNetworkTypeBitmap, rspInfo.error = %s\n", + toString(radioRsp_v1_4->rspInfo.error).c_str()); + EXPECT_EQ(RadioError::NONE, radioRsp_v1_4->rspInfo.error); +} + +TEST_F(RadioHidlTest_v1_4, setPreferredNetworkTypeBitmap) { + serial = GetRandomSerialNumber(); + ::android::hardware::hidl_bitfield<::android::hardware::radio::V1_4::RadioAccessFamily> + network_type_bitmap{}; + + network_type_bitmap |= ::android::hardware::radio::V1_4::RadioAccessFamily::LTE; + + Return res = radio_v1_4->setPreferredNetworkTypeBitmap(serial, network_type_bitmap); + + ASSERT_OK(res); + EXPECT_EQ(std::cv_status::no_timeout, wait()); + EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp_v1_4->rspInfo.type); + EXPECT_EQ(serial, radioRsp_v1_4->rspInfo.serial); + ALOGI("setPreferredNetworkTypeBitmap, rspInfo.error = %s\n", + toString(radioRsp_v1_4->rspInfo.error).c_str()); + EXPECT_EQ(RadioError::NONE, radioRsp_v1_4->rspInfo.error); + if (radioRsp_v1_4->rspInfo.error == RadioError::NONE) { + // give some time for modem to set the value. + sleep(3); + serial = GetRandomSerialNumber(); + Return res = radio_v1_4->getPreferredNetworkTypeBitmap(serial); + + ASSERT_OK(res); + EXPECT_EQ(std::cv_status::no_timeout, wait()); + EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp_v1_4->rspInfo.type); + EXPECT_EQ(serial, radioRsp_v1_4->rspInfo.serial); + ALOGI("getPreferredNetworkTypeBitmap, rspInfo.error = %s\n", + toString(radioRsp_v1_4->rspInfo.error).c_str()); + EXPECT_EQ(RadioError::NONE, radioRsp_v1_4->rspInfo.error); + EXPECT_EQ(network_type_bitmap, radioRsp_v1_4->networkTypeBitmapResponse); + } +} + /* * Test IRadio.startNetworkScan() for the response returned. */ diff --git a/radio/1.4/vts/functional/radio_hidl_hal_utils_v1_4.h b/radio/1.4/vts/functional/radio_hidl_hal_utils_v1_4.h index b77814f5a1..ed689c6367 100644 --- a/radio/1.4/vts/functional/radio_hidl_hal_utils_v1_4.h +++ b/radio/1.4/vts/functional/radio_hidl_hal_utils_v1_4.h @@ -61,6 +61,9 @@ class RadioResponse_v1_4 : public ::android::hardware::radio::V1_4::IRadioRespon bool isModemEnabled; bool enableModemResponseToggle; + ::android::hardware::hidl_bitfield<::android::hardware::radio::V1_4::RadioAccessFamily> + networkTypeBitmapResponse; + // Data ::android::hardware::radio::V1_4::DataRegStateResult dataRegResp; diff --git a/radio/1.4/vts/functional/radio_response.cpp b/radio/1.4/vts/functional/radio_response.cpp index 10ecead2a0..6e9cd434c2 100644 --- a/radio/1.4/vts/functional/radio_response.cpp +++ b/radio/1.4/vts/functional/radio_response.cpp @@ -776,7 +776,6 @@ Return RadioResponse_v1_4::setSystemSelectionChannelsResponse(const RadioR Return RadioResponse_v1_4::enableModemResponse(const RadioResponseInfo& info) { rspInfo = info; - enableModemResponseToggle = !enableModemResponseToggle; parent_v1_4.notify(info.serial); return Void(); } @@ -832,9 +831,9 @@ Return RadioResponse_v1_4::getIccCardStatusResponse_1_4( Return RadioResponse_v1_4::getPreferredNetworkTypeBitmapResponse( const RadioResponseInfo& info, const ::android::hardware::hidl_bitfield< ::android::hardware::radio::V1_4::RadioAccessFamily> - /*networkTypeBitmap*/) { + networkTypeBitmap) { rspInfo = info; - // TODO: may need a new member for bitfield networkTypeBitmap. + networkTypeBitmapResponse = networkTypeBitmap; parent_v1_4.notify(info.serial); return Void(); }