Home | History | Annotate | Download | only in functional
      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_v1_0.h>
     18 
     19 /*
     20  * Test IRadio.getSignalStrength() for the response returned.
     21  */
     22 TEST_F(RadioHidlTest, getSignalStrength) {
     23     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         EXPECT_EQ(RadioError::NONE, radioRsp->rspInfo.error);
     32     }
     33 }
     34 
     35 /*
     36  * Test IRadio.getVoiceRegistrationState() for the response returned.
     37  */
     38 TEST_F(RadioHidlTest, getVoiceRegistrationState) {
     39     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         EXPECT_EQ(RadioError::NONE, radioRsp->rspInfo.error);
     48     }
     49 }
     50 
     51 /*
     52  * Test IRadio.getOperator() for the response returned.
     53  */
     54 TEST_F(RadioHidlTest, getOperator) {
     55     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         EXPECT_EQ(RadioError::NONE, radioRsp->rspInfo.error);
     64     }
     65 }
     66 
     67 /*
     68  * Test IRadio.setRadioPower() for the response returned.
     69  */
     70 TEST_F(RadioHidlTest, setRadioPower) {
     71     serial = GetRandomSerialNumber();
     72 
     73     radio->setRadioPower(serial, 1);
     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         EXPECT_EQ(RadioError::NONE, radioRsp->rspInfo.error);
     80     }
     81 }
     82 
     83 /*
     84  * Test IRadio.getNetworkSelectionMode() for the response returned.
     85  */
     86 TEST_F(RadioHidlTest, getNetworkSelectionMode) {
     87     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         EXPECT_EQ(RadioError::NONE, radioRsp->rspInfo.error);
     96     }
     97 }
     98 
     99 /*
    100  * Test IRadio.setNetworkSelectionModeAutomatic() for the response returned.
    101  */
    102 TEST_F(RadioHidlTest, setNetworkSelectionModeAutomatic) {
    103     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(CheckAnyOfErrors(
    112             radioRsp->rspInfo.error,
    113             {RadioError::NONE, RadioError::ILLEGAL_SIM_OR_ME, RadioError::OPERATION_NOT_ALLOWED},
    114             CHECK_GENERAL_ERROR));
    115     }
    116 }
    117 
    118 /*
    119  * Test IRadio.setNetworkSelectionModeManual() for the response returned.
    120  */
    121 TEST_F(RadioHidlTest, setNetworkSelectionModeManual) {
    122     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(CheckAnyOfErrors(radioRsp->rspInfo.error,
    131                                      {RadioError::NONE, RadioError::ILLEGAL_SIM_OR_ME,
    132                                       RadioError::INVALID_ARGUMENTS, RadioError::INVALID_STATE},
    133                                      CHECK_GENERAL_ERROR));
    134     }
    135 }
    136 
    137 /*
    138  * Test IRadio.getAvailableNetworks() for the response returned.
    139  */
    140 TEST_F(RadioHidlTest, getAvailableNetworks) {
    141     serial = GetRandomSerialNumber();
    142 
    143     radio->getAvailableNetworks(serial);
    144     EXPECT_EQ(std::cv_status::no_timeout, wait(300));
    145     EXPECT_EQ(serial, radioRsp->rspInfo.serial);
    146     ASSERT_TRUE(radioRsp->rspInfo.type == RadioResponseType::SOLICITED ||
    147                 radioRsp->rspInfo.type == RadioResponseType::SOLICITED_ACK_EXP);
    148 
    149     if (cardStatus.cardState == CardState::ABSENT) {
    150         ASSERT_TRUE(
    151             CheckAnyOfErrors(radioRsp->rspInfo.error,
    152                              {RadioError::NONE, RadioError::CANCELLED, RadioError::DEVICE_IN_USE,
    153                               RadioError::MODEM_ERR, RadioError::OPERATION_NOT_ALLOWED},
    154                              CHECK_GENERAL_ERROR));
    155   }
    156 }
    157 
    158 /*
    159  * Test IRadio.getBasebandVersion() for the response returned.
    160  */
    161 TEST_F(RadioHidlTest, getBasebandVersion) {
    162     serial = GetRandomSerialNumber();
    163 
    164     radio->getBasebandVersion(serial);
    165     EXPECT_EQ(std::cv_status::no_timeout, wait());
    166     EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
    167     EXPECT_EQ(serial, radioRsp->rspInfo.serial);
    168 
    169     if (cardStatus.cardState == CardState::ABSENT) {
    170         EXPECT_EQ(RadioError::NONE, radioRsp->rspInfo.error);
    171     }
    172 }
    173 
    174 /*
    175  * Test IRadio.setBandMode() for the response returned.
    176  */
    177 TEST_F(RadioHidlTest, setBandMode) {
    178     serial = GetRandomSerialNumber();
    179 
    180     radio->setBandMode(serial, RadioBandMode::BAND_MODE_USA);
    181     EXPECT_EQ(std::cv_status::no_timeout, wait());
    182     EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
    183     EXPECT_EQ(serial, radioRsp->rspInfo.serial);
    184 
    185     if (cardStatus.cardState == CardState::ABSENT) {
    186         ASSERT_TRUE(
    187             CheckAnyOfErrors(radioRsp->rspInfo.error, {RadioError::NONE}, CHECK_GENERAL_ERROR));
    188     }
    189 }
    190 
    191 /*
    192  * Test IRadio.getAvailableBandModes() for the response returned.
    193  */
    194 TEST_F(RadioHidlTest, getAvailableBandModes) {
    195     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         EXPECT_EQ(RadioError::NONE, radioRsp->rspInfo.error);
    204     }
    205 }
    206 
    207 /*
    208  * Test IRadio.setPreferredNetworkType() for the response returned.
    209  */
    210 TEST_F(RadioHidlTest, setPreferredNetworkType) {
    211     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         ASSERT_TRUE(
    220             CheckAnyOfErrors(radioRsp->rspInfo.error, {RadioError::NONE}, CHECK_GENERAL_ERROR));
    221     }
    222 }
    223 
    224 /*
    225  * Test IRadio.getPreferredNetworkType() for the response returned.
    226  */
    227 TEST_F(RadioHidlTest, getPreferredNetworkType) {
    228     serial = GetRandomSerialNumber();
    229 
    230     radio->getPreferredNetworkType(serial);
    231     EXPECT_EQ(std::cv_status::no_timeout, wait());
    232     EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
    233     EXPECT_EQ(serial, radioRsp->rspInfo.serial);
    234 
    235     if (cardStatus.cardState == CardState::ABSENT) {
    236         EXPECT_EQ(RadioError::NONE, radioRsp->rspInfo.error);
    237     }
    238 }
    239 
    240 /*
    241  * Test IRadio.getNeighboringCids() for the response returned.
    242  */
    243 TEST_F(RadioHidlTest, getNeighboringCids) {
    244     serial = GetRandomSerialNumber();
    245 
    246     radio->getNeighboringCids(serial);
    247     EXPECT_EQ(std::cv_status::no_timeout, wait());
    248     EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
    249     EXPECT_EQ(serial, radioRsp->rspInfo.serial);
    250 
    251     if (cardStatus.cardState == CardState::ABSENT) {
    252         ASSERT_TRUE(CheckAnyOfErrors(radioRsp->rspInfo.error,
    253                                      {RadioError::NONE, RadioError::SIM_ABSENT},
    254                                      CHECK_GENERAL_ERROR));
    255     }
    256 }
    257 
    258 /*
    259  * Test IRadio.setLocationUpdates() for the response returned.
    260  */
    261 TEST_F(RadioHidlTest, setLocationUpdates) {
    262     serial = GetRandomSerialNumber();
    263 
    264     radio->setLocationUpdates(serial, true);
    265     EXPECT_EQ(std::cv_status::no_timeout, wait());
    266     EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
    267     EXPECT_EQ(serial, radioRsp->rspInfo.serial);
    268 
    269     if (cardStatus.cardState == CardState::ABSENT) {
    270         ASSERT_TRUE(
    271             CheckAnyOfErrors(radioRsp->rspInfo.error, {RadioError::NONE, RadioError::SIM_ABSENT}));
    272     }
    273 }
    274 
    275 /*
    276  * Test IRadio.setCdmaRoamingPreference() for the response returned.
    277  */
    278 TEST_F(RadioHidlTest, setCdmaRoamingPreference) {
    279     serial = GetRandomSerialNumber();
    280 
    281     radio->setCdmaRoamingPreference(serial, CdmaRoamingType::HOME_NETWORK);
    282     EXPECT_EQ(std::cv_status::no_timeout, wait());
    283     EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
    284     EXPECT_EQ(serial, radioRsp->rspInfo.serial);
    285 
    286     if (cardStatus.cardState == CardState::ABSENT) {
    287         ASSERT_TRUE(CheckAnyOfErrors(
    288             radioRsp->rspInfo.error,
    289             {RadioError::NONE, RadioError::SIM_ABSENT, RadioError::REQUEST_NOT_SUPPORTED}));
    290     }
    291 }
    292 
    293 /*
    294  * Test IRadio.getCdmaRoamingPreference() for the response returned.
    295  */
    296 TEST_F(RadioHidlTest, getCdmaRoamingPreference) {
    297     serial = GetRandomSerialNumber();
    298 
    299     radio->getCdmaRoamingPreference(serial);
    300     EXPECT_EQ(std::cv_status::no_timeout, wait());
    301     EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
    302     EXPECT_EQ(serial, radioRsp->rspInfo.serial);
    303 
    304     if (cardStatus.cardState == CardState::ABSENT) {
    305         ASSERT_TRUE(
    306             CheckAnyOfErrors(radioRsp->rspInfo.error,
    307                              {RadioError::NONE, RadioError::SIM_ABSENT, RadioError::MODEM_ERR},
    308                              CHECK_GENERAL_ERROR));
    309     }
    310 }
    311 
    312 /*
    313  * Test IRadio.getTTYMode() for the response returned.
    314  */
    315 TEST_F(RadioHidlTest, getTTYMode) {
    316     serial = GetRandomSerialNumber();
    317 
    318     radio->getTTYMode(serial);
    319     EXPECT_EQ(std::cv_status::no_timeout, wait());
    320     EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
    321     EXPECT_EQ(serial, radioRsp->rspInfo.serial);
    322 
    323     if (cardStatus.cardState == CardState::ABSENT) {
    324         EXPECT_EQ(RadioError::NONE, radioRsp->rspInfo.error);
    325     }
    326 }
    327 
    328 /*
    329  * Test IRadio.setTTYMode() for the response returned.
    330  */
    331 TEST_F(RadioHidlTest, setTTYMode) {
    332     serial = GetRandomSerialNumber();
    333 
    334     radio->setTTYMode(serial, TtyMode::OFF);
    335     EXPECT_EQ(std::cv_status::no_timeout, wait());
    336     EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
    337     EXPECT_EQ(serial, radioRsp->rspInfo.serial);
    338 
    339     if (cardStatus.cardState == CardState::ABSENT) {
    340         EXPECT_EQ(RadioError::NONE, radioRsp->rspInfo.error);
    341     }
    342 }
    343 
    344 /*
    345  * Test IRadio.setPreferredVoicePrivacy() for the response returned.
    346  */
    347 TEST_F(RadioHidlTest, setPreferredVoicePrivacy) {
    348     serial = GetRandomSerialNumber();
    349 
    350     radio->setPreferredVoicePrivacy(serial, true);
    351     EXPECT_EQ(std::cv_status::no_timeout, wait());
    352     EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
    353     EXPECT_EQ(serial, radioRsp->rspInfo.serial);
    354 
    355     if (cardStatus.cardState == CardState::ABSENT) {
    356         ASSERT_TRUE(CheckAnyOfErrors(radioRsp->rspInfo.error,
    357                                      {RadioError::NONE, RadioError::REQUEST_NOT_SUPPORTED}));
    358     }
    359 }
    360 
    361 /*
    362  * Test IRadio.getPreferredVoicePrivacy() for the response returned.
    363  */
    364 TEST_F(RadioHidlTest, getPreferredVoicePrivacy) {
    365     serial = GetRandomSerialNumber();
    366 
    367     radio->getPreferredVoicePrivacy(serial);
    368     EXPECT_EQ(std::cv_status::no_timeout, wait());
    369     EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
    370     EXPECT_EQ(serial, radioRsp->rspInfo.serial);
    371 
    372     if (cardStatus.cardState == CardState::ABSENT) {
    373         ASSERT_TRUE(CheckAnyOfErrors(radioRsp->rspInfo.error,
    374                                      {RadioError::NONE, RadioError::REQUEST_NOT_SUPPORTED}));
    375     }
    376 }
    377 
    378 /*
    379  * Test IRadio.getCDMASubscription() for the response returned.
    380  */
    381 TEST_F(RadioHidlTest, getCDMASubscription) {
    382     serial = GetRandomSerialNumber();
    383 
    384     radio->getCDMASubscription(serial);
    385     EXPECT_EQ(std::cv_status::no_timeout, wait());
    386     EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
    387     EXPECT_EQ(serial, radioRsp->rspInfo.serial);
    388 
    389     if (cardStatus.cardState == CardState::ABSENT) {
    390         ASSERT_TRUE(CheckAnyOfErrors(
    391             radioRsp->rspInfo.error,
    392             {RadioError::NONE, RadioError::REQUEST_NOT_SUPPORTED, RadioError::SIM_ABSENT}));
    393     }
    394 }
    395 
    396 /*
    397  * Test IRadio.getDeviceIdentity() for the response returned.
    398  */
    399 TEST_F(RadioHidlTest, getDeviceIdentity) {
    400     serial = GetRandomSerialNumber();
    401 
    402     radio->getDeviceIdentity(serial);
    403     EXPECT_EQ(std::cv_status::no_timeout, wait());
    404     EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
    405     EXPECT_EQ(serial, radioRsp->rspInfo.serial);
    406 
    407     if (cardStatus.cardState == CardState::ABSENT) {
    408         ASSERT_TRUE(CheckAnyOfErrors(radioRsp->rspInfo.error,
    409                                      {RadioError::NONE, RadioError::EMPTY_RECORD}));
    410     }
    411 }
    412 
    413 /*
    414  * Test IRadio.exitEmergencyCallbackMode() for the response returned.
    415  */
    416 TEST_F(RadioHidlTest, exitEmergencyCallbackMode) {
    417     serial = GetRandomSerialNumber();
    418 
    419     radio->exitEmergencyCallbackMode(serial);
    420     EXPECT_EQ(std::cv_status::no_timeout, wait());
    421     EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
    422     EXPECT_EQ(serial, radioRsp->rspInfo.serial);
    423 
    424     if (cardStatus.cardState == CardState::ABSENT) {
    425         ASSERT_TRUE(CheckAnyOfErrors(
    426             radioRsp->rspInfo.error,
    427             {RadioError::NONE, RadioError::REQUEST_NOT_SUPPORTED, RadioError::SIM_ABSENT}));
    428     }
    429 }
    430 
    431 /*
    432  * Test IRadio.getCdmaSubscriptionSource() for the response returned.
    433  */
    434 TEST_F(RadioHidlTest, getCdmaSubscriptionSource) {
    435     serial = GetRandomSerialNumber();
    436 
    437     radio->getCdmaSubscriptionSource(serial);
    438     EXPECT_EQ(std::cv_status::no_timeout, wait());
    439     EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
    440     EXPECT_EQ(serial, radioRsp->rspInfo.serial);
    441 
    442     if (cardStatus.cardState == CardState::ABSENT) {
    443         ASSERT_TRUE(CheckAnyOfErrors(
    444             radioRsp->rspInfo.error,
    445             {RadioError::NONE, RadioError::REQUEST_NOT_SUPPORTED, RadioError::SIM_ABSENT}));
    446     }
    447 }
    448 
    449 /*
    450  * Test IRadio.setCdmaSubscriptionSource() for the response returned.
    451  */
    452 TEST_F(RadioHidlTest, setCdmaSubscriptionSource) {
    453     serial = GetRandomSerialNumber();
    454 
    455     radio->setCdmaSubscriptionSource(serial, CdmaSubscriptionSource::RUIM_SIM);
    456     EXPECT_EQ(std::cv_status::no_timeout, wait());
    457     EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
    458     EXPECT_EQ(serial, radioRsp->rspInfo.serial);
    459 
    460     if (cardStatus.cardState == CardState::ABSENT) {
    461         ASSERT_TRUE(CheckAnyOfErrors(
    462             radioRsp->rspInfo.error,
    463             {RadioError::NONE, RadioError::SIM_ABSENT, RadioError::SUBSCRIPTION_NOT_AVAILABLE},
    464             CHECK_GENERAL_ERROR));
    465     }
    466 }
    467 
    468 /*
    469  * Test IRadio.getVoiceRadioTechnology() for the response returned.
    470  */
    471 TEST_F(RadioHidlTest, getVoiceRadioTechnology) {
    472     serial = GetRandomSerialNumber();
    473 
    474     radio->getVoiceRadioTechnology(serial);
    475     EXPECT_EQ(std::cv_status::no_timeout, wait());
    476     EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
    477     EXPECT_EQ(serial, radioRsp->rspInfo.serial);
    478 
    479     if (cardStatus.cardState == CardState::ABSENT) {
    480         EXPECT_EQ(RadioError::NONE, radioRsp->rspInfo.error);
    481     }
    482 }
    483 
    484 /*
    485  * Test IRadio.getCellInfoList() for the response returned.
    486  */
    487 TEST_F(RadioHidlTest, getCellInfoList) {
    488     serial = GetRandomSerialNumber();
    489 
    490     radio->getCellInfoList(serial);
    491     EXPECT_EQ(std::cv_status::no_timeout, wait());
    492     EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
    493     EXPECT_EQ(serial, radioRsp->rspInfo.serial);
    494 
    495     if (cardStatus.cardState == CardState::ABSENT) {
    496         ASSERT_TRUE(CheckAnyOfErrors(radioRsp->rspInfo.error,
    497                                      {RadioError::NONE, RadioError::NO_NETWORK_FOUND},
    498                                      CHECK_GENERAL_ERROR));
    499     }
    500 }
    501 
    502 /*
    503  * Test IRadio.setCellInfoListRate() for the response returned.
    504  */
    505 TEST_F(RadioHidlTest, setCellInfoListRate) {
    506     serial = GetRandomSerialNumber();
    507 
    508     // TODO(sanketpadawe): RIL crashes with value of rate = 10
    509     radio->setCellInfoListRate(serial, 10);
    510     EXPECT_EQ(std::cv_status::no_timeout, wait());
    511     EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
    512     EXPECT_EQ(serial, radioRsp->rspInfo.serial);
    513 
    514     if (cardStatus.cardState == CardState::ABSENT) {
    515         ASSERT_TRUE(CheckAnyOfErrors(radioRsp->rspInfo.error,
    516                                      {RadioError::NONE, RadioError::REQUEST_NOT_SUPPORTED}));
    517     }
    518 }
    519 
    520 /*
    521  * Test IRadio.nvReadItem() for the response returned.
    522  */
    523 TEST_F(RadioHidlTest, nvReadItem) {
    524     serial = GetRandomSerialNumber();
    525 
    526     radio->nvReadItem(serial, NvItem::LTE_BAND_ENABLE_25);
    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(
    533             CheckAnyOfErrors(radioRsp->rspInfo.error, {RadioError::NONE}, CHECK_GENERAL_ERROR));
    534     }
    535 }
    536 
    537 /*
    538  * Test IRadio.nvWriteItem() for the response returned.
    539  */
    540 TEST_F(RadioHidlTest, nvWriteItem) {
    541     serial = GetRandomSerialNumber();
    542     NvWriteItem item;
    543     memset(&item, 0, sizeof(item));
    544     item.value = hidl_string();
    545 
    546     radio->nvWriteItem(serial, item);
    547     EXPECT_EQ(std::cv_status::no_timeout, wait());
    548     EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
    549     EXPECT_EQ(serial, radioRsp->rspInfo.serial);
    550 
    551     if (cardStatus.cardState == CardState::ABSENT) {
    552         ASSERT_TRUE(
    553             CheckAnyOfErrors(radioRsp->rspInfo.error, {RadioError::NONE}, CHECK_GENERAL_ERROR));
    554     }
    555 }
    556 
    557 /*
    558  * Test IRadio.nvWriteCdmaPrl() for the response returned.
    559  */
    560 TEST_F(RadioHidlTest, nvWriteCdmaPrl) {
    561     serial = GetRandomSerialNumber();
    562     std::vector<uint8_t> prl = {1, 2, 3, 4, 5};
    563 
    564     radio->nvWriteCdmaPrl(serial, hidl_vec<uint8_t>(prl));
    565     EXPECT_EQ(std::cv_status::no_timeout, wait());
    566     EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
    567     EXPECT_EQ(serial, radioRsp->rspInfo.serial);
    568 
    569     if (cardStatus.cardState == CardState::ABSENT) {
    570         ASSERT_TRUE(
    571             CheckAnyOfErrors(radioRsp->rspInfo.error, {RadioError::NONE}, CHECK_GENERAL_ERROR));
    572     }
    573 }
    574 
    575 /*
    576  * Test IRadio.nvResetConfig() for the response returned.
    577  */
    578 TEST_F(RadioHidlTest, nvResetConfig) {
    579     serial = GetRandomSerialNumber();
    580 
    581     radio->nvResetConfig(serial, ResetNvType::ERASE);
    582     EXPECT_EQ(std::cv_status::no_timeout, wait());
    583     EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
    584     EXPECT_EQ(serial, radioRsp->rspInfo.serial);
    585 
    586     if (cardStatus.cardState == CardState::ABSENT) {
    587         ASSERT_TRUE(CheckAnyOfErrors(radioRsp->rspInfo.error,
    588                                      {RadioError::NONE, RadioError::REQUEST_NOT_SUPPORTED}));
    589     }
    590 }
    591 
    592 /*
    593  * Test IRadio.setUiccSubscription() for the response returned.
    594  */
    595 TEST_F(RadioHidlTest, setUiccSubscription) {
    596     serial = GetRandomSerialNumber();
    597     SelectUiccSub item;
    598     memset(&item, 0, sizeof(item));
    599 
    600     radio->setUiccSubscription(serial, item);
    601     EXPECT_EQ(std::cv_status::no_timeout, wait());
    602     EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
    603     EXPECT_EQ(serial, radioRsp->rspInfo.serial);
    604 
    605     if (cardStatus.cardState == CardState::ABSENT) {
    606         ASSERT_TRUE(
    607             CheckAnyOfErrors(radioRsp->rspInfo.error,
    608                              {RadioError::NONE, RadioError::INVALID_ARGUMENTS,
    609                               RadioError::MODEM_ERR, RadioError::SUBSCRIPTION_NOT_SUPPORTED},
    610                              CHECK_GENERAL_ERROR));
    611     }
    612 }
    613 
    614 /*
    615  * Test IRadio.getHardwareConfig() for the response returned.
    616  */
    617 TEST_F(RadioHidlTest, getHardwareConfig) {
    618     serial = GetRandomSerialNumber();
    619 
    620     radio->getHardwareConfig(serial);
    621     EXPECT_EQ(std::cv_status::no_timeout, wait());
    622     EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
    623     EXPECT_EQ(serial, radioRsp->rspInfo.serial);
    624 
    625     if (cardStatus.cardState == CardState::ABSENT) {
    626         ASSERT_TRUE(
    627             CheckAnyOfErrors(radioRsp->rspInfo.error, {RadioError::NONE}, CHECK_GENERAL_ERROR));
    628     }
    629 }
    630 
    631 /*
    632  * Test IRadio.requestShutdown() for the response returned.
    633  */
    634 TEST_F(RadioHidlTest, requestShutdown) {
    635     serial = GetRandomSerialNumber();
    636 
    637     radio->requestShutdown(serial);
    638     EXPECT_EQ(std::cv_status::no_timeout, wait());
    639     EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
    640     EXPECT_EQ(serial, radioRsp->rspInfo.serial);
    641 
    642     if (cardStatus.cardState == CardState::ABSENT) {
    643         ASSERT_TRUE(
    644             CheckAnyOfErrors(radioRsp->rspInfo.error, {RadioError::NONE}, CHECK_GENERAL_ERROR));
    645     }
    646 }
    647 
    648 /*
    649  * Test IRadio.getRadioCapability() for the response returned.
    650  */
    651 TEST_F(RadioHidlTest, getRadioCapability) {
    652     serial = GetRandomSerialNumber();
    653 
    654     radio->getRadioCapability(serial);
    655     EXPECT_EQ(std::cv_status::no_timeout, wait());
    656     EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
    657     EXPECT_EQ(serial, radioRsp->rspInfo.serial);
    658 
    659     if (cardStatus.cardState == CardState::ABSENT) {
    660         EXPECT_EQ(RadioError::NONE, radioRsp->rspInfo.error);
    661     }
    662 }
    663 
    664 /*
    665  * Test IRadio.setRadioCapability() for the response returned.
    666  */
    667 TEST_F(RadioHidlTest, setRadioCapability) {
    668     serial = GetRandomSerialNumber();
    669     RadioCapability rc;
    670     memset(&rc, 0, sizeof(rc));
    671     rc.logicalModemUuid = hidl_string();
    672 
    673     radio->setRadioCapability(serial, rc);
    674     EXPECT_EQ(std::cv_status::no_timeout, wait());
    675     EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
    676     EXPECT_EQ(serial, radioRsp->rspInfo.serial);
    677 
    678     if (cardStatus.cardState == CardState::ABSENT) {
    679         ASSERT_TRUE(CheckAnyOfErrors(radioRsp->rspInfo.error,
    680                                      {RadioError::INVALID_ARGUMENTS, RadioError::INVALID_STATE},
    681                                      CHECK_GENERAL_ERROR));
    682     }
    683 }
    684 
    685 /*
    686  * Test IRadio.startLceService() for the response returned.
    687  */
    688 TEST_F(RadioHidlTest, startLceService) {
    689     serial = GetRandomSerialNumber();
    690 
    691     radio->startLceService(serial, 5, true);
    692     EXPECT_EQ(std::cv_status::no_timeout, wait());
    693     EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
    694     EXPECT_EQ(serial, radioRsp->rspInfo.serial);
    695 
    696     if (cardStatus.cardState == CardState::ABSENT) {
    697         ASSERT_TRUE(CheckAnyOfErrors(radioRsp->rspInfo.error,
    698                                      {RadioError::INTERNAL_ERR, RadioError::LCE_NOT_SUPPORTED,
    699                                       RadioError::RADIO_NOT_AVAILABLE, RadioError::SIM_ABSENT}));
    700     }
    701 }
    702 
    703 /*
    704  * Test IRadio.stopLceService() for the response returned.
    705  */
    706 TEST_F(RadioHidlTest, stopLceService) {
    707     serial = GetRandomSerialNumber();
    708 
    709     radio->stopLceService(serial);
    710     EXPECT_EQ(std::cv_status::no_timeout, wait());
    711     EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
    712     EXPECT_EQ(serial, radioRsp->rspInfo.serial);
    713 
    714     if (cardStatus.cardState == CardState::ABSENT) {
    715         ASSERT_TRUE(CheckAnyOfErrors(radioRsp->rspInfo.error,
    716                                      {RadioError::NONE, RadioError::LCE_NOT_SUPPORTED,
    717                                       RadioError::REQUEST_NOT_SUPPORTED, RadioError::SIM_ABSENT}));
    718     }
    719 }
    720 
    721 /*
    722  * Test IRadio.pullLceData() for the response returned.
    723  */
    724 TEST_F(RadioHidlTest, pullLceData) {
    725     serial = GetRandomSerialNumber();
    726 
    727     radio->pullLceData(serial);
    728     EXPECT_EQ(std::cv_status::no_timeout, wait());
    729     EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
    730     EXPECT_EQ(serial, radioRsp->rspInfo.serial);
    731 
    732     if (cardStatus.cardState == CardState::ABSENT) {
    733         ASSERT_TRUE(CheckAnyOfErrors(
    734             radioRsp->rspInfo.error,
    735             {RadioError::NONE, RadioError::INTERNAL_ERR, RadioError::RADIO_NOT_AVAILABLE},
    736             CHECK_OEM_ERROR));
    737     }
    738 }
    739 
    740 /*
    741  * Test IRadio.getModemActivityInfo() for the response returned.
    742  */
    743 TEST_F(RadioHidlTest, getModemActivityInfo) {
    744     serial = GetRandomSerialNumber();
    745 
    746     radio->getModemActivityInfo(serial);
    747     EXPECT_EQ(std::cv_status::no_timeout, wait());
    748     EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
    749     EXPECT_EQ(serial, radioRsp->rspInfo.serial);
    750 
    751     if (cardStatus.cardState == CardState::ABSENT) {
    752         ASSERT_TRUE(CheckAnyOfErrors(radioRsp->rspInfo.error,
    753                                      {RadioError::NONE, RadioError::REQUEST_NOT_SUPPORTED}));
    754     }
    755 }
    756 
    757 /*
    758  * Test IRadio.setAllowedCarriers() for the response returned.
    759  */
    760 TEST_F(RadioHidlTest, setAllowedCarriers) {
    761     serial = GetRandomSerialNumber();
    762     CarrierRestrictions carriers;
    763     memset(&carriers, 0, sizeof(carriers));
    764     carriers.allowedCarriers.resize(1);
    765     carriers.excludedCarriers.resize(0);
    766     carriers.allowedCarriers[0].mcc = hidl_string();
    767     carriers.allowedCarriers[0].mnc = hidl_string();
    768     carriers.allowedCarriers[0].matchType = CarrierMatchType::ALL;
    769     carriers.allowedCarriers[0].matchData = hidl_string();
    770 
    771     radio->setAllowedCarriers(serial, false, carriers);
    772     EXPECT_EQ(std::cv_status::no_timeout, wait());
    773     EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
    774     EXPECT_EQ(serial, radioRsp->rspInfo.serial);
    775 
    776     if (cardStatus.cardState == CardState::ABSENT) {
    777         ASSERT_TRUE(CheckAnyOfErrors(radioRsp->rspInfo.error,
    778                                      {RadioError::NONE, RadioError::REQUEST_NOT_SUPPORTED}));
    779     }
    780 
    781     /* Setting to carrier restriction needs some time */
    782     updateSimCardStatus();
    783     auto startTime = std::chrono::system_clock::now();
    784     while (cardStatus.cardState != CardState::RESTRICTED &&
    785            std::chrono::duration_cast<chrono::seconds>(std::chrono::system_clock::now() - startTime)
    786                    .count() < 10) {
    787         /* Set 2 seconds as interval to check card status */
    788         sleep(2);
    789         updateSimCardStatus();
    790     }
    791     EXPECT_EQ(CardState::RESTRICTED, cardStatus.cardState);
    792     sleep(10);
    793 
    794     /* Reset back to no carrier restriction */
    795     memset(&carriers, 0, sizeof(carriers));
    796     carriers.allowedCarriers.resize(0);
    797     carriers.excludedCarriers.resize(0);
    798 
    799     serial = GetRandomSerialNumber();
    800     radio->setAllowedCarriers(serial, true, carriers);
    801     EXPECT_EQ(std::cv_status::no_timeout, wait());
    802     EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
    803     EXPECT_EQ(serial, radioRsp->rspInfo.serial);
    804 
    805     if (cardStatus.cardState == CardState::ABSENT) {
    806         ASSERT_TRUE(CheckAnyOfErrors(radioRsp->rspInfo.error,
    807                                      {RadioError::NONE, RadioError::REQUEST_NOT_SUPPORTED}));
    808     }
    809 
    810     /* Resetting back to no carrier restriction needs some time */
    811     updateSimCardStatus();
    812     startTime = std::chrono::system_clock::now();
    813     while (cardStatus.cardState == CardState::RESTRICTED &&
    814            std::chrono::duration_cast<chrono::seconds>(std::chrono::system_clock::now() - startTime)
    815                    .count() < 10) {
    816         /* Set 2 seconds as interval to check card status */
    817         sleep(2);
    818         updateSimCardStatus();
    819     }
    820     EXPECT_NE(CardState::RESTRICTED, cardStatus.cardState);
    821     sleep(10);
    822 }
    823 
    824 /*
    825  * Test IRadio.getAllowedCarriers() for the response returned.
    826  */
    827 TEST_F(RadioHidlTest, getAllowedCarriers) {
    828     serial = GetRandomSerialNumber();
    829 
    830     radio->getAllowedCarriers(serial);
    831     EXPECT_EQ(std::cv_status::no_timeout, wait());
    832     EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
    833     EXPECT_EQ(serial, radioRsp->rspInfo.serial);
    834 
    835     if (cardStatus.cardState == CardState::ABSENT) {
    836         ASSERT_TRUE(CheckAnyOfErrors(radioRsp->rspInfo.error,
    837                                      {RadioError::NONE, RadioError::REQUEST_NOT_SUPPORTED}));
    838     }
    839 }
    840 
    841 /*
    842  * Test IRadio.sendDeviceState() for the response returned.
    843  */
    844 TEST_F(RadioHidlTest, sendDeviceState) {
    845     serial = GetRandomSerialNumber();
    846 
    847     radio->sendDeviceState(serial, DeviceStateType::POWER_SAVE_MODE, true);
    848     EXPECT_EQ(std::cv_status::no_timeout, wait());
    849     EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
    850     EXPECT_EQ(serial, radioRsp->rspInfo.serial);
    851 
    852     std::cout << static_cast<int>(radioRsp->rspInfo.error) << std::endl;
    853 
    854     if (cardStatus.cardState == CardState::ABSENT) {
    855         ASSERT_TRUE(CheckAnyOfErrors(radioRsp->rspInfo.error,
    856                                      {RadioError::NONE, RadioError::REQUEST_NOT_SUPPORTED}));
    857     }
    858 }
    859 
    860 /*
    861  * Test IRadio.setIndicationFilter() for the response returned.
    862  */
    863 TEST_F(RadioHidlTest, setIndicationFilter) {
    864     serial = GetRandomSerialNumber();
    865 
    866     radio->setIndicationFilter(serial, 1);
    867     EXPECT_EQ(std::cv_status::no_timeout, wait());
    868     EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
    869     EXPECT_EQ(serial, radioRsp->rspInfo.serial);
    870 
    871     std::cout << static_cast<int>(radioRsp->rspInfo.error) << std::endl;
    872 
    873     if (cardStatus.cardState == CardState::ABSENT) {
    874         ASSERT_TRUE(CheckAnyOfErrors(radioRsp->rspInfo.error,
    875                                      {RadioError::NONE, RadioError::REQUEST_NOT_SUPPORTED}));
    876     }
    877 }
    878 
    879 /*
    880  * Test IRadio.setSimCardPower() for the response returned.
    881  */
    882 TEST_F(RadioHidlTest, setSimCardPower) {
    883     serial = GetRandomSerialNumber();
    884 
    885     radio->setSimCardPower(serial, true);
    886     EXPECT_EQ(std::cv_status::no_timeout, wait());
    887     EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
    888     EXPECT_EQ(serial, radioRsp->rspInfo.serial);
    889 
    890     if (cardStatus.cardState == CardState::ABSENT) {
    891         ASSERT_TRUE(CheckAnyOfErrors(radioRsp->rspInfo.error,
    892                                      {RadioError::NONE, RadioError::REQUEST_NOT_SUPPORTED}));
    893     }
    894 }
    895