Merge "Fix CTS test failed on R device"
This commit is contained in:
@@ -30,6 +30,7 @@ android_test_helper_app {
|
|||||||
"ctstestrunner-axt",
|
"ctstestrunner-axt",
|
||||||
"ub-uiautomator",
|
"ub-uiautomator",
|
||||||
"CtsHostsideNetworkTestsAidl",
|
"CtsHostsideNetworkTestsAidl",
|
||||||
|
"modules-utils-build",
|
||||||
],
|
],
|
||||||
libs: [
|
libs: [
|
||||||
"android.test.runner",
|
"android.test.runner",
|
||||||
|
|||||||
@@ -75,6 +75,7 @@ import android.text.TextUtils;
|
|||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
import com.android.compatibility.common.util.BlockingBroadcastReceiver;
|
import com.android.compatibility.common.util.BlockingBroadcastReceiver;
|
||||||
|
import com.android.modules.utils.build.SdkLevel;
|
||||||
|
|
||||||
import java.io.Closeable;
|
import java.io.Closeable;
|
||||||
import java.io.FileDescriptor;
|
import java.io.FileDescriptor;
|
||||||
@@ -740,13 +741,14 @@ public class VpnTest extends InstrumentationTestCase {
|
|||||||
getInstrumentation().getTargetContext(), MyVpnService.ACTION_ESTABLISHED);
|
getInstrumentation().getTargetContext(), MyVpnService.ACTION_ESTABLISHED);
|
||||||
receiver.register();
|
receiver.register();
|
||||||
|
|
||||||
|
|
||||||
// Expect the system default network not to change.
|
// Expect the system default network not to change.
|
||||||
final NeverChangeNetworkCallback neverChangeCallback = new NeverChangeNetworkCallback();
|
final NeverChangeNetworkCallback neverChangeCallback = new NeverChangeNetworkCallback();
|
||||||
final Network defaultNetwork = mCM.getActiveNetwork();
|
final Network defaultNetwork = mCM.getActiveNetwork();
|
||||||
|
if (SdkLevel.isAtLeastS()) {
|
||||||
runWithShellPermissionIdentity(() ->
|
runWithShellPermissionIdentity(() ->
|
||||||
mCM.registerSystemDefaultNetworkCallback(neverChangeCallback,
|
mCM.registerSystemDefaultNetworkCallback(neverChangeCallback,
|
||||||
new Handler(Looper.getMainLooper())), NETWORK_SETTINGS);
|
new Handler(Looper.getMainLooper())), NETWORK_SETTINGS);
|
||||||
|
}
|
||||||
|
|
||||||
FileDescriptor fd = openSocketFdInOtherApp(TEST_HOST, 80, TIMEOUT_MS);
|
FileDescriptor fd = openSocketFdInOtherApp(TEST_HOST, 80, TIMEOUT_MS);
|
||||||
|
|
||||||
@@ -765,19 +767,21 @@ public class VpnTest extends InstrumentationTestCase {
|
|||||||
|
|
||||||
checkTrafficOnVpn();
|
checkTrafficOnVpn();
|
||||||
|
|
||||||
expectVpnTransportInfo(mCM.getActiveNetwork());
|
maybeExpectVpnTransportInfo(mCM.getActiveNetwork());
|
||||||
|
|
||||||
// Check that system default network callback has not seen any network changes, even though
|
|
||||||
// the app's default network changed. This needs to be done before testing private
|
|
||||||
// DNS because checkStrictModePrivateDns will set the private DNS server to a nonexistent
|
|
||||||
// name, which will cause validation to fail and cause the default network to switch (e.g.,
|
|
||||||
// from wifi to cellular).
|
|
||||||
assertEquals(defaultNetwork, neverChangeCallback.getFirstNetwork());
|
|
||||||
assertNotEqual(defaultNetwork, mCM.getActiveNetwork());
|
assertNotEqual(defaultNetwork, mCM.getActiveNetwork());
|
||||||
|
if (SdkLevel.isAtLeastS()) {
|
||||||
|
// Check that system default network callback has not seen any network changes, even
|
||||||
|
// though the app's default network changed. This needs to be done before testing
|
||||||
|
// private DNS because checkStrictModePrivateDns will set the private DNS server to
|
||||||
|
// a nonexistent name, which will cause validation to fail and cause the default
|
||||||
|
// network to switch (e.g., from wifi to cellular).
|
||||||
|
assertEquals(defaultNetwork, neverChangeCallback.getFirstNetwork());
|
||||||
neverChangeCallback.assertNeverChanged();
|
neverChangeCallback.assertNeverChanged();
|
||||||
runWithShellPermissionIdentity(
|
runWithShellPermissionIdentity(
|
||||||
() -> mCM.unregisterNetworkCallback(neverChangeCallback),
|
() -> mCM.unregisterNetworkCallback(neverChangeCallback),
|
||||||
NETWORK_SETTINGS);
|
NETWORK_SETTINGS);
|
||||||
|
}
|
||||||
|
|
||||||
checkStrictModePrivateDns();
|
checkStrictModePrivateDns();
|
||||||
|
|
||||||
@@ -799,7 +803,7 @@ public class VpnTest extends InstrumentationTestCase {
|
|||||||
|
|
||||||
checkTrafficOnVpn();
|
checkTrafficOnVpn();
|
||||||
|
|
||||||
expectVpnTransportInfo(mCM.getActiveNetwork());
|
maybeExpectVpnTransportInfo(mCM.getActiveNetwork());
|
||||||
|
|
||||||
checkStrictModePrivateDns();
|
checkStrictModePrivateDns();
|
||||||
}
|
}
|
||||||
@@ -988,7 +992,7 @@ public class VpnTest extends InstrumentationTestCase {
|
|||||||
assertTrue(isNetworkMetered(mNetwork));
|
assertTrue(isNetworkMetered(mNetwork));
|
||||||
assertTrue(mCM.isActiveNetworkMetered());
|
assertTrue(mCM.isActiveNetworkMetered());
|
||||||
|
|
||||||
expectVpnTransportInfo(mCM.getActiveNetwork());
|
maybeExpectVpnTransportInfo(mCM.getActiveNetwork());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testVpnMeterednessWithNullUnderlyingNetwork() throws Exception {
|
public void testVpnMeterednessWithNullUnderlyingNetwork() throws Exception {
|
||||||
@@ -1016,7 +1020,7 @@ public class VpnTest extends InstrumentationTestCase {
|
|||||||
// Meteredness based on VPN capabilities and CM#isActiveNetworkMetered should be in sync.
|
// Meteredness based on VPN capabilities and CM#isActiveNetworkMetered should be in sync.
|
||||||
assertEquals(isNetworkMetered(mNetwork), mCM.isActiveNetworkMetered());
|
assertEquals(isNetworkMetered(mNetwork), mCM.isActiveNetworkMetered());
|
||||||
|
|
||||||
expectVpnTransportInfo(mCM.getActiveNetwork());
|
maybeExpectVpnTransportInfo(mCM.getActiveNetwork());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testVpnMeterednessWithNonNullUnderlyingNetwork() throws Exception {
|
public void testVpnMeterednessWithNonNullUnderlyingNetwork() throws Exception {
|
||||||
@@ -1045,7 +1049,7 @@ public class VpnTest extends InstrumentationTestCase {
|
|||||||
// Meteredness based on VPN capabilities and CM#isActiveNetworkMetered should be in sync.
|
// Meteredness based on VPN capabilities and CM#isActiveNetworkMetered should be in sync.
|
||||||
assertEquals(isNetworkMetered(mNetwork), mCM.isActiveNetworkMetered());
|
assertEquals(isNetworkMetered(mNetwork), mCM.isActiveNetworkMetered());
|
||||||
|
|
||||||
expectVpnTransportInfo(mCM.getActiveNetwork());
|
maybeExpectVpnTransportInfo(mCM.getActiveNetwork());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testAlwaysMeteredVpnWithNullUnderlyingNetwork() throws Exception {
|
public void testAlwaysMeteredVpnWithNullUnderlyingNetwork() throws Exception {
|
||||||
@@ -1071,7 +1075,7 @@ public class VpnTest extends InstrumentationTestCase {
|
|||||||
assertTrue(isNetworkMetered(mNetwork));
|
assertTrue(isNetworkMetered(mNetwork));
|
||||||
assertTrue(mCM.isActiveNetworkMetered());
|
assertTrue(mCM.isActiveNetworkMetered());
|
||||||
|
|
||||||
expectVpnTransportInfo(mCM.getActiveNetwork());
|
maybeExpectVpnTransportInfo(mCM.getActiveNetwork());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testAlwaysMeteredVpnWithNonNullUnderlyingNetwork() throws Exception {
|
public void testAlwaysMeteredVpnWithNonNullUnderlyingNetwork() throws Exception {
|
||||||
@@ -1098,7 +1102,7 @@ public class VpnTest extends InstrumentationTestCase {
|
|||||||
assertTrue(isNetworkMetered(mNetwork));
|
assertTrue(isNetworkMetered(mNetwork));
|
||||||
assertTrue(mCM.isActiveNetworkMetered());
|
assertTrue(mCM.isActiveNetworkMetered());
|
||||||
|
|
||||||
expectVpnTransportInfo(mCM.getActiveNetwork());
|
maybeExpectVpnTransportInfo(mCM.getActiveNetwork());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testB141603906() throws Exception {
|
public void testB141603906() throws Exception {
|
||||||
@@ -1148,7 +1152,8 @@ public class VpnTest extends InstrumentationTestCase {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void expectVpnTransportInfo(Network network) {
|
private void maybeExpectVpnTransportInfo(Network network) {
|
||||||
|
if (!SdkLevel.isAtLeastS()) return;
|
||||||
final NetworkCapabilities vpnNc = mCM.getNetworkCapabilities(network);
|
final NetworkCapabilities vpnNc = mCM.getNetworkCapabilities(network);
|
||||||
assertTrue(vpnNc.hasTransport(TRANSPORT_VPN));
|
assertTrue(vpnNc.hasTransport(TRANSPORT_VPN));
|
||||||
final TransportInfo ti = vpnNc.getTransportInfo();
|
final TransportInfo ti = vpnNc.getTransportInfo();
|
||||||
|
|||||||
Reference in New Issue
Block a user