14547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran/* 24547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran * Copyright (C) 2017 The Android Open Source Project 34547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran * 44547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran * Licensed under the Apache License, Version 2.0 (the "License"); 54547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran * you may not use this file except in compliance with the License. 64547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran * You may obtain a copy of the License at 74547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran * 84547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran * http://www.apache.org/licenses/LICENSE-2.0 94547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran * 104547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran * Unless required by applicable law or agreed to in writing, software 114547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran * distributed under the License is distributed on an "AS IS" BASIS, 124547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 134547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran * See the License for the specific language governing permissions and 144547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran * limitations under the License. 154547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran */ 164547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran 174547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran#include <radio_hidl_hal_utils_v1_2.h> 184547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran#include <vector> 194547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran 204547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran#define ASSERT_OK(ret) ASSERT_TRUE(ret.isOk()) 214547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran 224547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran/* 234547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran * Test IRadio.startNetworkScan() for the response returned. 244547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran */ 254547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj SasindranTEST_F(RadioHidlTest_v1_2, startNetworkScan) { 26788eb8083059ff0dca686734ceebf942042c4893sqian serial = GetRandomSerialNumber(); 274547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran 284547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran RadioAccessSpecifier specifier = { 294547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran .radioAccessNetwork = RadioAccessNetworks::GERAN, 304547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran .geranBands = {GeranBands::BAND_450, GeranBands::BAND_480}, 314547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran .channels = {1,2}}; 324547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran 3379bafb943bb53e48351cd159724164c7526976c4sqian ::android::hardware::radio::V1_2::NetworkScanRequest request = { 3479bafb943bb53e48351cd159724164c7526976c4sqian .type = ScanType::ONE_SHOT, .interval = 60, .specifiers = {specifier}}; 354547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran 364547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran Return<void> res = radio_v1_2->startNetworkScan_1_2(serial, request); 374547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran ASSERT_OK(res); 384547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran EXPECT_EQ(std::cv_status::no_timeout, wait()); 394547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp_v1_2->rspInfo.type); 404547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran EXPECT_EQ(serial, radioRsp_v1_2->rspInfo.serial); 414547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran 424547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran ALOGI("startNetworkScan, rspInfo.error = %s\n", toString(radioRsp_v1_2->rspInfo.error).c_str()); 4379bafb943bb53e48351cd159724164c7526976c4sqian if (cardStatus.base.cardState == CardState::ABSENT) { 44d19ee31e6c9ed0fb9154fd426a08ad41459f1958Cassie ASSERT_TRUE(CheckAnyOfErrors(radioRsp_v1_2->rspInfo.error, {RadioError::SIM_ABSENT})); 4579bafb943bb53e48351cd159724164c7526976c4sqian } else if (cardStatus.base.cardState == CardState::PRESENT) { 46d19ee31e6c9ed0fb9154fd426a08ad41459f1958Cassie ASSERT_TRUE(CheckAnyOfErrors(radioRsp_v1_2->rspInfo.error, {RadioError::NONE})); 474547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran } 484547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran} 494547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran 504547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran/* 514547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran * Test IRadio.startNetworkScan() with invalid specifier. 524547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran */ 534547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj SasindranTEST_F(RadioHidlTest_v1_2, startNetworkScan_InvalidArgument) { 54788eb8083059ff0dca686734ceebf942042c4893sqian serial = GetRandomSerialNumber(); 554547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran 5679bafb943bb53e48351cd159724164c7526976c4sqian ::android::hardware::radio::V1_2::NetworkScanRequest request = {.type = ScanType::ONE_SHOT, 5779bafb943bb53e48351cd159724164c7526976c4sqian .interval = 60}; 584547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran 594547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran Return<void> res = radio_v1_2->startNetworkScan_1_2(serial, request); 604547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran ASSERT_OK(res); 614547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran EXPECT_EQ(std::cv_status::no_timeout, wait()); 624547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp_v1_2->rspInfo.type); 634547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran EXPECT_EQ(serial, radioRsp_v1_2->rspInfo.serial); 644547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran 654547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran ALOGI("startNetworkScan_InvalidArgument, rspInfo.error = %s\n", 664547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran toString(radioRsp_v1_2->rspInfo.error).c_str()); 6779bafb943bb53e48351cd159724164c7526976c4sqian if (cardStatus.base.cardState == CardState::ABSENT) { 687fe9365e6fb10533d75000eddd5287ca6408f897sqian ASSERT_TRUE(CheckAnyOfErrors(radioRsp_v1_2->rspInfo.error, 69d19ee31e6c9ed0fb9154fd426a08ad41459f1958Cassie {RadioError::SIM_ABSENT, RadioError::INVALID_ARGUMENTS})); 7079bafb943bb53e48351cd159724164c7526976c4sqian } else if (cardStatus.base.cardState == CardState::PRESENT) { 717fe9365e6fb10533d75000eddd5287ca6408f897sqian ASSERT_TRUE( 72d19ee31e6c9ed0fb9154fd426a08ad41459f1958Cassie CheckAnyOfErrors(radioRsp_v1_2->rspInfo.error, {RadioError::INVALID_ARGUMENTS})); 734547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran } 744547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran} 754547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran 764547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran/* 774547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran * Test IRadio.startNetworkScan() with invalid interval (lower boundary). 784547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran */ 794547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj SasindranTEST_F(RadioHidlTest_v1_2, startNetworkScan_InvalidInterval1) { 80788eb8083059ff0dca686734ceebf942042c4893sqian serial = GetRandomSerialNumber(); 814547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran 824547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran RadioAccessSpecifier specifier = { 834547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran .radioAccessNetwork = RadioAccessNetworks::GERAN, 844547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran .geranBands = {GeranBands::BAND_450, GeranBands::BAND_480}, 854547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran .channels = {1,2}}; 864547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran 8779bafb943bb53e48351cd159724164c7526976c4sqian ::android::hardware::radio::V1_2::NetworkScanRequest request = { 884547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran .type = ScanType::ONE_SHOT, 894547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran .interval = 4, 904547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran .specifiers = {specifier}, 914547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran .maxSearchTime = 60, 924547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran .incrementalResults = false, 934547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran .incrementalResultsPeriodicity = 1}; 944547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran 954547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran Return<void> res = radio_v1_2->startNetworkScan_1_2(serial, request); 964547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran ASSERT_OK(res); 974547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran EXPECT_EQ(std::cv_status::no_timeout, wait()); 984547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp_v1_2->rspInfo.type); 994547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran EXPECT_EQ(serial, radioRsp_v1_2->rspInfo.serial); 1004547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran 1014547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran ALOGI("startNetworkScan_InvalidInterval1, rspInfo.error = %s\n", 1024547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran toString(radioRsp_v1_2->rspInfo.error).c_str()); 10379bafb943bb53e48351cd159724164c7526976c4sqian if (cardStatus.base.cardState == CardState::ABSENT) { 104d19ee31e6c9ed0fb9154fd426a08ad41459f1958Cassie ASSERT_TRUE(CheckAnyOfErrors(radioRsp_v1_2->rspInfo.error, 105d19ee31e6c9ed0fb9154fd426a08ad41459f1958Cassie {RadioError::SIM_ABSENT, RadioError::INVALID_ARGUMENTS})); 10679bafb943bb53e48351cd159724164c7526976c4sqian } else if (cardStatus.base.cardState == CardState::PRESENT) { 1077fe9365e6fb10533d75000eddd5287ca6408f897sqian ASSERT_TRUE( 108d19ee31e6c9ed0fb9154fd426a08ad41459f1958Cassie CheckAnyOfErrors(radioRsp_v1_2->rspInfo.error, {RadioError::INVALID_ARGUMENTS})); 1094547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran } 1104547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran} 1114547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran 1124547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran/* 1134547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran * Test IRadio.startNetworkScan() with invalid interval (upper boundary). 1144547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran */ 1154547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj SasindranTEST_F(RadioHidlTest_v1_2, startNetworkScan_InvalidInterval2) { 116788eb8083059ff0dca686734ceebf942042c4893sqian serial = GetRandomSerialNumber(); 1174547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran 1184547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran RadioAccessSpecifier specifier = { 1194547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran .radioAccessNetwork = RadioAccessNetworks::GERAN, 1204547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran .geranBands = {GeranBands::BAND_450, GeranBands::BAND_480}, 1214547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran .channels = {1,2}}; 1224547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran 12379bafb943bb53e48351cd159724164c7526976c4sqian ::android::hardware::radio::V1_2::NetworkScanRequest request = { 1244547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran .type = ScanType::ONE_SHOT, 1254547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran .interval = 301, 1264547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran .specifiers = {specifier}, 1274547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran .maxSearchTime = 60, 1284547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran .incrementalResults = false, 1294547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran .incrementalResultsPeriodicity = 1}; 1304547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran 1314547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran Return<void> res = radio_v1_2->startNetworkScan_1_2(serial, request); 1324547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran ASSERT_OK(res); 1334547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran EXPECT_EQ(std::cv_status::no_timeout, wait()); 1344547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp_v1_2->rspInfo.type); 1354547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran EXPECT_EQ(serial, radioRsp_v1_2->rspInfo.serial); 1364547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran 1374547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran ALOGI("startNetworkScan_InvalidInterval2, rspInfo.error = %s\n", 1384547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran toString(radioRsp_v1_2->rspInfo.error).c_str()); 13979bafb943bb53e48351cd159724164c7526976c4sqian if (cardStatus.base.cardState == CardState::ABSENT) { 140d19ee31e6c9ed0fb9154fd426a08ad41459f1958Cassie ASSERT_TRUE(CheckAnyOfErrors(radioRsp_v1_2->rspInfo.error, 141d19ee31e6c9ed0fb9154fd426a08ad41459f1958Cassie {RadioError::SIM_ABSENT, RadioError::INVALID_ARGUMENTS})); 14279bafb943bb53e48351cd159724164c7526976c4sqian } else if (cardStatus.base.cardState == CardState::PRESENT) { 1437fe9365e6fb10533d75000eddd5287ca6408f897sqian ASSERT_TRUE( 144d19ee31e6c9ed0fb9154fd426a08ad41459f1958Cassie CheckAnyOfErrors(radioRsp_v1_2->rspInfo.error, {RadioError::INVALID_ARGUMENTS})); 1454547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran } 1464547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran} 1474547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran 1484547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran/* 1494547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran * Test IRadio.startNetworkScan() with invalid max search time (lower boundary). 1504547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran */ 1514547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj SasindranTEST_F(RadioHidlTest_v1_2, startNetworkScan_InvalidMaxSearchTime1) { 152788eb8083059ff0dca686734ceebf942042c4893sqian serial = GetRandomSerialNumber(); 1534547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran 1544547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran RadioAccessSpecifier specifier = { 1554547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran .radioAccessNetwork = RadioAccessNetworks::GERAN, 1564547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran .geranBands = {GeranBands::BAND_450, GeranBands::BAND_480}, 1574547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran .channels = {1,2}}; 1584547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran 15979bafb943bb53e48351cd159724164c7526976c4sqian ::android::hardware::radio::V1_2::NetworkScanRequest request = { 1604547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran .type = ScanType::ONE_SHOT, 1614547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran .interval = 60, 1624547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran .specifiers = {specifier}, 1634547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran .maxSearchTime = 59, 1644547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran .incrementalResults = false, 1654547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran .incrementalResultsPeriodicity = 1}; 1664547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran 1674547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran Return<void> res = radio_v1_2->startNetworkScan_1_2(serial, request); 1684547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran ASSERT_OK(res); 1694547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran EXPECT_EQ(std::cv_status::no_timeout, wait()); 1704547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp_v1_2->rspInfo.type); 1714547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran EXPECT_EQ(serial, radioRsp_v1_2->rspInfo.serial); 1724547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran 1734547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran ALOGI("startNetworkScan_InvalidMaxSearchTime1, rspInfo.error = %s\n", 1744547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran toString(radioRsp_v1_2->rspInfo.error).c_str()); 17579bafb943bb53e48351cd159724164c7526976c4sqian if (cardStatus.base.cardState == CardState::ABSENT) { 176d19ee31e6c9ed0fb9154fd426a08ad41459f1958Cassie ASSERT_TRUE(CheckAnyOfErrors(radioRsp_v1_2->rspInfo.error, 177d19ee31e6c9ed0fb9154fd426a08ad41459f1958Cassie {RadioError::SIM_ABSENT, RadioError::INVALID_ARGUMENTS})); 17879bafb943bb53e48351cd159724164c7526976c4sqian } else if (cardStatus.base.cardState == CardState::PRESENT) { 1797fe9365e6fb10533d75000eddd5287ca6408f897sqian ASSERT_TRUE( 180d19ee31e6c9ed0fb9154fd426a08ad41459f1958Cassie CheckAnyOfErrors(radioRsp_v1_2->rspInfo.error, {RadioError::INVALID_ARGUMENTS})); 1814547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran } 1824547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran} 1834547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran 1844547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran/* 1854547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran * Test IRadio.startNetworkScan() with invalid max search time (upper boundary). 1864547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran */ 1874547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj SasindranTEST_F(RadioHidlTest_v1_2, startNetworkScan_InvalidMaxSearchTime2) { 188788eb8083059ff0dca686734ceebf942042c4893sqian serial = GetRandomSerialNumber(); 1894547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran 1904547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran RadioAccessSpecifier specifier = { 1914547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran .radioAccessNetwork = RadioAccessNetworks::GERAN, 1924547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran .geranBands = {GeranBands::BAND_450, GeranBands::BAND_480}, 1934547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran .channels = {1,2}}; 1944547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran 19579bafb943bb53e48351cd159724164c7526976c4sqian ::android::hardware::radio::V1_2::NetworkScanRequest request = { 1964547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran .type = ScanType::ONE_SHOT, 1974547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran .interval = 60, 1984547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran .specifiers = {specifier}, 1994547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran .maxSearchTime = 3601, 2004547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran .incrementalResults = false, 2014547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran .incrementalResultsPeriodicity = 1}; 2024547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran 2034547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran Return<void> res = radio_v1_2->startNetworkScan_1_2(serial, request); 2044547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran ASSERT_OK(res); 2054547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran EXPECT_EQ(std::cv_status::no_timeout, wait()); 2064547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp_v1_2->rspInfo.type); 2074547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran EXPECT_EQ(serial, radioRsp_v1_2->rspInfo.serial); 2084547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran 2094547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran ALOGI("startNetworkScan_InvalidMaxSearchTime2, rspInfo.error = %s\n", 2104547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran toString(radioRsp_v1_2->rspInfo.error).c_str()); 21179bafb943bb53e48351cd159724164c7526976c4sqian if (cardStatus.base.cardState == CardState::ABSENT) { 212d19ee31e6c9ed0fb9154fd426a08ad41459f1958Cassie ASSERT_TRUE(CheckAnyOfErrors(radioRsp_v1_2->rspInfo.error, 213d19ee31e6c9ed0fb9154fd426a08ad41459f1958Cassie {RadioError::SIM_ABSENT, RadioError::INVALID_ARGUMENTS})); 21479bafb943bb53e48351cd159724164c7526976c4sqian } else if (cardStatus.base.cardState == CardState::PRESENT) { 2157fe9365e6fb10533d75000eddd5287ca6408f897sqian ASSERT_TRUE( 216d19ee31e6c9ed0fb9154fd426a08ad41459f1958Cassie CheckAnyOfErrors(radioRsp_v1_2->rspInfo.error, {RadioError::INVALID_ARGUMENTS})); 2174547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran } 2184547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran} 2194547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran 2204547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran/* 2214547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran * Test IRadio.startNetworkScan() with invalid periodicity (lower boundary). 2224547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran */ 2234547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj SasindranTEST_F(RadioHidlTest_v1_2, startNetworkScan_InvalidPeriodicity1) { 224788eb8083059ff0dca686734ceebf942042c4893sqian serial = GetRandomSerialNumber(); 2254547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran 2264547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran RadioAccessSpecifier specifier = { 2274547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran .radioAccessNetwork = RadioAccessNetworks::GERAN, 2284547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran .geranBands = {GeranBands::BAND_450, GeranBands::BAND_480}, 2294547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran .channels = {1,2}}; 2304547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran 23179bafb943bb53e48351cd159724164c7526976c4sqian ::android::hardware::radio::V1_2::NetworkScanRequest request = { 2324547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran .type = ScanType::ONE_SHOT, 2334547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran .interval = 60, 2344547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran .specifiers = {specifier}, 2354547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran .maxSearchTime = 600, 2364547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran .incrementalResults = false, 2374547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran .incrementalResultsPeriodicity = 0}; 2384547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran 2394547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran Return<void> res = radio_v1_2->startNetworkScan_1_2(serial, request); 2404547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran ASSERT_OK(res); 2414547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran EXPECT_EQ(std::cv_status::no_timeout, wait()); 2424547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp_v1_2->rspInfo.type); 2434547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran EXPECT_EQ(serial, radioRsp_v1_2->rspInfo.serial); 2444547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran 2454547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran ALOGI("startNetworkScan_InvalidPeriodicity1, rspInfo.error = %s\n", 2464547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran toString(radioRsp_v1_2->rspInfo.error).c_str()); 24779bafb943bb53e48351cd159724164c7526976c4sqian if (cardStatus.base.cardState == CardState::ABSENT) { 248d19ee31e6c9ed0fb9154fd426a08ad41459f1958Cassie ASSERT_TRUE(CheckAnyOfErrors(radioRsp_v1_2->rspInfo.error, 249d19ee31e6c9ed0fb9154fd426a08ad41459f1958Cassie {RadioError::SIM_ABSENT, RadioError::INVALID_ARGUMENTS})); 25079bafb943bb53e48351cd159724164c7526976c4sqian } else if (cardStatus.base.cardState == CardState::PRESENT) { 2517fe9365e6fb10533d75000eddd5287ca6408f897sqian ASSERT_TRUE( 252d19ee31e6c9ed0fb9154fd426a08ad41459f1958Cassie CheckAnyOfErrors(radioRsp_v1_2->rspInfo.error, {RadioError::INVALID_ARGUMENTS})); 2534547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran } 2544547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran} 2554547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran 2564547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran/* 2574547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran * Test IRadio.startNetworkScan() with invalid periodicity (upper boundary). 2584547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran */ 2594547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj SasindranTEST_F(RadioHidlTest_v1_2, startNetworkScan_InvalidPeriodicity2) { 260788eb8083059ff0dca686734ceebf942042c4893sqian serial = GetRandomSerialNumber(); 2614547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran 2624547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran RadioAccessSpecifier specifier = { 2634547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran .radioAccessNetwork = RadioAccessNetworks::GERAN, 2644547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran .geranBands = {GeranBands::BAND_450, GeranBands::BAND_480}, 2654547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran .channels = {1,2}}; 2664547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran 26779bafb943bb53e48351cd159724164c7526976c4sqian ::android::hardware::radio::V1_2::NetworkScanRequest request = { 2684547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran .type = ScanType::ONE_SHOT, 2694547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran .interval = 60, 2704547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran .specifiers = {specifier}, 2714547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran .maxSearchTime = 600, 2724547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran .incrementalResults = false, 2734547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran .incrementalResultsPeriodicity = 11}; 2744547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran 2754547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran Return<void> res = radio_v1_2->startNetworkScan_1_2(serial, request); 2764547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran ASSERT_OK(res); 2774547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran EXPECT_EQ(std::cv_status::no_timeout, wait()); 2784547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp_v1_2->rspInfo.type); 2794547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran EXPECT_EQ(serial, radioRsp_v1_2->rspInfo.serial); 2804547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran 2814547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran ALOGI("startNetworkScan_InvalidPeriodicity2, rspInfo.error = %s\n", 2824547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran toString(radioRsp_v1_2->rspInfo.error).c_str()); 28379bafb943bb53e48351cd159724164c7526976c4sqian if (cardStatus.base.cardState == CardState::ABSENT) { 284d19ee31e6c9ed0fb9154fd426a08ad41459f1958Cassie ASSERT_TRUE(CheckAnyOfErrors(radioRsp_v1_2->rspInfo.error, 285d19ee31e6c9ed0fb9154fd426a08ad41459f1958Cassie {RadioError::SIM_ABSENT, RadioError::INVALID_ARGUMENTS})); 28679bafb943bb53e48351cd159724164c7526976c4sqian } else if (cardStatus.base.cardState == CardState::PRESENT) { 2877fe9365e6fb10533d75000eddd5287ca6408f897sqian ASSERT_TRUE( 288d19ee31e6c9ed0fb9154fd426a08ad41459f1958Cassie CheckAnyOfErrors(radioRsp_v1_2->rspInfo.error, {RadioError::INVALID_ARGUMENTS})); 2894547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran } 2904547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran} 2914547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran 2924547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran/* 2934547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran * Test IRadio.startNetworkScan() with valid periodicity 2944547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran */ 2954547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj SasindranTEST_F(RadioHidlTest_v1_2, startNetworkScan_GoodRequest1) { 296788eb8083059ff0dca686734ceebf942042c4893sqian serial = GetRandomSerialNumber(); 2974547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran 2984547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran RadioAccessSpecifier specifier = { 2994547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran .radioAccessNetwork = RadioAccessNetworks::GERAN, 3004547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran .geranBands = {GeranBands::BAND_450, GeranBands::BAND_480}, 3014547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran .channels = {1,2}}; 3024547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran 30379bafb943bb53e48351cd159724164c7526976c4sqian ::android::hardware::radio::V1_2::NetworkScanRequest request = { 3044547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran .type = ScanType::ONE_SHOT, 3054547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran .interval = 60, 3064547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran .specifiers = {specifier}, 3074547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran .maxSearchTime = 600, 3084547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran .incrementalResults = false, 3094547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran .incrementalResultsPeriodicity = 10}; 3104547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran 3114547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran Return<void> res = radio_v1_2->startNetworkScan_1_2(serial, request); 3124547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran ASSERT_OK(res); 3134547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran EXPECT_EQ(std::cv_status::no_timeout, wait()); 3144547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp_v1_2->rspInfo.type); 3154547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran EXPECT_EQ(serial, radioRsp_v1_2->rspInfo.serial); 3164547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran 3174547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran ALOGI("startNetworkScan_InvalidArgument, rspInfo.error = %s\n", 3184547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran toString(radioRsp_v1_2->rspInfo.error).c_str()); 31979bafb943bb53e48351cd159724164c7526976c4sqian if (cardStatus.base.cardState == CardState::ABSENT) { 3207fe9365e6fb10533d75000eddd5287ca6408f897sqian ASSERT_TRUE(CheckAnyOfErrors(radioRsp_v1_2->rspInfo.error, 321d19ee31e6c9ed0fb9154fd426a08ad41459f1958Cassie {RadioError::NONE, RadioError::SIM_ABSENT})); 32279bafb943bb53e48351cd159724164c7526976c4sqian } else if (cardStatus.base.cardState == CardState::PRESENT) { 323d19ee31e6c9ed0fb9154fd426a08ad41459f1958Cassie ASSERT_TRUE(CheckAnyOfErrors(radioRsp_v1_2->rspInfo.error, {RadioError::NONE})); 3244547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran } 3254547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran} 3264547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran 3274547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran/* 3284547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran * Test IRadio.startNetworkScan() with valid periodicity and plmns 3294547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran */ 3304547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj SasindranTEST_F(RadioHidlTest_v1_2, startNetworkScan_GoodRequest2) { 331788eb8083059ff0dca686734ceebf942042c4893sqian serial = GetRandomSerialNumber(); 3324547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran 3334547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran RadioAccessSpecifier specifier = { 3344547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran .radioAccessNetwork = RadioAccessNetworks::GERAN, 3354547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran .geranBands = {GeranBands::BAND_450, GeranBands::BAND_480}, 3364547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran .channels = {1,2}}; 3374547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran 33879bafb943bb53e48351cd159724164c7526976c4sqian ::android::hardware::radio::V1_2::NetworkScanRequest request = { 3394547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran .type = ScanType::ONE_SHOT, 3404547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran .interval = 60, 3414547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran .specifiers = {specifier}, 3424547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran .maxSearchTime = 600, 3434547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran .incrementalResults = false, 3444547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran .incrementalResultsPeriodicity = 10, 3454547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran .mccMncs = {"310410"}}; 3464547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran 3474547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran Return<void> res = radio_v1_2->startNetworkScan_1_2(serial, request); 3484547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran ASSERT_OK(res); 3494547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran EXPECT_EQ(std::cv_status::no_timeout, wait()); 3504547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp_v1_2->rspInfo.type); 3514547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran EXPECT_EQ(serial, radioRsp_v1_2->rspInfo.serial); 3524547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran 3534547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran ALOGI("startNetworkScan_InvalidArgument, rspInfo.error = %s\n", 3544547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran toString(radioRsp_v1_2->rspInfo.error).c_str()); 35579bafb943bb53e48351cd159724164c7526976c4sqian if (cardStatus.base.cardState == CardState::ABSENT) { 3567fe9365e6fb10533d75000eddd5287ca6408f897sqian ASSERT_TRUE(CheckAnyOfErrors(radioRsp_v1_2->rspInfo.error, 357d19ee31e6c9ed0fb9154fd426a08ad41459f1958Cassie {RadioError::NONE, RadioError::SIM_ABSENT})); 35879bafb943bb53e48351cd159724164c7526976c4sqian } else if (cardStatus.base.cardState == CardState::PRESENT) { 359d19ee31e6c9ed0fb9154fd426a08ad41459f1958Cassie ASSERT_TRUE(CheckAnyOfErrors(radioRsp_v1_2->rspInfo.error, {RadioError::NONE})); 3604547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran } 3614547419e6c0615b06b5b74832f24ca4027fe8e75Sooraj Sasindran} 3628bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach 3638bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach/* 3648bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach * Test IRadio.setIndicationFilter_1_2() 3658bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach */ 3668bdc4e04e21f3fa41109878e45006c00897b9ef8Eric SchwarzenbachTEST_F(RadioHidlTest_v1_2, setIndicationFilter_1_2) { 367788eb8083059ff0dca686734ceebf942042c4893sqian serial = GetRandomSerialNumber(); 3688bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach 36979bafb943bb53e48351cd159724164c7526976c4sqian Return<void> res = radio_v1_2->setIndicationFilter_1_2( 37079bafb943bb53e48351cd159724164c7526976c4sqian serial, static_cast<int>(::android::hardware::radio::V1_2::IndicationFilter::ALL)); 3718bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach ASSERT_OK(res); 3728bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach EXPECT_EQ(std::cv_status::no_timeout, wait()); 3738bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp_v1_2->rspInfo.type); 3748bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach EXPECT_EQ(serial, radioRsp_v1_2->rspInfo.serial); 3758bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach 3768bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach ALOGI("setIndicationFilter_1_2, rspInfo.error = %s\n", 3778bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach toString(radioRsp_v1_2->rspInfo.error).c_str()); 3788bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach ASSERT_TRUE(CheckAnyOfErrors(radioRsp_v1_2->rspInfo.error, {RadioError::NONE})); 3798bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach} 3808bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach 3818bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach/* 3828bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach * Test IRadio.setSignalStrengthReportingCriteria() with invalid hysteresisDb 3838bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach */ 3848bdc4e04e21f3fa41109878e45006c00897b9ef8Eric SchwarzenbachTEST_F(RadioHidlTest_v1_2, setSignalStrengthReportingCriteria_invalidHysteresisDb) { 385788eb8083059ff0dca686734ceebf942042c4893sqian serial = GetRandomSerialNumber(); 3868bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach 3878bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach Return<void> res = radio_v1_2->setSignalStrengthReportingCriteria( 3888bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach serial, 5000, 3898bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach 10, // hysteresisDb too large given threshold list deltas 39079bafb943bb53e48351cd159724164c7526976c4sqian {-109, -103, -97, -89}, ::android::hardware::radio::V1_2::AccessNetwork::GERAN); 3918bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach ASSERT_OK(res); 3928bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach EXPECT_EQ(std::cv_status::no_timeout, wait()); 3938bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp_v1_2->rspInfo.type); 3948bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach EXPECT_EQ(serial, radioRsp_v1_2->rspInfo.serial); 3958bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach 3968bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach ALOGI("setSignalStrengthReportingCriteria_invalidHysteresisDb, rspInfo.error = %s\n", 3978bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach toString(radioRsp_v1_2->rspInfo.error).c_str()); 3988bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach ASSERT_TRUE(CheckAnyOfErrors(radioRsp_v1_2->rspInfo.error, {RadioError::INVALID_ARGUMENTS})); 3998bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach} 4008bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach 4018bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach/* 4028bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach * Test IRadio.setSignalStrengthReportingCriteria() with empty parameters 4038bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach */ 4048bdc4e04e21f3fa41109878e45006c00897b9ef8Eric SchwarzenbachTEST_F(RadioHidlTest_v1_2, setSignalStrengthReportingCriteria_EmptyParams) { 405788eb8083059ff0dca686734ceebf942042c4893sqian serial = GetRandomSerialNumber(); 4068bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach 40779bafb943bb53e48351cd159724164c7526976c4sqian Return<void> res = radio_v1_2->setSignalStrengthReportingCriteria( 40879bafb943bb53e48351cd159724164c7526976c4sqian serial, 0, 0, {}, ::android::hardware::radio::V1_2::AccessNetwork::GERAN); 4098bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach ASSERT_OK(res); 4108bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach EXPECT_EQ(std::cv_status::no_timeout, wait()); 4118bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp_v1_2->rspInfo.type); 4128bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach EXPECT_EQ(serial, radioRsp_v1_2->rspInfo.serial); 4138bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach 4148bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach ALOGI("setSignalStrengthReportingCriteria_EmptyParams, rspInfo.error = %s\n", 4158bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach toString(radioRsp_v1_2->rspInfo.error).c_str()); 4168bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach ASSERT_TRUE(CheckAnyOfErrors(radioRsp_v1_2->rspInfo.error, {RadioError::NONE})); 4178bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach} 4188bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach 4198bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach/* 4208bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach * Test IRadio.setSignalStrengthReportingCriteria() for GERAN 4218bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach */ 4228bdc4e04e21f3fa41109878e45006c00897b9ef8Eric SchwarzenbachTEST_F(RadioHidlTest_v1_2, setSignalStrengthReportingCriteria_Geran) { 423788eb8083059ff0dca686734ceebf942042c4893sqian serial = GetRandomSerialNumber(); 4248bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach 4258bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach Return<void> res = radio_v1_2->setSignalStrengthReportingCriteria( 42679bafb943bb53e48351cd159724164c7526976c4sqian serial, 5000, 2, {-109, -103, -97, -89}, 42779bafb943bb53e48351cd159724164c7526976c4sqian ::android::hardware::radio::V1_2::AccessNetwork::GERAN); 4288bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach ASSERT_OK(res); 4298bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach EXPECT_EQ(std::cv_status::no_timeout, wait()); 4308bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp_v1_2->rspInfo.type); 4318bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach EXPECT_EQ(serial, radioRsp_v1_2->rspInfo.serial); 4328bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach 4338bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach ALOGI("setSignalStrengthReportingCriteria_Geran, rspInfo.error = %s\n", 4348bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach toString(radioRsp_v1_2->rspInfo.error).c_str()); 4358bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach ASSERT_TRUE(CheckAnyOfErrors(radioRsp_v1_2->rspInfo.error, {RadioError::NONE})); 4368bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach} 4378bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach 4388bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach/* 4398bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach * Test IRadio.setSignalStrengthReportingCriteria() for UTRAN 4408bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach */ 4418bdc4e04e21f3fa41109878e45006c00897b9ef8Eric SchwarzenbachTEST_F(RadioHidlTest_v1_2, setSignalStrengthReportingCriteria_Utran) { 442788eb8083059ff0dca686734ceebf942042c4893sqian serial = GetRandomSerialNumber(); 4438bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach 4448bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach Return<void> res = radio_v1_2->setSignalStrengthReportingCriteria( 44579bafb943bb53e48351cd159724164c7526976c4sqian serial, 5000, 2, {-110, -97, -73, -49, -25}, 44679bafb943bb53e48351cd159724164c7526976c4sqian ::android::hardware::radio::V1_2::AccessNetwork::UTRAN); 4478bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach ASSERT_OK(res); 4488bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach EXPECT_EQ(std::cv_status::no_timeout, wait()); 4498bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp_v1_2->rspInfo.type); 4508bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach EXPECT_EQ(serial, radioRsp_v1_2->rspInfo.serial); 4518bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach 4528bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach ALOGI("setSignalStrengthReportingCriteria_Utran, rspInfo.error = %s\n", 4538bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach toString(radioRsp_v1_2->rspInfo.error).c_str()); 4548bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach ASSERT_TRUE(CheckAnyOfErrors(radioRsp_v1_2->rspInfo.error, {RadioError::NONE})); 4558bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach} 4568bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach 4578bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach/* 4588bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach * Test IRadio.setSignalStrengthReportingCriteria() for EUTRAN 4598bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach */ 4608bdc4e04e21f3fa41109878e45006c00897b9ef8Eric SchwarzenbachTEST_F(RadioHidlTest_v1_2, setSignalStrengthReportingCriteria_Eutran) { 461788eb8083059ff0dca686734ceebf942042c4893sqian serial = GetRandomSerialNumber(); 4628bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach 4638bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach Return<void> res = radio_v1_2->setSignalStrengthReportingCriteria( 46479bafb943bb53e48351cd159724164c7526976c4sqian serial, 5000, 2, {-140, -128, -118, -108, -98, -44}, 46579bafb943bb53e48351cd159724164c7526976c4sqian ::android::hardware::radio::V1_2::AccessNetwork::EUTRAN); 4668bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach ASSERT_OK(res); 4678bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach EXPECT_EQ(std::cv_status::no_timeout, wait()); 4688bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp_v1_2->rspInfo.type); 4698bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach EXPECT_EQ(serial, radioRsp_v1_2->rspInfo.serial); 4708bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach 4718bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach ALOGI("setSignalStrengthReportingCriteria_Eutran, rspInfo.error = %s\n", 4728bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach toString(radioRsp_v1_2->rspInfo.error).c_str()); 4738bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach ASSERT_TRUE(CheckAnyOfErrors(radioRsp_v1_2->rspInfo.error, {RadioError::NONE})); 4748bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach} 4758bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach 4768bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach/* 4778bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach * Test IRadio.setSignalStrengthReportingCriteria() for CDMA2000 4788bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach */ 4798bdc4e04e21f3fa41109878e45006c00897b9ef8Eric SchwarzenbachTEST_F(RadioHidlTest_v1_2, setSignalStrengthReportingCriteria_Cdma2000) { 480788eb8083059ff0dca686734ceebf942042c4893sqian serial = GetRandomSerialNumber(); 4818bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach 4828bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach Return<void> res = radio_v1_2->setSignalStrengthReportingCriteria( 48379bafb943bb53e48351cd159724164c7526976c4sqian serial, 5000, 2, {-105, -90, -75, -65}, 48479bafb943bb53e48351cd159724164c7526976c4sqian ::android::hardware::radio::V1_2::AccessNetwork::CDMA2000); 4858bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach ASSERT_OK(res); 4868bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach EXPECT_EQ(std::cv_status::no_timeout, wait()); 4878bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp_v1_2->rspInfo.type); 4888bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach EXPECT_EQ(serial, radioRsp_v1_2->rspInfo.serial); 4898bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach 4908bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach ALOGI("setSignalStrengthReportingCriteria_Cdma2000, rspInfo.error = %s\n", 4918bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach toString(radioRsp_v1_2->rspInfo.error).c_str()); 4928bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach ASSERT_TRUE(CheckAnyOfErrors(radioRsp_v1_2->rspInfo.error, {RadioError::NONE})); 4938bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach} 4948bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach 4958bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach/* 4968bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach * Test IRadio.setLinkCapacityReportingCriteria() invalid hysteresisDlKbps 4978bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach */ 4988bdc4e04e21f3fa41109878e45006c00897b9ef8Eric SchwarzenbachTEST_F(RadioHidlTest_v1_2, setLinkCapacityReportingCriteria_invalidHysteresisDlKbps) { 499788eb8083059ff0dca686734ceebf942042c4893sqian serial = GetRandomSerialNumber(); 5008bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach 5018bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach Return<void> res = radio_v1_2->setLinkCapacityReportingCriteria( 5028bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach serial, 5000, 5038bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach 5000, // hysteresisDlKbps too big for thresholds delta 50479bafb943bb53e48351cd159724164c7526976c4sqian 100, {1000, 5000, 10000, 20000}, {500, 1000, 5000, 10000}, 50579bafb943bb53e48351cd159724164c7526976c4sqian ::android::hardware::radio::V1_2::AccessNetwork::GERAN); 5068bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach ASSERT_OK(res); 5078bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach EXPECT_EQ(std::cv_status::no_timeout, wait()); 5088bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp_v1_2->rspInfo.type); 5098bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach EXPECT_EQ(serial, radioRsp_v1_2->rspInfo.serial); 5108bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach 5118bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach ALOGI("setLinkCapacityReportingCriteria_invalidHysteresisDlKbps, rspInfo.error = %s\n", 5128bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach toString(radioRsp_v1_2->rspInfo.error).c_str()); 5138bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach ASSERT_TRUE(CheckAnyOfErrors(radioRsp_v1_2->rspInfo.error, {RadioError::INVALID_ARGUMENTS})); 5148bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach} 5158bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach 5168bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach/* 5178bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach * Test IRadio.setLinkCapacityReportingCriteria() invalid hysteresisUlKbps 5188bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach */ 5198bdc4e04e21f3fa41109878e45006c00897b9ef8Eric SchwarzenbachTEST_F(RadioHidlTest_v1_2, setLinkCapacityReportingCriteria_invalidHysteresisUlKbps) { 520788eb8083059ff0dca686734ceebf942042c4893sqian serial = GetRandomSerialNumber(); 5218bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach 5228bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach Return<void> res = radio_v1_2->setLinkCapacityReportingCriteria( 5238bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach serial, 5000, 500, 5248bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach 1000, // hysteresisUlKbps too big for thresholds delta 52579bafb943bb53e48351cd159724164c7526976c4sqian {1000, 5000, 10000, 20000}, {500, 1000, 5000, 10000}, 52679bafb943bb53e48351cd159724164c7526976c4sqian ::android::hardware::radio::V1_2::AccessNetwork::GERAN); 5278bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach ASSERT_OK(res); 5288bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach EXPECT_EQ(std::cv_status::no_timeout, wait()); 5298bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp_v1_2->rspInfo.type); 5308bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach EXPECT_EQ(serial, radioRsp_v1_2->rspInfo.serial); 5318bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach 5328bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach ALOGI("setLinkCapacityReportingCriteria_invalidHysteresisUlKbps, rspInfo.error = %s\n", 5338bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach toString(radioRsp_v1_2->rspInfo.error).c_str()); 5348bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach ASSERT_TRUE(CheckAnyOfErrors(radioRsp_v1_2->rspInfo.error, {RadioError::INVALID_ARGUMENTS})); 5358bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach} 5368bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach 5378bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach/* 5388bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach * Test IRadio.setLinkCapacityReportingCriteria() empty params 5398bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach */ 5408bdc4e04e21f3fa41109878e45006c00897b9ef8Eric SchwarzenbachTEST_F(RadioHidlTest_v1_2, setLinkCapacityReportingCriteria_emptyParams) { 541788eb8083059ff0dca686734ceebf942042c4893sqian serial = GetRandomSerialNumber(); 5428bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach 54379bafb943bb53e48351cd159724164c7526976c4sqian Return<void> res = radio_v1_2->setLinkCapacityReportingCriteria( 54479bafb943bb53e48351cd159724164c7526976c4sqian serial, 0, 0, 0, {}, {}, ::android::hardware::radio::V1_2::AccessNetwork::GERAN); 5458bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach ASSERT_OK(res); 5468bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach EXPECT_EQ(std::cv_status::no_timeout, wait()); 5478bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp_v1_2->rspInfo.type); 5488bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach EXPECT_EQ(serial, radioRsp_v1_2->rspInfo.serial); 5498bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach 5508bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach ALOGI("setLinkCapacityReportingCriteria_emptyParams, rspInfo.error = %s\n", 5518bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach toString(radioRsp_v1_2->rspInfo.error).c_str()); 5528bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach ASSERT_TRUE(CheckAnyOfErrors(radioRsp_v1_2->rspInfo.error, {RadioError::NONE})); 5538bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach} 5548bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach 5558bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach/* 5568bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach * Test IRadio.setLinkCapacityReportingCriteria() GERAN 5578bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach */ 5588bdc4e04e21f3fa41109878e45006c00897b9ef8Eric SchwarzenbachTEST_F(RadioHidlTest_v1_2, setLinkCapacityReportingCriteria_Geran) { 559788eb8083059ff0dca686734ceebf942042c4893sqian serial = GetRandomSerialNumber(); 5608bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach 5618bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach Return<void> res = radio_v1_2->setLinkCapacityReportingCriteria( 5628bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach serial, 5000, 500, 100, {1000, 5000, 10000, 20000}, {500, 1000, 5000, 10000}, 56379bafb943bb53e48351cd159724164c7526976c4sqian ::android::hardware::radio::V1_2::AccessNetwork::GERAN); 5648bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach ASSERT_OK(res); 5658bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach EXPECT_EQ(std::cv_status::no_timeout, wait()); 5668bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp_v1_2->rspInfo.type); 5678bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach EXPECT_EQ(serial, radioRsp_v1_2->rspInfo.serial); 5688bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach 5698bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach ALOGI("setLinkCapacityReportingCriteria_invalidHysteresisUlKbps, rspInfo.error = %s\n", 5708bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach toString(radioRsp_v1_2->rspInfo.error).c_str()); 5718bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach ASSERT_TRUE(CheckAnyOfErrors(radioRsp_v1_2->rspInfo.error, {RadioError::NONE})); 5728bdc4e04e21f3fa41109878e45006c00897b9ef8Eric Schwarzenbach} 573ac1844fac42a6e31028dc01eb60ebe0e56c5c4dbJack Yu 574ac1844fac42a6e31028dc01eb60ebe0e56c5c4dbJack Yu/* 575ac1844fac42a6e31028dc01eb60ebe0e56c5c4dbJack Yu * Test IRadio.setupDataCall_1_2() for the response returned. 576ac1844fac42a6e31028dc01eb60ebe0e56c5c4dbJack Yu */ 577ac1844fac42a6e31028dc01eb60ebe0e56c5c4dbJack YuTEST_F(RadioHidlTest_v1_2, setupDataCall_1_2) { 578788eb8083059ff0dca686734ceebf942042c4893sqian serial = GetRandomSerialNumber(); 579ac1844fac42a6e31028dc01eb60ebe0e56c5c4dbJack Yu 58079bafb943bb53e48351cd159724164c7526976c4sqian ::android::hardware::radio::V1_2::AccessNetwork accessNetwork = 58179bafb943bb53e48351cd159724164c7526976c4sqian ::android::hardware::radio::V1_2::AccessNetwork::EUTRAN; 582ac1844fac42a6e31028dc01eb60ebe0e56c5c4dbJack Yu 583ac1844fac42a6e31028dc01eb60ebe0e56c5c4dbJack Yu DataProfileInfo dataProfileInfo; 584ac1844fac42a6e31028dc01eb60ebe0e56c5c4dbJack Yu memset(&dataProfileInfo, 0, sizeof(dataProfileInfo)); 585ac1844fac42a6e31028dc01eb60ebe0e56c5c4dbJack Yu dataProfileInfo.profileId = DataProfileId::IMS; 586ac1844fac42a6e31028dc01eb60ebe0e56c5c4dbJack Yu dataProfileInfo.apn = hidl_string("VZWIMS"); 587ac1844fac42a6e31028dc01eb60ebe0e56c5c4dbJack Yu dataProfileInfo.protocol = hidl_string("IPV4V6"); 588ac1844fac42a6e31028dc01eb60ebe0e56c5c4dbJack Yu dataProfileInfo.roamingProtocol = hidl_string("IPV6"); 589ac1844fac42a6e31028dc01eb60ebe0e56c5c4dbJack Yu dataProfileInfo.authType = ApnAuthType::NO_PAP_NO_CHAP; 590ac1844fac42a6e31028dc01eb60ebe0e56c5c4dbJack Yu dataProfileInfo.user = ""; 591ac1844fac42a6e31028dc01eb60ebe0e56c5c4dbJack Yu dataProfileInfo.password = ""; 592ac1844fac42a6e31028dc01eb60ebe0e56c5c4dbJack Yu dataProfileInfo.type = DataProfileInfoType::THREE_GPP2; 593ac1844fac42a6e31028dc01eb60ebe0e56c5c4dbJack Yu dataProfileInfo.maxConnsTime = 300; 594ac1844fac42a6e31028dc01eb60ebe0e56c5c4dbJack Yu dataProfileInfo.maxConns = 20; 595ac1844fac42a6e31028dc01eb60ebe0e56c5c4dbJack Yu dataProfileInfo.waitTime = 0; 596ac1844fac42a6e31028dc01eb60ebe0e56c5c4dbJack Yu dataProfileInfo.enabled = true; 597ac1844fac42a6e31028dc01eb60ebe0e56c5c4dbJack Yu dataProfileInfo.supportedApnTypesBitmap = 320; 598ac1844fac42a6e31028dc01eb60ebe0e56c5c4dbJack Yu dataProfileInfo.bearerBitmap = 161543; 599ac1844fac42a6e31028dc01eb60ebe0e56c5c4dbJack Yu dataProfileInfo.mtu = 0; 600ac1844fac42a6e31028dc01eb60ebe0e56c5c4dbJack Yu dataProfileInfo.mvnoType = MvnoType::NONE; 601ac1844fac42a6e31028dc01eb60ebe0e56c5c4dbJack Yu dataProfileInfo.mvnoMatchData = hidl_string(); 602ac1844fac42a6e31028dc01eb60ebe0e56c5c4dbJack Yu 603ac1844fac42a6e31028dc01eb60ebe0e56c5c4dbJack Yu bool modemCognitive = false; 604ac1844fac42a6e31028dc01eb60ebe0e56c5c4dbJack Yu bool roamingAllowed = false; 605ac1844fac42a6e31028dc01eb60ebe0e56c5c4dbJack Yu bool isRoaming = false; 606ac1844fac42a6e31028dc01eb60ebe0e56c5c4dbJack Yu 60779bafb943bb53e48351cd159724164c7526976c4sqian ::android::hardware::radio::V1_2::DataRequestReason reason = 60879bafb943bb53e48351cd159724164c7526976c4sqian ::android::hardware::radio::V1_2::DataRequestReason::NORMAL; 609ac1844fac42a6e31028dc01eb60ebe0e56c5c4dbJack Yu std::vector<hidl_string> addresses = {""}; 610ac1844fac42a6e31028dc01eb60ebe0e56c5c4dbJack Yu std::vector<hidl_string> dnses = {""}; 611ac1844fac42a6e31028dc01eb60ebe0e56c5c4dbJack Yu 612ac1844fac42a6e31028dc01eb60ebe0e56c5c4dbJack Yu Return<void> res = radio_v1_2->setupDataCall_1_2(serial, accessNetwork, dataProfileInfo, 613ac1844fac42a6e31028dc01eb60ebe0e56c5c4dbJack Yu modemCognitive, roamingAllowed, isRoaming, 614ac1844fac42a6e31028dc01eb60ebe0e56c5c4dbJack Yu reason, addresses, dnses); 615ac1844fac42a6e31028dc01eb60ebe0e56c5c4dbJack Yu ASSERT_OK(res); 616ac1844fac42a6e31028dc01eb60ebe0e56c5c4dbJack Yu 617ac1844fac42a6e31028dc01eb60ebe0e56c5c4dbJack Yu EXPECT_EQ(std::cv_status::no_timeout, wait()); 618ac1844fac42a6e31028dc01eb60ebe0e56c5c4dbJack Yu EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp_v1_2->rspInfo.type); 619ac1844fac42a6e31028dc01eb60ebe0e56c5c4dbJack Yu EXPECT_EQ(serial, radioRsp_v1_2->rspInfo.serial); 620ac1844fac42a6e31028dc01eb60ebe0e56c5c4dbJack Yu 62179bafb943bb53e48351cd159724164c7526976c4sqian if (cardStatus.base.cardState == CardState::ABSENT) { 622ac1844fac42a6e31028dc01eb60ebe0e56c5c4dbJack Yu ASSERT_TRUE(CheckAnyOfErrors( 623ac1844fac42a6e31028dc01eb60ebe0e56c5c4dbJack Yu radioRsp_v1_2->rspInfo.error, 624ac1844fac42a6e31028dc01eb60ebe0e56c5c4dbJack Yu {RadioError::SIM_ABSENT, RadioError::RADIO_NOT_AVAILABLE, RadioError::INVALID_ARGUMENTS, 625ac1844fac42a6e31028dc01eb60ebe0e56c5c4dbJack Yu RadioError::OP_NOT_ALLOWED_BEFORE_REG_TO_NW, RadioError::REQUEST_NOT_SUPPORTED})); 62679bafb943bb53e48351cd159724164c7526976c4sqian } else if (cardStatus.base.cardState == CardState::PRESENT) { 627ac1844fac42a6e31028dc01eb60ebe0e56c5c4dbJack Yu ASSERT_TRUE(CheckAnyOfErrors( 628ac1844fac42a6e31028dc01eb60ebe0e56c5c4dbJack Yu radioRsp_v1_2->rspInfo.error, 629ac1844fac42a6e31028dc01eb60ebe0e56c5c4dbJack Yu {RadioError::NONE, RadioError::RADIO_NOT_AVAILABLE, RadioError::INVALID_ARGUMENTS, 630ac1844fac42a6e31028dc01eb60ebe0e56c5c4dbJack Yu RadioError::OP_NOT_ALLOWED_BEFORE_REG_TO_NW, RadioError::REQUEST_NOT_SUPPORTED})); 631ac1844fac42a6e31028dc01eb60ebe0e56c5c4dbJack Yu } 632ac1844fac42a6e31028dc01eb60ebe0e56c5c4dbJack Yu} 633ac1844fac42a6e31028dc01eb60ebe0e56c5c4dbJack Yu 634ac1844fac42a6e31028dc01eb60ebe0e56c5c4dbJack Yu/* 635ac1844fac42a6e31028dc01eb60ebe0e56c5c4dbJack Yu * Test IRadio.deactivateDataCall_1_2() for the response returned. 636ac1844fac42a6e31028dc01eb60ebe0e56c5c4dbJack Yu */ 637ac1844fac42a6e31028dc01eb60ebe0e56c5c4dbJack YuTEST_F(RadioHidlTest_v1_2, deactivateDataCall_1_2) { 638788eb8083059ff0dca686734ceebf942042c4893sqian serial = GetRandomSerialNumber(); 639ac1844fac42a6e31028dc01eb60ebe0e56c5c4dbJack Yu int cid = 1; 64079bafb943bb53e48351cd159724164c7526976c4sqian ::android::hardware::radio::V1_2::DataRequestReason reason = 64179bafb943bb53e48351cd159724164c7526976c4sqian ::android::hardware::radio::V1_2::DataRequestReason::NORMAL; 642ac1844fac42a6e31028dc01eb60ebe0e56c5c4dbJack Yu 643ac1844fac42a6e31028dc01eb60ebe0e56c5c4dbJack Yu Return<void> res = radio_v1_2->deactivateDataCall_1_2(serial, cid, reason); 644ac1844fac42a6e31028dc01eb60ebe0e56c5c4dbJack Yu ASSERT_OK(res); 645ac1844fac42a6e31028dc01eb60ebe0e56c5c4dbJack Yu 646ac1844fac42a6e31028dc01eb60ebe0e56c5c4dbJack Yu EXPECT_EQ(std::cv_status::no_timeout, wait()); 647ac1844fac42a6e31028dc01eb60ebe0e56c5c4dbJack Yu EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp_v1_2->rspInfo.type); 648ac1844fac42a6e31028dc01eb60ebe0e56c5c4dbJack Yu EXPECT_EQ(serial, radioRsp_v1_2->rspInfo.serial); 649ac1844fac42a6e31028dc01eb60ebe0e56c5c4dbJack Yu 65079bafb943bb53e48351cd159724164c7526976c4sqian if (cardStatus.base.cardState == CardState::ABSENT) { 651ac1844fac42a6e31028dc01eb60ebe0e56c5c4dbJack Yu ASSERT_TRUE(CheckAnyOfErrors( 652ac1844fac42a6e31028dc01eb60ebe0e56c5c4dbJack Yu radioRsp_v1_2->rspInfo.error, 653ac1844fac42a6e31028dc01eb60ebe0e56c5c4dbJack Yu {RadioError::NONE, RadioError::RADIO_NOT_AVAILABLE, RadioError::INVALID_CALL_ID, 654ac1844fac42a6e31028dc01eb60ebe0e56c5c4dbJack Yu RadioError::INVALID_STATE, RadioError::INVALID_ARGUMENTS, 655ac1844fac42a6e31028dc01eb60ebe0e56c5c4dbJack Yu RadioError::REQUEST_NOT_SUPPORTED, RadioError::CANCELLED, RadioError::SIM_ABSENT})); 65679bafb943bb53e48351cd159724164c7526976c4sqian } else if (cardStatus.base.cardState == CardState::PRESENT) { 657ac1844fac42a6e31028dc01eb60ebe0e56c5c4dbJack Yu ASSERT_TRUE(CheckAnyOfErrors( 658ac1844fac42a6e31028dc01eb60ebe0e56c5c4dbJack Yu radioRsp_v1_2->rspInfo.error, 659ac1844fac42a6e31028dc01eb60ebe0e56c5c4dbJack Yu {RadioError::NONE, RadioError::RADIO_NOT_AVAILABLE, RadioError::INVALID_CALL_ID, 660ac1844fac42a6e31028dc01eb60ebe0e56c5c4dbJack Yu RadioError::INVALID_STATE, RadioError::INVALID_ARGUMENTS, 661ac1844fac42a6e31028dc01eb60ebe0e56c5c4dbJack Yu RadioError::REQUEST_NOT_SUPPORTED, RadioError::CANCELLED})); 662ac1844fac42a6e31028dc01eb60ebe0e56c5c4dbJack Yu } 663ac1844fac42a6e31028dc01eb60ebe0e56c5c4dbJack Yu} 66465a3ad31b80a9459339fa2793310e24eb77f7861Cassie 66565a3ad31b80a9459339fa2793310e24eb77f7861Cassie/* 66665a3ad31b80a9459339fa2793310e24eb77f7861Cassie * Test IRadio.getCellInfoList() for the response returned. 66765a3ad31b80a9459339fa2793310e24eb77f7861Cassie */ 66865a3ad31b80a9459339fa2793310e24eb77f7861CassieTEST_F(RadioHidlTest_v1_2, getCellInfoList_1_2) { 66965a3ad31b80a9459339fa2793310e24eb77f7861Cassie int serial = GetRandomSerialNumber(); 67065a3ad31b80a9459339fa2793310e24eb77f7861Cassie 67165a3ad31b80a9459339fa2793310e24eb77f7861Cassie Return<void> res = radio_v1_2->getCellInfoList(serial); 67265a3ad31b80a9459339fa2793310e24eb77f7861Cassie ASSERT_OK(res); 67365a3ad31b80a9459339fa2793310e24eb77f7861Cassie EXPECT_EQ(std::cv_status::no_timeout, wait()); 67465a3ad31b80a9459339fa2793310e24eb77f7861Cassie EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp_v1_2->rspInfo.type); 67565a3ad31b80a9459339fa2793310e24eb77f7861Cassie EXPECT_EQ(serial, radioRsp_v1_2->rspInfo.serial); 67665a3ad31b80a9459339fa2793310e24eb77f7861Cassie 67765a3ad31b80a9459339fa2793310e24eb77f7861Cassie ALOGI("getCellInfoList_1_2, rspInfo.error = %s\n", 67865a3ad31b80a9459339fa2793310e24eb77f7861Cassie toString(radioRsp_v1_2->rspInfo.error).c_str()); 67965a3ad31b80a9459339fa2793310e24eb77f7861Cassie ASSERT_TRUE(CheckAnyOfErrors(radioRsp_v1_2->rspInfo.error, 68065a3ad31b80a9459339fa2793310e24eb77f7861Cassie {RadioError::NONE, RadioError::NO_NETWORK_FOUND})); 68165a3ad31b80a9459339fa2793310e24eb77f7861Cassie} 68274befb69b9c532e5be77a1a64eb38713b8d51118Eric Schwarzenbach 68374befb69b9c532e5be77a1a64eb38713b8d51118Eric Schwarzenbach/* 68474befb69b9c532e5be77a1a64eb38713b8d51118Eric Schwarzenbach * Test IRadio.getVoiceRegistrationState() for the response returned. 68574befb69b9c532e5be77a1a64eb38713b8d51118Eric Schwarzenbach */ 68674befb69b9c532e5be77a1a64eb38713b8d51118Eric SchwarzenbachTEST_F(RadioHidlTest_v1_2, getVoiceRegistrationState) { 68774befb69b9c532e5be77a1a64eb38713b8d51118Eric Schwarzenbach int serial = GetRandomSerialNumber(); 68874befb69b9c532e5be77a1a64eb38713b8d51118Eric Schwarzenbach 68974befb69b9c532e5be77a1a64eb38713b8d51118Eric Schwarzenbach Return<void> res = radio_v1_2->getVoiceRegistrationState(serial); 69074befb69b9c532e5be77a1a64eb38713b8d51118Eric Schwarzenbach ASSERT_OK(res); 69174befb69b9c532e5be77a1a64eb38713b8d51118Eric Schwarzenbach EXPECT_EQ(std::cv_status::no_timeout, wait()); 69274befb69b9c532e5be77a1a64eb38713b8d51118Eric Schwarzenbach EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp_v1_2->rspInfo.type); 69374befb69b9c532e5be77a1a64eb38713b8d51118Eric Schwarzenbach EXPECT_EQ(serial, radioRsp_v1_2->rspInfo.serial); 69474befb69b9c532e5be77a1a64eb38713b8d51118Eric Schwarzenbach 69574befb69b9c532e5be77a1a64eb38713b8d51118Eric Schwarzenbach ALOGI("getVoiceRegistrationStateResponse_1_2, rspInfo.error = %s\n", 69674befb69b9c532e5be77a1a64eb38713b8d51118Eric Schwarzenbach toString(radioRsp_v1_2->rspInfo.error).c_str()); 69774befb69b9c532e5be77a1a64eb38713b8d51118Eric Schwarzenbach ASSERT_TRUE(CheckAnyOfErrors(radioRsp_v1_2->rspInfo.error, 69874befb69b9c532e5be77a1a64eb38713b8d51118Eric Schwarzenbach {RadioError::NONE, RadioError::RADIO_NOT_AVAILABLE})); 69974befb69b9c532e5be77a1a64eb38713b8d51118Eric Schwarzenbach} 70074befb69b9c532e5be77a1a64eb38713b8d51118Eric Schwarzenbach 70174befb69b9c532e5be77a1a64eb38713b8d51118Eric Schwarzenbach/* 70274befb69b9c532e5be77a1a64eb38713b8d51118Eric Schwarzenbach * Test IRadio.getDataRegistrationState() for the response returned. 70374befb69b9c532e5be77a1a64eb38713b8d51118Eric Schwarzenbach */ 70474befb69b9c532e5be77a1a64eb38713b8d51118Eric SchwarzenbachTEST_F(RadioHidlTest_v1_2, getDataRegistrationState) { 70574befb69b9c532e5be77a1a64eb38713b8d51118Eric Schwarzenbach int serial = GetRandomSerialNumber(); 70674befb69b9c532e5be77a1a64eb38713b8d51118Eric Schwarzenbach 70774befb69b9c532e5be77a1a64eb38713b8d51118Eric Schwarzenbach Return<void> res = radio_v1_2->getDataRegistrationState(serial); 70874befb69b9c532e5be77a1a64eb38713b8d51118Eric Schwarzenbach ASSERT_OK(res); 70974befb69b9c532e5be77a1a64eb38713b8d51118Eric Schwarzenbach EXPECT_EQ(std::cv_status::no_timeout, wait()); 71074befb69b9c532e5be77a1a64eb38713b8d51118Eric Schwarzenbach EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp_v1_2->rspInfo.type); 71174befb69b9c532e5be77a1a64eb38713b8d51118Eric Schwarzenbach EXPECT_EQ(serial, radioRsp_v1_2->rspInfo.serial); 71274befb69b9c532e5be77a1a64eb38713b8d51118Eric Schwarzenbach 71374befb69b9c532e5be77a1a64eb38713b8d51118Eric Schwarzenbach ALOGI("getVoiceRegistrationStateResponse_1_2, rspInfo.error = %s\n", 71474befb69b9c532e5be77a1a64eb38713b8d51118Eric Schwarzenbach toString(radioRsp_v1_2->rspInfo.error).c_str()); 71574befb69b9c532e5be77a1a64eb38713b8d51118Eric Schwarzenbach ASSERT_TRUE(CheckAnyOfErrors( 71674befb69b9c532e5be77a1a64eb38713b8d51118Eric Schwarzenbach radioRsp_v1_2->rspInfo.error, 71774befb69b9c532e5be77a1a64eb38713b8d51118Eric Schwarzenbach {RadioError::NONE, RadioError::RADIO_NOT_AVAILABLE, RadioError::NOT_PROVISIONED})); 7188e7fc9f4f5c8c79f4bbc3aea8a6cdae449597157Nathan Harold} 7198e7fc9f4f5c8c79f4bbc3aea8a6cdae449597157Nathan Harold 7208e7fc9f4f5c8c79f4bbc3aea8a6cdae449597157Nathan Harold/* 7218e7fc9f4f5c8c79f4bbc3aea8a6cdae449597157Nathan Harold * Test IRadio.getAvailableBandModes() for the response returned. 7228e7fc9f4f5c8c79f4bbc3aea8a6cdae449597157Nathan Harold */ 7238e7fc9f4f5c8c79f4bbc3aea8a6cdae449597157Nathan HaroldTEST_F(RadioHidlTest_v1_2, getAvailableBandModes) { 7248e7fc9f4f5c8c79f4bbc3aea8a6cdae449597157Nathan Harold int serial = GetRandomSerialNumber(); 7258e7fc9f4f5c8c79f4bbc3aea8a6cdae449597157Nathan Harold 7268e7fc9f4f5c8c79f4bbc3aea8a6cdae449597157Nathan Harold Return<void> res = radio_v1_2->getAvailableBandModes(serial); 7278e7fc9f4f5c8c79f4bbc3aea8a6cdae449597157Nathan Harold ASSERT_OK(res); 7288e7fc9f4f5c8c79f4bbc3aea8a6cdae449597157Nathan Harold EXPECT_EQ(std::cv_status::no_timeout, wait()); 7298e7fc9f4f5c8c79f4bbc3aea8a6cdae449597157Nathan Harold EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp_v1_2->rspInfo.type); 7308e7fc9f4f5c8c79f4bbc3aea8a6cdae449597157Nathan Harold EXPECT_EQ(serial, radioRsp_v1_2->rspInfo.serial); 7318e7fc9f4f5c8c79f4bbc3aea8a6cdae449597157Nathan Harold ALOGI("getAvailableBandModes, rspInfo.error = %s\n", 7328e7fc9f4f5c8c79f4bbc3aea8a6cdae449597157Nathan Harold toString(radioRsp_v1_2->rspInfo.error).c_str()); 7338e7fc9f4f5c8c79f4bbc3aea8a6cdae449597157Nathan Harold ASSERT_TRUE( 7348e7fc9f4f5c8c79f4bbc3aea8a6cdae449597157Nathan Harold CheckAnyOfErrors(radioRsp_v1_2->rspInfo.error, 7358e7fc9f4f5c8c79f4bbc3aea8a6cdae449597157Nathan Harold {RadioError::NONE, RadioError::RADIO_NOT_AVAILABLE, RadioError::MODEM_ERR, 7368e7fc9f4f5c8c79f4bbc3aea8a6cdae449597157Nathan Harold RadioError::INTERNAL_ERR, 7378e7fc9f4f5c8c79f4bbc3aea8a6cdae449597157Nathan Harold // If REQUEST_NOT_SUPPORTED is returned, then it should also be returned 7388e7fc9f4f5c8c79f4bbc3aea8a6cdae449597157Nathan Harold // for setRandMode(). 7398e7fc9f4f5c8c79f4bbc3aea8a6cdae449597157Nathan Harold RadioError::REQUEST_NOT_SUPPORTED})); 7408e7fc9f4f5c8c79f4bbc3aea8a6cdae449597157Nathan Harold bool hasUnspecifiedBandMode = false; 7418e7fc9f4f5c8c79f4bbc3aea8a6cdae449597157Nathan Harold if (radioRsp_v1_2->rspInfo.error == RadioError::NONE) { 7428e7fc9f4f5c8c79f4bbc3aea8a6cdae449597157Nathan Harold for (const RadioBandMode& mode : radioRsp_v1_2->radioBandModes) { 7438e7fc9f4f5c8c79f4bbc3aea8a6cdae449597157Nathan Harold // Automatic mode selection must be supported 7448e7fc9f4f5c8c79f4bbc3aea8a6cdae449597157Nathan Harold if (mode == RadioBandMode::BAND_MODE_UNSPECIFIED) hasUnspecifiedBandMode = true; 7458e7fc9f4f5c8c79f4bbc3aea8a6cdae449597157Nathan Harold } 7468e7fc9f4f5c8c79f4bbc3aea8a6cdae449597157Nathan Harold ASSERT_TRUE(hasUnspecifiedBandMode); 7478e7fc9f4f5c8c79f4bbc3aea8a6cdae449597157Nathan Harold } 7488e7fc9f4f5c8c79f4bbc3aea8a6cdae449597157Nathan Harold} 749