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

Commit 32a056f6 authored by Frank Li's avatar Frank Li Committed by Automerger Merge Worker
Browse files

Merge "Fix the mStopTimeNs not be reset in Stopwatch#Restart" am: a77d0b4d...

Merge "Fix the mStopTimeNs not be reset in Stopwatch#Restart" am: a77d0b4d am: 7c911c7c am: 4ebe2d28 am: 5bd98bc4 am: a16f7c3c

Original change: https://android-review.googlesource.com/c/platform/packages/modules/NetworkStack/+/1343438

Change-Id: I807eb9f1e78ae11f5af57caf79c6a8d500c75ecb
parents f5f9b78a a16f7c3c
Loading
Loading
Loading
Loading
+3 −5
Original line number Diff line number Diff line
@@ -824,11 +824,11 @@ public class IpClient extends StateMachine {
     * Stop this IpClient.
     *
     * <p>This does not shut down the StateMachine itself, which is handled by {@link #shutdown()}.
     *    The message "arg1" parameter is used to record the disconnect code metrics.
     *    Usually this method is called by the peer (e.g. wifi) intentionally to stop IpClient,
     *    consider that's the normal user termination.
     */
    public void stop() {
        // The message "arg1" parameter is used to record the disconnect code metrics.
        // Usually this method is called by the peer (e.g. wifi) intentionally to stop IpClient,
        // consider that's the normal user termination.
        sendMessage(CMD_STOP, DisconnectCode.DC_NORMAL_TERMINATION.getNumber());
    }

@@ -1084,8 +1084,6 @@ public class IpClient extends StateMachine {
    }

    // Record the DisconnectCode and transition to StoppingState.
    // When jumping to mStoppingState This function will ensure
    // that you will not forget to fill in DisconnectCode.
    private void transitionToStoppingState(final DisconnectCode code) {
        mIpProvisioningMetrics.setDisconnectCode(code);
        transitionTo(mStoppingState);
+2 −1
Original line number Diff line number Diff line
@@ -49,10 +49,11 @@ public class Stopwatch {
    }

    /**
     * Retart the Stopwatch.
     * Restart the Stopwatch.
     */
    public Stopwatch restart() {
        mStartTimeNs = SystemClock.elapsedRealtimeNanos();
        mStopTimeNs = 0;
        return this;
    }

+24 −0
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@ import android.stats.connectivity.DisconnectCode;
import android.stats.connectivity.HostnameTransResult;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;

import androidx.test.filters.SmallTest;
import androidx.test.runner.AndroidJUnit4;
@@ -122,6 +123,9 @@ public class NetworkIpProvisioningMetricsTest {
        mMetrics.setDisconnectCode(DisconnectCode.DC_PROVISIONING_TIMEOUT);
        mMetrics.setDisconnectCode(DisconnectCode.DC_ERROR_STARTING_IPV4);

        mMetrics.setIPv4ProvisionedLatencyOnFirstTime(true);
        mMetrics.setIPv6ProvisionedLatencyOnFirstTime(true);

        // Writing the metrics into statsd
        mStats = mMetrics.statsWrite();

@@ -133,5 +137,25 @@ public class NetworkIpProvisioningMetricsTest {
        assertEquals(6, mStats.getDhcpSession().getErrorCodeCount());
        assertEquals(HostnameTransResult.HTR_SUCCESS, mStats.getDhcpSession().getHtResult());
        assertEquals(DisconnectCode.DC_PROVISIONING_TIMEOUT, mStats.getDisconnectCode());
        assertTrue(mStats.getIpv4LatencyMicros() >= 0);
        assertTrue(mStats.getIpv6LatencyMicros() >= 0);
        assertTrue(mStats.getProvisioningDurationMicros() >= 0);
    }

    @Test
    public void testIpProvisioningMetrics_VerifyConsecutiveMetricsLatency() throws Exception {
        final IpProvisioningMetrics metrics = new IpProvisioningMetrics();
        for (int i = 0; i < 2; i++) {
            metrics.reset();
            // delay 1 msec.
            Thread.sleep(1);
            metrics.setIPv4ProvisionedLatencyOnFirstTime(true);
            metrics.setIPv6ProvisionedLatencyOnFirstTime(true);
            NetworkIpProvisioningReported mStats = metrics.statsWrite();
            // Each timer should be greater than 1000.
            assertTrue(mStats.getIpv4LatencyMicros() >= 1000);
            assertTrue(mStats.getIpv6LatencyMicros() >= 1000);
            assertTrue(mStats.getProvisioningDurationMicros() >= 1000);
        }
    }
}