Run validation tests even with an eth interface

The test actually does not need the ethernet interface to be the
only ethernet interface, as ethernet test interfaces now have
TRANSPORT_TEST|TRANSPORT_ETHERNET, which can be used to differentiate
them in the network request.

Bug: 162469293
Test: atest CtsNetTestCasesLatestSdk:NetworkValidationTest
Change-Id: I84cc8b6b9aaa764705d91ed298655d869c4388a6
This commit is contained in:
Remi NGUYEN VAN
2020-08-14 16:53:03 +09:00
parent 0e9b130cbc
commit c47fa617f2

View File

@@ -19,12 +19,14 @@ package android.net.cts
import android.Manifest.permission.MANAGE_TEST_NETWORKS import android.Manifest.permission.MANAGE_TEST_NETWORKS
import android.Manifest.permission.NETWORK_SETTINGS import android.Manifest.permission.NETWORK_SETTINGS
import android.content.Context import android.content.Context
import android.content.pm.PackageManager
import android.net.ConnectivityManager import android.net.ConnectivityManager
import android.net.EthernetManager import android.net.EthernetManager
import android.net.InetAddresses import android.net.InetAddresses
import android.net.NetworkCapabilities.NET_CAPABILITY_CAPTIVE_PORTAL import android.net.NetworkCapabilities.NET_CAPABILITY_CAPTIVE_PORTAL
import android.net.NetworkCapabilities.NET_CAPABILITY_TRUSTED import android.net.NetworkCapabilities.NET_CAPABILITY_TRUSTED
import android.net.NetworkCapabilities.TRANSPORT_ETHERNET import android.net.NetworkCapabilities.TRANSPORT_ETHERNET
import android.net.NetworkCapabilities.TRANSPORT_TEST
import android.net.NetworkRequest import android.net.NetworkRequest
import android.net.TestNetworkInterface import android.net.TestNetworkInterface
import android.net.TestNetworkManager import android.net.TestNetworkManager
@@ -55,6 +57,7 @@ import com.android.testutils.TestableNetworkCallback
import fi.iki.elonen.NanoHTTPD.Response.Status import fi.iki.elonen.NanoHTTPD.Response.Status
import org.junit.After import org.junit.After
import org.junit.Assume.assumeFalse import org.junit.Assume.assumeFalse
import org.junit.Assume.assumeTrue
import org.junit.Before import org.junit.Before
import org.junit.Rule import org.junit.Rule
import org.junit.Test import org.junit.Test
@@ -95,7 +98,8 @@ class NetworkValidationTest {
private val ethRequest = NetworkRequest.Builder() private val ethRequest = NetworkRequest.Builder()
// ETHERNET|TEST transport networks do not have NET_CAPABILITY_TRUSTED // ETHERNET|TEST transport networks do not have NET_CAPABILITY_TRUSTED
.removeCapability(NET_CAPABILITY_TRUSTED) .removeCapability(NET_CAPABILITY_TRUSTED)
.addTransportType(TRANSPORT_ETHERNET).build() .addTransportType(TRANSPORT_ETHERNET)
.addTransportType(TRANSPORT_TEST).build()
private val ethRequestCb = TestableNetworkCallback() private val ethRequestCb = TestableNetworkCallback()
private lateinit var iface: TestNetworkInterface private lateinit var iface: TestNetworkInterface
@@ -106,9 +110,10 @@ class NetworkValidationTest {
@Before @Before
fun setUp() { fun setUp() {
// This test requires using a tap interface as the default ethernet interface: skip if there // This test requires using a tap interface as an ethernet interface.
// is already an ethernet interface connected. val pm = context.getPackageManager()
testSkipped = eth.isAvailable() testSkipped = !pm.hasSystemFeature(PackageManager.FEATURE_ETHERNET) &&
context.getSystemService(EthernetManager::class.java) == null
assumeFalse(testSkipped) assumeFalse(testSkipped)
// Register a request so the network does not get torn down // Register a request so the network does not get torn down