Merge "Skip TestDropPacketToVpnAddress if the feature is disabled" into main
This commit is contained in:
commit
b8950d144a
4 changed files with 46 additions and 0 deletions
|
|
@ -6734,4 +6734,33 @@ public class ConnectivityManager {
|
|||
throw e.rethrowFromSystemServer();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the specified ConnectivityService feature status. This method is for test code to check
|
||||
* whether the feature is enabled or not.
|
||||
* Note that tests can not just read DeviceConfig since ConnectivityService reads flag at
|
||||
* startup. For example, it's possible that the current flag value is "disable"(-1) but the
|
||||
* feature is enabled since the flag value was "enable"(1) when ConnectivityService started up.
|
||||
* If the ConnectivityManager needs to check the ConnectivityService feature status for non-test
|
||||
* purpose, define feature in {@link ConnectivityManagerFeature} and use
|
||||
* {@link #isFeatureEnabled} instead.
|
||||
*
|
||||
* @param featureFlag target flag for feature
|
||||
* @return {@code true} if the feature is enabled, {@code false} if the feature is disabled.
|
||||
* @throws IllegalArgumentException if the flag is invalid
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
@RequiresPermission(anyOf = {
|
||||
android.Manifest.permission.NETWORK_SETTINGS,
|
||||
android.Manifest.permission.NETWORK_STACK,
|
||||
NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK
|
||||
})
|
||||
public boolean isConnectivityServiceFeatureEnabledForTesting(final String featureFlag) {
|
||||
try {
|
||||
return mService.isConnectivityServiceFeatureEnabledForTesting(featureFlag);
|
||||
} catch (RemoteException e) {
|
||||
throw e.rethrowFromSystemServer();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -262,4 +262,6 @@ interface IConnectivityManager
|
|||
IBinder getRoutingCoordinatorService();
|
||||
|
||||
long getEnabledConnectivityManagerFeatures();
|
||||
|
||||
boolean isConnectivityServiceFeatureEnabledForTesting(String featureFlag);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14505,4 +14505,14 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||
}
|
||||
return features;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isConnectivityServiceFeatureEnabledForTesting(String featureFlag) {
|
||||
switch (featureFlag) {
|
||||
case INGRESS_TO_VPN_ADDRESS_FILTERING:
|
||||
return mIngressToVpnAddressFiltering;
|
||||
default:
|
||||
throw new IllegalArgumentException("Unknown flag: " + featureFlag);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -213,6 +213,8 @@ public class VpnTest {
|
|||
|
||||
private static final String AUTOMATIC_ON_OFF_KEEPALIVE_VERSION =
|
||||
"automatic_on_off_keepalive_version";
|
||||
private static final String INGRESS_TO_VPN_ADDRESS_FILTERING =
|
||||
"ingress_to_vpn_address_filtering";
|
||||
// Enabled since version 1 means it's always enabled because the version is always above 1
|
||||
private static final String AUTOMATIC_ON_OFF_KEEPALIVE_ENABLED = "1";
|
||||
private static final long TEST_TCP_POLLING_TIMER_EXPIRED_PERIOD_MS = 60_000L;
|
||||
|
|
@ -1949,6 +1951,9 @@ public class VpnTest {
|
|||
*/
|
||||
private void doTestDropPacketToVpnAddress(final boolean duplicatedAddress)
|
||||
throws Exception {
|
||||
assumeTrue(mCM.isConnectivityServiceFeatureEnabledForTesting(
|
||||
INGRESS_TO_VPN_ADDRESS_FILTERING));
|
||||
|
||||
final NetworkRequest request = new NetworkRequest.Builder()
|
||||
.removeCapability(NetworkCapabilities.NET_CAPABILITY_NOT_VPN)
|
||||
.removeCapability(NetworkCapabilities.NET_CAPABILITY_TRUSTED)
|
||||
|
|
|
|||
Loading…
Reference in a new issue