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() {