1064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq/* 2064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq * Copyright (C) 2017 The Android Open Source Project 3064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq * 4064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq * Licensed under the Apache License, Version 2.0 (the "License"); 5064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq * you may not use this file except in compliance with the License. 6064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq * You may obtain a copy of the License at 7064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq * 8064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq * http://www.apache.org/licenses/LICENSE-2.0 9064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq * 10064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq * Unless required by applicable law or agreed to in writing, software 11064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq * distributed under the License is distributed on an "AS IS" BASIS, 12064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq * See the License for the specific language governing permissions and 14064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq * limitations under the License. 15064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq */ 16064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 170c74fc78392703e19ba51ce0ced510a55a0a994bsqian#include <radio_hidl_hal_utils_v1_0.h> 18064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 19064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoqusing namespace ::android::hardware::radio::V1_0; 20064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 21064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq/* 22064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq * Test IRadio.sendSms() for the response returned. 23064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq */ 24064ee51e0793ab7c8ad8cc440843c995f145e0a4ShuoqTEST_F(RadioHidlTest, sendSms) { 25788eb8083059ff0dca686734ceebf942042c4893sqian serial = GetRandomSerialNumber(); 26fcc61188827e1472965b36041c29b80cbe4079basqian GsmSmsMessage msg; 27fcc61188827e1472965b36041c29b80cbe4079basqian msg.smscPdu = ""; 28fcc61188827e1472965b36041c29b80cbe4079basqian msg.pdu = "01000b916105770203f3000006d4f29c3e9b01"; 29fcc61188827e1472965b36041c29b80cbe4079basqian 30fcc61188827e1472965b36041c29b80cbe4079basqian radio->sendSms(serial, msg); 31fcc61188827e1472965b36041c29b80cbe4079basqian 32788eb8083059ff0dca686734ceebf942042c4893sqian EXPECT_EQ(std::cv_status::no_timeout, wait(300)); 33fcc61188827e1472965b36041c29b80cbe4079basqian EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type); 34fcc61188827e1472965b36041c29b80cbe4079basqian EXPECT_EQ(serial, radioRsp->rspInfo.serial); 35fcc61188827e1472965b36041c29b80cbe4079basqian 36fcc61188827e1472965b36041c29b80cbe4079basqian if (cardStatus.cardState == CardState::ABSENT) { 37e986b85fddeb3412606840e4cdc76051e3cc966esqian ASSERT_TRUE(CheckAnyOfErrors( 38e986b85fddeb3412606840e4cdc76051e3cc966esqian radioRsp->rspInfo.error, 39e986b85fddeb3412606840e4cdc76051e3cc966esqian {RadioError::INVALID_ARGUMENTS, RadioError::INVALID_STATE, RadioError::SIM_ABSENT}, 40e986b85fddeb3412606840e4cdc76051e3cc966esqian CHECK_GENERAL_ERROR)); 41fcc61188827e1472965b36041c29b80cbe4079basqian EXPECT_EQ(0, radioRsp->sendSmsResult.errorCode); 42fcc61188827e1472965b36041c29b80cbe4079basqian } 43064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq} 44064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 45064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq/* 46064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq * Test IRadio.sendSMSExpectMore() for the response returned. 47064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq */ 48064ee51e0793ab7c8ad8cc440843c995f145e0a4ShuoqTEST_F(RadioHidlTest, sendSMSExpectMore) { 49788eb8083059ff0dca686734ceebf942042c4893sqian serial = GetRandomSerialNumber(); 50fcc61188827e1472965b36041c29b80cbe4079basqian GsmSmsMessage msg; 51fcc61188827e1472965b36041c29b80cbe4079basqian msg.smscPdu = ""; 52fcc61188827e1472965b36041c29b80cbe4079basqian msg.pdu = "01000b916105770203f3000006d4f29c3e9b01"; 5387bde3312ab61714a3469f59084b40c46a6627deYuexi Ma 54fcc61188827e1472965b36041c29b80cbe4079basqian radio->sendSMSExpectMore(serial, msg); 5587bde3312ab61714a3469f59084b40c46a6627deYuexi Ma 56fcc61188827e1472965b36041c29b80cbe4079basqian // TODO(shuoq): add more test for this API when inserted sim card is 57fcc61188827e1472965b36041c29b80cbe4079basqian // considered 5887bde3312ab61714a3469f59084b40c46a6627deYuexi Ma 59788eb8083059ff0dca686734ceebf942042c4893sqian EXPECT_EQ(std::cv_status::no_timeout, wait(300)); 60fcc61188827e1472965b36041c29b80cbe4079basqian EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type); 61fcc61188827e1472965b36041c29b80cbe4079basqian EXPECT_EQ(serial, radioRsp->rspInfo.serial); 6287bde3312ab61714a3469f59084b40c46a6627deYuexi Ma 63fcc61188827e1472965b36041c29b80cbe4079basqian if (cardStatus.cardState == CardState::ABSENT) { 64e986b85fddeb3412606840e4cdc76051e3cc966esqian ASSERT_TRUE(CheckAnyOfErrors( 65e986b85fddeb3412606840e4cdc76051e3cc966esqian radioRsp->rspInfo.error, 66e986b85fddeb3412606840e4cdc76051e3cc966esqian {RadioError::INVALID_ARGUMENTS, RadioError::INVALID_STATE, RadioError::SIM_ABSENT}, 67e986b85fddeb3412606840e4cdc76051e3cc966esqian CHECK_GENERAL_ERROR)); 68fcc61188827e1472965b36041c29b80cbe4079basqian } 69064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq} 70064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 71064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq/* 72064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq * Test IRadio.acknowledgeLastIncomingGsmSms() for the response returned. 73064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq */ 74064ee51e0793ab7c8ad8cc440843c995f145e0a4ShuoqTEST_F(RadioHidlTest, acknowledgeLastIncomingGsmSms) { 75788eb8083059ff0dca686734ceebf942042c4893sqian serial = GetRandomSerialNumber(); 76fcc61188827e1472965b36041c29b80cbe4079basqian bool success = true; 77064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 78fcc61188827e1472965b36041c29b80cbe4079basqian radio->acknowledgeLastIncomingGsmSms(serial, success, 79fcc61188827e1472965b36041c29b80cbe4079basqian SmsAcknowledgeFailCause::MEMORY_CAPACITY_EXCEEDED); 80064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 81fcc61188827e1472965b36041c29b80cbe4079basqian EXPECT_EQ(std::cv_status::no_timeout, wait()); 82fcc61188827e1472965b36041c29b80cbe4079basqian EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type); 83fcc61188827e1472965b36041c29b80cbe4079basqian EXPECT_EQ(serial, radioRsp->rspInfo.serial); 84064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 85fcc61188827e1472965b36041c29b80cbe4079basqian if (cardStatus.cardState == CardState::ABSENT) { 86e986b85fddeb3412606840e4cdc76051e3cc966esqian ASSERT_TRUE(CheckAnyOfErrors(radioRsp->rspInfo.error, 87e986b85fddeb3412606840e4cdc76051e3cc966esqian {RadioError::INVALID_ARGUMENTS, RadioError::INVALID_STATE}, 88e986b85fddeb3412606840e4cdc76051e3cc966esqian CHECK_GENERAL_ERROR)); 89fcc61188827e1472965b36041c29b80cbe4079basqian } 90064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq} 91064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 92064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq/* 93064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq * Test IRadio.acknowledgeIncomingGsmSmsWithPdu() for the response returned. 94064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq */ 95064ee51e0793ab7c8ad8cc440843c995f145e0a4ShuoqTEST_F(RadioHidlTest, acknowledgeIncomingGsmSmsWithPdu) { 96788eb8083059ff0dca686734ceebf942042c4893sqian serial = GetRandomSerialNumber(); 97fcc61188827e1472965b36041c29b80cbe4079basqian bool success = true; 98fcc61188827e1472965b36041c29b80cbe4079basqian std::string ackPdu = ""; 99064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 100fcc61188827e1472965b36041c29b80cbe4079basqian radio->acknowledgeIncomingGsmSmsWithPdu(serial, success, ackPdu); 101064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 102fcc61188827e1472965b36041c29b80cbe4079basqian EXPECT_EQ(std::cv_status::no_timeout, wait()); 103fcc61188827e1472965b36041c29b80cbe4079basqian EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type); 104fcc61188827e1472965b36041c29b80cbe4079basqian EXPECT_EQ(serial, radioRsp->rspInfo.serial); 105064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 106fcc61188827e1472965b36041c29b80cbe4079basqian if (cardStatus.cardState == CardState::ABSENT) { 107fcc61188827e1472965b36041c29b80cbe4079basqian // TODO(shuoq): Will add error check when we know the expected error from QC 108fcc61188827e1472965b36041c29b80cbe4079basqian } 109064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq} 110064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 111064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq/* 112064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq * Test IRadio.sendCdmaSms() for the response returned. 113064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq */ 114064ee51e0793ab7c8ad8cc440843c995f145e0a4ShuoqTEST_F(RadioHidlTest, sendCdmaSms) { 115788eb8083059ff0dca686734ceebf942042c4893sqian serial = GetRandomSerialNumber(); 116fcc61188827e1472965b36041c29b80cbe4079basqian 117fcc61188827e1472965b36041c29b80cbe4079basqian // Create a CdmaSmsAddress 118fcc61188827e1472965b36041c29b80cbe4079basqian CdmaSmsAddress cdmaSmsAddress; 119fcc61188827e1472965b36041c29b80cbe4079basqian cdmaSmsAddress.digitMode = CdmaSmsDigitMode::FOUR_BIT; 120fcc61188827e1472965b36041c29b80cbe4079basqian cdmaSmsAddress.numberMode = CdmaSmsNumberMode::NOT_DATA_NETWORK; 121fcc61188827e1472965b36041c29b80cbe4079basqian cdmaSmsAddress.numberType = CdmaSmsNumberType::UNKNOWN; 122fcc61188827e1472965b36041c29b80cbe4079basqian cdmaSmsAddress.numberPlan = CdmaSmsNumberPlan::UNKNOWN; 123fcc61188827e1472965b36041c29b80cbe4079basqian cdmaSmsAddress.digits = (std::vector<uint8_t>){11, 1, 6, 5, 10, 7, 7, 2, 10, 3, 10, 3}; 124fcc61188827e1472965b36041c29b80cbe4079basqian 125fcc61188827e1472965b36041c29b80cbe4079basqian // Create a CdmaSmsSubAddress 126fcc61188827e1472965b36041c29b80cbe4079basqian CdmaSmsSubaddress cdmaSmsSubaddress; 127fcc61188827e1472965b36041c29b80cbe4079basqian cdmaSmsSubaddress.subaddressType = CdmaSmsSubaddressType::NSAP; 128fcc61188827e1472965b36041c29b80cbe4079basqian cdmaSmsSubaddress.odd = false; 129fcc61188827e1472965b36041c29b80cbe4079basqian cdmaSmsSubaddress.digits = (std::vector<uint8_t>){}; 130fcc61188827e1472965b36041c29b80cbe4079basqian 131fcc61188827e1472965b36041c29b80cbe4079basqian // Create a CdmaSmsMessage 132fcc61188827e1472965b36041c29b80cbe4079basqian android::hardware::radio::V1_0::CdmaSmsMessage cdmaSmsMessage; 133fcc61188827e1472965b36041c29b80cbe4079basqian cdmaSmsMessage.teleserviceId = 4098; 134fcc61188827e1472965b36041c29b80cbe4079basqian cdmaSmsMessage.isServicePresent = false; 135fcc61188827e1472965b36041c29b80cbe4079basqian cdmaSmsMessage.serviceCategory = 0; 136fcc61188827e1472965b36041c29b80cbe4079basqian cdmaSmsMessage.address = cdmaSmsAddress; 137fcc61188827e1472965b36041c29b80cbe4079basqian cdmaSmsMessage.subAddress = cdmaSmsSubaddress; 138fcc61188827e1472965b36041c29b80cbe4079basqian cdmaSmsMessage.bearerData = 139fcc61188827e1472965b36041c29b80cbe4079basqian (std::vector<uint8_t>){15, 0, 3, 32, 3, 16, 1, 8, 16, 53, 76, 68, 6, 51, 106, 0}; 140fcc61188827e1472965b36041c29b80cbe4079basqian 141fcc61188827e1472965b36041c29b80cbe4079basqian radio->sendCdmaSms(serial, cdmaSmsMessage); 142fcc61188827e1472965b36041c29b80cbe4079basqian 143fcc61188827e1472965b36041c29b80cbe4079basqian EXPECT_EQ(std::cv_status::no_timeout, wait()); 144fcc61188827e1472965b36041c29b80cbe4079basqian EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type); 145fcc61188827e1472965b36041c29b80cbe4079basqian EXPECT_EQ(serial, radioRsp->rspInfo.serial); 146fcc61188827e1472965b36041c29b80cbe4079basqian 147fcc61188827e1472965b36041c29b80cbe4079basqian if (cardStatus.cardState == CardState::ABSENT) { 148e986b85fddeb3412606840e4cdc76051e3cc966esqian ASSERT_TRUE(CheckAnyOfErrors( 149e986b85fddeb3412606840e4cdc76051e3cc966esqian radioRsp->rspInfo.error, 150e986b85fddeb3412606840e4cdc76051e3cc966esqian {RadioError::INVALID_ARGUMENTS, RadioError::INVALID_STATE, RadioError::SIM_ABSENT}, 151e986b85fddeb3412606840e4cdc76051e3cc966esqian CHECK_GENERAL_ERROR)); 152fcc61188827e1472965b36041c29b80cbe4079basqian } 153064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq} 154064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 155064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq/* 156064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq * Test IRadio.acknowledgeLastIncomingCdmaSms() for the response returned. 157064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq */ 158064ee51e0793ab7c8ad8cc440843c995f145e0a4ShuoqTEST_F(RadioHidlTest, acknowledgeLastIncomingCdmaSms) { 159788eb8083059ff0dca686734ceebf942042c4893sqian serial = GetRandomSerialNumber(); 160064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 161fcc61188827e1472965b36041c29b80cbe4079basqian // Create a CdmaSmsAck 162fcc61188827e1472965b36041c29b80cbe4079basqian CdmaSmsAck cdmaSmsAck; 163fcc61188827e1472965b36041c29b80cbe4079basqian cdmaSmsAck.errorClass = CdmaSmsErrorClass::NO_ERROR; 164fcc61188827e1472965b36041c29b80cbe4079basqian cdmaSmsAck.smsCauseCode = 1; 165064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 166fcc61188827e1472965b36041c29b80cbe4079basqian radio->acknowledgeLastIncomingCdmaSms(serial, cdmaSmsAck); 167064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 168fcc61188827e1472965b36041c29b80cbe4079basqian EXPECT_EQ(std::cv_status::no_timeout, wait()); 169fcc61188827e1472965b36041c29b80cbe4079basqian EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type); 170fcc61188827e1472965b36041c29b80cbe4079basqian EXPECT_EQ(serial, radioRsp->rspInfo.serial); 171064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 172fcc61188827e1472965b36041c29b80cbe4079basqian if (cardStatus.cardState == CardState::ABSENT) { 173e986b85fddeb3412606840e4cdc76051e3cc966esqian ASSERT_TRUE(CheckAnyOfErrors(radioRsp->rspInfo.error, 174e986b85fddeb3412606840e4cdc76051e3cc966esqian {RadioError::INVALID_ARGUMENTS, RadioError::NO_SMS_TO_ACK}, 175e986b85fddeb3412606840e4cdc76051e3cc966esqian CHECK_GENERAL_ERROR)); 176fcc61188827e1472965b36041c29b80cbe4079basqian } 177064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq} 178064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 179064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq/* 180064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq * Test IRadio.sendImsSms() for the response returned. 181064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq */ 182064ee51e0793ab7c8ad8cc440843c995f145e0a4ShuoqTEST_F(RadioHidlTest, sendImsSms) { 183788eb8083059ff0dca686734ceebf942042c4893sqian serial = GetRandomSerialNumber(); 184fcc61188827e1472965b36041c29b80cbe4079basqian 185fcc61188827e1472965b36041c29b80cbe4079basqian // Create a CdmaSmsAddress 186fcc61188827e1472965b36041c29b80cbe4079basqian CdmaSmsAddress cdmaSmsAddress; 187fcc61188827e1472965b36041c29b80cbe4079basqian cdmaSmsAddress.digitMode = CdmaSmsDigitMode::FOUR_BIT; 188fcc61188827e1472965b36041c29b80cbe4079basqian cdmaSmsAddress.numberMode = CdmaSmsNumberMode::NOT_DATA_NETWORK; 189fcc61188827e1472965b36041c29b80cbe4079basqian cdmaSmsAddress.numberType = CdmaSmsNumberType::UNKNOWN; 190fcc61188827e1472965b36041c29b80cbe4079basqian cdmaSmsAddress.numberPlan = CdmaSmsNumberPlan::UNKNOWN; 191fcc61188827e1472965b36041c29b80cbe4079basqian cdmaSmsAddress.digits = (std::vector<uint8_t>){11, 1, 6, 5, 10, 7, 7, 2, 10, 3, 10, 3}; 192fcc61188827e1472965b36041c29b80cbe4079basqian 193fcc61188827e1472965b36041c29b80cbe4079basqian // Create a CdmaSmsSubAddress 194fcc61188827e1472965b36041c29b80cbe4079basqian CdmaSmsSubaddress cdmaSmsSubaddress; 195fcc61188827e1472965b36041c29b80cbe4079basqian cdmaSmsSubaddress.subaddressType = CdmaSmsSubaddressType::NSAP; 196fcc61188827e1472965b36041c29b80cbe4079basqian cdmaSmsSubaddress.odd = false; 197fcc61188827e1472965b36041c29b80cbe4079basqian cdmaSmsSubaddress.digits = (std::vector<uint8_t>){}; 198fcc61188827e1472965b36041c29b80cbe4079basqian 199fcc61188827e1472965b36041c29b80cbe4079basqian // Create a CdmaSmsMessage 200fcc61188827e1472965b36041c29b80cbe4079basqian CdmaSmsMessage cdmaSmsMessage; 201fcc61188827e1472965b36041c29b80cbe4079basqian cdmaSmsMessage.teleserviceId = 4098; 202fcc61188827e1472965b36041c29b80cbe4079basqian cdmaSmsMessage.isServicePresent = false; 203fcc61188827e1472965b36041c29b80cbe4079basqian cdmaSmsMessage.serviceCategory = 0; 204fcc61188827e1472965b36041c29b80cbe4079basqian cdmaSmsMessage.address = cdmaSmsAddress; 205fcc61188827e1472965b36041c29b80cbe4079basqian cdmaSmsMessage.subAddress = cdmaSmsSubaddress; 206fcc61188827e1472965b36041c29b80cbe4079basqian cdmaSmsMessage.bearerData = 207fcc61188827e1472965b36041c29b80cbe4079basqian (std::vector<uint8_t>){15, 0, 3, 32, 3, 16, 1, 8, 16, 53, 76, 68, 6, 51, 106, 0}; 208fcc61188827e1472965b36041c29b80cbe4079basqian 209fcc61188827e1472965b36041c29b80cbe4079basqian // Creata an ImsSmsMessage 210fcc61188827e1472965b36041c29b80cbe4079basqian ImsSmsMessage msg; 211fcc61188827e1472965b36041c29b80cbe4079basqian msg.tech = RadioTechnologyFamily::THREE_GPP2; 212fcc61188827e1472965b36041c29b80cbe4079basqian msg.retry = false; 213fcc61188827e1472965b36041c29b80cbe4079basqian msg.messageRef = 0; 214fcc61188827e1472965b36041c29b80cbe4079basqian msg.cdmaMessage = (std::vector<CdmaSmsMessage>){cdmaSmsMessage}; 215fcc61188827e1472965b36041c29b80cbe4079basqian msg.gsmMessage = (std::vector<GsmSmsMessage>){}; 216fcc61188827e1472965b36041c29b80cbe4079basqian 217fcc61188827e1472965b36041c29b80cbe4079basqian radio->sendImsSms(serial, msg); 218fcc61188827e1472965b36041c29b80cbe4079basqian 219fcc61188827e1472965b36041c29b80cbe4079basqian EXPECT_EQ(std::cv_status::no_timeout, wait()); 220fcc61188827e1472965b36041c29b80cbe4079basqian EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type); 221fcc61188827e1472965b36041c29b80cbe4079basqian EXPECT_EQ(serial, radioRsp->rspInfo.serial); 222fcc61188827e1472965b36041c29b80cbe4079basqian 223fcc61188827e1472965b36041c29b80cbe4079basqian if (cardStatus.cardState == CardState::ABSENT) { 224e986b85fddeb3412606840e4cdc76051e3cc966esqian ASSERT_TRUE(CheckAnyOfErrors(radioRsp->rspInfo.error, {RadioError::INVALID_ARGUMENTS}, 225e986b85fddeb3412606840e4cdc76051e3cc966esqian CHECK_GENERAL_ERROR)); 226fcc61188827e1472965b36041c29b80cbe4079basqian } 227064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq} 228064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 229064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq/* 230064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq * Test IRadio.getSmscAddress() for the response returned. 231064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq */ 232064ee51e0793ab7c8ad8cc440843c995f145e0a4ShuoqTEST_F(RadioHidlTest, getSmscAddress) { 233788eb8083059ff0dca686734ceebf942042c4893sqian serial = GetRandomSerialNumber(); 234064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 235fcc61188827e1472965b36041c29b80cbe4079basqian radio->getSmscAddress(serial); 236064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 237fcc61188827e1472965b36041c29b80cbe4079basqian EXPECT_EQ(std::cv_status::no_timeout, wait()); 238fcc61188827e1472965b36041c29b80cbe4079basqian EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type); 239fcc61188827e1472965b36041c29b80cbe4079basqian EXPECT_EQ(serial, radioRsp->rspInfo.serial); 240064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 241fcc61188827e1472965b36041c29b80cbe4079basqian if (cardStatus.cardState == CardState::ABSENT) { 242e986b85fddeb3412606840e4cdc76051e3cc966esqian ASSERT_TRUE(CheckAnyOfErrors( 243e986b85fddeb3412606840e4cdc76051e3cc966esqian radioRsp->rspInfo.error, 244e986b85fddeb3412606840e4cdc76051e3cc966esqian {RadioError::INVALID_MODEM_STATE, RadioError::INVALID_STATE, RadioError::SIM_ABSENT}, 245e986b85fddeb3412606840e4cdc76051e3cc966esqian CHECK_GENERAL_ERROR)); 246fcc61188827e1472965b36041c29b80cbe4079basqian } 247064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq} 248064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 249064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq/* 250064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq * Test IRadio.setSmscAddress() for the response returned. 251064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq */ 252064ee51e0793ab7c8ad8cc440843c995f145e0a4ShuoqTEST_F(RadioHidlTest, setSmscAddress) { 253788eb8083059ff0dca686734ceebf942042c4893sqian serial = GetRandomSerialNumber(); 254fcc61188827e1472965b36041c29b80cbe4079basqian hidl_string address = hidl_string("smscAddress"); 255064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 256fcc61188827e1472965b36041c29b80cbe4079basqian radio->setSmscAddress(serial, address); 257064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 258fcc61188827e1472965b36041c29b80cbe4079basqian EXPECT_EQ(std::cv_status::no_timeout, wait()); 259fcc61188827e1472965b36041c29b80cbe4079basqian EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type); 260fcc61188827e1472965b36041c29b80cbe4079basqian EXPECT_EQ(serial, radioRsp->rspInfo.serial); 261064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 262fcc61188827e1472965b36041c29b80cbe4079basqian if (cardStatus.cardState == CardState::ABSENT) { 263e986b85fddeb3412606840e4cdc76051e3cc966esqian ASSERT_TRUE(CheckAnyOfErrors( 264e986b85fddeb3412606840e4cdc76051e3cc966esqian radioRsp->rspInfo.error, 265e986b85fddeb3412606840e4cdc76051e3cc966esqian {RadioError::INVALID_ARGUMENTS, RadioError::INVALID_SMS_FORMAT, RadioError::SIM_ABSENT}, 266e986b85fddeb3412606840e4cdc76051e3cc966esqian CHECK_GENERAL_ERROR)); 267fcc61188827e1472965b36041c29b80cbe4079basqian } 268064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq} 269064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 270064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq/* 271064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq * Test IRadio.writeSmsToSim() for the response returned. 272064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq */ 273064ee51e0793ab7c8ad8cc440843c995f145e0a4ShuoqTEST_F(RadioHidlTest, writeSmsToSim) { 274788eb8083059ff0dca686734ceebf942042c4893sqian serial = GetRandomSerialNumber(); 275fcc61188827e1472965b36041c29b80cbe4079basqian SmsWriteArgs smsWriteArgs; 276fcc61188827e1472965b36041c29b80cbe4079basqian smsWriteArgs.status = SmsWriteArgsStatus::REC_UNREAD; 277fcc61188827e1472965b36041c29b80cbe4079basqian smsWriteArgs.smsc = ""; 278fcc61188827e1472965b36041c29b80cbe4079basqian smsWriteArgs.pdu = "01000b916105770203f3000006d4f29c3e9b01"; 279fcc61188827e1472965b36041c29b80cbe4079basqian 280fcc61188827e1472965b36041c29b80cbe4079basqian radio->writeSmsToSim(serial, smsWriteArgs); 281fcc61188827e1472965b36041c29b80cbe4079basqian 282fcc61188827e1472965b36041c29b80cbe4079basqian EXPECT_EQ(std::cv_status::no_timeout, wait()); 283fcc61188827e1472965b36041c29b80cbe4079basqian EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type); 284fcc61188827e1472965b36041c29b80cbe4079basqian EXPECT_EQ(serial, radioRsp->rspInfo.serial); 285fcc61188827e1472965b36041c29b80cbe4079basqian 286fcc61188827e1472965b36041c29b80cbe4079basqian if (cardStatus.cardState == CardState::ABSENT) { 287e986b85fddeb3412606840e4cdc76051e3cc966esqian ASSERT_TRUE(CheckAnyOfErrors( 288e986b85fddeb3412606840e4cdc76051e3cc966esqian radioRsp->rspInfo.error, 289e986b85fddeb3412606840e4cdc76051e3cc966esqian {RadioError::NONE, RadioError::ENCODING_ERR, RadioError::INVALID_ARGUMENTS, 290e986b85fddeb3412606840e4cdc76051e3cc966esqian RadioError::INVALID_SMSC_ADDRESS, RadioError::MODEM_ERR, RadioError::NETWORK_NOT_READY, 291e986b85fddeb3412606840e4cdc76051e3cc966esqian RadioError::NO_RESOURCES, RadioError::SIM_ABSENT}, 292e986b85fddeb3412606840e4cdc76051e3cc966esqian CHECK_GENERAL_ERROR)); 293fcc61188827e1472965b36041c29b80cbe4079basqian } 294064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq} 295064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 296064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq/* 297064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq * Test IRadio.deleteSmsOnSim() for the response returned. 298064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq */ 299064ee51e0793ab7c8ad8cc440843c995f145e0a4ShuoqTEST_F(RadioHidlTest, deleteSmsOnSim) { 300788eb8083059ff0dca686734ceebf942042c4893sqian serial = GetRandomSerialNumber(); 301fcc61188827e1472965b36041c29b80cbe4079basqian int index = 1; 302fcc61188827e1472965b36041c29b80cbe4079basqian 303fcc61188827e1472965b36041c29b80cbe4079basqian radio->deleteSmsOnSim(serial, index); 304fcc61188827e1472965b36041c29b80cbe4079basqian 305fcc61188827e1472965b36041c29b80cbe4079basqian EXPECT_EQ(std::cv_status::no_timeout, wait()); 306fcc61188827e1472965b36041c29b80cbe4079basqian EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type); 307fcc61188827e1472965b36041c29b80cbe4079basqian EXPECT_EQ(serial, radioRsp->rspInfo.serial); 308fcc61188827e1472965b36041c29b80cbe4079basqian 309fcc61188827e1472965b36041c29b80cbe4079basqian if (cardStatus.cardState == CardState::ABSENT) { 310e986b85fddeb3412606840e4cdc76051e3cc966esqian ASSERT_TRUE(CheckAnyOfErrors( 311e986b85fddeb3412606840e4cdc76051e3cc966esqian radioRsp->rspInfo.error, 312e986b85fddeb3412606840e4cdc76051e3cc966esqian {RadioError::NONE, RadioError::ENCODING_ERR, RadioError::INVALID_ARGUMENTS, 313e986b85fddeb3412606840e4cdc76051e3cc966esqian RadioError::INVALID_MODEM_STATE, RadioError::NO_SUCH_ENTRY, RadioError::MODEM_ERR, 314e986b85fddeb3412606840e4cdc76051e3cc966esqian RadioError::SIM_ABSENT}, 315e986b85fddeb3412606840e4cdc76051e3cc966esqian CHECK_GENERAL_ERROR)); 316fcc61188827e1472965b36041c29b80cbe4079basqian } 317064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq} 318064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 319064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq/* 320064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq * Test IRadio.writeSmsToRuim() for the response returned. 321064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq */ 322064ee51e0793ab7c8ad8cc440843c995f145e0a4ShuoqTEST_F(RadioHidlTest, writeSmsToRuim) { 323788eb8083059ff0dca686734ceebf942042c4893sqian serial = GetRandomSerialNumber(); 324fcc61188827e1472965b36041c29b80cbe4079basqian 325fcc61188827e1472965b36041c29b80cbe4079basqian // Create a CdmaSmsAddress 326fcc61188827e1472965b36041c29b80cbe4079basqian CdmaSmsAddress cdmaSmsAddress; 327fcc61188827e1472965b36041c29b80cbe4079basqian cdmaSmsAddress.digitMode = CdmaSmsDigitMode::FOUR_BIT; 328fcc61188827e1472965b36041c29b80cbe4079basqian cdmaSmsAddress.numberMode = CdmaSmsNumberMode::NOT_DATA_NETWORK; 329fcc61188827e1472965b36041c29b80cbe4079basqian cdmaSmsAddress.numberType = CdmaSmsNumberType::UNKNOWN; 330fcc61188827e1472965b36041c29b80cbe4079basqian cdmaSmsAddress.numberPlan = CdmaSmsNumberPlan::UNKNOWN; 331fcc61188827e1472965b36041c29b80cbe4079basqian cdmaSmsAddress.digits = (std::vector<uint8_t>){11, 1, 6, 5, 10, 7, 7, 2, 10, 3, 10, 3}; 332fcc61188827e1472965b36041c29b80cbe4079basqian 333fcc61188827e1472965b36041c29b80cbe4079basqian // Create a CdmaSmsSubAddress 334fcc61188827e1472965b36041c29b80cbe4079basqian CdmaSmsSubaddress cdmaSmsSubaddress; 335fcc61188827e1472965b36041c29b80cbe4079basqian cdmaSmsSubaddress.subaddressType = CdmaSmsSubaddressType::NSAP; 336fcc61188827e1472965b36041c29b80cbe4079basqian cdmaSmsSubaddress.odd = false; 337fcc61188827e1472965b36041c29b80cbe4079basqian cdmaSmsSubaddress.digits = (std::vector<uint8_t>){}; 338fcc61188827e1472965b36041c29b80cbe4079basqian 339fcc61188827e1472965b36041c29b80cbe4079basqian // Create a CdmaSmsMessage 340fcc61188827e1472965b36041c29b80cbe4079basqian CdmaSmsMessage cdmaSmsMessage; 341fcc61188827e1472965b36041c29b80cbe4079basqian cdmaSmsMessage.teleserviceId = 4098; 342fcc61188827e1472965b36041c29b80cbe4079basqian cdmaSmsMessage.isServicePresent = false; 343fcc61188827e1472965b36041c29b80cbe4079basqian cdmaSmsMessage.serviceCategory = 0; 344fcc61188827e1472965b36041c29b80cbe4079basqian cdmaSmsMessage.address = cdmaSmsAddress; 345fcc61188827e1472965b36041c29b80cbe4079basqian cdmaSmsMessage.subAddress = cdmaSmsSubaddress; 346fcc61188827e1472965b36041c29b80cbe4079basqian cdmaSmsMessage.bearerData = 347fcc61188827e1472965b36041c29b80cbe4079basqian (std::vector<uint8_t>){15, 0, 3, 32, 3, 16, 1, 8, 16, 53, 76, 68, 6, 51, 106, 0}; 348fcc61188827e1472965b36041c29b80cbe4079basqian 349fcc61188827e1472965b36041c29b80cbe4079basqian // Create a CdmaSmsWriteArgs 350fcc61188827e1472965b36041c29b80cbe4079basqian CdmaSmsWriteArgs cdmaSmsWriteArgs; 351fcc61188827e1472965b36041c29b80cbe4079basqian cdmaSmsWriteArgs.status = CdmaSmsWriteArgsStatus::REC_UNREAD; 352fcc61188827e1472965b36041c29b80cbe4079basqian cdmaSmsWriteArgs.message = cdmaSmsMessage; 353fcc61188827e1472965b36041c29b80cbe4079basqian 354fcc61188827e1472965b36041c29b80cbe4079basqian radio->writeSmsToRuim(serial, cdmaSmsWriteArgs); 355fcc61188827e1472965b36041c29b80cbe4079basqian 356fcc61188827e1472965b36041c29b80cbe4079basqian EXPECT_EQ(std::cv_status::no_timeout, wait()); 357fcc61188827e1472965b36041c29b80cbe4079basqian EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type); 358fcc61188827e1472965b36041c29b80cbe4079basqian EXPECT_EQ(serial, radioRsp->rspInfo.serial); 359fcc61188827e1472965b36041c29b80cbe4079basqian 360fcc61188827e1472965b36041c29b80cbe4079basqian if (cardStatus.cardState == CardState::ABSENT) { 361e986b85fddeb3412606840e4cdc76051e3cc966esqian ASSERT_TRUE(CheckAnyOfErrors( 362e986b85fddeb3412606840e4cdc76051e3cc966esqian radioRsp->rspInfo.error, 363e986b85fddeb3412606840e4cdc76051e3cc966esqian {RadioError::NONE, RadioError::INVALID_ARGUMENTS, RadioError::INVALID_SMS_FORMAT, 364e986b85fddeb3412606840e4cdc76051e3cc966esqian RadioError::INVALID_SMSC_ADDRESS, RadioError::INVALID_STATE, RadioError::MODEM_ERR, 365e986b85fddeb3412606840e4cdc76051e3cc966esqian RadioError::NO_SUCH_ENTRY, RadioError::SIM_ABSENT}, 366e986b85fddeb3412606840e4cdc76051e3cc966esqian CHECK_GENERAL_ERROR)); 367fcc61188827e1472965b36041c29b80cbe4079basqian } 368064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq} 369064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 370064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq/* 371064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq * Test IRadio.deleteSmsOnRuim() for the response returned. 372064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq */ 373064ee51e0793ab7c8ad8cc440843c995f145e0a4ShuoqTEST_F(RadioHidlTest, deleteSmsOnRuim) { 374788eb8083059ff0dca686734ceebf942042c4893sqian serial = GetRandomSerialNumber(); 375fcc61188827e1472965b36041c29b80cbe4079basqian int index = 1; 376fcc61188827e1472965b36041c29b80cbe4079basqian 377fcc61188827e1472965b36041c29b80cbe4079basqian // Create a CdmaSmsAddress 378fcc61188827e1472965b36041c29b80cbe4079basqian CdmaSmsAddress cdmaSmsAddress; 379fcc61188827e1472965b36041c29b80cbe4079basqian cdmaSmsAddress.digitMode = CdmaSmsDigitMode::FOUR_BIT; 380fcc61188827e1472965b36041c29b80cbe4079basqian cdmaSmsAddress.numberMode = CdmaSmsNumberMode::NOT_DATA_NETWORK; 381fcc61188827e1472965b36041c29b80cbe4079basqian cdmaSmsAddress.numberType = CdmaSmsNumberType::UNKNOWN; 382fcc61188827e1472965b36041c29b80cbe4079basqian cdmaSmsAddress.numberPlan = CdmaSmsNumberPlan::UNKNOWN; 383fcc61188827e1472965b36041c29b80cbe4079basqian cdmaSmsAddress.digits = (std::vector<uint8_t>){11, 1, 6, 5, 10, 7, 7, 2, 10, 3, 10, 3}; 384fcc61188827e1472965b36041c29b80cbe4079basqian 385fcc61188827e1472965b36041c29b80cbe4079basqian // Create a CdmaSmsSubAddress 386fcc61188827e1472965b36041c29b80cbe4079basqian CdmaSmsSubaddress cdmaSmsSubaddress; 387fcc61188827e1472965b36041c29b80cbe4079basqian cdmaSmsSubaddress.subaddressType = CdmaSmsSubaddressType::NSAP; 388fcc61188827e1472965b36041c29b80cbe4079basqian cdmaSmsSubaddress.odd = false; 389fcc61188827e1472965b36041c29b80cbe4079basqian cdmaSmsSubaddress.digits = (std::vector<uint8_t>){}; 390fcc61188827e1472965b36041c29b80cbe4079basqian 391fcc61188827e1472965b36041c29b80cbe4079basqian // Create a CdmaSmsMessage 392fcc61188827e1472965b36041c29b80cbe4079basqian CdmaSmsMessage cdmaSmsMessage; 393fcc61188827e1472965b36041c29b80cbe4079basqian cdmaSmsMessage.teleserviceId = 4098; 394fcc61188827e1472965b36041c29b80cbe4079basqian cdmaSmsMessage.isServicePresent = false; 395fcc61188827e1472965b36041c29b80cbe4079basqian cdmaSmsMessage.serviceCategory = 0; 396fcc61188827e1472965b36041c29b80cbe4079basqian cdmaSmsMessage.address = cdmaSmsAddress; 397fcc61188827e1472965b36041c29b80cbe4079basqian cdmaSmsMessage.subAddress = cdmaSmsSubaddress; 398fcc61188827e1472965b36041c29b80cbe4079basqian cdmaSmsMessage.bearerData = 399fcc61188827e1472965b36041c29b80cbe4079basqian (std::vector<uint8_t>){15, 0, 3, 32, 3, 16, 1, 8, 16, 53, 76, 68, 6, 51, 106, 0}; 400fcc61188827e1472965b36041c29b80cbe4079basqian 401fcc61188827e1472965b36041c29b80cbe4079basqian // Create a CdmaSmsWriteArgs 402fcc61188827e1472965b36041c29b80cbe4079basqian CdmaSmsWriteArgs cdmaSmsWriteArgs; 403fcc61188827e1472965b36041c29b80cbe4079basqian cdmaSmsWriteArgs.status = CdmaSmsWriteArgsStatus::REC_UNREAD; 404fcc61188827e1472965b36041c29b80cbe4079basqian cdmaSmsWriteArgs.message = cdmaSmsMessage; 405fcc61188827e1472965b36041c29b80cbe4079basqian 406fcc61188827e1472965b36041c29b80cbe4079basqian radio->deleteSmsOnRuim(serial, index); 407fcc61188827e1472965b36041c29b80cbe4079basqian 408fcc61188827e1472965b36041c29b80cbe4079basqian EXPECT_EQ(std::cv_status::no_timeout, wait()); 409fcc61188827e1472965b36041c29b80cbe4079basqian EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type); 410fcc61188827e1472965b36041c29b80cbe4079basqian EXPECT_EQ(serial, radioRsp->rspInfo.serial); 411fcc61188827e1472965b36041c29b80cbe4079basqian 412fcc61188827e1472965b36041c29b80cbe4079basqian if (cardStatus.cardState == CardState::ABSENT) { 413e986b85fddeb3412606840e4cdc76051e3cc966esqian ASSERT_TRUE(CheckAnyOfErrors( 414e986b85fddeb3412606840e4cdc76051e3cc966esqian radioRsp->rspInfo.error, 415e986b85fddeb3412606840e4cdc76051e3cc966esqian {RadioError::NONE, RadioError::INVALID_ARGUMENTS, RadioError::INVALID_MODEM_STATE, 416e986b85fddeb3412606840e4cdc76051e3cc966esqian RadioError::MODEM_ERR, RadioError::NO_SUCH_ENTRY, RadioError::SIM_ABSENT}, 417e986b85fddeb3412606840e4cdc76051e3cc966esqian CHECK_GENERAL_ERROR)); 418fcc61188827e1472965b36041c29b80cbe4079basqian } 419064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq} 420064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 421064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq/* 422064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq * Test IRadio.reportSmsMemoryStatus() for the response returned. 423064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq */ 424064ee51e0793ab7c8ad8cc440843c995f145e0a4ShuoqTEST_F(RadioHidlTest, reportSmsMemoryStatus) { 425788eb8083059ff0dca686734ceebf942042c4893sqian serial = GetRandomSerialNumber(); 426fcc61188827e1472965b36041c29b80cbe4079basqian bool available = true; 427064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 428fcc61188827e1472965b36041c29b80cbe4079basqian radio->reportSmsMemoryStatus(serial, available); 429064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 430fcc61188827e1472965b36041c29b80cbe4079basqian EXPECT_EQ(std::cv_status::no_timeout, wait()); 431fcc61188827e1472965b36041c29b80cbe4079basqian EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type); 432fcc61188827e1472965b36041c29b80cbe4079basqian EXPECT_EQ(serial, radioRsp->rspInfo.serial); 433064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 434fcc61188827e1472965b36041c29b80cbe4079basqian if (cardStatus.cardState == CardState::ABSENT) { 435e986b85fddeb3412606840e4cdc76051e3cc966esqian ASSERT_TRUE(CheckAnyOfErrors(radioRsp->rspInfo.error, 436e986b85fddeb3412606840e4cdc76051e3cc966esqian {RadioError::INVALID_ARGUMENTS, RadioError::INVALID_STATE, 437e986b85fddeb3412606840e4cdc76051e3cc966esqian RadioError::MODEM_ERR, RadioError::SIM_ABSENT}, 438e986b85fddeb3412606840e4cdc76051e3cc966esqian CHECK_GENERAL_ERROR)); 439fcc61188827e1472965b36041c29b80cbe4079basqian } 440064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq} 441