Merge "Resolve resource ID at runtime to stabilize tests" into qt-dev

This commit is contained in:
TreeHugger Robot
2019-07-10 21:39:17 +00:00
committed by Android (Google) Code Review

View File

@@ -44,6 +44,7 @@ import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.pm.PackageManager;
import android.content.res.Resources;
import android.net.ConnectivityManager;
import android.net.ConnectivityManager.NetworkCallback;
import android.net.IpSecManager;
@@ -75,9 +76,6 @@ import android.util.Pair;
import androidx.test.InstrumentationRegistry;
import com.android.internal.R;
import com.android.internal.telephony.PhoneConstants;
import libcore.io.Streams;
import java.io.FileDescriptor;
@@ -129,6 +127,13 @@ public class ConnectivityManagerTest extends AndroidTestCase {
public static final int MIN_SUPPORTED_CELLULAR_KEEPALIVE_COUNT = 1;
public static final int MIN_SUPPORTED_WIFI_KEEPALIVE_COUNT = 3;
private static final String NETWORK_METERED_MULTIPATH_PREFERENCE_RES_NAME =
"config_networkMeteredMultipathPreference";
private static final String KEEPALIVE_ALLOWED_UNPRIVILEGED_RES_NAME =
"config_allowedUnprivilegedKeepalivePerUid";
private static final String KEEPALIVE_RESERVED_PER_SLOT_RES_NAME =
"config_reservedPrivilegedKeepaliveSlots";
private Context mContext;
private Instrumentation mInstrumentation;
private ConnectivityManager mCm;
@@ -376,9 +381,6 @@ public class ConnectivityManagerTest extends AndroidTestCase {
final String invalidateFeature = "invalidateFeature";
final String mmsFeature = "enableMMS";
final int failureCode = -1;
final int wifiOnlyStartFailureCode = PhoneConstants.APN_REQUEST_FAILED;
final int wifiOnlyStopFailureCode = -1;
assertStartUsingNetworkFeatureUnsupported(TYPE_MOBILE, invalidateFeature);
assertStopUsingNetworkFeatureUnsupported(TYPE_MOBILE, invalidateFeature);
@@ -672,7 +674,7 @@ public class ConnectivityManagerTest extends AndroidTestCase {
final String rawMeteredPref = Settings.Global.getString(resolver,
NETWORK_METERED_MULTIPATH_PREFERENCE);
return TextUtils.isEmpty(rawMeteredPref)
? mContext.getResources().getInteger(R.integer.config_networkMeteredMultipathPreference)
? getIntResourceForName(NETWORK_METERED_MULTIPATH_PREFERENCE_RES_NAME)
: Integer.parseInt(rawMeteredPref);
}
@@ -1216,6 +1218,12 @@ public class ConnectivityManagerTest extends AndroidTestCase {
dropShellPermissionIdentity();
}
private int getIntResourceForName(@NonNull String resName) {
final Resources r = mContext.getResources();
final int resId = r.getIdentifier(resName, "integer", "android");
return r.getInteger(resId);
}
/**
* Verifies that the keepalive slots are limited as customized for unprivileged requests.
*/
@@ -1233,10 +1241,12 @@ public class ConnectivityManagerTest extends AndroidTestCase {
return;
}
final int allowedUnprivilegedPerUid = mContext.getResources().getInteger(
R.integer.config_allowedUnprivilegedKeepalivePerUid);
final int reservedPrivilegedSlots = mContext.getResources().getInteger(
R.integer.config_reservedPrivilegedKeepaliveSlots);
// Resource ID might be shifted on devices that compiled with different symbols.
// Thus, resolve ID at runtime is needed.
final int allowedUnprivilegedPerUid =
getIntResourceForName(KEEPALIVE_ALLOWED_UNPRIVILEGED_RES_NAME);
final int reservedPrivilegedSlots =
getIntResourceForName(KEEPALIVE_RESERVED_PER_SLOT_RES_NAME);
// Verifies that unprivileged request per uid cannot exceed the limit customized in the
// resource. Currently, unprivileged keepalive slots are limited to Nat-T only, this test
// does not apply to TCP.