Merge "Add test for cgroup bpf program status" into main

This commit is contained in:
Maciej Żenczykowski
2023-10-23 18:37:05 +00:00
committed by Gerrit Code Review
2 changed files with 27 additions and 0 deletions

View File

@@ -45,6 +45,7 @@ android_test {
// order-dependent setup.
"NetworkStackApiStableLib",
"androidx.test.ext.junit",
"compatibility-device-util-axt",
"frameworks-net-integration-testutils",
"kotlin-reflect",
"mockito-target-extended-minus-junit4",

View File

@@ -40,11 +40,14 @@ import android.os.ConditionVariable
import android.os.IBinder
import android.os.SystemConfigManager
import android.os.UserHandle
import android.os.VintfRuntimeInfo
import android.testing.TestableContext
import android.util.Log
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.platform.app.InstrumentationRegistry
import com.android.compatibility.common.util.SystemUtil
import com.android.connectivity.resources.R
import com.android.net.module.util.BpfUtils
import com.android.server.BpfNetMaps
import com.android.server.ConnectivityService
import com.android.server.NetworkAgentWrapper
@@ -53,6 +56,7 @@ import com.android.server.connectivity.ConnectivityResources
import com.android.server.connectivity.MockableSystemProperties
import com.android.server.connectivity.MultinetworkPolicyTracker
import com.android.server.connectivity.ProxyTracker
import com.android.testutils.DeviceInfoUtils
import com.android.testutils.RecorderCallback.CallbackEntry.LinkPropertiesChanged
import com.android.testutils.TestableNetworkCallback
import kotlin.test.assertEquals
@@ -60,6 +64,7 @@ import kotlin.test.assertNotNull
import kotlin.test.assertTrue
import kotlin.test.fail
import org.junit.After
import org.junit.Assume
import org.junit.Before
import org.junit.BeforeClass
import org.junit.Test
@@ -302,4 +307,25 @@ class ConnectivityServiceIntegrationTest {
!it.hasCapability(NET_CAPABILITY_VALIDATED)
}
}
private fun isBpfGetCgroupProgramIdSupportedByKernel(): Boolean {
val kVersionString = VintfRuntimeInfo.getKernelVersion()
return DeviceInfoUtils.compareMajorMinorVersion(kVersionString, "4.19") >= 0
}
@Test
fun testBpfProgramAttachStatus() {
Assume.assumeTrue(isBpfGetCgroupProgramIdSupportedByKernel())
listOf(
BpfUtils.BPF_CGROUP_INET_INGRESS,
BpfUtils.BPF_CGROUP_INET_EGRESS,
BpfUtils.BPF_CGROUP_INET_SOCK_CREATE
).forEach {
val ret = SystemUtil.runShellCommand(InstrumentationRegistry.getInstrumentation(),
"cmd connectivity bpf-get-cgroup-program-id $it").trim()
assertTrue(Integer.parseInt(ret) > 0, "Unexpected output $ret for type $it")
}
}
}