Fix flake in ConnectivityDiagnosticsManager
...or at least make it considerably less common. Sometimes the network is not validated. Instead of checking that the diagnostics message says it is validated, check that it agrees with the network capabilities. Fixes: b/371856020 Test: ConnectivityDiagnosticsManagerTest and TH Flag: EXEMPT test-only change Change-Id: I83ff7572a300adf250f82869eff7c55664296f95
This commit is contained in:
parent
8e4ecf9a15
commit
3a6edd4e01
1 changed files with 16 additions and 1 deletions
|
|
@ -22,6 +22,8 @@ import static android.net.ConnectivityDiagnosticsManager.ConnectivityReport;
|
|||
import static android.net.ConnectivityDiagnosticsManager.ConnectivityReport.KEY_NETWORK_PROBES_ATTEMPTED_BITMASK;
|
||||
import static android.net.ConnectivityDiagnosticsManager.ConnectivityReport.KEY_NETWORK_PROBES_SUCCEEDED_BITMASK;
|
||||
import static android.net.ConnectivityDiagnosticsManager.ConnectivityReport.KEY_NETWORK_VALIDATION_RESULT;
|
||||
import static android.net.ConnectivityDiagnosticsManager.ConnectivityReport.NETWORK_VALIDATION_RESULT_INVALID;
|
||||
import static android.net.ConnectivityDiagnosticsManager.ConnectivityReport.NETWORK_VALIDATION_RESULT_PARTIALLY_VALID;
|
||||
import static android.net.ConnectivityDiagnosticsManager.ConnectivityReport.NETWORK_VALIDATION_RESULT_SKIPPED;
|
||||
import static android.net.ConnectivityDiagnosticsManager.ConnectivityReport.NETWORK_VALIDATION_RESULT_VALID;
|
||||
import static android.net.ConnectivityDiagnosticsManager.DataStallReport;
|
||||
|
|
@ -34,6 +36,7 @@ import static android.net.ConnectivityDiagnosticsManager.persistableBundleEquals
|
|||
import static android.net.NetworkCapabilities.NET_CAPABILITY_INTERNET;
|
||||
import static android.net.NetworkCapabilities.NET_CAPABILITY_NOT_VPN;
|
||||
import static android.net.NetworkCapabilities.NET_CAPABILITY_TRUSTED;
|
||||
import static android.net.NetworkCapabilities.NET_CAPABILITY_VALIDATED;
|
||||
import static android.net.NetworkCapabilities.TRANSPORT_CELLULAR;
|
||||
import static android.net.NetworkCapabilities.TRANSPORT_TEST;
|
||||
import static android.net.cts.util.CtsNetUtils.TestNetworkCallback;
|
||||
|
|
@ -325,6 +328,18 @@ public class ConnectivityDiagnosticsManagerTest {
|
|||
|
||||
final Network network = testNetworkCallback.waitForAvailable();
|
||||
assertNotNull(network);
|
||||
// TODO : get rid of the underpowered CtsNetUtils.TestNetworkCallback and use the more
|
||||
// capable TestableNetworkCallback instead. Then no need to use the synchronous getter
|
||||
// which may cause further flakes.
|
||||
final NetworkCapabilities caps = mConnectivityManager.getNetworkCapabilities(network);
|
||||
final int expectedResult;
|
||||
if (caps.hasCapability(24)) { // NET_CAPABILITY_PARTIAL_CONNECTIVITY is @SystemApi
|
||||
expectedResult = NETWORK_VALIDATION_RESULT_PARTIALLY_VALID;
|
||||
} else if (caps.hasCapability(NET_CAPABILITY_VALIDATED)) {
|
||||
expectedResult = NETWORK_VALIDATION_RESULT_VALID;
|
||||
} else {
|
||||
expectedResult = NETWORK_VALIDATION_RESULT_INVALID;
|
||||
}
|
||||
|
||||
// TODO(b/217559768): Receiving carrier config change and immediately checking carrier
|
||||
// privileges is racy, as the CP status is updated after receiving the same signal. Move
|
||||
|
|
@ -339,7 +354,7 @@ public class ConnectivityDiagnosticsManagerTest {
|
|||
final String interfaceName =
|
||||
mConnectivityManager.getLinkProperties(network).getInterfaceName();
|
||||
connDiagsCallback.maybeVerifyConnectivityReportAvailable(
|
||||
network, interfaceName, TRANSPORT_CELLULAR, NETWORK_VALIDATION_RESULT_VALID);
|
||||
network, interfaceName, TRANSPORT_CELLULAR, expectedResult);
|
||||
connDiagsCallback.assertNoCallback();
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue