From 4d041d5caa3eefa35276dfbd5b26607b3e8a1e6b Mon Sep 17 00:00:00 2001 From: "soma, kawata" Date: Tue, 23 Oct 2018 21:10:02 +0900 Subject: [PATCH] Add skip464xlat test in Nat464XlatTest Bug: 69949375 Test: Nat464XlatTest, ConnectivityServiceTest Change-Id: Ibc66d9c2dc8e3d1f118e5f6940e7b3fd4646efd1 --- .../android/server/connectivity/Nat464Xlat.java | 2 +- .../server/connectivity/NetworkAgentInfo.java | 4 ++++ .../server/connectivity/Nat464XlatTest.java | 16 +++++++++++++--- 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/services/core/java/com/android/server/connectivity/Nat464Xlat.java b/services/core/java/com/android/server/connectivity/Nat464Xlat.java index f96f6e87a9..6596d27d02 100644 --- a/services/core/java/com/android/server/connectivity/Nat464Xlat.java +++ b/services/core/java/com/android/server/connectivity/Nat464Xlat.java @@ -94,7 +94,7 @@ public class Nat464Xlat extends BaseNetworkObserver { final boolean hasIPv4Address = (nai.linkProperties != null) && nai.linkProperties.hasIPv4Address(); final boolean skip464xlat = - (nai.networkMisc != null) && nai.networkMisc.skip464xlat; + (nai.netMisc() != null) && nai.netMisc().skip464xlat; return supported && connected && !hasIPv4Address && !skip464xlat; } diff --git a/services/core/java/com/android/server/connectivity/NetworkAgentInfo.java b/services/core/java/com/android/server/connectivity/NetworkAgentInfo.java index 505480ea53..262184b0b1 100644 --- a/services/core/java/com/android/server/connectivity/NetworkAgentInfo.java +++ b/services/core/java/com/android/server/connectivity/NetworkAgentInfo.java @@ -266,6 +266,10 @@ public class NetworkAgentInfo implements Comparable { return mConnService; } + public NetworkMisc netMisc() { + return networkMisc; + } + public Handler handler() { return mHandler; } diff --git a/tests/net/java/com/android/server/connectivity/Nat464XlatTest.java b/tests/net/java/com/android/server/connectivity/Nat464XlatTest.java index dfe31bde4e..bf42412d68 100644 --- a/tests/net/java/com/android/server/connectivity/Nat464XlatTest.java +++ b/tests/net/java/com/android/server/connectivity/Nat464XlatTest.java @@ -31,6 +31,7 @@ import android.net.InterfaceConfiguration; import android.net.LinkAddress; import android.net.LinkProperties; import android.net.NetworkInfo; +import android.net.NetworkMisc; import android.os.Handler; import android.os.INetworkManagementService; import android.os.test.TestLooper; @@ -55,6 +56,7 @@ public class Nat464XlatTest { static final LinkAddress ADDR = new LinkAddress("192.0.2.5/29"); @Mock ConnectivityService mConnectivity; + @Mock NetworkMisc mMisc; @Mock INetworkManagementService mNms; @Mock InterfaceConfiguration mConfig; @Mock NetworkAgentInfo mNai; @@ -78,6 +80,7 @@ public class Nat464XlatTest { mNai.networkInfo = new NetworkInfo(null); mNai.networkInfo.setType(ConnectivityManager.TYPE_WIFI); when(mNai.connService()).thenReturn(mConnectivity); + when(mNai.netMisc()).thenReturn(mMisc); when(mNai.handler()).thenReturn(mHandler); when(mNms.getInterfaceConfig(eq(STACKED_IFACE))).thenReturn(mConfig); @@ -103,9 +106,16 @@ public class Nat464XlatTest { mNai.networkInfo.setType(type); for (NetworkInfo.DetailedState state : supportedDetailedStates) { mNai.networkInfo.setDetailedState(state, "reason", "extraInfo"); - assertTrue( - String.format("requiresClat expected for type=%d state=%s", type, state), - Nat464Xlat.requiresClat(mNai)); + String msg = String.format("requiresClat expected for type=%d state=%s", + type, state); + + mMisc.skip464xlat = true; + String errorMsg = msg + String.format(" skip464xlat=%b", mMisc.skip464xlat); + assertFalse(errorMsg, Nat464Xlat.requiresClat(mNai)); + + mMisc.skip464xlat = false; + errorMsg = msg + String.format(" skip464xlat=%b", mMisc.skip464xlat); + assertTrue(errorMsg, Nat464Xlat.requiresClat(mNai)); } } }