diff options
author | Jim Kaye <jameskaye@google.com> | 2017-10-06 14:17:47 -0700 |
---|---|---|
committer | Jim Kaye <jameskaye@google.com> | 2017-10-11 12:22:10 -0700 |
commit | d2d820161d534e3423dcc451f9dbb4eee8225131 (patch) | |
tree | 35f503119e7dc4e22a1929bfc9ddd2c1b802954f /reference-ril | |
parent | 3e8f2c80f439cc088c38de1679e4fcf3bb8c433e (diff) | |
download | android_hardware_ril-d2d820161d534e3423dcc451f9dbb4eee8225131.tar.gz android_hardware_ril-d2d820161d534e3423dcc451f9dbb4eee8225131.tar.bz2 android_hardware_ril-d2d820161d534e3423dcc451f9dbb4eee8225131.zip |
Fix VTS HAL Radio tests
Get VTS HAL Radio tests working for Emulator.
With this CL, 122 of 129 of these tests pass.
(The remaining 7 tests still fail. These are
related to SAP.)
Bug: 62137708
Test: VTS tests: VtsHalRadioV1_0Target
Merged from If8b100c448f7f6b605d28af6a2ac2f03197c0137
Change-Id: Ieab832ab1a836087ca0f6d542128520000fffc71
Diffstat (limited to 'reference-ril')
-rw-r--r-- | reference-ril/reference-ril.c | 161 |
1 files changed, 125 insertions, 36 deletions
diff --git a/reference-ril/reference-ril.c b/reference-ril/reference-ril.c index ba92b76..f646b94 100644 --- a/reference-ril/reference-ril.c +++ b/reference-ril/reference-ril.c @@ -1168,11 +1168,6 @@ static void requestCdmaSubscription(int request __unused, void *data __unused, responseStr[3] = "8587777777"; // MIN responseStr[4] = "1"; // PRL Version RIL_onRequestComplete(t, RIL_E_SUCCESS, responseStr, count*sizeof(char*)); - - return; -error: - RLOGE("requestRegistrationState must never return an error when radio is on"); - RIL_onRequestComplete(t, RIL_E_GENERIC_FAILURE, NULL, 0); } static void requestCdmaGetRoamingPreference(int request __unused, void *data __unused, @@ -2105,6 +2100,47 @@ static void requestGetHardwareConfig(void *data, size_t datalen, RIL_Token t) RIL_onRequestComplete(t, RIL_E_SUCCESS, &hwCfg, sizeof(hwCfg)); } +static void requestGetTtyMode(void *data, size_t datalen, RIL_Token t) +{ + int ttyModeResponse; + + RIL_UNUSED_PARM(data); + RIL_UNUSED_PARM(datalen); + + ttyModeResponse = (getSIMStatus() == SIM_READY) ? 1 // TTY Full + : 0; // TTY Off + + RIL_onRequestComplete(t, RIL_E_SUCCESS, &ttyModeResponse, sizeof(ttyModeResponse)); +} + +static void requestGetRadioCapability(void *data, size_t datalen, RIL_Token t) +{ + RIL_RadioCapability radioCapability; + + RIL_UNUSED_PARM(data); + RIL_UNUSED_PARM(datalen); + + radioCapability.version = RIL_RADIO_CAPABILITY_VERSION; + radioCapability.session = 0; + radioCapability.phase = 0; + radioCapability.rat = 0; + radioCapability.logicalModemUuid[0] = '\0'; + radioCapability.status = RC_STATUS_SUCCESS; + + RIL_onRequestComplete(t, RIL_E_SUCCESS, &radioCapability, sizeof(radioCapability)); +} + +static void requestGetMute(void *data, size_t datalen, RIL_Token t) +{ + int muteResponse; + + RIL_UNUSED_PARM(data); + RIL_UNUSED_PARM(datalen); + + muteResponse = 0; // Mute disabled + + RIL_onRequestComplete(t, RIL_E_SUCCESS, &muteResponse, sizeof(muteResponse)); +} /*** Callback methods from the RIL library to us ***/ @@ -2141,12 +2177,47 @@ onRequest (int request, void *data, size_t datalen, RIL_Token t) /* Ignore all non-power requests when RADIO_STATE_OFF * (except RIL_REQUEST_GET_SIM_STATUS) */ - if (sState == RADIO_STATE_OFF - && !(request == RIL_REQUEST_RADIO_POWER - || request == RIL_REQUEST_GET_SIM_STATUS) - ) { - RIL_onRequestComplete(t, RIL_E_RADIO_NOT_AVAILABLE, NULL, 0); - return; + if (sState == RADIO_STATE_OFF) { + switch(request) { + case RIL_REQUEST_BASEBAND_VERSION: + case RIL_REQUEST_CDMA_GET_SUBSCRIPTION_SOURCE: + case RIL_REQUEST_CDMA_QUERY_PREFERRED_VOICE_PRIVACY_MODE: + case RIL_REQUEST_CDMA_SET_PREFERRED_VOICE_PRIVACY_MODE: + case RIL_REQUEST_CDMA_SET_ROAMING_PREFERENCE: + case RIL_REQUEST_CDMA_SET_SUBSCRIPTION_SOURCE: + case RIL_REQUEST_CDMA_SUBSCRIPTION: + case RIL_REQUEST_DEVICE_IDENTITY: + case RIL_REQUEST_EXIT_EMERGENCY_CALLBACK_MODE: + case RIL_REQUEST_GET_ACTIVITY_INFO: + case RIL_REQUEST_GET_CARRIER_RESTRICTIONS: + case RIL_REQUEST_GET_CURRENT_CALLS: + case RIL_REQUEST_GET_IMEI: + case RIL_REQUEST_GET_MUTE: + case RIL_REQUEST_GET_NEIGHBORING_CELL_IDS: + case RIL_REQUEST_GET_PREFERRED_NETWORK_TYPE: + case RIL_REQUEST_GET_RADIO_CAPABILITY: + case RIL_REQUEST_GET_SIM_STATUS: + case RIL_REQUEST_NV_RESET_CONFIG: + case RIL_REQUEST_QUERY_AVAILABLE_BAND_MODE: + case RIL_REQUEST_QUERY_NETWORK_SELECTION_MODE: + case RIL_REQUEST_QUERY_TTY_MODE: + case RIL_REQUEST_RADIO_POWER: + case RIL_REQUEST_SET_BAND_MODE: + case RIL_REQUEST_SET_CARRIER_RESTRICTIONS: + case RIL_REQUEST_SET_LOCATION_UPDATES: + case RIL_REQUEST_SET_PREFERRED_NETWORK_TYPE: + case RIL_REQUEST_SET_TTY_MODE: + case RIL_REQUEST_SET_UNSOL_CELL_INFO_LIST_RATE: + case RIL_REQUEST_STOP_LCE: + case RIL_REQUEST_VOICE_RADIO_TECH: + // Process all the above, even though the radio is off + break; + + default: + // For all others, say NOT_AVAILABLE because the radio is off + RIL_onRequestComplete(t, RIL_E_RADIO_NOT_AVAILABLE, NULL, 0); + return; + } } switch (request) { @@ -2470,37 +2541,55 @@ onRequest (int request, void *data, size_t datalen, RIL_Token t) requestShutdown(t); break; - /* CDMA Specific Requests */ + case RIL_REQUEST_QUERY_TTY_MODE: + requestGetTtyMode(data, datalen, t); + break; + + case RIL_REQUEST_GET_RADIO_CAPABILITY: + requestGetRadioCapability(data, datalen, t); + break; + + case RIL_REQUEST_GET_MUTE: + requestGetMute(data, datalen, t); + break; + + case RIL_REQUEST_SET_INITIAL_ATTACH_APN: + case RIL_REQUEST_ALLOW_DATA: + case RIL_REQUEST_ENTER_NETWORK_DEPERSONALIZATION: + case RIL_REQUEST_SET_CLIR: + case RIL_REQUEST_SET_SUPP_SVC_NOTIFICATION: + case RIL_REQUEST_SET_BAND_MODE: + case RIL_REQUEST_QUERY_AVAILABLE_BAND_MODE: + case RIL_REQUEST_GET_NEIGHBORING_CELL_IDS: + case RIL_REQUEST_SET_LOCATION_UPDATES: + case RIL_REQUEST_SET_TTY_MODE: + case RIL_REQUEST_CDMA_SET_PREFERRED_VOICE_PRIVACY_MODE: + RIL_onRequestComplete(t, RIL_E_SUCCESS, NULL, 0); + break; + case RIL_REQUEST_BASEBAND_VERSION: - if (TECH_BIT(sMdmInfo) == MDM_CDMA) { - requestCdmaBaseBandVersion(request, data, datalen, t); - break; - } // Fall-through if tech is not cdma + requestCdmaBaseBandVersion(request, data, datalen, t); + break; case RIL_REQUEST_DEVICE_IDENTITY: - if (TECH_BIT(sMdmInfo) == MDM_CDMA) { - requestCdmaDeviceIdentity(request, data, datalen, t); - break; - } // Fall-through if tech is not cdma + requestCdmaDeviceIdentity(request, data, datalen, t); + break; case RIL_REQUEST_CDMA_SUBSCRIPTION: - if (TECH_BIT(sMdmInfo) == MDM_CDMA) { - requestCdmaSubscription(request, data, datalen, t); - break; - } // Fall-through if tech is not cdma + requestCdmaSubscription(request, data, datalen, t); + break; + case RIL_REQUEST_CDMA_GET_SUBSCRIPTION_SOURCE: + requestCdmaGetSubscriptionSource(request, data, datalen, t); + break; + + /* CDMA Specific Requests */ case RIL_REQUEST_CDMA_SET_SUBSCRIPTION_SOURCE: if (TECH_BIT(sMdmInfo) == MDM_CDMA) { requestCdmaSetSubscriptionSource(request, data, datalen, t); break; } // Fall-through if tech is not cdma - case RIL_REQUEST_CDMA_GET_SUBSCRIPTION_SOURCE: - if (TECH_BIT(sMdmInfo) == MDM_CDMA) { - requestCdmaGetSubscriptionSource(request, data, datalen, t); - break; - } // Fall-through if tech is not cdma - case RIL_REQUEST_CDMA_QUERY_ROAMING_PREFERENCE: if (TECH_BIT(sMdmInfo) == MDM_CDMA) { requestCdmaGetRoamingPreference(request, data, datalen, t); @@ -2519,6 +2608,11 @@ onRequest (int request, void *data, size_t datalen, RIL_Token t) break; } // Fall-through if tech is not cdma + // Fall-through to here when the request is specific to CDMA, but + // our tech is not CDMA. VTS tests expect us to silently do nothing. + RIL_onRequestComplete(t, RIL_E_SUCCESS, NULL, 0); + break; + default: RLOGD("Request not supported. Tech: %d",TECH(sMdmInfo)); RIL_onRequestComplete(t, RIL_E_REQUEST_NOT_SUPPORTED, NULL, 0); @@ -2716,11 +2810,6 @@ getSIMStatus() char *cpinResult; RLOGD("getSIMStatus(). sState: %d",sState); - if (sState == RADIO_STATE_OFF || sState == RADIO_STATE_UNAVAILABLE) { - ret = SIM_NOT_READY; - goto done; - } - err = at_send_command_singleline("AT+CPIN?", "+CPIN:", &p_response); if (err != 0) { @@ -2776,7 +2865,7 @@ getSIMStatus() p_response = NULL; cpinResult = NULL; - ret = SIM_READY; + ret = (sState == RADIO_STATE_ON) ? SIM_READY : SIM_NOT_READY; done: at_response_free(p_response); |