From eae4ebf690084929de533053e80684ff9bb6022c Mon Sep 17 00:00:00 2001 From: Remi NGUYEN VAN Date: Mon, 21 Apr 2025 15:29:30 +0900 Subject: [PATCH] Hardcode the setting for multipath preference Remove the dependency on hidden API by setting the constant in tests. While there is a ConnectivitySettingsManager for this setting, it is mostly broken (does not allow combining different bitmask values for the multipath preference), and OEMs are much more likely to be setting the setting directly. In practice the constant cannot be changed, otherwise some of these callers may break. Therefore it is more valuable/realistic to test behavior when the setting is modified directly. Test: atest Flag: TEST_ONLY Bug: 410435307 Bug: 411565010 Change-Id: I802541ae0a6a6bab4b98c1a64dacb04775c349df --- .../android/net/cts/ConnectivityManagerTest.java | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/tests/cts/net/src/android/net/cts/ConnectivityManagerTest.java b/tests/cts/net/src/android/net/cts/ConnectivityManagerTest.java index 207b2e5206..64441c674a 100644 --- a/tests/cts/net/src/android/net/cts/ConnectivityManagerTest.java +++ b/tests/cts/net/src/android/net/cts/ConnectivityManagerTest.java @@ -98,7 +98,6 @@ import static android.net.cts.util.CtsNetUtils.TEST_HOST; import static android.net.cts.util.CtsTetheringUtils.TestTetheringEventCallback; import static android.os.MessageQueue.OnFileDescriptorEventListener.EVENT_INPUT; import static android.os.Process.INVALID_UID; -import static android.provider.Settings.Global.NETWORK_METERED_MULTIPATH_PREFERENCE; import static android.system.OsConstants.AF_INET; import static android.system.OsConstants.AF_INET6; import static android.system.OsConstants.AF_UNSPEC; @@ -345,6 +344,8 @@ public class ConnectivityManagerTest { 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_SETTING = + "network_metered_multipath_preference"; private static final String NETWORK_METERED_MULTIPATH_PREFERENCE_RES_NAME = "config_networkMeteredMultipathPreference"; private static final String KEEPALIVE_ALLOWED_UNPRIVILEGED_RES_NAME = @@ -1653,7 +1654,7 @@ public class ConnectivityManagerTest { private int getCurrentMeteredMultipathPreference(ContentResolver resolver) { final String rawMeteredPref = Settings.Global.getString(resolver, - NETWORK_METERED_MULTIPATH_PREFERENCE); + NETWORK_METERED_MULTIPATH_PREFERENCE_SETTING); return TextUtils.isEmpty(rawMeteredPref) ? getIntResourceForName(NETWORK_METERED_MULTIPATH_PREFERENCE_RES_NAME) : Integer.parseInt(rawMeteredPref); @@ -1684,11 +1685,11 @@ public class ConnectivityManagerTest { final String ssid = unquoteSSID(getSSID()); final String oldMeteredSetting = getWifiMeteredStatus(ssid); final String oldMeteredMultipathPreference = Settings.Global.getString( - resolver, NETWORK_METERED_MULTIPATH_PREFERENCE); + resolver, NETWORK_METERED_MULTIPATH_PREFERENCE_SETTING); try { final int initialMeteredPreference = getCurrentMeteredMultipathPreference(resolver); int newMeteredPreference = findNextPrefValue(resolver); - Settings.Global.putString(resolver, NETWORK_METERED_MULTIPATH_PREFERENCE, + Settings.Global.putString(resolver, NETWORK_METERED_MULTIPATH_PREFERENCE_SETTING, Integer.toString(newMeteredPreference)); // Wifi meteredness changes from unmetered to metered will disconnect and reconnect // since R. @@ -1702,7 +1703,7 @@ public class ConnectivityManagerTest { final int oldMeteredPreference = newMeteredPreference; newMeteredPreference = findNextPrefValue(resolver); - Settings.Global.putString(resolver, NETWORK_METERED_MULTIPATH_PREFERENCE, + Settings.Global.putString(resolver, NETWORK_METERED_MULTIPATH_PREFERENCE_SETTING, Integer.toString(newMeteredPreference)); assertEquals(mCm.getNetworkCapabilities(network).hasCapability( NET_CAPABILITY_NOT_METERED), false); @@ -1716,7 +1717,7 @@ public class ConnectivityManagerTest { assertMultipathPreferenceIsEventually(network, newMeteredPreference, ConnectivityManager.MULTIPATH_PREFERENCE_UNMETERED); } finally { - Settings.Global.putString(resolver, NETWORK_METERED_MULTIPATH_PREFERENCE, + Settings.Global.putString(resolver, NETWORK_METERED_MULTIPATH_PREFERENCE_SETTING, oldMeteredMultipathPreference); setWifiMeteredStatus(ssid, oldMeteredSetting); }