Merge "Add initTestNetwork with a list of LinkAddress"
diff --git a/common/testutils/devicetests/com/android/testutils/TestNetworkTracker.kt b/common/testutils/devicetests/com/android/testutils/TestNetworkTracker.kt
index 36c09ce..40731ea 100644
--- a/common/testutils/devicetests/com/android/testutils/TestNetworkTracker.kt
+++ b/common/testutils/devicetests/com/android/testutils/TestNetworkTracker.kt
@@ -31,17 +31,35 @@
 import java.util.concurrent.TimeUnit
 
 /**
- * Create a test network based on a TUN interface.
+ * Create a test network based on a TUN interface with a LinkAddress.
  *
  * This method will block until the test network is available. Requires
  * [android.Manifest.permission.CHANGE_NETWORK_STATE] and
  * [android.Manifest.permission.MANAGE_TEST_NETWORKS].
  */
-fun initTestNetwork(context: Context, interfaceAddr: LinkAddress, setupTimeoutMs: Long = 10_000L):
-        TestNetworkTracker {
+fun initTestNetwork(
+    context: Context,
+    interfaceAddr: LinkAddress,
+    setupTimeoutMs: Long = 10_000L
+): TestNetworkTracker {
+    return initTestNetwork(context, listOf(interfaceAddr), setupTimeoutMs)
+}
+
+/**
+ * Create a test network based on a TUN interface with giving LinkAddress list.
+ *
+ * This method will block until the test network is available. Requires
+ * [android.Manifest.permission.CHANGE_NETWORK_STATE] and
+ * [android.Manifest.permission.MANAGE_TEST_NETWORKS].
+ */
+fun initTestNetwork(
+    context: Context,
+    linkAddrs: List<LinkAddress>,
+    setupTimeoutMs: Long = 10_000L
+): TestNetworkTracker {
     val tnm = context.getSystemService(TestNetworkManager::class.java)
-    val iface = if (isAtLeastS()) tnm.createTunInterface(listOf(interfaceAddr))
-            else tnm.createTunInterface(arrayOf(interfaceAddr))
+    val iface = if (isAtLeastS()) tnm.createTunInterface(linkAddrs)
+            else tnm.createTunInterface(linkAddrs.toTypedArray())
     return TestNetworkTracker(context, iface, tnm, setupTimeoutMs)
 }
 
@@ -61,6 +79,7 @@
 
     private val networkCallback: NetworkCallback
     val network: Network
+    val testIface: TestNetworkInterface
 
     init {
         val networkFuture = CompletableFuture<Network>()
@@ -85,6 +104,8 @@
             teardown()
             throw e
         }
+
+        testIface = iface
     }
 
     fun teardown() {