Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c1e623bb authored by Paul Jensen's avatar Paul Jensen Committed by Android (Google) Code Review
Browse files

Merge "Avoid overlapping NetIDs in ConnectivityServiceTest with real NetIDs" into mnc-dev

parents a3a0ea3b 67b0b075
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -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);
    }
+21 −0
Original line number Diff line number Diff line
@@ -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