From c47fa617f20a71e48dfd9e175fa49f6bcc93ced5 Mon Sep 17 00:00:00 2001 From: Remi NGUYEN VAN Date: Fri, 14 Aug 2020 16:53:03 +0900 Subject: [PATCH] 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 --- .../src/android/net/cts/NetworkValidationTest.kt | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/tests/cts/net/src/android/net/cts/NetworkValidationTest.kt b/tests/cts/net/src/android/net/cts/NetworkValidationTest.kt index 52c383d906..ec656de653 100644 --- a/tests/cts/net/src/android/net/cts/NetworkValidationTest.kt +++ b/tests/cts/net/src/android/net/cts/NetworkValidationTest.kt @@ -19,12 +19,14 @@ package android.net.cts import android.Manifest.permission.MANAGE_TEST_NETWORKS import android.Manifest.permission.NETWORK_SETTINGS import android.content.Context +import android.content.pm.PackageManager import android.net.ConnectivityManager import android.net.EthernetManager import android.net.InetAddresses import android.net.NetworkCapabilities.NET_CAPABILITY_CAPTIVE_PORTAL import android.net.NetworkCapabilities.NET_CAPABILITY_TRUSTED import android.net.NetworkCapabilities.TRANSPORT_ETHERNET +import android.net.NetworkCapabilities.TRANSPORT_TEST import android.net.NetworkRequest import android.net.TestNetworkInterface import android.net.TestNetworkManager @@ -55,6 +57,7 @@ import com.android.testutils.TestableNetworkCallback import fi.iki.elonen.NanoHTTPD.Response.Status import org.junit.After import org.junit.Assume.assumeFalse +import org.junit.Assume.assumeTrue import org.junit.Before import org.junit.Rule import org.junit.Test @@ -95,7 +98,8 @@ class NetworkValidationTest { private val ethRequest = NetworkRequest.Builder() // ETHERNET|TEST transport networks do not have NET_CAPABILITY_TRUSTED .removeCapability(NET_CAPABILITY_TRUSTED) - .addTransportType(TRANSPORT_ETHERNET).build() + .addTransportType(TRANSPORT_ETHERNET) + .addTransportType(TRANSPORT_TEST).build() private val ethRequestCb = TestableNetworkCallback() private lateinit var iface: TestNetworkInterface @@ -106,9 +110,10 @@ class NetworkValidationTest { @Before fun setUp() { - // This test requires using a tap interface as the default ethernet interface: skip if there - // is already an ethernet interface connected. - testSkipped = eth.isAvailable() + // This test requires using a tap interface as an ethernet interface. + val pm = context.getPackageManager() + testSkipped = !pm.hasSystemFeature(PackageManager.FEATURE_ETHERNET) && + context.getSystemService(EthernetManager::class.java) == null assumeFalse(testSkipped) // Register a request so the network does not get torn down