Support multiple addresses in PacketBridge
Test: atest NetworkStackIntegrationTests:android.net.NetworkStatsIntegrationTest
Bug: N/A
Change-Id: Icaef559d54f8d7ce06fb9bf231330235ee01ab8f
diff --git a/staticlibs/testutils/devicetests/com/android/testutils/PacketBridge.kt b/staticlibs/testutils/devicetests/com/android/testutils/PacketBridge.kt
index 0d0cc06..1a2cc88 100644
--- a/staticlibs/testutils/devicetests/com/android/testutils/PacketBridge.kt
+++ b/staticlibs/testutils/devicetests/com/android/testutils/PacketBridge.kt
@@ -37,10 +37,9 @@
*
* See {@link PacketForwarder} for more detailed information.
*/
-// TODO: Support multiple addresses.
class PacketBridge(
context: Context,
- address: LinkAddress,
+ addresses: List<LinkAddress>,
dnsAddr: InetAddress
) {
private val binder = Binder()
@@ -50,9 +49,9 @@
// Create test networks. The needed permissions should be supplied by the callers.
@SuppressLint("MissingPermission")
- private val internalIface = tnm.createTunInterface(listOf(address))
+ private val internalIface = tnm.createTunInterface(addresses)
@SuppressLint("MissingPermission")
- private val externalIface = tnm.createTunInterface(listOf(address))
+ private val externalIface = tnm.createTunInterface(addresses)
// Register test networks to ConnectivityService.
private val internalNetworkCallback: TestableNetworkCallback
@@ -60,8 +59,8 @@
val internalNetwork: Network
val externalNetwork: Network
init {
- val (inCb, inNet) = createTestNetwork(internalIface, address, dnsAddr)
- val (exCb, exNet) = createTestNetwork(externalIface, address, dnsAddr)
+ val (inCb, inNet) = createTestNetwork(internalIface, addresses, dnsAddr)
+ val (exCb, exNet) = createTestNetwork(externalIface, addresses, dnsAddr)
internalNetworkCallback = inCb
externalNetworkCallback = exCb
internalNetwork = inNet
@@ -94,7 +93,7 @@
*/
private fun createTestNetwork(
testIface: TestNetworkInterface,
- addr: LinkAddress,
+ addresses: List<LinkAddress>,
dnsAddr: InetAddress
): Pair<TestableNetworkCallback, Network> {
// Make a network request to hold the test network
@@ -107,7 +106,7 @@
cm.requestNetwork(nr, testCb)
val lp = LinkProperties().apply {
- addLinkAddress(addr)
+ setLinkAddresses(addresses)
interfaceName = testIface.interfaceName
addDnsServer(dnsAddr)
}