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

Commit a4709152 authored by Remi NGUYEN VAN's avatar Remi NGUYEN VAN
Browse files

Fix testIpClientServiceAvailableAfterPolling

The test used NetworkStack.setServiceForTest(null) expecting that null
would be returned in NetworkStack.getService, which is incorrect: using
null just causes getService to use default system behavior, which
returns the actual service.

Bug: 139314310
Test: atest ModuleNetworkStackClientTest --rerun-until-failure 500
Original-Change: https://android-review.googlesource.com/1299379
Merged-In: I2d607d3ab26bcecd20546041ac4be2892a3fb852
Change-Id: I2d607d3ab26bcecd20546041ac4be2892a3fb852
parent 76e2b1e7
Loading
Loading
Loading
Loading
+10 −1
Original line number Diff line number Diff line
@@ -29,6 +29,8 @@ import android.os.Build
import android.os.IBinder
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.SmallTest
import com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn
import com.android.dx.mockito.inline.extended.ExtendedMockito.mockitoSession
import com.android.testutils.DevSdkIgnoreRule
import org.junit.After
import org.junit.Before
@@ -37,7 +39,6 @@ import org.junit.Test
import org.junit.runner.RunWith
import org.mockito.ArgumentMatchers.any
import org.mockito.Mock
import org.mockito.Mockito.doReturn
import org.mockito.Mockito.never
import org.mockito.Mockito.timeout
import org.mockito.Mockito.verify
@@ -91,11 +92,19 @@ class ModuleNetworkStackClientTest {

    @Test
    fun testIpClientServiceAvailableAfterPolling() {
        // Force NetworkStack.getService() to return null: this cannot be done with
        // setServiceForTest, as passing null just restores default behavior.
        val session = mockitoSession().spyStatic(NetworkStack::class.java).startMocking()
        doReturn(null).`when` { NetworkStack.getService() }
        ModuleNetworkStackClient.getInstance(mContext).makeIpClient(TEST_IFNAME, mIpClientCb)

        Thread.sleep(TEST_TIMEOUT_MS)
        verify(mConnector, never()).makeIpClient(any(), any())
        NetworkStack.setServiceForTest(mConnectorBinder)

        // Restore behavior of NetworkStack to return what was set in setServiceForTest
        session.finishMocking()

        // Use a longer timeout as polling can cause larger delays
        verify(mConnector, timeout(TEST_TIMEOUT_MS * 4)).makeIpClient(TEST_IFNAME, mIpClientCb)
    }