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

Commit 11dca507 authored by Nathan Harold's avatar Nathan Harold
Browse files

Test HAL 1.0 and HAL 1.2 TDSCDMA Compatibility

Add a test that checks that the HAL changes for
TD-SCDMA compatibility between HAL 1.0 and HAL
1.2 are handled correctly by the HAL conversion
functions.

Bug: 74202653
Test: runtest -x ...RILTest.java
Change-Id: I0d45f6b599adac17e43e8488c38848f1689fb804
parent d4594e4f
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -5281,7 +5281,9 @@ public class RIL extends BaseCommands implements CommandsInterface {
        return response;
    }

    static SignalStrength convertHalSignalStrength(
    /** Convert HAL 1.0 Signal Strength to android SignalStrength */
    @VisibleForTesting
    public static SignalStrength convertHalSignalStrength(
            android.hardware.radio.V1_0.SignalStrength signalStrength) {
        int tdscdmaRscp_1_2 = 255; // 255 is the value for unknown/unreported ASU.
        // The HAL 1.0 range is 25..120; the ASU/ HAL 1.2 range is 0..96;
@@ -5308,7 +5310,9 @@ public class RIL extends BaseCommands implements CommandsInterface {
                tdscdmaRscp_1_2);
    }

    static SignalStrength convertHalSignalStrength_1_2(
    /** Convert HAL 1.2 Signal Strength to android SignalStrength */
    @VisibleForTesting
    public static SignalStrength convertHalSignalStrength_1_2(
            android.hardware.radio.V1_2.SignalStrength signalStrength) {
        return new SignalStrength(
                signalStrength.gsm.signalStrength,
+58 −0
Original line number Diff line number Diff line
@@ -1539,4 +1539,62 @@ public class RILTest extends TelephonyTest {

        return RIL.convertHalCellInfoList_1_2(records);
    }

    public android.telephony.SignalStrength getTdScdmaSignalStrength_1_0(int tdscdmaNegDbm) {
        android.hardware.radio.V1_0.SignalStrength halSs =
                new android.hardware.radio.V1_0.SignalStrength();
        halSs.lte.signalStrength = SIGNAL_STRENGTH;
        halSs.lte.rsrp = RSRP;
        halSs.lte.rsrq = RSRQ;
        halSs.lte.rssnr = RSSNR;
        halSs.gw.signalStrength = SIGNAL_STRENGTH;
        halSs.gw.bitErrorRate = BIT_ERROR_RATE;
        halSs.cdma.dbm = DBM;
        halSs.cdma.ecio = ECIO;
        halSs.evdo.dbm = DBM;
        halSs.evdo.ecio = ECIO;
        halSs.evdo.signalNoiseRatio = SIGNAL_NOISE_RATIO;
        halSs.tdScdma.rscp = tdscdmaNegDbm;
        android.telephony.SignalStrength ss = RIL.convertHalSignalStrength(halSs);
        // FIXME: We should not need to call validateInput here b/74115980.
        ss.validateInput();
        return ss;
    }

    public android.telephony.SignalStrength getTdScdmaSignalStrength_1_2(int tdscdmaAsu) {
        android.hardware.radio.V1_2.SignalStrength halSs =
                new android.hardware.radio.V1_2.SignalStrength();
        halSs.lte.signalStrength = SIGNAL_STRENGTH;
        halSs.lte.rsrp = RSRP;
        halSs.lte.rsrq = RSRQ;
        halSs.lte.rssnr = RSSNR;
        halSs.gsm.signalStrength = SIGNAL_STRENGTH;
        halSs.gsm.bitErrorRate = BIT_ERROR_RATE;
        halSs.cdma.dbm = DBM;
        halSs.cdma.ecio = ECIO;
        halSs.evdo.dbm = DBM;
        halSs.evdo.ecio = ECIO;
        halSs.evdo.signalNoiseRatio = SIGNAL_NOISE_RATIO;
        halSs.wcdma.base.signalStrength = 99;
        halSs.wcdma.rscp = 255;
        halSs.tdScdma.rscp = tdscdmaAsu;
        android.telephony.SignalStrength ss = RIL.convertHalSignalStrength_1_2(halSs);
        // FIXME: We should not need to call validateInput here b/74115980
        // but unless we call it, we have to pass Integer.MAX_VALUE for wcdma RSCP,
        // which is outside the allowable range for the HAL. This value is being
        // coerced inside SignalStrength.validateInput().
        ss.validateInput();
        return ss;
    }

    @Test
    public void testHalSignalStrengthTdScdma() throws Exception {
        // Check that the minimum value is the same.
        assertEquals(getTdScdmaSignalStrength_1_0(120), getTdScdmaSignalStrength_1_2(0));
        // Check that the maximum common value is the same.
        assertEquals(getTdScdmaSignalStrength_1_0(25), getTdScdmaSignalStrength_1_2(95));
        // Check that an invalid value is the same.
        assertEquals(getTdScdmaSignalStrength_1_0(-1), getTdScdmaSignalStrength_1_2(255));
    }

}