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. // order-dependent setup.
"NetworkStackApiStableLib", "NetworkStackApiStableLib",
"androidx.test.ext.junit", "androidx.test.ext.junit",
"compatibility-device-util-axt",
"frameworks-net-integration-testutils", "frameworks-net-integration-testutils",
"kotlin-reflect", "kotlin-reflect",
"mockito-target-extended-minus-junit4", "mockito-target-extended-minus-junit4",

View File

@@ -40,11 +40,14 @@ import android.os.ConditionVariable
import android.os.IBinder import android.os.IBinder
import android.os.SystemConfigManager import android.os.SystemConfigManager
import android.os.UserHandle import android.os.UserHandle
import android.os.VintfRuntimeInfo
import android.testing.TestableContext import android.testing.TestableContext
import android.util.Log import android.util.Log
import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.platform.app.InstrumentationRegistry import androidx.test.platform.app.InstrumentationRegistry
import com.android.compatibility.common.util.SystemUtil
import com.android.connectivity.resources.R import com.android.connectivity.resources.R
import com.android.net.module.util.BpfUtils
import com.android.server.BpfNetMaps import com.android.server.BpfNetMaps
import com.android.server.ConnectivityService import com.android.server.ConnectivityService
import com.android.server.NetworkAgentWrapper 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.MockableSystemProperties
import com.android.server.connectivity.MultinetworkPolicyTracker import com.android.server.connectivity.MultinetworkPolicyTracker
import com.android.server.connectivity.ProxyTracker import com.android.server.connectivity.ProxyTracker
import com.android.testutils.DeviceInfoUtils
import com.android.testutils.RecorderCallback.CallbackEntry.LinkPropertiesChanged import com.android.testutils.RecorderCallback.CallbackEntry.LinkPropertiesChanged
import com.android.testutils.TestableNetworkCallback import com.android.testutils.TestableNetworkCallback
import kotlin.test.assertEquals import kotlin.test.assertEquals
@@ -60,6 +64,7 @@ import kotlin.test.assertNotNull
import kotlin.test.assertTrue import kotlin.test.assertTrue
import kotlin.test.fail import kotlin.test.fail
import org.junit.After import org.junit.After
import org.junit.Assume
import org.junit.Before import org.junit.Before
import org.junit.BeforeClass import org.junit.BeforeClass
import org.junit.Test import org.junit.Test
@@ -302,4 +307,25 @@ class ConnectivityServiceIntegrationTest {
!it.hasCapability(NET_CAPABILITY_VALIDATED) !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")
}
}
} }