mirror of
https://github.com/Evolution-X/hardware_interfaces
synced 2026-02-01 22:04:26 +00:00
Hang up EmergencyDial after Trigger in VTS
The whole test case run emergencyDial.RadioHidlTest_v1_4 first and then
come after startNetworkScan.RadioHidlTest_v1_4 test case immediately
(within ~3 secs) the NWscan failure is device in emergency call in
progress/connected while doing emergencyDial.RadioHidlTest_v1_4 test
Although emergencyDial.RadioHidlTest_v1_4 only care about command/response
is successful or not and don't care call is established or not, modem do
care about call condition is in idle/progress/connected state before it
can do NWscan
When there's dedicated channel established, modem can not perform AP
request NWscan in parallel as we are single HW modem restriction.
Test: run vts
Bug: 135595082
Change-Id: Iecba54b93b96d33b57bc59e00f082ff133d2e57b
Merged-In: Iecba54b93b96d33b57bc59e00f082ff133d2e57b
(cherry picked from commit 07a53471c4)
This commit is contained in:
@@ -41,6 +41,12 @@ TEST_F(RadioHidlTest_v1_4, emergencyDial) {
|
||||
|
||||
ALOGI("emergencyDial, rspInfo.error = %s\n", toString(radioRsp_v1_4->rspInfo.error).c_str());
|
||||
EXPECT_EQ(RadioError::NONE, radioRsp_v1_4->rspInfo.error);
|
||||
|
||||
// Give some time for modem to establish the emergency call channel.
|
||||
sleep(MODEM_EMERGENCY_CALL_ESTABLISH_TIME);
|
||||
|
||||
// Disconnect all the potential established calls to prevent them affecting other tests.
|
||||
clearPotentialEstablishedCalls();
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -67,6 +73,12 @@ TEST_F(RadioHidlTest_v1_4, emergencyDial_withServices) {
|
||||
ALOGI("emergencyDial_withServices, rspInfo.error = %s\n",
|
||||
toString(radioRsp_v1_4->rspInfo.error).c_str());
|
||||
EXPECT_EQ(RadioError::NONE, radioRsp_v1_4->rspInfo.error);
|
||||
|
||||
// Give some time for modem to establish the emergency call channel.
|
||||
sleep(MODEM_EMERGENCY_CALL_ESTABLISH_TIME);
|
||||
|
||||
// Disconnect all the potential established calls to prevent them affecting other tests.
|
||||
clearPotentialEstablishedCalls();
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -93,6 +105,12 @@ TEST_F(RadioHidlTest_v1_4, emergencyDial_withEmergencyRouting) {
|
||||
ALOGI("emergencyDial_withEmergencyRouting, rspInfo.error = %s\n",
|
||||
toString(radioRsp_v1_4->rspInfo.error).c_str());
|
||||
EXPECT_EQ(RadioError::NONE, radioRsp_v1_4->rspInfo.error);
|
||||
|
||||
// Give some time for modem to establish the emergency call channel.
|
||||
sleep(MODEM_EMERGENCY_CALL_ESTABLISH_TIME);
|
||||
|
||||
// Disconnect all the potential established calls to prevent them affecting other tests.
|
||||
clearPotentialEstablishedCalls();
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -80,6 +80,23 @@ std::cv_status RadioHidlTest_v1_4::wait() {
|
||||
return status;
|
||||
}
|
||||
|
||||
void RadioHidlTest_v1_4::clearPotentialEstablishedCalls() {
|
||||
// Get the current call Id to hangup the established emergency call.
|
||||
serial = GetRandomSerialNumber();
|
||||
radio_v1_4->getCurrentCalls(serial);
|
||||
EXPECT_EQ(std::cv_status::no_timeout, wait());
|
||||
|
||||
// Hang up to disconnect the established call channels.
|
||||
for (const ::android::hardware::radio::V1_2::Call& call : radioRsp_v1_4->currentCalls) {
|
||||
serial = GetRandomSerialNumber();
|
||||
radio_v1_4->hangup(serial, call.base.index);
|
||||
ALOGI("Hang up to disconnect the established call channel: %d", call.base.index);
|
||||
EXPECT_EQ(std::cv_status::no_timeout, wait());
|
||||
// Give some time for modem to disconnect the established call channel.
|
||||
sleep(MODEM_EMERGENCY_CALL_DISCONNECT_TIME);
|
||||
}
|
||||
}
|
||||
|
||||
void RadioHidlTest_v1_4::updateSimCardStatus() {
|
||||
serial = GetRandomSerialNumber();
|
||||
radio_v1_4->getIccCardStatus(serial);
|
||||
|
||||
@@ -42,6 +42,9 @@ using ::android::hardware::Return;
|
||||
using ::android::hardware::Void;
|
||||
|
||||
#define TIMEOUT_PERIOD 75
|
||||
#define MODEM_EMERGENCY_CALL_ESTABLISH_TIME 3
|
||||
#define MODEM_EMERGENCY_CALL_DISCONNECT_TIME 3
|
||||
|
||||
#define RADIO_SERVICE_NAME "slot1"
|
||||
|
||||
class RadioHidlTest_v1_4;
|
||||
@@ -57,6 +60,9 @@ class RadioResponse_v1_4 : public ::android::hardware::radio::V1_4::IRadioRespon
|
||||
|
||||
RadioResponseInfo rspInfo;
|
||||
|
||||
// Call
|
||||
hidl_vec<::android::hardware::radio::V1_2::Call> currentCalls;
|
||||
|
||||
// Modem
|
||||
bool isModemEnabled;
|
||||
bool enableModemResponseToggle;
|
||||
@@ -723,6 +729,9 @@ class RadioHidlTest_v1_4 : public ::testing::VtsHalHidlTargetTestBase {
|
||||
/* Serial number for radio request */
|
||||
int serial;
|
||||
|
||||
/* Clear Potential Established Calls */
|
||||
void clearPotentialEstablishedCalls();
|
||||
|
||||
/* Update Sim Card Status */
|
||||
void updateSimCardStatus();
|
||||
|
||||
|
||||
@@ -77,7 +77,9 @@ Return<void> RadioResponse_v1_4::getIMSIForAppResponse(
|
||||
return Void();
|
||||
}
|
||||
|
||||
Return<void> RadioResponse_v1_4::hangupConnectionResponse(const RadioResponseInfo& /*info*/) {
|
||||
Return<void> RadioResponse_v1_4::hangupConnectionResponse(const RadioResponseInfo& info) {
|
||||
rspInfo = info;
|
||||
parent_v1_4.notify(info.serial);
|
||||
return Void();
|
||||
}
|
||||
|
||||
@@ -729,9 +731,10 @@ Return<void> RadioResponse_v1_4::getIccCardStatusResponse_1_2(
|
||||
|
||||
Return<void> RadioResponse_v1_4::getCurrentCallsResponse_1_2(
|
||||
const RadioResponseInfo& info,
|
||||
const ::android::hardware::hidl_vec<::android::hardware::radio::V1_2::Call>& /*calls*/) {
|
||||
const ::android::hardware::hidl_vec<::android::hardware::radio::V1_2::Call>& calls) {
|
||||
rspInfo = info;
|
||||
parent_v1_4.notify(info.serial);
|
||||
currentCalls = calls;
|
||||
return Void();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user