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

Commit d58fbc60 authored by Lorenzo Colitti's avatar Lorenzo Colitti Committed by android-build-merger
Browse files

Merge "Make IpClientIntegrationTest talk to the real netd" am: 6c0ec1fb am: fa0785ca

am: 3f3a26e1

Change-Id: If3554ccc63540ee712590750ae762d4f717ac7fb
parents d7101ed5 3f3a26e1
Loading
Loading
Loading
Loading
+15 −9
Original line number Original line Diff line number Diff line
@@ -56,6 +56,7 @@ import static org.mockito.Mockito.doThrow;
import static org.mockito.Mockito.eq;
import static org.mockito.Mockito.eq;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.reset;
import static org.mockito.Mockito.reset;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.timeout;
import static org.mockito.Mockito.timeout;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verify;
@@ -103,7 +104,6 @@ import androidx.test.runner.AndroidJUnit4;
import com.android.server.NetworkObserverRegistry;
import com.android.server.NetworkObserverRegistry;
import com.android.server.NetworkStackService.NetworkStackServiceManager;
import com.android.server.NetworkStackService.NetworkStackServiceManager;
import com.android.server.connectivity.ipmemorystore.IpMemoryStoreService;
import com.android.server.connectivity.ipmemorystore.IpMemoryStoreService;
import com.android.testutils.HandlerUtilsKt;


import org.junit.After;
import org.junit.After;
import org.junit.Before;
import org.junit.Before;
@@ -113,6 +113,7 @@ import org.junit.runner.RunWith;
import org.mockito.ArgumentCaptor;
import org.mockito.ArgumentCaptor;
import org.mockito.Mock;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.mockito.MockitoAnnotations;
import org.mockito.Spy;


import java.io.FileDescriptor;
import java.io.FileDescriptor;
import java.io.FileOutputStream;
import java.io.FileOutputStream;
@@ -142,7 +143,6 @@ public class IpClientIntegrationTest {


    @Mock private Context mContext;
    @Mock private Context mContext;
    @Mock private ConnectivityManager mCm;
    @Mock private ConnectivityManager mCm;
    @Mock private INetd mMockNetd;
    @Mock private Resources mResources;
    @Mock private Resources mResources;
    @Mock private IIpClientCallbacks mCb;
    @Mock private IIpClientCallbacks mCb;
    @Mock private AlarmManager mAlarm;
    @Mock private AlarmManager mAlarm;
@@ -151,8 +151,9 @@ public class IpClientIntegrationTest {
    @Mock private NetworkStackIpMemoryStore mIpMemoryStore;
    @Mock private NetworkStackIpMemoryStore mIpMemoryStore;
    @Mock private IpMemoryStoreService mIpMemoryStoreService;
    @Mock private IpMemoryStoreService mIpMemoryStoreService;


    @Spy private INetd mNetd;

    private String mIfaceName;
    private String mIfaceName;
    private INetd mNetd;
    private HandlerThread mPacketReaderThread;
    private HandlerThread mPacketReaderThread;
    private Handler mHandler;
    private Handler mHandler;
    private TapPacketReader mPacketReader;
    private TapPacketReader mPacketReader;
@@ -249,7 +250,7 @@ public class IpClientIntegrationTest {


        @Override
        @Override
        public INetd getNetd(Context context) {
        public INetd getNetd(Context context) {
            return mMockNetd;
            return mNetd;
        }
        }


        @Override
        @Override
@@ -310,6 +311,10 @@ public class IpClientIntegrationTest {
        setUpIpClient();
        setUpIpClient();
    }
    }


    private void awaitIpClientShutdown() throws Exception {
        verify(mCb, timeout(TEST_TIMEOUT_MS)).onQuit();
    }

    @After
    @After
    public void tearDown() throws Exception {
    public void tearDown() throws Exception {
        if (mPacketReader != null) {
        if (mPacketReader != null) {
@@ -319,6 +324,7 @@ public class IpClientIntegrationTest {
            mPacketReaderThread.quitSafely();
            mPacketReaderThread.quitSafely();
        }
        }
        mIpc.shutdown();
        mIpc.shutdown();
        awaitIpClientShutdown();
    }
    }


    private void setUpTapInterface() {
    private void setUpTapInterface() {
@@ -350,7 +356,7 @@ public class IpClientIntegrationTest {
        final Instrumentation inst = InstrumentationRegistry.getInstrumentation();
        final Instrumentation inst = InstrumentationRegistry.getInstrumentation();
        final IBinder netdIBinder =
        final IBinder netdIBinder =
                (IBinder) inst.getContext().getSystemService(Context.NETD_SERVICE);
                (IBinder) inst.getContext().getSystemService(Context.NETD_SERVICE);
        mNetd = INetd.Stub.asInterface(netdIBinder);
        mNetd = spy(INetd.Stub.asInterface(netdIBinder));
        when(mContext.getSystemService(eq(Context.NETD_SERVICE))).thenReturn(netdIBinder);
        when(mContext.getSystemService(eq(Context.NETD_SERVICE))).thenReturn(netdIBinder);
        assertNotNull(mNetd);
        assertNotNull(mNetd);


@@ -560,12 +566,12 @@ public class IpClientIntegrationTest {
        if (shouldRemoveTapInterface) removeTapInterface(mPacketReader.createFd());
        if (shouldRemoveTapInterface) removeTapInterface(mPacketReader.createFd());
        try {
        try {
            mIpc.shutdown();
            mIpc.shutdown();
            HandlerUtilsKt.waitForIdle(mIpc.getHandler(), TEST_TIMEOUT_MS);
            awaitIpClientShutdown();
            if (shouldRemoveTapInterface) {
            if (shouldRemoveTapInterface) {
                verify(mMockNetd, never()).interfaceSetMtu(mIfaceName, TEST_DEFAULT_MTU);
                verify(mNetd, never()).interfaceSetMtu(mIfaceName, TEST_DEFAULT_MTU);
            } else {
            } else {
                // Verify that MTU indeed has been restored or not.
                // Verify that MTU indeed has been restored or not.
                verify(mMockNetd, times(shouldChangeMtu ? 1 : 0))
                verify(mNetd, times(shouldChangeMtu ? 1 : 0))
                        .interfaceSetMtu(mIfaceName, TEST_DEFAULT_MTU);
                        .interfaceSetMtu(mIfaceName, TEST_DEFAULT_MTU);
            }
            }
            verifyAfterIpClientShutdown();
            verifyAfterIpClientShutdown();
@@ -712,7 +718,7 @@ public class IpClientIntegrationTest {


    @Test
    @Test
    public void testRestoreInitialInterfaceMtu_WithException() throws Exception {
    public void testRestoreInitialInterfaceMtu_WithException() throws Exception {
        doThrow(new RemoteException("NetdNativeService::interfaceSetMtu")).when(mMockNetd)
        doThrow(new RemoteException("NetdNativeService::interfaceSetMtu")).when(mNetd)
                .interfaceSetMtu(mIfaceName, TEST_DEFAULT_MTU);
                .interfaceSetMtu(mIfaceName, TEST_DEFAULT_MTU);


        doRestoreInitialMtuTest(true /* shouldChangeMtu */, false /* shouldRemoveTapInterface */);
        doRestoreInitialMtuTest(true /* shouldChangeMtu */, false /* shouldRemoveTapInterface */);