Merge "Move uidPermissionMap dump to BpfNetMaps"

This commit is contained in:
Motomu Utsumi
2022-10-05 04:07:46 +00:00
committed by Gerrit Code Review
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)");
}
}