mirror of
https://github.com/Evolution-X/hardware_interfaces
synced 2026-02-03 12:07:58 +00:00
Add vts tests for start network scan 1.4.
Bug: 122730115 Test: vts Change-Id: If04c5b8c2d2c7d5239805ef65df577f7d4dea61b
This commit is contained in:
@@ -95,6 +95,350 @@ TEST_F(RadioHidlTest_v1_4, emergencyDial_withEmergencyRouting) {
|
||||
EXPECT_EQ(RadioError::NONE, radioRsp_v1_4->rspInfo.error);
|
||||
}
|
||||
|
||||
/*
|
||||
* Test IRadio.startNetworkScan() for the response returned.
|
||||
*/
|
||||
TEST_F(RadioHidlTest_v1_4, startNetworkScan) {
|
||||
serial = GetRandomSerialNumber();
|
||||
|
||||
RadioAccessSpecifier specifier = {.radioAccessNetwork = RadioAccessNetworks::GERAN,
|
||||
.geranBands = {GeranBands::BAND_450, GeranBands::BAND_480},
|
||||
.channels = {1, 2}};
|
||||
|
||||
::android::hardware::radio::V1_2::NetworkScanRequest request = {
|
||||
.type = ScanType::ONE_SHOT, .interval = 60, .specifiers = {specifier}};
|
||||
|
||||
Return<void> res = radio_v1_4->startNetworkScan_1_4(serial, request);
|
||||
ASSERT_OK(res);
|
||||
EXPECT_EQ(std::cv_status::no_timeout, wait());
|
||||
EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp_v1_4->rspInfo.type);
|
||||
EXPECT_EQ(serial, radioRsp_v1_4->rspInfo.serial);
|
||||
|
||||
ALOGI("startNetworkScan, rspInfo.error = %s\n", toString(radioRsp_v1_4->rspInfo.error).c_str());
|
||||
|
||||
if (cardStatus.base.base.cardState == CardState::ABSENT) {
|
||||
ASSERT_TRUE(CheckAnyOfErrors(radioRsp_v1_4->rspInfo.error, {RadioError::SIM_ABSENT}));
|
||||
} else if (cardStatus.base.base.cardState == CardState::PRESENT) {
|
||||
// OPERATION_NOT_ALLOWED should not be allowed; however, some vendors do not support the
|
||||
// required manual GSM search functionality. This is tracked in b/112206766.
|
||||
ASSERT_TRUE(CheckAnyOfErrors(radioRsp_v1_4->rspInfo.error,
|
||||
{RadioError::NONE, RadioError::OPERATION_NOT_ALLOWED}));
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Test IRadio.startNetworkScan() with invalid specifier.
|
||||
*/
|
||||
TEST_F(RadioHidlTest_v1_4, startNetworkScan_InvalidArgument) {
|
||||
serial = GetRandomSerialNumber();
|
||||
|
||||
::android::hardware::radio::V1_2::NetworkScanRequest request = {.type = ScanType::ONE_SHOT,
|
||||
.interval = 60};
|
||||
|
||||
Return<void> res = radio_v1_4->startNetworkScan_1_4(serial, request);
|
||||
|
||||
ASSERT_OK(res);
|
||||
EXPECT_EQ(std::cv_status::no_timeout, wait());
|
||||
EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp_v1_4->rspInfo.type);
|
||||
EXPECT_EQ(serial, radioRsp_v1_4->rspInfo.serial);
|
||||
|
||||
ALOGI("startNetworkScan_InvalidArgument, rspInfo.error = %s\n",
|
||||
toString(radioRsp_v1_4->rspInfo.error).c_str());
|
||||
if (cardStatus.base.base.cardState == CardState::ABSENT) {
|
||||
ASSERT_TRUE(CheckAnyOfErrors(radioRsp_v1_4->rspInfo.error,
|
||||
{RadioError::SIM_ABSENT, RadioError::INVALID_ARGUMENTS}));
|
||||
} else if (cardStatus.base.base.cardState == CardState::PRESENT) {
|
||||
ASSERT_TRUE(
|
||||
CheckAnyOfErrors(radioRsp_v1_4->rspInfo.error, {RadioError::INVALID_ARGUMENTS}));
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Test IRadio.startNetworkScan() with invalid interval (lower boundary).
|
||||
*/
|
||||
TEST_F(RadioHidlTest_v1_4, startNetworkScan_InvalidInterval1) {
|
||||
serial = GetRandomSerialNumber();
|
||||
|
||||
RadioAccessSpecifier specifier = {.radioAccessNetwork = RadioAccessNetworks::GERAN,
|
||||
.geranBands = {GeranBands::BAND_450, GeranBands::BAND_480},
|
||||
.channels = {1, 2}};
|
||||
|
||||
::android::hardware::radio::V1_2::NetworkScanRequest request = {
|
||||
.type = ScanType::ONE_SHOT,
|
||||
.interval = 4,
|
||||
.specifiers = {specifier},
|
||||
.maxSearchTime = 60,
|
||||
.incrementalResults = false,
|
||||
.incrementalResultsPeriodicity = 1};
|
||||
|
||||
Return<void> res = radio_v1_4->startNetworkScan_1_4(serial, request);
|
||||
|
||||
ASSERT_OK(res);
|
||||
EXPECT_EQ(std::cv_status::no_timeout, wait());
|
||||
EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp_v1_4->rspInfo.type);
|
||||
EXPECT_EQ(serial, radioRsp_v1_4->rspInfo.serial);
|
||||
|
||||
ALOGI("startNetworkScan_InvalidInterval1, rspInfo.error = %s\n",
|
||||
toString(radioRsp_v1_4->rspInfo.error).c_str());
|
||||
if (cardStatus.base.base.cardState == CardState::ABSENT) {
|
||||
ASSERT_TRUE(CheckAnyOfErrors(radioRsp_v1_4->rspInfo.error,
|
||||
{RadioError::SIM_ABSENT, RadioError::INVALID_ARGUMENTS}));
|
||||
} else if (cardStatus.base.base.cardState == CardState::PRESENT) {
|
||||
ASSERT_TRUE(
|
||||
CheckAnyOfErrors(radioRsp_v1_4->rspInfo.error, {RadioError::INVALID_ARGUMENTS}));
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Test IRadio.startNetworkScan() with invalid interval (upper boundary).
|
||||
*/
|
||||
TEST_F(RadioHidlTest_v1_4, startNetworkScan_InvalidInterval2) {
|
||||
serial = GetRandomSerialNumber();
|
||||
|
||||
RadioAccessSpecifier specifier = {.radioAccessNetwork = RadioAccessNetworks::GERAN,
|
||||
.geranBands = {GeranBands::BAND_450, GeranBands::BAND_480},
|
||||
.channels = {1, 2}};
|
||||
|
||||
::android::hardware::radio::V1_2::NetworkScanRequest request = {
|
||||
.type = ScanType::ONE_SHOT,
|
||||
.interval = 301,
|
||||
.specifiers = {specifier},
|
||||
.maxSearchTime = 60,
|
||||
.incrementalResults = false,
|
||||
.incrementalResultsPeriodicity = 1};
|
||||
|
||||
Return<void> res = radio_v1_4->startNetworkScan_1_4(serial, request);
|
||||
ASSERT_OK(res);
|
||||
EXPECT_EQ(std::cv_status::no_timeout, wait());
|
||||
EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp_v1_4->rspInfo.type);
|
||||
EXPECT_EQ(serial, radioRsp_v1_4->rspInfo.serial);
|
||||
|
||||
ALOGI("startNetworkScan_InvalidInterval2, rspInfo.error = %s\n",
|
||||
toString(radioRsp_v1_4->rspInfo.error).c_str());
|
||||
if (cardStatus.base.base.cardState == CardState::ABSENT) {
|
||||
ASSERT_TRUE(CheckAnyOfErrors(radioRsp_v1_4->rspInfo.error,
|
||||
{RadioError::SIM_ABSENT, RadioError::INVALID_ARGUMENTS}));
|
||||
} else if (cardStatus.base.base.cardState == CardState::PRESENT) {
|
||||
ASSERT_TRUE(
|
||||
CheckAnyOfErrors(radioRsp_v1_4->rspInfo.error, {RadioError::INVALID_ARGUMENTS}));
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Test IRadio.startNetworkScan() with invalid max search time (lower boundary).
|
||||
*/
|
||||
TEST_F(RadioHidlTest_v1_4, startNetworkScan_InvalidMaxSearchTime1) {
|
||||
serial = GetRandomSerialNumber();
|
||||
|
||||
RadioAccessSpecifier specifier = {.radioAccessNetwork = RadioAccessNetworks::GERAN,
|
||||
.geranBands = {GeranBands::BAND_450, GeranBands::BAND_480},
|
||||
.channels = {1, 2}};
|
||||
|
||||
::android::hardware::radio::V1_2::NetworkScanRequest request = {
|
||||
.type = ScanType::ONE_SHOT,
|
||||
.interval = 60,
|
||||
.specifiers = {specifier},
|
||||
.maxSearchTime = 59,
|
||||
.incrementalResults = false,
|
||||
.incrementalResultsPeriodicity = 1};
|
||||
|
||||
Return<void> res = radio_v1_4->startNetworkScan_1_4(serial, request);
|
||||
ASSERT_OK(res);
|
||||
EXPECT_EQ(std::cv_status::no_timeout, wait());
|
||||
EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp_v1_4->rspInfo.type);
|
||||
EXPECT_EQ(serial, radioRsp_v1_4->rspInfo.serial);
|
||||
|
||||
ALOGI("startNetworkScan_InvalidMaxSearchTime1, rspInfo.error = %s\n",
|
||||
toString(radioRsp_v1_4->rspInfo.error).c_str());
|
||||
if (cardStatus.base.base.cardState == CardState::ABSENT) {
|
||||
ASSERT_TRUE(CheckAnyOfErrors(radioRsp_v1_4->rspInfo.error,
|
||||
{RadioError::SIM_ABSENT, RadioError::INVALID_ARGUMENTS}));
|
||||
} else if (cardStatus.base.base.cardState == CardState::PRESENT) {
|
||||
ASSERT_TRUE(
|
||||
CheckAnyOfErrors(radioRsp_v1_4->rspInfo.error, {RadioError::INVALID_ARGUMENTS}));
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Test IRadio.startNetworkScan() with invalid max search time (upper boundary).
|
||||
*/
|
||||
TEST_F(RadioHidlTest_v1_4, startNetworkScan_InvalidMaxSearchTime2) {
|
||||
serial = GetRandomSerialNumber();
|
||||
|
||||
RadioAccessSpecifier specifier = {.radioAccessNetwork = RadioAccessNetworks::GERAN,
|
||||
.geranBands = {GeranBands::BAND_450, GeranBands::BAND_480},
|
||||
.channels = {1, 2}};
|
||||
|
||||
::android::hardware::radio::V1_2::NetworkScanRequest request = {
|
||||
.type = ScanType::ONE_SHOT,
|
||||
.interval = 60,
|
||||
.specifiers = {specifier},
|
||||
.maxSearchTime = 3601,
|
||||
.incrementalResults = false,
|
||||
.incrementalResultsPeriodicity = 1};
|
||||
|
||||
Return<void> res = radio_v1_4->startNetworkScan_1_4(serial, request);
|
||||
ASSERT_OK(res);
|
||||
EXPECT_EQ(std::cv_status::no_timeout, wait());
|
||||
EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp_v1_4->rspInfo.type);
|
||||
EXPECT_EQ(serial, radioRsp_v1_4->rspInfo.serial);
|
||||
|
||||
ALOGI("startNetworkScan_InvalidMaxSearchTime2, rspInfo.error = %s\n",
|
||||
toString(radioRsp_v1_4->rspInfo.error).c_str());
|
||||
if (cardStatus.base.base.cardState == CardState::ABSENT) {
|
||||
ASSERT_TRUE(CheckAnyOfErrors(radioRsp_v1_4->rspInfo.error,
|
||||
{RadioError::SIM_ABSENT, RadioError::INVALID_ARGUMENTS}));
|
||||
} else if (cardStatus.base.base.cardState == CardState::PRESENT) {
|
||||
ASSERT_TRUE(
|
||||
CheckAnyOfErrors(radioRsp_v1_4->rspInfo.error, {RadioError::INVALID_ARGUMENTS}));
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Test IRadio.startNetworkScan() with invalid periodicity (lower boundary).
|
||||
*/
|
||||
TEST_F(RadioHidlTest_v1_4, startNetworkScan_InvalidPeriodicity1) {
|
||||
serial = GetRandomSerialNumber();
|
||||
|
||||
RadioAccessSpecifier specifier = {.radioAccessNetwork = RadioAccessNetworks::GERAN,
|
||||
.geranBands = {GeranBands::BAND_450, GeranBands::BAND_480},
|
||||
.channels = {1, 2}};
|
||||
|
||||
::android::hardware::radio::V1_2::NetworkScanRequest request = {
|
||||
.type = ScanType::ONE_SHOT,
|
||||
.interval = 60,
|
||||
.specifiers = {specifier},
|
||||
.maxSearchTime = 600,
|
||||
.incrementalResults = false,
|
||||
.incrementalResultsPeriodicity = 0};
|
||||
|
||||
Return<void> res = radio_v1_4->startNetworkScan_1_4(serial, request);
|
||||
ASSERT_OK(res);
|
||||
EXPECT_EQ(std::cv_status::no_timeout, wait());
|
||||
EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp_v1_4->rspInfo.type);
|
||||
EXPECT_EQ(serial, radioRsp_v1_4->rspInfo.serial);
|
||||
|
||||
ALOGI("startNetworkScan_InvalidPeriodicity1, rspInfo.error = %s\n",
|
||||
toString(radioRsp_v1_4->rspInfo.error).c_str());
|
||||
if (cardStatus.base.base.cardState == CardState::ABSENT) {
|
||||
ASSERT_TRUE(CheckAnyOfErrors(radioRsp_v1_4->rspInfo.error,
|
||||
{RadioError::SIM_ABSENT, RadioError::INVALID_ARGUMENTS}));
|
||||
} else if (cardStatus.base.base.cardState == CardState::PRESENT) {
|
||||
ASSERT_TRUE(
|
||||
CheckAnyOfErrors(radioRsp_v1_4->rspInfo.error, {RadioError::INVALID_ARGUMENTS}));
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Test IRadio.startNetworkScan() with invalid periodicity (upper boundary).
|
||||
*/
|
||||
TEST_F(RadioHidlTest_v1_4, startNetworkScan_InvalidPeriodicity2) {
|
||||
serial = GetRandomSerialNumber();
|
||||
|
||||
RadioAccessSpecifier specifier = {.radioAccessNetwork = RadioAccessNetworks::GERAN,
|
||||
.geranBands = {GeranBands::BAND_450, GeranBands::BAND_480},
|
||||
.channels = {1, 2}};
|
||||
|
||||
::android::hardware::radio::V1_2::NetworkScanRequest request = {
|
||||
.type = ScanType::ONE_SHOT,
|
||||
.interval = 60,
|
||||
.specifiers = {specifier},
|
||||
.maxSearchTime = 600,
|
||||
.incrementalResults = false,
|
||||
.incrementalResultsPeriodicity = 11};
|
||||
|
||||
Return<void> res = radio_v1_4->startNetworkScan_1_4(serial, request);
|
||||
ASSERT_OK(res);
|
||||
EXPECT_EQ(std::cv_status::no_timeout, wait());
|
||||
EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp_v1_4->rspInfo.type);
|
||||
EXPECT_EQ(serial, radioRsp_v1_4->rspInfo.serial);
|
||||
|
||||
ALOGI("startNetworkScan_InvalidPeriodicity2, rspInfo.error = %s\n",
|
||||
toString(radioRsp_v1_4->rspInfo.error).c_str());
|
||||
if (cardStatus.base.base.cardState == CardState::ABSENT) {
|
||||
ASSERT_TRUE(CheckAnyOfErrors(radioRsp_v1_4->rspInfo.error,
|
||||
{RadioError::SIM_ABSENT, RadioError::INVALID_ARGUMENTS}));
|
||||
} else if (cardStatus.base.base.cardState == CardState::PRESENT) {
|
||||
ASSERT_TRUE(
|
||||
CheckAnyOfErrors(radioRsp_v1_4->rspInfo.error, {RadioError::INVALID_ARGUMENTS}));
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Test IRadio.startNetworkScan() with valid periodicity
|
||||
*/
|
||||
TEST_F(RadioHidlTest_v1_4, startNetworkScan_GoodRequest1) {
|
||||
serial = GetRandomSerialNumber();
|
||||
|
||||
RadioAccessSpecifier specifier = {.radioAccessNetwork = RadioAccessNetworks::GERAN,
|
||||
.geranBands = {GeranBands::BAND_450, GeranBands::BAND_480},
|
||||
.channels = {1, 2}};
|
||||
|
||||
::android::hardware::radio::V1_2::NetworkScanRequest request = {
|
||||
.type = ScanType::ONE_SHOT,
|
||||
.interval = 60,
|
||||
.specifiers = {specifier},
|
||||
// Some vendor may not support max search time of 360s.
|
||||
// This issue is tracked in b/112205669.
|
||||
.maxSearchTime = 300,
|
||||
.incrementalResults = false,
|
||||
.incrementalResultsPeriodicity = 10};
|
||||
|
||||
Return<void> res = radio_v1_4->startNetworkScan_1_4(serial, request);
|
||||
ASSERT_OK(res);
|
||||
EXPECT_EQ(std::cv_status::no_timeout, wait());
|
||||
EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp_v1_4->rspInfo.type);
|
||||
EXPECT_EQ(serial, radioRsp_v1_4->rspInfo.serial);
|
||||
|
||||
ALOGI("startNetworkScan_GoodRequest1, rspInfo.error = %s\n",
|
||||
toString(radioRsp_v1_4->rspInfo.error).c_str());
|
||||
if (cardStatus.base.base.cardState == CardState::ABSENT) {
|
||||
ASSERT_TRUE(CheckAnyOfErrors(radioRsp_v1_4->rspInfo.error,
|
||||
{RadioError::NONE, RadioError::SIM_ABSENT}));
|
||||
} else if (cardStatus.base.base.cardState == CardState::PRESENT) {
|
||||
ASSERT_TRUE(CheckAnyOfErrors(radioRsp_v1_4->rspInfo.error,
|
||||
{RadioError::NONE, RadioError::INVALID_ARGUMENTS}));
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Test IRadio.startNetworkScan() with valid periodicity and plmns
|
||||
*/
|
||||
TEST_F(RadioHidlTest_v1_4, startNetworkScan_GoodRequest2) {
|
||||
serial = GetRandomSerialNumber();
|
||||
|
||||
RadioAccessSpecifier specifier = {.radioAccessNetwork = RadioAccessNetworks::GERAN,
|
||||
.geranBands = {GeranBands::BAND_450, GeranBands::BAND_480},
|
||||
.channels = {1, 2}};
|
||||
|
||||
::android::hardware::radio::V1_2::NetworkScanRequest request = {
|
||||
.type = ScanType::ONE_SHOT,
|
||||
.interval = 60,
|
||||
.specifiers = {specifier},
|
||||
// Some vendor may not support max search time of 360s.
|
||||
// This issue is tracked in b/112205669.
|
||||
.maxSearchTime = 300,
|
||||
.incrementalResults = false,
|
||||
.incrementalResultsPeriodicity = 10,
|
||||
.mccMncs = {"310410"}};
|
||||
|
||||
Return<void> res = radio_v1_4->startNetworkScan_1_4(serial, request);
|
||||
|
||||
ASSERT_OK(res);
|
||||
EXPECT_EQ(std::cv_status::no_timeout, wait());
|
||||
EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp_v1_4->rspInfo.type);
|
||||
EXPECT_EQ(serial, radioRsp_v1_4->rspInfo.serial);
|
||||
|
||||
ALOGI("startNetworkScan_GoodRequest2, rspInfo.error = %s\n",
|
||||
toString(radioRsp_v1_4->rspInfo.error).c_str());
|
||||
if (cardStatus.base.base.cardState == CardState::ABSENT) {
|
||||
ASSERT_TRUE(CheckAnyOfErrors(radioRsp_v1_4->rspInfo.error,
|
||||
{RadioError::NONE, RadioError::SIM_ABSENT}));
|
||||
} else if (cardStatus.base.base.cardState == CardState::PRESENT) {
|
||||
ASSERT_TRUE(CheckAnyOfErrors(radioRsp_v1_4->rspInfo.error,
|
||||
{RadioError::NONE, RadioError::INVALID_ARGUMENTS}));
|
||||
}
|
||||
}
|
||||
/*
|
||||
* Test IRadio.setupDataCall_1_4() for the response returned.
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user