Merge "Hang up EmergencyDial after Trigger in VTS" into qt-dev

This commit is contained in:
Shuo Qian 2019-07-02 17:11:16 +00:00 committed by Android (Google) Code Review
commit 33e8a3668d
4 changed files with 49 additions and 2 deletions

View file

@ -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();
}
/*

View file

@ -87,6 +87,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);

View file

@ -44,6 +44,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;
@ -59,6 +62,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;
@ -725,6 +731,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();

View file

@ -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();
}