am 0fac11a8: am c1e623bb: Merge "Avoid overlapping NetIDs in ConnectivityServiceTest with real NetIDs" into mnc-dev

* commit '0fac11a8ce4f8a5ea12ea899d4155cc797e4d7df':
  Avoid overlapping NetIDs in ConnectivityServiceTest with real NetIDs
This commit is contained in:
Paul Jensen
2015-06-10 18:27:51 +00:00
committed by Android Git Automerger
2 changed files with 25 additions and 1 deletions

View File

@ -100,6 +100,7 @@ import android.util.Xml;
import com.android.internal.R;
import com.android.internal.annotations.GuardedBy;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.app.IBatteryStats;
import com.android.internal.net.LegacyVpnInfo;
import com.android.internal.net.NetworkStatsFactory;
@ -768,7 +769,8 @@ public class ConnectivityService extends IConnectivityManager.Stub
return mNextNetworkRequestId++;
}
private int reserveNetId() {
@VisibleForTesting
protected int reserveNetId() {
synchronized (mNetworkForNetId) {
for (int i = MIN_NET_ID; i <= MAX_NET_ID; i++) {
int netId = mNextNetId;
@ -1665,6 +1667,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
private static final String DEFAULT_TCP_RWND_KEY = "net.tcp.default_init_rwnd";
// Overridden for testing purposes to avoid writing to SystemProperties.
@VisibleForTesting
protected int getDefaultTcpRwnd() {
return SystemProperties.getInt(DEFAULT_TCP_RWND_KEY, 0);
}

View File

@ -235,6 +235,27 @@ public class ConnectivityServiceTest extends AndroidTestCase {
// Prevent wrapped ConnectivityService from trying to write to SystemProperties.
return 0;
}
@Override
protected int reserveNetId() {
while (true) {
final int netId = super.reserveNetId();
// Don't overlap test NetIDs with real NetIDs as binding sockets to real networks
// can have odd side-effects, like network validations succeeding.
final Network[] networks = ConnectivityManager.from(getContext()).getAllNetworks();
boolean overlaps = false;
for (Network network : networks) {
if (netId == network.netId) {
overlaps = true;
break;
}
}
if (overlaps) continue;
return netId;
}
}
}
@Override