Merge "Use new test utilities from frameworks/libs/net" am: 1bc58efade am: c7fa8ea404

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

Change-Id: I5f600d2e8e3c1629e8cd0750beee8bb47638c8db
This commit is contained in:
Remi NGUYEN VAN
2020-10-12 02:59:40 +00:00
committed by Automerger Merge Worker
3 changed files with 7 additions and 20 deletions

View File

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

View File

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

View File

@@ -19,9 +19,7 @@ package android.net.cts
import android.Manifest
import android.net.util.NetworkStackUtils
import android.provider.DeviceConfig
import com.android.compatibility.common.util.SystemUtil.runWithShellPermissionIdentity
import com.android.compatibility.common.util.ThrowingRunnable
import kotlin.test.fail
import com.android.testutils.runAsShell
/**
* Collection of utility methods for configuring network validation.
@@ -67,13 +65,4 @@ internal object NetworkValidationTestUtil {
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")
}
}