diff options
26 files changed, 99 insertions, 44 deletions
diff --git a/apishim/29/com/android/networkstack/apishim/api29/CaptivePortalDataShimImpl.java b/apishim/29/com/android/networkstack/apishim/api29/CaptivePortalDataShimImpl.java index 31be29c..681ba1a 100644 --- a/apishim/29/com/android/networkstack/apishim/api29/CaptivePortalDataShimImpl.java +++ b/apishim/29/com/android/networkstack/apishim/api29/CaptivePortalDataShimImpl.java @@ -19,8 +19,8 @@ package com.android.networkstack.apishim.api29; import androidx.annotation.NonNull; import androidx.annotation.VisibleForTesting; -import com.android.networkstack.apishim.CaptivePortalDataShim; -import com.android.networkstack.apishim.UnsupportedApiLevelException; +import com.android.networkstack.apishim.common.CaptivePortalDataShim; +import com.android.networkstack.apishim.common.UnsupportedApiLevelException; import org.json.JSONException; import org.json.JSONObject; diff --git a/apishim/29/com/android/networkstack/apishim/api29/NetworkInformationShimImpl.java b/apishim/29/com/android/networkstack/apishim/api29/NetworkInformationShimImpl.java index 2e42576..1fa4907 100644 --- a/apishim/29/com/android/networkstack/apishim/api29/NetworkInformationShimImpl.java +++ b/apishim/29/com/android/networkstack/apishim/api29/NetworkInformationShimImpl.java @@ -25,8 +25,8 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; -import com.android.networkstack.apishim.CaptivePortalDataShim; -import com.android.networkstack.apishim.NetworkInformationShim; +import com.android.networkstack.apishim.common.CaptivePortalDataShim; +import com.android.networkstack.apishim.common.NetworkInformationShim; import java.net.Inet4Address; diff --git a/apishim/29/com/android/networkstack/apishim/api29/NetworkShimImpl.java b/apishim/29/com/android/networkstack/apishim/api29/NetworkShimImpl.java index 54b2be8..3dfdd21 100644 --- a/apishim/29/com/android/networkstack/apishim/api29/NetworkShimImpl.java +++ b/apishim/29/com/android/networkstack/apishim/api29/NetworkShimImpl.java @@ -20,8 +20,8 @@ import android.net.Network; import androidx.annotation.NonNull; -import com.android.networkstack.apishim.NetworkShim; -import com.android.networkstack.apishim.UnsupportedApiLevelException; +import com.android.networkstack.apishim.common.NetworkShim; +import com.android.networkstack.apishim.common.UnsupportedApiLevelException; /** * Implementation of NetworkShim for API 29. */ diff --git a/apishim/29/com/android/networkstack/apishim/api29/SocketUtilsShimImpl.java b/apishim/29/com/android/networkstack/apishim/api29/SocketUtilsShimImpl.java index be12662..4c8f0be 100644 --- a/apishim/29/com/android/networkstack/apishim/api29/SocketUtilsShimImpl.java +++ b/apishim/29/com/android/networkstack/apishim/api29/SocketUtilsShimImpl.java @@ -20,7 +20,7 @@ import android.net.util.SocketUtils; import androidx.annotation.NonNull; -import com.android.networkstack.apishim.SocketUtilsShim; +import com.android.networkstack.apishim.common.SocketUtilsShim; import java.net.SocketAddress; diff --git a/apishim/30/com/android/networkstack/apishim/CaptivePortalDataShimImpl.java b/apishim/30/com/android/networkstack/apishim/CaptivePortalDataShimImpl.java index bee43b4..dfe8833 100644 --- a/apishim/30/com/android/networkstack/apishim/CaptivePortalDataShimImpl.java +++ b/apishim/30/com/android/networkstack/apishim/CaptivePortalDataShimImpl.java @@ -24,6 +24,10 @@ import android.os.RemoteException; import androidx.annotation.NonNull; +import com.android.networkstack.apishim.common.CaptivePortalDataShim; +import com.android.networkstack.apishim.common.ShimUtils; +import com.android.networkstack.apishim.common.UnsupportedApiLevelException; + import org.json.JSONException; import org.json.JSONObject; diff --git a/apishim/30/com/android/networkstack/apishim/NetworkInformationShimImpl.java b/apishim/30/com/android/networkstack/apishim/NetworkInformationShimImpl.java index 029a687..c8c1949 100644 --- a/apishim/30/com/android/networkstack/apishim/NetworkInformationShimImpl.java +++ b/apishim/30/com/android/networkstack/apishim/NetworkInformationShimImpl.java @@ -26,6 +26,10 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; +import com.android.networkstack.apishim.common.CaptivePortalDataShim; +import com.android.networkstack.apishim.common.NetworkInformationShim; +import com.android.networkstack.apishim.common.ShimUtils; + import java.net.Inet4Address; /** diff --git a/apishim/30/com/android/networkstack/apishim/NetworkShimImpl.java b/apishim/30/com/android/networkstack/apishim/NetworkShimImpl.java index 8c37852..edb1cd5 100644 --- a/apishim/30/com/android/networkstack/apishim/NetworkShimImpl.java +++ b/apishim/30/com/android/networkstack/apishim/NetworkShimImpl.java @@ -21,6 +21,9 @@ import android.os.Build; import androidx.annotation.NonNull; +import com.android.networkstack.apishim.common.NetworkShim; +import com.android.networkstack.apishim.common.ShimUtils; + /** * Implementation of {@link NetworkShim} for API 30. */ diff --git a/apishim/30/com/android/networkstack/apishim/SocketUtilsShimImpl.java b/apishim/30/com/android/networkstack/apishim/SocketUtilsShimImpl.java index 748878a..903de79 100644 --- a/apishim/30/com/android/networkstack/apishim/SocketUtilsShimImpl.java +++ b/apishim/30/com/android/networkstack/apishim/SocketUtilsShimImpl.java @@ -21,6 +21,9 @@ import android.os.Build; import androidx.annotation.NonNull; +import com.android.networkstack.apishim.common.ShimUtils; +import com.android.networkstack.apishim.common.SocketUtilsShim; + import java.net.SocketAddress; /** diff --git a/apishim/common/com/android/networkstack/apishim/CaptivePortalDataShim.java b/apishim/common/com/android/networkstack/apishim/common/CaptivePortalDataShim.java index 9718ced..fe99c13 100644 --- a/apishim/common/com/android/networkstack/apishim/CaptivePortalDataShim.java +++ b/apishim/common/com/android/networkstack/apishim/common/CaptivePortalDataShim.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.android.networkstack.apishim; +package com.android.networkstack.apishim.common; import android.net.INetworkMonitorCallbacks; import android.net.Uri; diff --git a/apishim/common/com/android/networkstack/apishim/NetworkInformationShim.java b/apishim/common/com/android/networkstack/apishim/common/NetworkInformationShim.java index 7be73b2..ee19759 100644 --- a/apishim/common/com/android/networkstack/apishim/NetworkInformationShim.java +++ b/apishim/common/com/android/networkstack/apishim/common/NetworkInformationShim.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.android.networkstack.apishim; +package com.android.networkstack.apishim.common; import android.net.IpPrefix; import android.net.LinkProperties; diff --git a/apishim/common/com/android/networkstack/apishim/NetworkShim.java b/apishim/common/com/android/networkstack/apishim/common/NetworkShim.java index fcc66be..9ae2da9 100644 --- a/apishim/common/com/android/networkstack/apishim/NetworkShim.java +++ b/apishim/common/com/android/networkstack/apishim/common/NetworkShim.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.android.networkstack.apishim; +package com.android.networkstack.apishim.common; /** * Interface used to access API methods in {@link android.net.Network}, with appropriate fallbacks diff --git a/apishim/common/com/android/networkstack/apishim/ShimUtils.java b/apishim/common/com/android/networkstack/apishim/common/ShimUtils.java index a9afe51..d78cd0c 100644 --- a/apishim/common/com/android/networkstack/apishim/ShimUtils.java +++ b/apishim/common/com/android/networkstack/apishim/common/ShimUtils.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.android.networkstack.apishim; +package com.android.networkstack.apishim.common; import android.os.Build; diff --git a/apishim/common/com/android/networkstack/apishim/SocketUtilsShim.java b/apishim/common/com/android/networkstack/apishim/common/SocketUtilsShim.java index 33cb5f8..a1a35c5 100644 --- a/apishim/common/com/android/networkstack/apishim/SocketUtilsShim.java +++ b/apishim/common/com/android/networkstack/apishim/common/SocketUtilsShim.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.android.networkstack.apishim; +package com.android.networkstack.apishim.common; import androidx.annotation.NonNull; diff --git a/apishim/common/com/android/networkstack/apishim/UnsupportedApiLevelException.java b/apishim/common/com/android/networkstack/apishim/common/UnsupportedApiLevelException.java index f302da7..05a8659 100644 --- a/apishim/common/com/android/networkstack/apishim/UnsupportedApiLevelException.java +++ b/apishim/common/com/android/networkstack/apishim/common/UnsupportedApiLevelException.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.android.networkstack.apishim; +package com.android.networkstack.apishim.common; import androidx.annotation.Nullable; diff --git a/src/android/net/captiveportal/CapportApiProbeResult.java b/src/android/net/captiveportal/CapportApiProbeResult.java index 3ef07ce..f693bed 100644 --- a/src/android/net/captiveportal/CapportApiProbeResult.java +++ b/src/android/net/captiveportal/CapportApiProbeResult.java @@ -18,7 +18,7 @@ package android.net.captiveportal; import androidx.annotation.NonNull; import androidx.annotation.Nullable; -import com.android.networkstack.apishim.CaptivePortalDataShim; +import com.android.networkstack.apishim.common.CaptivePortalDataShim; /** * Captive portal probe detection result including capport API detection result. diff --git a/src/android/net/dhcp/DhcpPacket.java b/src/android/net/dhcp/DhcpPacket.java index a4dbda1..d022973 100644 --- a/src/android/net/dhcp/DhcpPacket.java +++ b/src/android/net/dhcp/DhcpPacket.java @@ -31,7 +31,7 @@ import android.text.TextUtils; import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; -import com.android.networkstack.apishim.ShimUtils; +import com.android.networkstack.apishim.common.ShimUtils; import java.io.UnsupportedEncodingException; import java.net.Inet4Address; diff --git a/src/android/net/ip/IpClient.java b/src/android/net/ip/IpClient.java index c6373d7..2079b2b 100644 --- a/src/android/net/ip/IpClient.java +++ b/src/android/net/ip/IpClient.java @@ -77,9 +77,9 @@ import com.android.internal.util.MessageUtils; import com.android.internal.util.State; import com.android.internal.util.StateMachine; import com.android.internal.util.WakeupMessage; -import com.android.networkstack.apishim.NetworkInformationShim; import com.android.networkstack.apishim.NetworkInformationShimImpl; -import com.android.networkstack.apishim.ShimUtils; +import com.android.networkstack.apishim.common.NetworkInformationShim; +import com.android.networkstack.apishim.common.ShimUtils; import com.android.server.NetworkObserverRegistry; import com.android.server.NetworkStackService.NetworkStackServiceManager; diff --git a/src/android/net/ip/IpClientLinkObserver.java b/src/android/net/ip/IpClientLinkObserver.java index ee7f18b..dcbca94 100644 --- a/src/android/net/ip/IpClientLinkObserver.java +++ b/src/android/net/ip/IpClientLinkObserver.java @@ -37,8 +37,8 @@ import android.os.Handler; import android.system.OsConstants; import android.util.Log; -import com.android.networkstack.apishim.NetworkInformationShim; import com.android.networkstack.apishim.NetworkInformationShimImpl; +import com.android.networkstack.apishim.common.NetworkInformationShim; import com.android.server.NetworkObserver; import java.net.InetAddress; diff --git a/src/com/android/networkstack/NetworkStackNotifier.java b/src/com/android/networkstack/NetworkStackNotifier.java index 1e97617..a330c70 100644 --- a/src/com/android/networkstack/NetworkStackNotifier.java +++ b/src/com/android/networkstack/NetworkStackNotifier.java @@ -40,9 +40,9 @@ import androidx.annotation.Nullable; import androidx.annotation.StringRes; import androidx.annotation.VisibleForTesting; -import com.android.networkstack.apishim.CaptivePortalDataShim; -import com.android.networkstack.apishim.NetworkInformationShim; import com.android.networkstack.apishim.NetworkInformationShimImpl; +import com.android.networkstack.apishim.common.CaptivePortalDataShim; +import com.android.networkstack.apishim.common.NetworkInformationShim; import java.util.Hashtable; import java.util.function.Consumer; diff --git a/src/com/android/networkstack/netlink/TcpSocketTracker.java b/src/com/android/networkstack/netlink/TcpSocketTracker.java index f660f81..ef33f13 100644 --- a/src/com/android/networkstack/netlink/TcpSocketTracker.java +++ b/src/com/android/networkstack/netlink/TcpSocketTracker.java @@ -49,6 +49,7 @@ import android.net.netlink.StructNlMsgHdr; import android.net.util.NetworkStackUtils; import android.net.util.SocketUtils; import android.os.AsyncTask; +import android.os.Build; import android.os.IBinder; import android.os.RemoteException; import android.os.SystemClock; @@ -65,7 +66,8 @@ import androidx.annotation.Nullable; import com.android.internal.annotations.VisibleForTesting; import com.android.networkstack.apishim.NetworkShimImpl; -import com.android.networkstack.apishim.UnsupportedApiLevelException; +import com.android.networkstack.apishim.common.ShimUtils; +import com.android.networkstack.apishim.common.UnsupportedApiLevelException; import java.io.FileDescriptor; import java.io.InterruptedIOException; @@ -523,11 +525,9 @@ public class TcpSocketTracker { @VisibleForTesting public static class Dependencies { private final Context mContext; - private final boolean mIsTcpInfoParsingSupported; - public Dependencies(final Context context, final boolean tcpSupport) { + public Dependencies(final Context context) { mContext = context; - mIsTcpInfoParsingSupported = tcpSupport; } /** @@ -578,7 +578,7 @@ public class TcpSocketTracker { public boolean isTcpInfoParsingSupported() { // Request tcp info from NetworkStack directly needs extra SELinux permission added // after Q release. - return mIsTcpInfoParsingSupported; + return ShimUtils.isReleaseOrDevelopmentApiAbove(Build.VERSION_CODES.Q); } /** diff --git a/src/com/android/server/NetworkStackService.java b/src/com/android/server/NetworkStackService.java index 3d57134..5de5837 100644 --- a/src/com/android/server/NetworkStackService.java +++ b/src/com/android/server/NetworkStackService.java @@ -58,7 +58,7 @@ import androidx.annotation.VisibleForTesting; import com.android.internal.annotations.GuardedBy; import com.android.internal.util.IndentingPrintWriter; import com.android.networkstack.NetworkStackNotifier; -import com.android.networkstack.apishim.ShimUtils; +import com.android.networkstack.apishim.common.ShimUtils; import com.android.server.connectivity.NetworkMonitor; import com.android.server.connectivity.ipmemorystore.IpMemoryStoreService; import com.android.server.util.PermissionUtil; diff --git a/src/com/android/server/connectivity/NetworkMonitor.java b/src/com/android/server/connectivity/NetworkMonitor.java index 6d9cab4..7fb6761 100755 --- a/src/com/android/server/connectivity/NetworkMonitor.java +++ b/src/com/android/server/connectivity/NetworkMonitor.java @@ -158,11 +158,11 @@ import com.android.internal.util.StateMachine; import com.android.internal.util.TrafficStatsConstants; import com.android.networkstack.NetworkStackNotifier; import com.android.networkstack.R; -import com.android.networkstack.apishim.CaptivePortalDataShim; import com.android.networkstack.apishim.CaptivePortalDataShimImpl; import com.android.networkstack.apishim.NetworkInformationShimImpl; -import com.android.networkstack.apishim.ShimUtils; -import com.android.networkstack.apishim.UnsupportedApiLevelException; +import com.android.networkstack.apishim.common.CaptivePortalDataShim; +import com.android.networkstack.apishim.common.ShimUtils; +import com.android.networkstack.apishim.common.UnsupportedApiLevelException; import com.android.networkstack.metrics.DataStallDetectionStats; import com.android.networkstack.metrics.DataStallStatsUtils; import com.android.networkstack.netlink.TcpSocketTracker; @@ -3374,8 +3374,7 @@ public class NetworkMonitor extends StateMachine { CONFIG_DATA_STALL_EVALUATION_TYPE, DEFAULT_DATA_STALL_EVALUATION_TYPES) & DATA_STALL_EVALUATION_TYPE_TCP) != 0) - ? new TcpSocketTracker(new TcpSocketTracker.Dependencies(context, - ShimUtils.isReleaseOrDevelopmentApiAbove(Build.VERSION_CODES.Q)), network) + ? new TcpSocketTracker(new TcpSocketTracker.Dependencies(context), network) : null; } diff --git a/tests/integration/src/android/net/ip/IpClientIntegrationTest.java b/tests/integration/src/android/net/ip/IpClientIntegrationTest.java index 5625dd2..b4efcf9 100644 --- a/tests/integration/src/android/net/ip/IpClientIntegrationTest.java +++ b/tests/integration/src/android/net/ip/IpClientIntegrationTest.java @@ -134,7 +134,7 @@ import androidx.test.runner.AndroidJUnit4; import com.android.internal.util.StateMachine; import com.android.networkstack.apishim.CaptivePortalDataShimImpl; import com.android.networkstack.apishim.ConstantsShim; -import com.android.networkstack.apishim.ShimUtils; +import com.android.networkstack.apishim.common.ShimUtils; import com.android.networkstack.arp.ArpPacket; import com.android.server.NetworkObserver; import com.android.server.NetworkObserverRegistry; diff --git a/tests/unit/src/android/net/netlink/InetDiagSocketTest.java b/tests/unit/src/android/net/netlink/InetDiagSocketTest.java index 702de47..4879144 100644 --- a/tests/unit/src/android/net/netlink/InetDiagSocketTest.java +++ b/tests/unit/src/android/net/netlink/InetDiagSocketTest.java @@ -36,7 +36,6 @@ import static org.junit.Assume.assumeTrue; import android.app.Instrumentation; import android.content.Context; import android.net.ConnectivityManager; -import android.net.netlink.StructNlMsgHdr; import android.os.Process; import android.system.Os; @@ -44,7 +43,7 @@ import androidx.test.InstrumentationRegistry; import androidx.test.filters.SmallTest; import androidx.test.runner.AndroidJUnit4; -import com.android.networkstack.apishim.ShimUtils; +import com.android.networkstack.apishim.common.ShimUtils; import libcore.util.HexEncoding; diff --git a/tests/unit/src/com/android/networkstack/netlink/TcpSocketTrackerTest.java b/tests/unit/src/com/android/networkstack/netlink/TcpSocketTrackerTest.java index 6a09f12..a884f7e 100644 --- a/tests/unit/src/com/android/networkstack/netlink/TcpSocketTrackerTest.java +++ b/tests/unit/src/com/android/networkstack/netlink/TcpSocketTrackerTest.java @@ -22,6 +22,8 @@ import static android.net.util.DataStallUtils.DEFAULT_TCP_PACKETS_FAIL_PERCENTAG import static android.provider.DeviceConfig.NAMESPACE_CONNECTIVITY; import static android.system.OsConstants.AF_INET; +import static androidx.test.platform.app.InstrumentationRegistry.getInstrumentation; + import static com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn; import static com.android.dx.mockito.inline.extended.ExtendedMockito.mockitoSession; @@ -29,28 +31,37 @@ import static junit.framework.Assert.assertEquals; import static junit.framework.Assert.assertFalse; import static junit.framework.Assert.assertTrue; +import static org.junit.Assume.assumeTrue; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.any; +import static org.mockito.Mockito.atLeastOnce; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.verifyNoMoreInteractions; import static org.mockito.Mockito.when; import android.net.INetd; import android.net.MarkMaskParcel; import android.net.Network; import android.net.netlink.StructNlMsgHdr; +import android.os.Build; import android.util.Log; import android.util.Log.TerribleFailureHandler; import androidx.test.filters.SmallTest; import androidx.test.runner.AndroidJUnit4; -import com.android.networkstack.apishim.NetworkShim; +import com.android.networkstack.apishim.ConstantsShim; import com.android.networkstack.apishim.NetworkShimImpl; +import com.android.testutils.DevSdkIgnoreRule; +import com.android.testutils.DevSdkIgnoreRule.IgnoreAfter; +import com.android.testutils.DevSdkIgnoreRule.IgnoreUpTo; import libcore.util.HexEncoding; import org.junit.After; import org.junit.Before; +import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; @@ -197,12 +208,15 @@ public class TcpSocketTrackerTest { private static final int NETID_MASK = 0xffff; @Mock private TcpSocketTracker.Dependencies mDependencies; @Mock private FileDescriptor mMockFd; - @Mock private Network mNetwork = new Network(TEST_NETID1); @Mock private INetd mNetd; + private final Network mNetwork = new Network(TEST_NETID1); + private final Network mOtherNetwork = new Network(TEST_NETID2); private MockitoSession mSession; - @Mock NetworkShim mNetworkShim; private TerribleFailureHandler mOldWtfHandler; + @Rule + public final DevSdkIgnoreRule mIgnoreRule = new DevSdkIgnoreRule(); + @Before public void setUp() throws Exception { MockitoAnnotations.initMocks(this); @@ -222,8 +236,6 @@ public class TcpSocketTrackerTest { .strictness(Strictness.WARN) .startMocking(); - doReturn(mNetworkShim).when(() -> NetworkShimImpl.newInstance(mNetwork)); - when(mNetworkShim.getNetId()).thenReturn(TEST_NETID1); when(mNetd.getFwmarkForNetwork(eq(TEST_NETID1))) .thenReturn(makeMarkMaskParcel(NETID_MASK, TEST_NETID1_FWMARK)); } @@ -275,8 +287,10 @@ public class TcpSocketTrackerTest { assertFalse(TcpSocketTracker.enoughBytesRemainForValidNlMsg(buffer)); } - @Test + @Test @IgnoreUpTo(Build.VERSION_CODES.Q) // TCP info parsing is not supported on Q public void testPollSocketsInfo() throws Exception { + // This test requires shims that provide API 30 access + assumeTrue(ConstantsShim.VERSION >= 30); when(mDependencies.isTcpInfoParsingSupported()).thenReturn(false); final TcpSocketTracker tst = new TcpSocketTracker(mDependencies, mNetwork); assertFalse(tst.pollSocketsInfo()); @@ -314,6 +328,34 @@ public class TcpSocketTrackerTest { assertTrue(tst.isDataStallSuspected()); } + @Test + public void testTcpInfoParsingUnsupported() { + doReturn(false).when(mDependencies).isTcpInfoParsingSupported(); + final TcpSocketTracker tst = new TcpSocketTracker(mDependencies, mNetwork); + verify(mDependencies).getNetd(); + + assertFalse(tst.pollSocketsInfo()); + assertEquals(-1, tst.getLatestPacketFailPercentage()); + assertEquals(-1, tst.getLatestReceivedCount()); + assertEquals(-1, tst.getSentSinceLastRecv()); + assertFalse(tst.isDataStallSuspected()); + + verify(mDependencies, atLeastOnce()).isTcpInfoParsingSupported(); + verifyNoMoreInteractions(mDependencies); + } + + @Test @IgnoreAfter(Build.VERSION_CODES.Q) + public void testTcpInfoParsingNotSupportedOnQ() { + assertFalse(new TcpSocketTracker.Dependencies(getInstrumentation().getContext()) + .isTcpInfoParsingSupported()); + } + + @Test @IgnoreUpTo(Build.VERSION_CODES.Q) + public void testTcpInfoParsingSupportedFromR() { + assertTrue(new TcpSocketTracker.Dependencies(getInstrumentation().getContext()) + .isTcpInfoParsingSupported()); + } + private static final String BAD_DIAG_MSG_HEX = // struct nlmsghdr. "00000058" + // length = 1476395008 @@ -341,8 +383,10 @@ public class TcpSocketTrackerTest { private static final byte[] BAD_SOCK_DIAG_MSG_BYTES = HexEncoding.decode(BAD_DIAG_MSG_HEX.toCharArray(), false); - @Test + @Test @IgnoreUpTo(Build.VERSION_CODES.Q) // TCP info parsing is not supported on Q public void testPollSocketsInfo_BadFormat() throws Exception { + // This test requires shims that provide API 30 access + assumeTrue(ConstantsShim.VERSION >= 30); final TcpSocketTracker tst = new TcpSocketTracker(mDependencies, mNetwork); ByteBuffer tcpBuffer = getByteBuffer(TEST_RESPONSE_BYTES); @@ -362,10 +406,9 @@ public class TcpSocketTrackerTest { @Test public void testUnMatchNetwork() throws Exception { - when(mNetworkShim.getNetId()).thenReturn(TEST_NETID2); when(mNetd.getFwmarkForNetwork(eq(TEST_NETID2))) .thenReturn(makeMarkMaskParcel(NETID_MASK, TEST_NETID2_FWMARK)); - final TcpSocketTracker tst = new TcpSocketTracker(mDependencies, mNetwork); + final TcpSocketTracker tst = new TcpSocketTracker(mDependencies, mOtherNetwork); final ByteBuffer tcpBuffer = getByteBuffer(TEST_RESPONSE_BYTES); when(mDependencies.recvMessage(any())).thenReturn(tcpBuffer); assertTrue(tst.pollSocketsInfo()); diff --git a/tests/unit/src/com/android/server/connectivity/NetworkMonitorTest.java b/tests/unit/src/com/android/server/connectivity/NetworkMonitorTest.java index 57a53b4..e25c2e8 100644 --- a/tests/unit/src/com/android/server/connectivity/NetworkMonitorTest.java +++ b/tests/unit/src/com/android/server/connectivity/NetworkMonitorTest.java @@ -137,7 +137,7 @@ import com.android.networkstack.NetworkStackNotifier; import com.android.networkstack.R; import com.android.networkstack.apishim.CaptivePortalDataShimImpl; import com.android.networkstack.apishim.ConstantsShim; -import com.android.networkstack.apishim.ShimUtils; +import com.android.networkstack.apishim.common.ShimUtils; import com.android.networkstack.metrics.DataStallDetectionStats; import com.android.networkstack.metrics.DataStallStatsUtils; import com.android.networkstack.netlink.TcpSocketTracker; |