Test refactoring of DefaultNetworkRematchMetrics

This change includes:
 1. addEvent Parameter Update: Added satisfied duration to
    addEvent, making duration testable in CSTest.
 2. CSDefaultNetworkRematchMetricsTest Refactor: Tests now use
    expectAddEvent with argThat and InOrder for more deterministic
    verification.
 3. New Unit Test: Added a test to demonstrate a metrics reporting
    issue during per-app default network request updates.

Test: atest ConnectivityCoverageTests --test-filter 'DefaultNetworkRematch*' \
      --update-device
Flag: EXEMPT Test only refactoring
Bug: 419123367
Change-Id: I3c73b445674991f85e37b3f980fa80fb918713ac
This commit is contained in:
Junyu Lai 2025-06-04 23:26:10 +08:00
commit d4c521ab43

View file

@ -5821,7 +5821,8 @@ public class ConnectivityService extends IConnectivityManager.Stub
if (mConstrainedDataSatelliteMetrics && mDefaultNetworkRequests.contains(nri)) {
// Must be called before satisfier changes to get satisfied time.
// See NRI#getSatisfiedTime().
mDefaultNetworkRematchMetrics.addEvent(nri, currentNetwork, null);
mDefaultNetworkRematchMetrics.addEvent(nri, currentNetwork, null,
mDeps.getElapsedRealtime() - nri.getSatisfiedTime());
}
nri.setSatisfier(null, null);
@ -11703,7 +11704,8 @@ public class ConnectivityService extends IConnectivityManager.Stub
continue;
}
mDefaultNetworkRematchMetrics.addEvent(defaultRequestInfo,
reassignment.mOldNetwork, reassignment.mNewNetwork);
reassignment.mOldNetwork, reassignment.mNewNetwork,
mDeps.getElapsedRealtime() - defaultRequestInfo.getSatisfiedTime());
}
// TODO: fill rematch reason.
mDefaultNetworkRematchMetrics.writeStatsAndClear();