From 68ff996be1e0901adb64130f26ad2e72d85e9043 Mon Sep 17 00:00:00 2001 From: Chiachang Wang Date: Thu, 8 Apr 2021 19:42:30 +0800 Subject: [PATCH] Resolve hidden connectivity methods dependency This commit resolves the dependency under batterystatstests, servicestests and coretests with hidden connectivity module codes. Because of connectivity modularization work, the hidden connectivity methods are not accessible outside modules. Update tests with alternative ways. Bug: 182859030 Test: atest Change-Id: I8294ae4167ee5f95137e0be0f7464429ed3f3322 --- .../ConnectivitySetupRule.java | 4 +- .../src/android/net/SntpClientTest.java | 8 +++- .../android/server/net/IpConfigStoreTest.java | 41 +++++++++++++------ .../net/NetworkPolicyManagerServiceTest.java | 30 +++++++------- 4 files changed, 51 insertions(+), 32 deletions(-) diff --git a/core/tests/batterystatstests/BatteryStatsLoadTests/src/com/android/frameworks/core/batterystatsloadtests/ConnectivitySetupRule.java b/core/tests/batterystatstests/BatteryStatsLoadTests/src/com/android/frameworks/core/batterystatsloadtests/ConnectivitySetupRule.java index 1afc22b7406d1..14d740d2e8c43 100644 --- a/core/tests/batterystatstests/BatteryStatsLoadTests/src/com/android/frameworks/core/batterystatsloadtests/ConnectivitySetupRule.java +++ b/core/tests/batterystatstests/BatteryStatsLoadTests/src/com/android/frameworks/core/batterystatsloadtests/ConnectivitySetupRule.java @@ -21,7 +21,6 @@ import static org.junit.Assert.assertEquals; import android.app.Instrumentation; import android.content.Context; import android.net.ConnectivityManager; -import android.net.LinkProperties; import android.net.Network; import android.net.NetworkCapabilities; import android.net.NetworkRequest; @@ -128,8 +127,7 @@ public class ConnectivitySetupRule implements TestRule { } @Override - public void onAvailable(Network network, NetworkCapabilities networkCapabilities, - LinkProperties linkProperties, boolean blocked) { + public void onAvailable(Network network) { checkActiveNetwork(); } diff --git a/core/tests/coretests/src/android/net/SntpClientTest.java b/core/tests/coretests/src/android/net/SntpClientTest.java index 87edb6e014253..bf9978c2c4472 100644 --- a/core/tests/coretests/src/android/net/SntpClientTest.java +++ b/core/tests/coretests/src/android/net/SntpClientTest.java @@ -20,6 +20,9 @@ import static junit.framework.Assert.assertEquals; import static junit.framework.Assert.assertFalse; import static junit.framework.Assert.assertTrue; +import static org.mockito.Mockito.CALLS_REAL_METHODS; +import static org.mockito.Mockito.mock; + import android.util.Log; import androidx.test.runner.AndroidJUnit4; @@ -73,8 +76,9 @@ public class SntpClientTest { @Before public void setUp() throws Exception { - // NETID_UNSET allows the test to run, with a loopback server, even w/o external networking - mNetwork = new Network(ConnectivityManager.NETID_UNSET); + // A mock network has NETID_UNSET, which allows the test to run, with a loopback server, + // even w/o external networking. + mNetwork = mock(Network.class, CALLS_REAL_METHODS); mServer = new SntpTestServer(); mClient = new SntpClient(); } diff --git a/services/tests/servicestests/src/com/android/server/net/IpConfigStoreTest.java b/services/tests/servicestests/src/com/android/server/net/IpConfigStoreTest.java index 401d6e30df13e..2f771260ac1b6 100644 --- a/services/tests/servicestests/src/com/android/server/net/IpConfigStoreTest.java +++ b/services/tests/servicestests/src/com/android/server/net/IpConfigStoreTest.java @@ -39,6 +39,8 @@ import java.io.ByteArrayOutputStream; import java.io.DataOutputStream; import java.io.IOException; import java.io.InputStream; +import java.net.InetAddress; +import java.util.ArrayList; import java.util.Arrays; /** @@ -53,8 +55,8 @@ public class IpConfigStoreTest { ByteArrayOutputStream byteStream = new ByteArrayOutputStream(); DataOutputStream outputStream = new DataOutputStream(byteStream); - IpConfiguration expectedConfig = new IpConfiguration(IpAssignment.DHCP, - ProxySettings.NONE, null, null); + final IpConfiguration expectedConfig = + newIpConfiguration(IpAssignment.DHCP, ProxySettings.NONE, null, null); // Emulate writing to old format. writeDhcpConfigV2(outputStream, KEY_CONFIG, expectedConfig); @@ -78,18 +80,23 @@ public class IpConfigStoreTest { final String DNS_IP_ADDR_1 = "1.2.3.4"; final String DNS_IP_ADDR_2 = "5.6.7.8"; - StaticIpConfiguration staticIpConfiguration = new StaticIpConfiguration(); - staticIpConfiguration.ipAddress = new LinkAddress(IP_ADDR_1); - staticIpConfiguration.dnsServers.add(InetAddresses.parseNumericAddress(DNS_IP_ADDR_1)); - staticIpConfiguration.dnsServers.add(InetAddresses.parseNumericAddress(DNS_IP_ADDR_2)); + final ArrayList dnsServers = new ArrayList<>(); + dnsServers.add(InetAddresses.parseNumericAddress(DNS_IP_ADDR_1)); + dnsServers.add(InetAddresses.parseNumericAddress(DNS_IP_ADDR_2)); + final StaticIpConfiguration staticIpConfiguration1 = new StaticIpConfiguration.Builder() + .setIpAddress(new LinkAddress(IP_ADDR_1)) + .setDnsServers(dnsServers).build(); + final StaticIpConfiguration staticIpConfiguration2 = new StaticIpConfiguration.Builder() + .setIpAddress(new LinkAddress(IP_ADDR_2)) + .setDnsServers(dnsServers).build(); ProxyInfo proxyInfo = ProxyInfo.buildDirectProxy("10.10.10.10", 88, Arrays.asList("host1", "host2")); - IpConfiguration expectedConfig1 = new IpConfiguration(IpAssignment.STATIC, - ProxySettings.STATIC, staticIpConfiguration, proxyInfo); - IpConfiguration expectedConfig2 = new IpConfiguration(expectedConfig1); - expectedConfig2.getStaticIpConfiguration().ipAddress = new LinkAddress(IP_ADDR_2); + IpConfiguration expectedConfig1 = newIpConfiguration(IpAssignment.STATIC, + ProxySettings.STATIC, staticIpConfiguration1, proxyInfo); + IpConfiguration expectedConfig2 = newIpConfiguration(IpAssignment.STATIC, + ProxySettings.STATIC, staticIpConfiguration2, proxyInfo); ArrayMap expectedNetworks = new ArrayMap<>(); expectedNetworks.put(IFACE_1, expectedConfig1); @@ -107,14 +114,24 @@ public class IpConfigStoreTest { assertEquals(expectedNetworks.get(IFACE_2), actualNetworks.get(IFACE_2)); } + private IpConfiguration newIpConfiguration(IpAssignment ipAssignment, + ProxySettings proxySettings, StaticIpConfiguration staticIpConfig, ProxyInfo info) { + final IpConfiguration config = new IpConfiguration(); + config.setIpAssignment(ipAssignment); + config.setProxySettings(proxySettings); + config.setStaticIpConfiguration(staticIpConfig); + config.setHttpProxy(info); + return config; + } + // This is simplified snapshot of code that was used to store values in V2 format (key as int). private static void writeDhcpConfigV2(DataOutputStream out, int configKey, IpConfiguration config) throws IOException { out.writeInt(2); // VERSION 2 - switch (config.ipAssignment) { + switch (config.getIpAssignment()) { case DHCP: out.writeUTF("ipAssignment"); - out.writeUTF(config.ipAssignment.toString()); + out.writeUTF(config.getIpAssignment().toString()); break; default: fail("Not supported in test environment"); diff --git a/services/tests/servicestests/src/com/android/server/net/NetworkPolicyManagerServiceTest.java b/services/tests/servicestests/src/com/android/server/net/NetworkPolicyManagerServiceTest.java index e9e24866f35c5..352832b34c968 100644 --- a/services/tests/servicestests/src/com/android/server/net/NetworkPolicyManagerServiceTest.java +++ b/services/tests/servicestests/src/com/android/server/net/NetworkPolicyManagerServiceTest.java @@ -87,6 +87,7 @@ import static org.mockito.ArgumentMatchers.anyLong; import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.ArgumentMatchers.isA; +import static org.mockito.Mockito.CALLS_REAL_METHODS; import static org.mockito.Mockito.atLeast; import static org.mockito.Mockito.atLeastOnce; import static org.mockito.Mockito.clearInvocations; @@ -226,7 +227,8 @@ public class NetworkPolicyManagerServiceTest { private static final String TEST_SSID = "AndroidAP"; private static final String TEST_IMSI = "310210"; private static final int TEST_SUB_ID = 42; - private static final int TEST_NET_ID = 24; + private static final Network TEST_NETWORK = mock(Network.class, CALLS_REAL_METHODS); + private static NetworkTemplate sTemplateWifi = buildTemplateWifi(TEST_SSID); private static NetworkTemplate sTemplateMobileAll = buildTemplateMobileAll(TEST_IMSI); @@ -1637,7 +1639,7 @@ public class NetworkPolicyManagerServiceTest { @Test public void testOpportunisticQuota() throws Exception { - final Network net = new Network(TEST_NET_ID); + final Network net = TEST_NETWORK; final NetworkPolicyManagerInternal internal = LocalServices .getService(NetworkPolicyManagerInternal.class); @@ -1759,11 +1761,10 @@ public class NetworkPolicyManagerServiceTest { assertNotNull(callback); expectNetworkStateSnapshot(true /* roaming */); callback.onCapabilitiesChanged( - new Network(TEST_NET_ID), - buildNetworkCapabilities(TEST_SUB_ID, true /* roaming */)); + TEST_NETWORK, buildNetworkCapabilities(TEST_SUB_ID, true /* roaming */)); assertEquals(0, internal.getSubscriptionOpportunisticQuota( - new Network(TEST_NET_ID), NetworkPolicyManagerInternal.QUOTA_TYPE_MULTIPATH)); + TEST_NETWORK, NetworkPolicyManagerInternal.QUOTA_TYPE_MULTIPATH)); } } @@ -2013,14 +2014,14 @@ public class NetworkPolicyManagerServiceTest { } private NetworkCapabilities buildNetworkCapabilities(int subId, boolean roaming) { - final NetworkCapabilities nc = new NetworkCapabilities(); - nc.addTransportType(TRANSPORT_CELLULAR); + final NetworkCapabilities.Builder builder = new NetworkCapabilities.Builder(); + builder.addTransportType(TRANSPORT_CELLULAR); if (!roaming) { - nc.addCapability(NET_CAPABILITY_NOT_ROAMING); + builder.addCapability(NET_CAPABILITY_NOT_ROAMING); } - nc.setNetworkSpecifier(new TelephonyNetworkSpecifier.Builder() + builder.setNetworkSpecifier(new TelephonyNetworkSpecifier.Builder() .setSubscriptionId(subId).build()); - return nc; + return builder.build(); } private NetworkPolicy buildDefaultFakeMobilePolicy() { @@ -2061,10 +2062,9 @@ public class NetworkPolicyManagerServiceTest { private static NetworkStateSnapshot buildWifi() { final LinkProperties prop = new LinkProperties(); prop.setInterfaceName(TEST_IFACE); - final NetworkCapabilities networkCapabilities = new NetworkCapabilities(); - networkCapabilities.addTransportType(TRANSPORT_WIFI); - networkCapabilities.setSSID(TEST_SSID); - return new NetworkStateSnapshot(new Network(TEST_NET_ID), networkCapabilities, prop, + final NetworkCapabilities networkCapabilities = new NetworkCapabilities.Builder() + .addTransportType(TRANSPORT_WIFI).setSsid(TEST_SSID).build(); + return new NetworkStateSnapshot(TEST_NETWORK, networkCapabilities, prop, null /*subscriberId*/, TYPE_WIFI); } @@ -2086,7 +2086,7 @@ public class NetworkPolicyManagerServiceTest { when(mCarrierConfigManager.getConfigForSubId(eq(TEST_SUB_ID))) .thenReturn(mCarrierConfig); List snapshots = List.of(new NetworkStateSnapshot( - new Network(TEST_NET_ID), + TEST_NETWORK, buildNetworkCapabilities(TEST_SUB_ID, roaming), buildLinkProperties(TEST_IFACE), TEST_IMSI, TYPE_MOBILE)); when(mConnManager.getAllNetworkStateSnapshot()).thenReturn(snapshots);