Move uidPermissionMap dump to BpfNetMaps

Also remove the dump of mPrivilegedUser because this is not used now and
the information is duplicated with uidPermissionMap dump.

Before this CL
....
mUidPermissionMap:
10049 PERMISSION_NONE
10027  BPF_PERMISSION_INTERNET BPF_PERMISSION_UPDATE_DEVICE_STATS
1041  BPF_PERMISSION_UPDATE_DEVICE_STATS
....

After this CL
....
sUidPermissionMap:
  10049 PERMISSION_NONE
  10027 PERMISSION_INTERNET PERMISSION_UPDATE_DEVICE_STATS
  1041 PERMISSION_UPDATE_DEVICE_STATS
....

Bug: 217624062
Test: dumpsys connectivity trafficcontroller, atest BpfNetMapsTest
Change-Id: I416501d5a28a5443f954f9c8c58ea255e5cdc897
This commit is contained in:
Motomu Utsumi
2022-09-02 12:48:20 +09:00
parent d98a02985b
commit 310850f210
5 changed files with 82 additions and 24 deletions

View File

@@ -61,6 +61,7 @@ import android.net.INetd;
import android.os.Build;
import android.os.ServiceSpecificException;
import android.system.ErrnoException;
import android.util.IndentingPrintWriter;
import androidx.test.filters.SmallTest;
@@ -84,6 +85,8 @@ import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import java.io.FileDescriptor;
import java.io.StringWriter;
import java.util.ArrayList;
import java.util.List;
@@ -927,4 +930,37 @@ public final class BpfNetMapsTest {
final int ret = mBpfNetMaps.pullBpfMapInfoAtom(-1 /* atomTag */, new ArrayList<>());
assertEquals(StatsManager.PULL_SKIP, ret);
}
private void assertDumpContains(final String dump, final String message) {
assertTrue(String.format("dump(%s) does not contain '%s'", dump, message),
dump.contains(message));
}
private String getDump() throws Exception {
final StringWriter sw = new StringWriter();
mBpfNetMaps.dump(new IndentingPrintWriter(sw), new FileDescriptor(), true /* verbose */);
return sw.toString();
}
private void doTestDumpUidPermissionMap(final int permission, final String permissionString)
throws Exception {
mUidPermissionMap.updateEntry(new S32(TEST_UID), new U8((short) permission));
assertDumpContains(getDump(), TEST_UID + " " + permissionString);
}
@Test
@IgnoreUpTo(Build.VERSION_CODES.S_V2)
public void testDumpUidPermissionMap() throws Exception {
doTestDumpUidPermissionMap(PERMISSION_NONE, "PERMISSION_NONE");
doTestDumpUidPermissionMap(PERMISSION_INTERNET | PERMISSION_UPDATE_DEVICE_STATS,
"PERMISSION_INTERNET PERMISSION_UPDATE_DEVICE_STATS");
}
@Test
@IgnoreUpTo(Build.VERSION_CODES.S_V2)
public void testDumpUidPermissionMapInvalidPermission() throws Exception {
doTestDumpUidPermissionMap(PERMISSION_UNINSTALLED, "PERMISSION_UNINSTALLED error!");
doTestDumpUidPermissionMap(PERMISSION_INTERNET | 1 << 6,
"PERMISSION_INTERNET PERMISSION_UNKNOWN(64)");
}
}