1 /* 2 * Copyright (C) 2017 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 #include <radio_hidl_hal_utils.h> 18 19 /* 20 * Test IRadio.getSignalStrength() for the response returned. 21 */ 22 TEST_F(RadioHidlTest, getSignalStrength) { 23 int serial = GetRandomSerialNumber(); 24 25 radio->getSignalStrength(serial); 26 EXPECT_EQ(std::cv_status::no_timeout, wait()); 27 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type); 28 EXPECT_EQ(serial, radioRsp->rspInfo.serial); 29 30 if (cardStatus.cardState == CardState::ABSENT) { 31 ASSERT_TRUE(radioRsp->rspInfo.error == RadioError::NONE); 32 } 33 } 34 35 /* 36 * Test IRadio.getVoiceRegistrationState() for the response returned. 37 */ 38 TEST_F(RadioHidlTest, getVoiceRegistrationState) { 39 int serial = GetRandomSerialNumber(); 40 41 radio->getVoiceRegistrationState(serial); 42 EXPECT_EQ(std::cv_status::no_timeout, wait()); 43 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type); 44 EXPECT_EQ(serial, radioRsp->rspInfo.serial); 45 46 if (cardStatus.cardState == CardState::ABSENT) { 47 ASSERT_TRUE(radioRsp->rspInfo.error == RadioError::NONE); 48 } 49 } 50 51 /* 52 * Test IRadio.getOperator() for the response returned. 53 */ 54 TEST_F(RadioHidlTest, getOperator) { 55 int serial = GetRandomSerialNumber(); 56 57 radio->getOperator(serial); 58 EXPECT_EQ(std::cv_status::no_timeout, wait()); 59 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type); 60 EXPECT_EQ(serial, radioRsp->rspInfo.serial); 61 62 if (cardStatus.cardState == CardState::ABSENT) { 63 ASSERT_TRUE(radioRsp->rspInfo.error == RadioError::NONE); 64 } 65 } 66 67 /* 68 * Test IRadio.setRadioPower() for the response returned. 69 */ 70 TEST_F(RadioHidlTest, setRadioPower) { 71 int serial = GetRandomSerialNumber(); 72 73 radio->setRadioPower(serial, 0); 74 EXPECT_EQ(std::cv_status::no_timeout, wait()); 75 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type); 76 EXPECT_EQ(serial, radioRsp->rspInfo.serial); 77 78 if (cardStatus.cardState == CardState::ABSENT) { 79 ASSERT_TRUE(radioRsp->rspInfo.error == RadioError::NONE); 80 } 81 } 82 83 /* 84 * Test IRadio.getNetworkSelectionMode() for the response returned. 85 */ 86 TEST_F(RadioHidlTest, getNetworkSelectionMode) { 87 int serial = GetRandomSerialNumber(); 88 89 radio->getNetworkSelectionMode(serial); 90 EXPECT_EQ(std::cv_status::no_timeout, wait()); 91 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type); 92 EXPECT_EQ(serial, radioRsp->rspInfo.serial); 93 94 if (cardStatus.cardState == CardState::ABSENT) { 95 ASSERT_TRUE(radioRsp->rspInfo.error == RadioError::NONE); 96 } 97 } 98 99 /* 100 * Test IRadio.setNetworkSelectionModeAutomatic() for the response returned. 101 */ 102 TEST_F(RadioHidlTest, setNetworkSelectionModeAutomatic) { 103 int serial = GetRandomSerialNumber(); 104 105 radio->setNetworkSelectionModeAutomatic(serial); 106 EXPECT_EQ(std::cv_status::no_timeout, wait()); 107 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type); 108 EXPECT_EQ(serial, radioRsp->rspInfo.serial); 109 110 if (cardStatus.cardState == CardState::ABSENT) { 111 ASSERT_TRUE(CheckGeneralError() || 112 radioRsp->rspInfo.error == RadioError::ILLEGAL_SIM_OR_ME || 113 radioRsp->rspInfo.error == RadioError::NONE || 114 radioRsp->rspInfo.error == RadioError::OPERATION_NOT_ALLOWED); 115 } 116 } 117 118 /* 119 * Test IRadio.setNetworkSelectionModeManual() for the response returned. 120 */ 121 TEST_F(RadioHidlTest, setNetworkSelectionModeManual) { 122 int serial = GetRandomSerialNumber(); 123 124 radio->setNetworkSelectionModeManual(serial, "123456"); 125 EXPECT_EQ(std::cv_status::no_timeout, wait()); 126 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type); 127 EXPECT_EQ(serial, radioRsp->rspInfo.serial); 128 129 if (cardStatus.cardState == CardState::ABSENT) { 130 ASSERT_TRUE(CheckGeneralError() || 131 radioRsp->rspInfo.error == RadioError::INVALID_ARGUMENTS || 132 radioRsp->rspInfo.error == RadioError::ILLEGAL_SIM_OR_ME || 133 radioRsp->rspInfo.error == RadioError::NONE || 134 radioRsp->rspInfo.error == RadioError::INVALID_STATE); 135 } 136 } 137 138 /* 139 * Test IRadio.getAvailableNetworks() for the response returned. 140 */ 141 TEST_F(RadioHidlTest, getAvailableNetworks) { 142 int serial = GetRandomSerialNumber(); 143 144 radio->getAvailableNetworks(serial); 145 EXPECT_EQ(std::cv_status::no_timeout, wait()); 146 EXPECT_EQ(serial, radioRsp->rspInfo.serial); 147 ASSERT_TRUE(radioRsp->rspInfo.type == RadioResponseType::SOLICITED || 148 radioRsp->rspInfo.type == RadioResponseType::SOLICITED_ACK_EXP); 149 150 if (cardStatus.cardState == CardState::ABSENT) { 151 ASSERT_TRUE(CheckGeneralError() || radioRsp->rspInfo.error == RadioError::NONE || 152 radioRsp->rspInfo.error == RadioError::DEVICE_IN_USE || 153 radioRsp->rspInfo.error == RadioError::CANCELLED || 154 radioRsp->rspInfo.error == RadioError::OPERATION_NOT_ALLOWED || 155 radioRsp->rspInfo.error == RadioError::MODEM_ERR); 156 } 157 } 158 159 /* 160 * Test IRadio.getBasebandVersion() for the response returned. 161 */ 162 TEST_F(RadioHidlTest, getBasebandVersion) { 163 int serial = GetRandomSerialNumber(); 164 165 radio->getBasebandVersion(serial); 166 EXPECT_EQ(std::cv_status::no_timeout, wait()); 167 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type); 168 EXPECT_EQ(serial, radioRsp->rspInfo.serial); 169 170 if (cardStatus.cardState == CardState::ABSENT) { 171 ASSERT_TRUE(radioRsp->rspInfo.error == RadioError::NONE); 172 } 173 } 174 175 /* 176 * Test IRadio.setBandMode() for the response returned. 177 */ 178 TEST_F(RadioHidlTest, setBandMode) { 179 int serial = GetRandomSerialNumber(); 180 181 radio->setBandMode(serial, RadioBandMode::BAND_MODE_USA); 182 EXPECT_EQ(std::cv_status::no_timeout, wait()); 183 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type); 184 EXPECT_EQ(serial, radioRsp->rspInfo.serial); 185 186 if (cardStatus.cardState == CardState::ABSENT) { 187 EXPECT_EQ(radioRsp->rspInfo.error, RadioError::NONE); 188 } 189 } 190 191 /* 192 * Test IRadio.getAvailableBandModes() for the response returned. 193 */ 194 TEST_F(RadioHidlTest, getAvailableBandModes) { 195 int serial = GetRandomSerialNumber(); 196 197 radio->getAvailableBandModes(serial); 198 EXPECT_EQ(std::cv_status::no_timeout, wait()); 199 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type); 200 EXPECT_EQ(serial, radioRsp->rspInfo.serial); 201 202 if (cardStatus.cardState == CardState::ABSENT) { 203 ASSERT_TRUE(radioRsp->rspInfo.error == RadioError::NONE); 204 } 205 } 206 207 /* 208 * Test IRadio.setPreferredNetworkType() for the response returned. 209 */ 210 TEST_F(RadioHidlTest, setPreferredNetworkType) { 211 int serial = GetRandomSerialNumber(); 212 213 radio->setPreferredNetworkType(serial, PreferredNetworkType::GSM_ONLY); 214 EXPECT_EQ(std::cv_status::no_timeout, wait()); 215 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type); 216 EXPECT_EQ(serial, radioRsp->rspInfo.serial); 217 218 if (cardStatus.cardState == CardState::ABSENT) { 219 EXPECT_EQ(radioRsp->rspInfo.error, RadioError::NONE); 220 } 221 } 222 223 /* 224 * Test IRadio.getPreferredNetworkType() for the response returned. 225 */ 226 TEST_F(RadioHidlTest, getPreferredNetworkType) { 227 int serial = GetRandomSerialNumber(); 228 229 radio->getPreferredNetworkType(serial); 230 EXPECT_EQ(std::cv_status::no_timeout, wait()); 231 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type); 232 EXPECT_EQ(serial, radioRsp->rspInfo.serial); 233 234 if (cardStatus.cardState == CardState::ABSENT) { 235 ASSERT_TRUE(radioRsp->rspInfo.error == RadioError::NONE); 236 } 237 } 238 239 /* 240 * Test IRadio.getNeighboringCids() for the response returned. 241 */ 242 TEST_F(RadioHidlTest, getNeighboringCids) { 243 int serial = GetRandomSerialNumber(); 244 245 radio->getNeighboringCids(serial); 246 EXPECT_EQ(std::cv_status::no_timeout, wait()); 247 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type); 248 EXPECT_EQ(serial, radioRsp->rspInfo.serial); 249 250 if (cardStatus.cardState == CardState::ABSENT) { 251 ASSERT_TRUE(radioRsp->rspInfo.error == RadioError::NONE); 252 } 253 } 254 255 /* 256 * Test IRadio.setLocationUpdates() for the response returned. 257 */ 258 TEST_F(RadioHidlTest, setLocationUpdates) { 259 int serial = GetRandomSerialNumber(); 260 261 radio->setLocationUpdates(serial, true); 262 EXPECT_EQ(std::cv_status::no_timeout, wait()); 263 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type); 264 EXPECT_EQ(serial, radioRsp->rspInfo.serial); 265 266 if (cardStatus.cardState == CardState::ABSENT) { 267 ASSERT_TRUE(radioRsp->rspInfo.error == RadioError::NONE); 268 } 269 } 270 271 /* 272 * Test IRadio.setCdmaRoamingPreference() for the response returned. 273 */ 274 TEST_F(RadioHidlTest, setCdmaRoamingPreference) { 275 int serial = GetRandomSerialNumber(); 276 277 radio->setCdmaRoamingPreference(serial, CdmaRoamingType::HOME_NETWORK); 278 EXPECT_EQ(std::cv_status::no_timeout, wait()); 279 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type); 280 EXPECT_EQ(serial, radioRsp->rspInfo.serial); 281 282 if (cardStatus.cardState == CardState::ABSENT) { 283 ASSERT_TRUE(radioRsp->rspInfo.error == RadioError::NONE); 284 } 285 } 286 287 /* 288 * Test IRadio.getCdmaRoamingPreference() for the response returned. 289 */ 290 TEST_F(RadioHidlTest, getCdmaRoamingPreference) { 291 int serial = GetRandomSerialNumber(); 292 293 radio->getCdmaRoamingPreference(serial); 294 EXPECT_EQ(std::cv_status::no_timeout, wait()); 295 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type); 296 EXPECT_EQ(serial, radioRsp->rspInfo.serial); 297 298 if (cardStatus.cardState == CardState::ABSENT) { 299 ASSERT_TRUE(CheckGeneralError() || radioRsp->rspInfo.error == RadioError::NONE || 300 radioRsp->rspInfo.error == RadioError::MODEM_ERR); 301 } 302 } 303 304 /* 305 * Test IRadio.getTTYMode() for the response returned. 306 */ 307 TEST_F(RadioHidlTest, getTTYMode) { 308 int serial = GetRandomSerialNumber(); 309 310 radio->getTTYMode(serial); 311 EXPECT_EQ(std::cv_status::no_timeout, wait()); 312 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type); 313 EXPECT_EQ(serial, radioRsp->rspInfo.serial); 314 315 if (cardStatus.cardState == CardState::ABSENT) { 316 ASSERT_TRUE(radioRsp->rspInfo.error == RadioError::NONE); 317 } 318 } 319 320 /* 321 * Test IRadio.setTTYMode() for the response returned. 322 */ 323 TEST_F(RadioHidlTest, setTTYMode) { 324 int serial = GetRandomSerialNumber(); 325 326 radio->setTTYMode(serial, TtyMode::OFF); 327 EXPECT_EQ(std::cv_status::no_timeout, wait()); 328 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type); 329 EXPECT_EQ(serial, radioRsp->rspInfo.serial); 330 331 if (cardStatus.cardState == CardState::ABSENT) { 332 ASSERT_TRUE(radioRsp->rspInfo.error == RadioError::NONE); 333 } 334 } 335 336 /* 337 * Test IRadio.setPreferredVoicePrivacy() for the response returned. 338 */ 339 TEST_F(RadioHidlTest, setPreferredVoicePrivacy) { 340 int serial = GetRandomSerialNumber(); 341 342 radio->setPreferredVoicePrivacy(serial, true); 343 EXPECT_EQ(std::cv_status::no_timeout, wait()); 344 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type); 345 EXPECT_EQ(serial, radioRsp->rspInfo.serial); 346 347 if (cardStatus.cardState == CardState::ABSENT) { 348 ASSERT_TRUE(radioRsp->rspInfo.error == RadioError::NONE); 349 } 350 } 351 352 /* 353 * Test IRadio.getPreferredVoicePrivacy() for the response returned. 354 */ 355 TEST_F(RadioHidlTest, getPreferredVoicePrivacy) { 356 int serial = GetRandomSerialNumber(); 357 358 radio->getPreferredVoicePrivacy(serial); 359 EXPECT_EQ(std::cv_status::no_timeout, wait()); 360 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type); 361 EXPECT_EQ(serial, radioRsp->rspInfo.serial); 362 363 if (cardStatus.cardState == CardState::ABSENT) { 364 ASSERT_TRUE(radioRsp->rspInfo.error == RadioError::NONE); 365 } 366 } 367 368 /* 369 * Test IRadio.getCDMASubscription() for the response returned. 370 */ 371 TEST_F(RadioHidlTest, getCDMASubscription) { 372 int serial = GetRandomSerialNumber(); 373 374 radio->getCDMASubscription(serial); 375 EXPECT_EQ(std::cv_status::no_timeout, wait()); 376 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type); 377 EXPECT_EQ(serial, radioRsp->rspInfo.serial); 378 379 if (cardStatus.cardState == CardState::ABSENT) { 380 ASSERT_TRUE(radioRsp->rspInfo.error == RadioError::NONE); 381 } 382 } 383 384 /* 385 * Test IRadio.getDeviceIdentity() for the response returned. 386 */ 387 TEST_F(RadioHidlTest, getDeviceIdentity) { 388 int serial = GetRandomSerialNumber(); 389 390 radio->getDeviceIdentity(serial); 391 EXPECT_EQ(std::cv_status::no_timeout, wait()); 392 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type); 393 EXPECT_EQ(serial, radioRsp->rspInfo.serial); 394 395 if (cardStatus.cardState == CardState::ABSENT) { 396 ASSERT_TRUE(radioRsp->rspInfo.error == RadioError::NONE); 397 } 398 } 399 400 /* 401 * Test IRadio.exitEmergencyCallbackMode() for the response returned. 402 */ 403 TEST_F(RadioHidlTest, exitEmergencyCallbackMode) { 404 int serial = GetRandomSerialNumber(); 405 406 radio->exitEmergencyCallbackMode(serial); 407 EXPECT_EQ(std::cv_status::no_timeout, wait()); 408 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type); 409 EXPECT_EQ(serial, radioRsp->rspInfo.serial); 410 411 if (cardStatus.cardState == CardState::ABSENT) { 412 ASSERT_TRUE(radioRsp->rspInfo.error == RadioError::NONE); 413 } 414 } 415 416 /* 417 * Test IRadio.getCdmaSubscriptionSource() for the response returned. 418 */ 419 TEST_F(RadioHidlTest, getCdmaSubscriptionSource) { 420 int serial = GetRandomSerialNumber(); 421 422 radio->getCdmaSubscriptionSource(serial); 423 EXPECT_EQ(std::cv_status::no_timeout, wait()); 424 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type); 425 EXPECT_EQ(serial, radioRsp->rspInfo.serial); 426 427 if (cardStatus.cardState == CardState::ABSENT) { 428 ASSERT_TRUE(radioRsp->rspInfo.error == RadioError::NONE); 429 } 430 } 431 432 /* 433 * Test IRadio.setCdmaSubscriptionSource() for the response returned. 434 */ 435 TEST_F(RadioHidlTest, setCdmaSubscriptionSource) { 436 int serial = GetRandomSerialNumber(); 437 438 radio->setCdmaSubscriptionSource(serial, CdmaSubscriptionSource::RUIM_SIM); 439 EXPECT_EQ(std::cv_status::no_timeout, wait()); 440 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type); 441 EXPECT_EQ(serial, radioRsp->rspInfo.serial); 442 443 if (cardStatus.cardState == CardState::ABSENT) { 444 std::cout << static_cast<int>(radioRsp->rspInfo.error) << std::endl; 445 ASSERT_TRUE(CheckGeneralError() || radioRsp->rspInfo.error == RadioError::SIM_ABSENT || 446 radioRsp->rspInfo.error == RadioError::SUBSCRIPTION_NOT_AVAILABLE || 447 radioRsp->rspInfo.error == RadioError::NONE); 448 } 449 } 450 451 /* 452 * Test IRadio.getVoiceRadioTechnology() for the response returned. 453 */ 454 TEST_F(RadioHidlTest, getVoiceRadioTechnology) { 455 int serial = GetRandomSerialNumber(); 456 457 radio->getVoiceRadioTechnology(serial); 458 EXPECT_EQ(std::cv_status::no_timeout, wait()); 459 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type); 460 EXPECT_EQ(serial, radioRsp->rspInfo.serial); 461 462 if (cardStatus.cardState == CardState::ABSENT) { 463 ASSERT_TRUE(radioRsp->rspInfo.error == RadioError::NONE); 464 } 465 } 466 467 /* 468 * Test IRadio.getCellInfoList() for the response returned. 469 */ 470 TEST_F(RadioHidlTest, getCellInfoList) { 471 int serial = GetRandomSerialNumber(); 472 473 radio->getCellInfoList(serial); 474 EXPECT_EQ(std::cv_status::no_timeout, wait()); 475 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type); 476 EXPECT_EQ(serial, radioRsp->rspInfo.serial); 477 478 if (cardStatus.cardState == CardState::ABSENT) { 479 ASSERT_TRUE(CheckGeneralError() || radioRsp->rspInfo.error == RadioError::NONE || 480 radioRsp->rspInfo.error == RadioError::NO_NETWORK_FOUND); 481 } 482 } 483 484 /* 485 * Test IRadio.setCellInfoListRate() for the response returned. 486 */ 487 TEST_F(RadioHidlTest, setCellInfoListRate) { 488 int serial = GetRandomSerialNumber(); 489 490 // TODO(sanketpadawe): RIL crashes with value of rate = 10 491 radio->setCellInfoListRate(serial, 10); 492 EXPECT_EQ(std::cv_status::no_timeout, wait()); 493 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type); 494 EXPECT_EQ(serial, radioRsp->rspInfo.serial); 495 496 if (cardStatus.cardState == CardState::ABSENT) { 497 ASSERT_TRUE(radioRsp->rspInfo.error == RadioError::NONE); 498 } 499 } 500 501 /* 502 * Test IRadio.nvReadItem() for the response returned. 503 */ 504 TEST_F(RadioHidlTest, nvReadItem) { 505 int serial = GetRandomSerialNumber(); 506 507 radio->nvReadItem(serial, NvItem::LTE_BAND_ENABLE_25); 508 EXPECT_EQ(std::cv_status::no_timeout, wait()); 509 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type); 510 EXPECT_EQ(serial, radioRsp->rspInfo.serial); 511 512 if (cardStatus.cardState == CardState::ABSENT) { 513 ASSERT_TRUE(CheckGeneralError() || radioRsp->rspInfo.error == RadioError::NONE); 514 } 515 } 516 517 /* 518 * Test IRadio.nvWriteItem() for the response returned. 519 */ 520 TEST_F(RadioHidlTest, nvWriteItem) { 521 int serial = GetRandomSerialNumber(); 522 NvWriteItem item; 523 memset(&item, 0, sizeof(item)); 524 item.value = hidl_string(); 525 526 radio->nvWriteItem(serial, item); 527 EXPECT_EQ(std::cv_status::no_timeout, wait()); 528 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type); 529 EXPECT_EQ(serial, radioRsp->rspInfo.serial); 530 531 if (cardStatus.cardState == CardState::ABSENT) { 532 ASSERT_TRUE(CheckGeneralError() || radioRsp->rspInfo.error == RadioError::NONE); 533 } 534 } 535 536 /* 537 * Test IRadio.nvWriteCdmaPrl() for the response returned. 538 */ 539 TEST_F(RadioHidlTest, nvWriteCdmaPrl) { 540 int serial = GetRandomSerialNumber(); 541 std::vector<uint8_t> prl = {1, 2, 3, 4, 5}; 542 543 radio->nvWriteCdmaPrl(serial, hidl_vec<uint8_t>(prl)); 544 EXPECT_EQ(std::cv_status::no_timeout, wait()); 545 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type); 546 EXPECT_EQ(serial, radioRsp->rspInfo.serial); 547 548 if (cardStatus.cardState == CardState::ABSENT) { 549 ASSERT_TRUE(CheckGeneralError() || radioRsp->rspInfo.error == RadioError::NONE); 550 } 551 } 552 553 /* 554 * Test IRadio.nvResetConfig() for the response returned. 555 */ 556 TEST_F(RadioHidlTest, nvResetConfig) { 557 int serial = GetRandomSerialNumber(); 558 559 radio->nvResetConfig(++serial, ResetNvType::ERASE); 560 EXPECT_EQ(std::cv_status::no_timeout, wait()); 561 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type); 562 EXPECT_EQ(serial, radioRsp->rspInfo.serial); 563 564 if (cardStatus.cardState == CardState::ABSENT) { 565 ASSERT_TRUE(radioRsp->rspInfo.error == RadioError::NONE); 566 } 567 } 568 569 /* 570 * Test IRadio.setUiccSubscription() for the response returned. 571 */ 572 TEST_F(RadioHidlTest, setUiccSubscription) { 573 int serial = GetRandomSerialNumber(); 574 SelectUiccSub item; 575 memset(&item, 0, sizeof(item)); 576 577 radio->setUiccSubscription(serial, item); 578 EXPECT_EQ(std::cv_status::no_timeout, wait()); 579 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type); 580 EXPECT_EQ(serial, radioRsp->rspInfo.serial); 581 582 if (cardStatus.cardState == CardState::ABSENT) { 583 ASSERT_TRUE(CheckGeneralError() || 584 radioRsp->rspInfo.error == RadioError::INVALID_ARGUMENTS || 585 radioRsp->rspInfo.error == RadioError::NONE || 586 radioRsp->rspInfo.error == RadioError::SUBSCRIPTION_NOT_SUPPORTED || 587 radioRsp->rspInfo.error == RadioError::MODEM_ERR); 588 } 589 } 590 591 /* 592 * Test IRadio.getHardwareConfig() for the response returned. 593 */ 594 TEST_F(RadioHidlTest, getHardwareConfig) { 595 int serial = GetRandomSerialNumber(); 596 597 radio->getHardwareConfig(serial); 598 EXPECT_EQ(std::cv_status::no_timeout, wait()); 599 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type); 600 EXPECT_EQ(serial, radioRsp->rspInfo.serial); 601 602 if (cardStatus.cardState == CardState::ABSENT) { 603 ASSERT_TRUE(CheckGeneralError() || radioRsp->rspInfo.error == RadioError::NONE); 604 } 605 } 606 607 /* 608 * Test IRadio.requestShutdown() for the response returned. 609 */ 610 TEST_F(RadioHidlTest, requestShutdown) { 611 int serial = GetRandomSerialNumber(); 612 613 radio->requestShutdown(serial); 614 EXPECT_EQ(std::cv_status::no_timeout, wait()); 615 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type); 616 EXPECT_EQ(serial, radioRsp->rspInfo.serial); 617 618 if (cardStatus.cardState == CardState::ABSENT) { 619 ASSERT_TRUE(CheckGeneralError() || radioRsp->rspInfo.error == RadioError::NONE); 620 } 621 } 622 623 /* 624 * Test IRadio.getRadioCapability() for the response returned. 625 */ 626 TEST_F(RadioHidlTest, getRadioCapability) { 627 int serial = GetRandomSerialNumber(); 628 629 radio->getRadioCapability(serial); 630 EXPECT_EQ(std::cv_status::no_timeout, wait()); 631 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type); 632 EXPECT_EQ(serial, radioRsp->rspInfo.serial); 633 634 if (cardStatus.cardState == CardState::ABSENT) { 635 ASSERT_TRUE(radioRsp->rspInfo.error == RadioError::NONE); 636 } 637 } 638 639 /* 640 * Test IRadio.setRadioCapability() for the response returned. 641 */ 642 TEST_F(RadioHidlTest, setRadioCapability) { 643 int serial = GetRandomSerialNumber(); 644 RadioCapability rc; 645 memset(&rc, 0, sizeof(rc)); 646 rc.logicalModemUuid = hidl_string(); 647 648 radio->setRadioCapability(serial, rc); 649 EXPECT_EQ(std::cv_status::no_timeout, wait()); 650 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type); 651 EXPECT_EQ(serial, radioRsp->rspInfo.serial); 652 653 if (cardStatus.cardState == CardState::ABSENT) { 654 std::cout << static_cast<int>(radioRsp->rspInfo.error) << std::endl; 655 ASSERT_TRUE(CheckGeneralError() || 656 radioRsp->rspInfo.error == RadioError::INVALID_ARGUMENTS || 657 radioRsp->rspInfo.error == RadioError::INVALID_STATE); 658 } 659 } 660 661 /* 662 * Test IRadio.startLceService() for the response returned. 663 */ 664 TEST_F(RadioHidlTest, startLceService) { 665 int serial = GetRandomSerialNumber(); 666 667 radio->startLceService(serial, 5, true); 668 EXPECT_EQ(std::cv_status::no_timeout, wait()); 669 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type); 670 EXPECT_EQ(serial, radioRsp->rspInfo.serial); 671 672 if (cardStatus.cardState == CardState::ABSENT) { 673 std::cout << static_cast<int>(radioRsp->rspInfo.error) << std::endl; 674 ASSERT_TRUE(radioRsp->rspInfo.error == RadioError::RADIO_NOT_AVAILABLE || 675 radioRsp->rspInfo.error == RadioError::LCE_NOT_SUPPORTED || 676 radioRsp->rspInfo.error == RadioError::INTERNAL_ERR); 677 } 678 } 679 680 /* 681 * Test IRadio.stopLceService() for the response returned. 682 */ 683 TEST_F(RadioHidlTest, stopLceService) { 684 int serial = GetRandomSerialNumber(); 685 686 radio->stopLceService(serial); 687 EXPECT_EQ(std::cv_status::no_timeout, wait()); 688 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type); 689 EXPECT_EQ(serial, radioRsp->rspInfo.serial); 690 691 if (cardStatus.cardState == CardState::ABSENT) { 692 ASSERT_TRUE(radioRsp->rspInfo.error == RadioError::NONE || 693 radioRsp->rspInfo.error == RadioError::LCE_NOT_SUPPORTED); 694 } 695 } 696 697 /* 698 * Test IRadio.pullLceData() for the response returned. 699 */ 700 TEST_F(RadioHidlTest, pullLceData) { 701 int serial = GetRandomSerialNumber(); 702 703 radio->pullLceData(serial); 704 EXPECT_EQ(std::cv_status::no_timeout, wait()); 705 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type); 706 EXPECT_EQ(serial, radioRsp->rspInfo.serial); 707 708 if (cardStatus.cardState == CardState::ABSENT) { 709 ASSERT_TRUE(radioRsp->rspInfo.error == RadioError::RADIO_NOT_AVAILABLE || CheckOEMError() || 710 radioRsp->rspInfo.error == RadioError::INTERNAL_ERR); 711 } 712 } 713 714 /* 715 * Test IRadio.getModemActivityInfo() for the response returned. 716 */ 717 TEST_F(RadioHidlTest, getModemActivityInfo) { 718 int serial = GetRandomSerialNumber(); 719 720 radio->getModemActivityInfo(serial); 721 EXPECT_EQ(std::cv_status::no_timeout, wait()); 722 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type); 723 EXPECT_EQ(serial, radioRsp->rspInfo.serial); 724 725 if (cardStatus.cardState == CardState::ABSENT) { 726 ASSERT_TRUE(radioRsp->rspInfo.error == RadioError::NONE); 727 } 728 } 729 730 /* 731 * Test IRadio.setAllowedCarriers() for the response returned. 732 */ 733 TEST_F(RadioHidlTest, setAllowedCarriers) { 734 int serial = GetRandomSerialNumber(); 735 CarrierRestrictions carriers; 736 memset(&carriers, 0, sizeof(carriers)); 737 carriers.allowedCarriers.resize(1); 738 carriers.excludedCarriers.resize(0); 739 carriers.allowedCarriers[0].mcc = hidl_string(); 740 carriers.allowedCarriers[0].mnc = hidl_string(); 741 carriers.allowedCarriers[0].matchType = CarrierMatchType::ALL; 742 carriers.allowedCarriers[0].matchData = hidl_string(); 743 744 radio->setAllowedCarriers(serial, false, carriers); 745 EXPECT_EQ(std::cv_status::no_timeout, wait()); 746 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type); 747 EXPECT_EQ(serial, radioRsp->rspInfo.serial); 748 749 if (cardStatus.cardState == CardState::ABSENT) { 750 EXPECT_EQ(radioRsp->rspInfo.error, RadioError::NONE); 751 } 752 753 /* Reset back to no carrier restriction */ 754 memset(&carriers, 0, sizeof(carriers)); 755 carriers.allowedCarriers.resize(0); 756 carriers.excludedCarriers.resize(0); 757 758 radio->setAllowedCarriers(++serial, true, carriers); 759 EXPECT_EQ(std::cv_status::no_timeout, wait()); 760 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type); 761 EXPECT_EQ(serial, radioRsp->rspInfo.serial); 762 763 if (cardStatus.cardState == CardState::ABSENT) { 764 EXPECT_EQ(radioRsp->rspInfo.error, RadioError::NONE); 765 } 766 } 767 768 /* 769 * Test IRadio.getAllowedCarriers() for the response returned. 770 */ 771 TEST_F(RadioHidlTest, getAllowedCarriers) { 772 int serial = GetRandomSerialNumber(); 773 774 radio->getAllowedCarriers(serial); 775 EXPECT_EQ(std::cv_status::no_timeout, wait()); 776 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type); 777 EXPECT_EQ(serial, radioRsp->rspInfo.serial); 778 779 if (cardStatus.cardState == CardState::ABSENT) { 780 EXPECT_EQ(radioRsp->rspInfo.error, RadioError::NONE); 781 } 782 } 783 784 /* 785 * Test IRadio.sendDeviceState() for the response returned. 786 */ 787 TEST_F(RadioHidlTest, sendDeviceState) { 788 int serial = GetRandomSerialNumber(); 789 790 radio->sendDeviceState(serial, DeviceStateType::POWER_SAVE_MODE, true); 791 EXPECT_EQ(std::cv_status::no_timeout, wait()); 792 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type); 793 EXPECT_EQ(serial, radioRsp->rspInfo.serial); 794 795 if (cardStatus.cardState == CardState::ABSENT) { 796 ASSERT_TRUE(CheckGeneralError() || 797 radioRsp->rspInfo.error == RadioError::INVALID_ARGUMENTS); 798 } 799 } 800 801 /* 802 * Test IRadio.setIndicationFilter() for the response returned. 803 */ 804 TEST_F(RadioHidlTest, setIndicationFilter) { 805 int serial = GetRandomSerialNumber(); 806 807 radio->setIndicationFilter(serial, 1); 808 EXPECT_EQ(std::cv_status::no_timeout, wait()); 809 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type); 810 EXPECT_EQ(serial, radioRsp->rspInfo.serial); 811 812 if (cardStatus.cardState == CardState::ABSENT) { 813 ASSERT_TRUE(CheckGeneralError() || 814 radioRsp->rspInfo.error == RadioError::INVALID_ARGUMENTS); 815 } 816 } 817 818 /* 819 * Test IRadio.setSimCardPower() for the response returned. 820 */ 821 TEST_F(RadioHidlTest, setSimCardPower) { 822 int serial = GetRandomSerialNumber(); 823 824 radio->setSimCardPower(serial, true); 825 EXPECT_EQ(std::cv_status::no_timeout, wait()); 826 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type); 827 EXPECT_EQ(serial, radioRsp->rspInfo.serial); 828 829 if (cardStatus.cardState == CardState::ABSENT) { 830 std::cout << static_cast<int>(radioRsp->rspInfo.error) << std::endl; 831 ASSERT_TRUE(radioRsp->rspInfo.error == RadioError::NONE || 832 radioRsp->rspInfo.error == RadioError::REQUEST_NOT_SUPPORTED); 833 } 834 }