diff options
-rw-r--r-- | src/com/android/server/connectivity/NetworkMonitor.java | 4 | ||||
-rw-r--r-- | tests/unit/src/com/android/server/connectivity/NetworkMonitorTest.java | 13 |
2 files changed, 17 insertions, 0 deletions
diff --git a/src/com/android/server/connectivity/NetworkMonitor.java b/src/com/android/server/connectivity/NetworkMonitor.java index e8fe2ca..a4f934f 100644 --- a/src/com/android/server/connectivity/NetworkMonitor.java +++ b/src/com/android/server/connectivity/NetworkMonitor.java @@ -2253,6 +2253,10 @@ public class NetworkMonitor extends StateMachine { @VisibleForTesting protected boolean isDataStall() { + if (!isValidationRequired()) { + return false; + } + Boolean result = null; final StringJoiner msg = (DBG || VDBG_STALL) ? new StringJoiner(", ") : null; // Reevaluation will generate traffic. Thus, set a minimal reevaluation timer to limit the diff --git a/tests/unit/src/com/android/server/connectivity/NetworkMonitorTest.java b/tests/unit/src/com/android/server/connectivity/NetworkMonitorTest.java index 35cdb11..469284b 100644 --- a/tests/unit/src/com/android/server/connectivity/NetworkMonitorTest.java +++ b/tests/unit/src/com/android/server/connectivity/NetworkMonitorTest.java @@ -815,6 +815,19 @@ public class NetworkMonitorTest { } @Test + public void testIsDataStall_SkipEvaluateOnValidationNotRequiredNetwork() { + // Make DNS and TCP stall condition satisfied. + setDataStallEvaluationType(DATA_STALL_EVALUATION_TYPE_DNS | DATA_STALL_EVALUATION_TYPE_TCP); + when(mTstDependencies.isTcpInfoParsingSupported()).thenReturn(true); + when(mTst.getLatestReceivedCount()).thenReturn(0); + when(mTst.isDataStallSuspected()).thenReturn(true); + final WrappedNetworkMonitor nm = makeMonitor(NO_INTERNET_CAPABILITIES); + nm.setLastProbeTime(SystemClock.elapsedRealtime() - 1000); + makeDnsTimeoutEvent(nm, DEFAULT_DNS_TIMEOUT_THRESHOLD); + assertFalse(nm.isDataStall()); + } + + @Test public void testIsDataStall_EvaluationDnsWithDnsTimeThreshold() { // Test dns events happened in valid dns time threshold. WrappedNetworkMonitor wrappedMonitor = makeMeteredNetworkMonitor(); |