Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 07a53471 authored by sqian's avatar sqian Committed by Shuo Qian
Browse files

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
parent 7e0d497a
Loading
Loading
Loading
Loading
+18 −0
Original line number Original line Diff line number Diff line
@@ -41,6 +41,12 @@ TEST_F(RadioHidlTest_v1_4, emergencyDial) {


    ALOGI("emergencyDial, rspInfo.error = %s\n", toString(radioRsp_v1_4->rspInfo.error).c_str());
    ALOGI("emergencyDial, rspInfo.error = %s\n", toString(radioRsp_v1_4->rspInfo.error).c_str());
    EXPECT_EQ(RadioError::NONE, radioRsp_v1_4->rspInfo.error);
    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",
    ALOGI("emergencyDial_withServices, rspInfo.error = %s\n",
          toString(radioRsp_v1_4->rspInfo.error).c_str());
          toString(radioRsp_v1_4->rspInfo.error).c_str());
    EXPECT_EQ(RadioError::NONE, radioRsp_v1_4->rspInfo.error);
    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",
    ALOGI("emergencyDial_withEmergencyRouting, rspInfo.error = %s\n",
          toString(radioRsp_v1_4->rspInfo.error).c_str());
          toString(radioRsp_v1_4->rspInfo.error).c_str());
    EXPECT_EQ(RadioError::NONE, radioRsp_v1_4->rspInfo.error);
    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();
}
}


/*
/*
+17 −0
Original line number Original line Diff line number Diff line
@@ -87,6 +87,23 @@ std::cv_status RadioHidlTest_v1_4::wait() {
    return status;
    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() {
void RadioHidlTest_v1_4::updateSimCardStatus() {
    serial = GetRandomSerialNumber();
    serial = GetRandomSerialNumber();
    radio_v1_4->getIccCardStatus(serial);
    radio_v1_4->getIccCardStatus(serial);
+9 −0
Original line number Original line Diff line number Diff line
@@ -44,6 +44,9 @@ using ::android::hardware::Return;
using ::android::hardware::Void;
using ::android::hardware::Void;


#define TIMEOUT_PERIOD 75
#define TIMEOUT_PERIOD 75
#define MODEM_EMERGENCY_CALL_ESTABLISH_TIME 3
#define MODEM_EMERGENCY_CALL_DISCONNECT_TIME 3

#define RADIO_SERVICE_NAME "slot1"
#define RADIO_SERVICE_NAME "slot1"


class RadioHidlTest_v1_4;
class RadioHidlTest_v1_4;
@@ -59,6 +62,9 @@ class RadioResponse_v1_4 : public ::android::hardware::radio::V1_4::IRadioRespon


    RadioResponseInfo rspInfo;
    RadioResponseInfo rspInfo;


    // Call
    hidl_vec<::android::hardware::radio::V1_2::Call> currentCalls;

    // Modem
    // Modem
    bool isModemEnabled;
    bool isModemEnabled;
    bool enableModemResponseToggle;
    bool enableModemResponseToggle;
@@ -725,6 +731,9 @@ class RadioHidlTest_v1_4 : public ::testing::VtsHalHidlTargetTestBase {
    /* Serial number for radio request */
    /* Serial number for radio request */
    int serial;
    int serial;


    /* Clear Potential Established Calls */
    void clearPotentialEstablishedCalls();

    /* Update Sim Card Status */
    /* Update Sim Card Status */
    void updateSimCardStatus();
    void updateSimCardStatus();


+5 −2
Original line number Original line Diff line number Diff line
@@ -77,7 +77,9 @@ Return<void> RadioResponse_v1_4::getIMSIForAppResponse(
    return Void();
    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();
    return Void();
}
}


@@ -729,9 +731,10 @@ Return<void> RadioResponse_v1_4::getIccCardStatusResponse_1_2(


Return<void> RadioResponse_v1_4::getCurrentCallsResponse_1_2(
Return<void> RadioResponse_v1_4::getCurrentCallsResponse_1_2(
        const RadioResponseInfo& info,
        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;
    rspInfo = info;
    parent_v1_4.notify(info.serial);
    parent_v1_4.notify(info.serial);
    currentCalls = calls;
    return Void();
    return Void();
}
}