Merge "Use a single SharedLog for all mdns components" into udc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
1234a80935
@@ -175,9 +175,9 @@ public class NsdServiceTest {
|
||||
doReturn(true).when(mMockMDnsM).resolve(
|
||||
anyInt(), anyString(), anyString(), anyString(), anyInt());
|
||||
doReturn(false).when(mDeps).isMdnsDiscoveryManagerEnabled(any(Context.class));
|
||||
doReturn(mDiscoveryManager).when(mDeps).makeMdnsDiscoveryManager(any(), any());
|
||||
doReturn(mSocketProvider).when(mDeps).makeMdnsSocketProvider(any(), any());
|
||||
doReturn(mAdvertiser).when(mDeps).makeMdnsAdvertiser(any(), any(), any());
|
||||
doReturn(mDiscoveryManager).when(mDeps).makeMdnsDiscoveryManager(any(), any(), any());
|
||||
doReturn(mSocketProvider).when(mDeps).makeMdnsSocketProvider(any(), any(), any());
|
||||
doReturn(mAdvertiser).when(mDeps).makeMdnsAdvertiser(any(), any(), any(), any());
|
||||
|
||||
mService = makeService();
|
||||
}
|
||||
@@ -1122,7 +1122,7 @@ public class NsdServiceTest {
|
||||
// final String serviceTypeWithLocalDomain = SERVICE_TYPE + ".local";
|
||||
final ArgumentCaptor<MdnsAdvertiser.AdvertiserCallback> cbCaptor =
|
||||
ArgumentCaptor.forClass(MdnsAdvertiser.AdvertiserCallback.class);
|
||||
verify(mDeps).makeMdnsAdvertiser(any(), any(), cbCaptor.capture());
|
||||
verify(mDeps).makeMdnsAdvertiser(any(), any(), cbCaptor.capture(), any());
|
||||
|
||||
final NsdServiceInfo regInfo = new NsdServiceInfo(SERVICE_NAME, SERVICE_TYPE);
|
||||
regInfo.setHost(parseNumericAddress("192.0.2.123"));
|
||||
@@ -1161,7 +1161,7 @@ public class NsdServiceTest {
|
||||
// final String serviceTypeWithLocalDomain = SERVICE_TYPE + ".local";
|
||||
final ArgumentCaptor<MdnsAdvertiser.AdvertiserCallback> cbCaptor =
|
||||
ArgumentCaptor.forClass(MdnsAdvertiser.AdvertiserCallback.class);
|
||||
verify(mDeps).makeMdnsAdvertiser(any(), any(), cbCaptor.capture());
|
||||
verify(mDeps).makeMdnsAdvertiser(any(), any(), cbCaptor.capture(), any());
|
||||
|
||||
final NsdServiceInfo regInfo = new NsdServiceInfo(SERVICE_NAME, "invalid_type");
|
||||
regInfo.setHost(parseNumericAddress("192.0.2.123"));
|
||||
@@ -1186,7 +1186,7 @@ public class NsdServiceTest {
|
||||
// final String serviceTypeWithLocalDomain = SERVICE_TYPE + ".local";
|
||||
final ArgumentCaptor<MdnsAdvertiser.AdvertiserCallback> cbCaptor =
|
||||
ArgumentCaptor.forClass(MdnsAdvertiser.AdvertiserCallback.class);
|
||||
verify(mDeps).makeMdnsAdvertiser(any(), any(), cbCaptor.capture());
|
||||
verify(mDeps).makeMdnsAdvertiser(any(), any(), cbCaptor.capture(), any());
|
||||
|
||||
final NsdServiceInfo regInfo = new NsdServiceInfo("a".repeat(70), SERVICE_TYPE);
|
||||
regInfo.setHost(parseNumericAddress("192.0.2.123"));
|
||||
|
||||
@@ -23,11 +23,13 @@ import android.net.nsd.NsdServiceInfo
|
||||
import android.os.Build
|
||||
import android.os.Handler
|
||||
import android.os.HandlerThread
|
||||
import com.android.net.module.util.SharedLog
|
||||
import com.android.server.connectivity.mdns.MdnsAdvertiser.AdvertiserCallback
|
||||
import com.android.server.connectivity.mdns.MdnsSocketProvider.SocketCallback
|
||||
import com.android.testutils.DevSdkIgnoreRule.IgnoreUpTo
|
||||
import com.android.testutils.DevSdkIgnoreRunner
|
||||
import com.android.testutils.waitForIdle
|
||||
import java.net.NetworkInterface
|
||||
import java.util.Objects
|
||||
import org.junit.After
|
||||
import org.junit.Before
|
||||
@@ -89,6 +91,7 @@ class MdnsAdvertiserTest {
|
||||
private val handler by lazy { Handler(thread.looper) }
|
||||
private val socketProvider = mock(MdnsSocketProvider::class.java)
|
||||
private val cb = mock(AdvertiserCallback::class.java)
|
||||
private val sharedlog = mock(SharedLog::class.java)
|
||||
|
||||
private val mockSocket1 = mock(MdnsInterfaceSocket::class.java)
|
||||
private val mockSocket2 = mock(MdnsInterfaceSocket::class.java)
|
||||
@@ -101,13 +104,15 @@ class MdnsAdvertiserTest {
|
||||
thread.start()
|
||||
doReturn(TEST_HOSTNAME).`when`(mockDeps).generateHostname()
|
||||
doReturn(mockInterfaceAdvertiser1).`when`(mockDeps).makeAdvertiser(eq(mockSocket1),
|
||||
any(), any(), any(), any(), eq(TEST_HOSTNAME)
|
||||
any(), any(), any(), any(), eq(TEST_HOSTNAME), any()
|
||||
)
|
||||
doReturn(mockInterfaceAdvertiser2).`when`(mockDeps).makeAdvertiser(eq(mockSocket2),
|
||||
any(), any(), any(), any(), eq(TEST_HOSTNAME)
|
||||
any(), any(), any(), any(), eq(TEST_HOSTNAME), any()
|
||||
)
|
||||
doReturn(true).`when`(mockInterfaceAdvertiser1).isProbing(anyInt())
|
||||
doReturn(true).`when`(mockInterfaceAdvertiser2).isProbing(anyInt())
|
||||
doReturn(createEmptyNetworkInterface()).`when`(mockSocket1).getInterface()
|
||||
doReturn(createEmptyNetworkInterface()).`when`(mockSocket2).getInterface()
|
||||
}
|
||||
|
||||
@After
|
||||
@@ -116,9 +121,15 @@ class MdnsAdvertiserTest {
|
||||
thread.join()
|
||||
}
|
||||
|
||||
private fun createEmptyNetworkInterface(): NetworkInterface {
|
||||
val constructor = NetworkInterface::class.java.getDeclaredConstructor()
|
||||
constructor.isAccessible = true
|
||||
return constructor.newInstance()
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testAddService_OneNetwork() {
|
||||
val advertiser = MdnsAdvertiser(thread.looper, socketProvider, cb, mockDeps)
|
||||
val advertiser = MdnsAdvertiser(thread.looper, socketProvider, cb, mockDeps, sharedlog)
|
||||
postSync { advertiser.addService(SERVICE_ID_1, SERVICE_1) }
|
||||
|
||||
val socketCbCaptor = ArgumentCaptor.forClass(SocketCallback::class.java)
|
||||
@@ -134,7 +145,8 @@ class MdnsAdvertiserTest {
|
||||
eq(thread.looper),
|
||||
any(),
|
||||
intAdvCbCaptor.capture(),
|
||||
eq(TEST_HOSTNAME)
|
||||
eq(TEST_HOSTNAME),
|
||||
any()
|
||||
)
|
||||
|
||||
doReturn(false).`when`(mockInterfaceAdvertiser1).isProbing(SERVICE_ID_1)
|
||||
@@ -148,7 +160,7 @@ class MdnsAdvertiserTest {
|
||||
|
||||
@Test
|
||||
fun testAddService_AllNetworks() {
|
||||
val advertiser = MdnsAdvertiser(thread.looper, socketProvider, cb, mockDeps)
|
||||
val advertiser = MdnsAdvertiser(thread.looper, socketProvider, cb, mockDeps, sharedlog)
|
||||
postSync { advertiser.addService(SERVICE_ID_1, ALL_NETWORKS_SERVICE) }
|
||||
|
||||
val socketCbCaptor = ArgumentCaptor.forClass(SocketCallback::class.java)
|
||||
@@ -162,10 +174,10 @@ class MdnsAdvertiserTest {
|
||||
val intAdvCbCaptor1 = ArgumentCaptor.forClass(MdnsInterfaceAdvertiser.Callback::class.java)
|
||||
val intAdvCbCaptor2 = ArgumentCaptor.forClass(MdnsInterfaceAdvertiser.Callback::class.java)
|
||||
verify(mockDeps).makeAdvertiser(eq(mockSocket1), eq(listOf(TEST_LINKADDR)),
|
||||
eq(thread.looper), any(), intAdvCbCaptor1.capture(), eq(TEST_HOSTNAME)
|
||||
eq(thread.looper), any(), intAdvCbCaptor1.capture(), eq(TEST_HOSTNAME), any()
|
||||
)
|
||||
verify(mockDeps).makeAdvertiser(eq(mockSocket2), eq(listOf(TEST_LINKADDR)),
|
||||
eq(thread.looper), any(), intAdvCbCaptor2.capture(), eq(TEST_HOSTNAME)
|
||||
eq(thread.looper), any(), intAdvCbCaptor2.capture(), eq(TEST_HOSTNAME), any()
|
||||
)
|
||||
|
||||
doReturn(false).`when`(mockInterfaceAdvertiser1).isProbing(SERVICE_ID_1)
|
||||
@@ -194,7 +206,7 @@ class MdnsAdvertiserTest {
|
||||
|
||||
@Test
|
||||
fun testAddService_Conflicts() {
|
||||
val advertiser = MdnsAdvertiser(thread.looper, socketProvider, cb, mockDeps)
|
||||
val advertiser = MdnsAdvertiser(thread.looper, socketProvider, cb, mockDeps, sharedlog)
|
||||
postSync { advertiser.addService(SERVICE_ID_1, SERVICE_1) }
|
||||
|
||||
val oneNetSocketCbCaptor = ArgumentCaptor.forClass(SocketCallback::class.java)
|
||||
@@ -233,7 +245,7 @@ class MdnsAdvertiserTest {
|
||||
|
||||
val intAdvCbCaptor = ArgumentCaptor.forClass(MdnsInterfaceAdvertiser.Callback::class.java)
|
||||
verify(mockDeps).makeAdvertiser(eq(mockSocket1), eq(listOf(TEST_LINKADDR)),
|
||||
eq(thread.looper), any(), intAdvCbCaptor.capture(), eq(TEST_HOSTNAME)
|
||||
eq(thread.looper), any(), intAdvCbCaptor.capture(), eq(TEST_HOSTNAME), any()
|
||||
)
|
||||
verify(mockInterfaceAdvertiser1).addService(eq(SERVICE_ID_1),
|
||||
argThat { it.matches(SERVICE_1) })
|
||||
@@ -264,7 +276,7 @@ class MdnsAdvertiserTest {
|
||||
|
||||
@Test
|
||||
fun testRemoveService_whenAllServiceRemoved_thenUpdateHostName() {
|
||||
val advertiser = MdnsAdvertiser(thread.looper, socketProvider, cb, mockDeps)
|
||||
val advertiser = MdnsAdvertiser(thread.looper, socketProvider, cb, mockDeps, sharedlog)
|
||||
verify(mockDeps, times(1)).generateHostname()
|
||||
postSync { advertiser.addService(SERVICE_ID_1, SERVICE_1) }
|
||||
postSync { advertiser.removeService(SERVICE_ID_1) }
|
||||
|
||||
@@ -29,6 +29,7 @@ import android.net.Network;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Pair;
|
||||
|
||||
import com.android.net.module.util.SharedLog;
|
||||
import com.android.server.connectivity.mdns.MdnsSocketClientBase.SocketCreationCallback;
|
||||
import com.android.testutils.DevSdkIgnoreRule;
|
||||
import com.android.testutils.DevSdkIgnoreRunner;
|
||||
@@ -74,13 +75,14 @@ public class MdnsDiscoveryManagerTests {
|
||||
|
||||
@Mock MdnsServiceBrowserListener mockListenerOne;
|
||||
@Mock MdnsServiceBrowserListener mockListenerTwo;
|
||||
@Mock SharedLog sharedLog;
|
||||
private MdnsDiscoveryManager discoveryManager;
|
||||
|
||||
@Before
|
||||
public void setUp() {
|
||||
MockitoAnnotations.initMocks(this);
|
||||
|
||||
discoveryManager = new MdnsDiscoveryManager(executorProvider, socketClient) {
|
||||
discoveryManager = new MdnsDiscoveryManager(executorProvider, socketClient, sharedLog) {
|
||||
@Override
|
||||
MdnsServiceTypeClient createServiceTypeClient(@NonNull String serviceType,
|
||||
@Nullable Network network) {
|
||||
|
||||
@@ -76,7 +76,7 @@ class MdnsInterfaceAdvertiserTest {
|
||||
private val replySender = mock(MdnsReplySender::class.java)
|
||||
private val announcer = mock(MdnsAnnouncer::class.java)
|
||||
private val prober = mock(MdnsProber::class.java)
|
||||
private val sharedlog = mock(SharedLog::class.java)
|
||||
private val sharedlog = SharedLog("MdnsInterfaceAdvertiserTest")
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
private val probeCbCaptor = ArgumentCaptor.forClass(PacketRepeaterCallback::class.java)
|
||||
as ArgumentCaptor<PacketRepeaterCallback<ProbingInfo>>
|
||||
@@ -92,7 +92,6 @@ class MdnsInterfaceAdvertiserTest {
|
||||
|
||||
private val advertiser by lazy {
|
||||
MdnsInterfaceAdvertiser(
|
||||
LOG_TAG,
|
||||
socket,
|
||||
TEST_ADDRS,
|
||||
thread.looper,
|
||||
@@ -116,6 +115,7 @@ class MdnsInterfaceAdvertiserTest {
|
||||
val knownServices = mutableSetOf<Int>()
|
||||
doAnswer { inv ->
|
||||
knownServices.add(inv.getArgument(0))
|
||||
|
||||
-1
|
||||
}.`when`(repository).addService(anyInt(), any())
|
||||
doAnswer { inv ->
|
||||
|
||||
@@ -111,6 +111,7 @@ public class MdnsSocketProviderTest {
|
||||
private MdnsSocketProvider mSocketProvider;
|
||||
private NetworkCallback mNetworkCallback;
|
||||
private TetheringEventCallback mTetheringEventCallback;
|
||||
private SharedLog mLog = new SharedLog("MdnsSocketProviderTest");
|
||||
|
||||
private TestNetlinkMonitor mTestSocketNetLinkMonitor;
|
||||
@Before
|
||||
@@ -153,7 +154,7 @@ public class MdnsSocketProviderTest {
|
||||
return mTestSocketNetLinkMonitor;
|
||||
}).when(mDeps).createSocketNetlinkMonitor(any(), any(),
|
||||
any());
|
||||
mSocketProvider = new MdnsSocketProvider(mContext, thread.getLooper(), mDeps);
|
||||
mSocketProvider = new MdnsSocketProvider(mContext, thread.getLooper(), mDeps, mLog);
|
||||
}
|
||||
|
||||
private void startMonitoringSockets() {
|
||||
|
||||
Reference in New Issue
Block a user