Merge "Revert "Use new test utilities from frameworks/libs/net"" am: dcc8bf6706 am: 45906d55cc

Original change: https://android-review.googlesource.com/c/platform/cts/+/1455875

Change-Id: Ia4fe87b80e8beca3ea4c7f4f92d46e07dd9a549f
This commit is contained in:
Remi NGUYEN VAN
2020-10-09 02:28:50 +00:00
committed by Automerger Merge Worker
3 changed files with 20 additions and 7 deletions

View File

@@ -30,9 +30,11 @@ import android.net.NetworkCapabilities.TRANSPORT_WIFI
import android.net.NetworkRequest import android.net.NetworkRequest
import android.net.Uri import android.net.Uri
import android.net.cts.NetworkValidationTestUtil.clearValidationTestUrlsDeviceConfig import android.net.cts.NetworkValidationTestUtil.clearValidationTestUrlsDeviceConfig
import android.net.cts.NetworkValidationTestUtil.runAsShell
import android.net.cts.NetworkValidationTestUtil.setHttpUrlDeviceConfig import android.net.cts.NetworkValidationTestUtil.setHttpUrlDeviceConfig
import android.net.cts.NetworkValidationTestUtil.setHttpsUrlDeviceConfig import android.net.cts.NetworkValidationTestUtil.setHttpsUrlDeviceConfig
import android.net.cts.NetworkValidationTestUtil.setUrlExpirationDeviceConfig import android.net.cts.NetworkValidationTestUtil.setUrlExpirationDeviceConfig
import com.android.testutils.TestHttpServer.Request
import android.net.cts.util.CtsNetUtils import android.net.cts.util.CtsNetUtils
import android.net.util.NetworkStackUtils.TEST_CAPTIVE_PORTAL_HTTPS_URL import android.net.util.NetworkStackUtils.TEST_CAPTIVE_PORTAL_HTTPS_URL
import android.net.util.NetworkStackUtils.TEST_CAPTIVE_PORTAL_HTTP_URL import android.net.util.NetworkStackUtils.TEST_CAPTIVE_PORTAL_HTTP_URL
@@ -45,9 +47,7 @@ import android.text.TextUtils
import androidx.test.platform.app.InstrumentationRegistry.getInstrumentation import androidx.test.platform.app.InstrumentationRegistry.getInstrumentation
import androidx.test.runner.AndroidJUnit4 import androidx.test.runner.AndroidJUnit4
import com.android.testutils.TestHttpServer import com.android.testutils.TestHttpServer
import com.android.testutils.TestHttpServer.Request
import com.android.testutils.isDevSdkInRange import com.android.testutils.isDevSdkInRange
import com.android.testutils.runAsShell
import fi.iki.elonen.NanoHTTPD.Response.Status import fi.iki.elonen.NanoHTTPD.Response.Status
import junit.framework.AssertionFailedError import junit.framework.AssertionFailedError
import org.junit.After import org.junit.After

View File

@@ -31,6 +31,7 @@ import android.net.NetworkRequest
import android.net.TestNetworkInterface import android.net.TestNetworkInterface
import android.net.TestNetworkManager import android.net.TestNetworkManager
import android.net.Uri import android.net.Uri
import android.net.cts.NetworkValidationTestUtil.runAsShell
import android.net.dhcp.DhcpDiscoverPacket import android.net.dhcp.DhcpDiscoverPacket
import android.net.dhcp.DhcpPacket import android.net.dhcp.DhcpPacket
import android.net.dhcp.DhcpPacket.DHCP_MESSAGE_TYPE import android.net.dhcp.DhcpPacket.DHCP_MESSAGE_TYPE
@@ -44,7 +45,8 @@ import androidx.test.platform.app.InstrumentationRegistry
import androidx.test.runner.AndroidJUnit4 import androidx.test.runner.AndroidJUnit4
import com.android.net.module.util.Inet4AddressUtils.getBroadcastAddress import com.android.net.module.util.Inet4AddressUtils.getBroadcastAddress
import com.android.net.module.util.Inet4AddressUtils.getPrefixMaskAsInet4Address import com.android.net.module.util.Inet4AddressUtils.getPrefixMaskAsInet4Address
import com.android.net.module.util.NetworkStackConstants.IPV4_ADDR_ANY import com.android.server.util.NetworkStackConstants.IPV4_ADDR_ANY
import com.android.testutils.ArpResponder
import com.android.testutils.DevSdkIgnoreRule import com.android.testutils.DevSdkIgnoreRule
import com.android.testutils.DhcpClientPacketFilter import com.android.testutils.DhcpClientPacketFilter
import com.android.testutils.DhcpOptionFilter import com.android.testutils.DhcpOptionFilter
@@ -52,10 +54,10 @@ import com.android.testutils.RecorderCallback.CallbackEntry
import com.android.testutils.TapPacketReader import com.android.testutils.TapPacketReader
import com.android.testutils.TestHttpServer import com.android.testutils.TestHttpServer
import com.android.testutils.TestableNetworkCallback import com.android.testutils.TestableNetworkCallback
import com.android.testutils.runAsShell
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
@@ -129,7 +131,7 @@ class NetworkValidationTest {
handlerThread.threadHandler, handlerThread.threadHandler,
iface.fileDescriptor.fileDescriptor, iface.fileDescriptor.fileDescriptor,
MAX_PACKET_LENGTH) MAX_PACKET_LENGTH)
reader.startAsyncForTest() handlerThread.threadHandler.post { reader.start() }
httpServer.start() httpServer.start()
// Pad the listening port to make sure it is always of length 5. This ensures the URL has // Pad the listening port to make sure it is always of length 5. This ensures the URL has
@@ -231,7 +233,7 @@ private fun <T : DhcpPacket> TapPacketReader.assertDhcpPacketReceived(
timeoutMs: Long, timeoutMs: Long,
type: Byte type: Byte
): T { ): T {
val packetBytes = poll(timeoutMs, DhcpClientPacketFilter() val packetBytes = popPacket(timeoutMs, DhcpClientPacketFilter()
.and(DhcpOptionFilter(DHCP_MESSAGE_TYPE, type))) .and(DhcpOptionFilter(DHCP_MESSAGE_TYPE, type)))
?: fail("${packetType.simpleName} not received within timeout") ?: fail("${packetType.simpleName} not received within timeout")
val packet = DhcpPacket.decodeFullPacket(packetBytes, packetBytes.size, DhcpPacket.ENCAP_L2) val packet = DhcpPacket.decodeFullPacket(packetBytes, packetBytes.size, DhcpPacket.ENCAP_L2)

View File

@@ -19,7 +19,9 @@ package android.net.cts
import android.Manifest import android.Manifest
import android.net.util.NetworkStackUtils import android.net.util.NetworkStackUtils
import android.provider.DeviceConfig import android.provider.DeviceConfig
import com.android.testutils.runAsShell import com.android.compatibility.common.util.SystemUtil.runWithShellPermissionIdentity
import com.android.compatibility.common.util.ThrowingRunnable
import kotlin.test.fail
/** /**
* Collection of utility methods for configuring network validation. * Collection of utility methods for configuring network validation.
@@ -65,4 +67,13 @@ internal object NetworkValidationTestUtil {
DeviceConfig.NAMESPACE_CONNECTIVITY, configKey, value, false /* makeDefault */) DeviceConfig.NAMESPACE_CONNECTIVITY, configKey, value, false /* makeDefault */)
} }
} }
/**
* Wrapper around runWithShellPermissionIdentity with kotlin-like syntax.
*/
fun <T> runAsShell(vararg permissions: String, task: () -> T): T {
var ret: T? = null
runWithShellPermissionIdentity(ThrowingRunnable { ret = task() }, *permissions)
return ret ?: fail("ThrowingRunnable did not return")
}
} }