am 9c1c62ae: am 1a58f7d6: am fd7879ec: Merge "Amending testcase to support updated memory requirement for L." into lmp-mr1-dev
* commit '9c1c62aea21a91f7dbb6a9153d3402eb9ed90f32':
Amending testcase to support updated memory requirement for L.
diff --git a/tests/tests/app/src/android/app/cts/ActivityManagerMemoryClassTest.java b/tests/tests/app/src/android/app/cts/ActivityManagerMemoryClassTest.java
index 7d3fc5e..10c6ed7 100644
--- a/tests/tests/app/src/android/app/cts/ActivityManagerMemoryClassTest.java
+++ b/tests/tests/app/src/android/app/cts/ActivityManagerMemoryClassTest.java
@@ -24,6 +24,8 @@
import android.util.DisplayMetrics;
import android.view.Display;
import android.view.WindowManager;
+import java.util.HashMap;
+import java.util.Map;
/**
* {@link ActivityInstrumentationTestCase2} that tests {@link ActivityManager#getMemoryClass()}
@@ -37,6 +39,66 @@
super(ActivityManagerMemoryClassLaunchActivity.class);
}
+ public static class ExpectedMemorySizesClass {
+ private static final Map<Integer, Integer> expectedMemorySizeForSmallNormalScreen
+ = new HashMap<Integer, Integer>();
+ private static final Map<Integer, Integer> expectedMemorySizeForLargeScreen
+ = new HashMap<Integer, Integer>();
+ private static final Map<Integer, Integer> expectedMemorySizeForXLargeScreen
+ = new HashMap<Integer, Integer>();
+
+ static {
+ expectedMemorySizeForSmallNormalScreen.put(DisplayMetrics.DENSITY_LOW, 32);
+ expectedMemorySizeForSmallNormalScreen.put(DisplayMetrics.DENSITY_MEDIUM, 32);
+ expectedMemorySizeForSmallNormalScreen.put(DisplayMetrics.DENSITY_TV, 48);
+ expectedMemorySizeForSmallNormalScreen.put(DisplayMetrics.DENSITY_HIGH, 48);
+ expectedMemorySizeForSmallNormalScreen.put(DisplayMetrics.DENSITY_XHIGH, 48);
+ expectedMemorySizeForSmallNormalScreen.put(DisplayMetrics.DENSITY_400, 96);
+ expectedMemorySizeForSmallNormalScreen.put(DisplayMetrics.DENSITY_XXHIGH, 128);
+ expectedMemorySizeForSmallNormalScreen.put(DisplayMetrics.DENSITY_560, 192);
+ expectedMemorySizeForSmallNormalScreen.put(DisplayMetrics.DENSITY_XXXHIGH, 256);
+ }
+
+ static {
+ expectedMemorySizeForLargeScreen.put(DisplayMetrics.DENSITY_LOW, 32);
+ expectedMemorySizeForLargeScreen.put(DisplayMetrics.DENSITY_MEDIUM, 64);
+ expectedMemorySizeForLargeScreen.put(DisplayMetrics.DENSITY_TV, 80);
+ expectedMemorySizeForLargeScreen.put(DisplayMetrics.DENSITY_HIGH, 80);
+ expectedMemorySizeForLargeScreen.put(DisplayMetrics.DENSITY_XHIGH, 128);
+ expectedMemorySizeForLargeScreen.put(DisplayMetrics.DENSITY_400, 192);
+ expectedMemorySizeForLargeScreen.put(DisplayMetrics.DENSITY_XXHIGH, 256);
+ expectedMemorySizeForLargeScreen.put(DisplayMetrics.DENSITY_560, 384);
+ expectedMemorySizeForLargeScreen.put(DisplayMetrics.DENSITY_XXXHIGH, 512);
+ }
+
+ static {
+ expectedMemorySizeForXLargeScreen.put(DisplayMetrics.DENSITY_LOW, 48);
+ expectedMemorySizeForXLargeScreen.put(DisplayMetrics.DENSITY_MEDIUM, 80);
+ expectedMemorySizeForXLargeScreen.put(DisplayMetrics.DENSITY_TV, 96);
+ expectedMemorySizeForXLargeScreen.put(DisplayMetrics.DENSITY_HIGH, 96);
+ expectedMemorySizeForXLargeScreen.put(DisplayMetrics.DENSITY_XHIGH, 192);
+ expectedMemorySizeForXLargeScreen.put(DisplayMetrics.DENSITY_400, 288);
+ expectedMemorySizeForXLargeScreen.put(DisplayMetrics.DENSITY_XXHIGH, 384);
+ expectedMemorySizeForXLargeScreen.put(DisplayMetrics.DENSITY_560, 576);
+ expectedMemorySizeForXLargeScreen.put(DisplayMetrics.DENSITY_XXXHIGH, 768);
+ }
+
+ public static Integer getExpectedMemorySize(int screenSize, int screenDensity) {
+ switch (screenSize) {
+ case Configuration.SCREENLAYOUT_SIZE_SMALL:
+ case Configuration.SCREENLAYOUT_SIZE_NORMAL:
+ return expectedMemorySizeForSmallNormalScreen.get(screenDensity);
+ case Configuration.SCREENLAYOUT_SIZE_LARGE:
+ return expectedMemorySizeForLargeScreen.get(screenDensity);
+ case Configuration.SCREENLAYOUT_SIZE_XLARGE:
+ return expectedMemorySizeForXLargeScreen.get(screenDensity);
+ default:
+ throw new IllegalArgumentException("No memory requirement specified "
+ + " for screen layout size " + screenSize);
+ }
+ }
+ }
+
public void testGetMemoryClass() throws Exception {
int memoryClass = getMemoryClass();
int screenDensity = getScreenDensity();
@@ -70,46 +132,8 @@
}
private void assertMemoryForScreenDensity(int memoryClass, int screenDensity, int screenSize) {
- int expectedMinimumMemory = -1;
- boolean isXLarge = screenSize == Configuration.SCREENLAYOUT_SIZE_XLARGE;
- switch (screenDensity) {
- case DisplayMetrics.DENSITY_LOW:
- expectedMinimumMemory = 16;
- break;
-
- case DisplayMetrics.DENSITY_MEDIUM:
- expectedMinimumMemory = isXLarge ? 32 : 16;
- break;
-
- case DisplayMetrics.DENSITY_HIGH:
- case DisplayMetrics.DENSITY_TV:
- expectedMinimumMemory = isXLarge ? 64 : 32;
- break;
-
- case DisplayMetrics.DENSITY_XHIGH:
- expectedMinimumMemory = isXLarge ? 128 : 64;
- break;
-
- case DisplayMetrics.DENSITY_400:
- expectedMinimumMemory = isXLarge ? 192 : 128;
- break;
-
- case DisplayMetrics.DENSITY_XXHIGH:
- expectedMinimumMemory = isXLarge ? 256 : 128;
- break;
-
- case DisplayMetrics.DENSITY_560:
- expectedMinimumMemory = isXLarge ? 512 : 256;
- break;
-
- case DisplayMetrics.DENSITY_XXXHIGH:
- expectedMinimumMemory = isXLarge ? 512 : 256;
- break;
-
- default:
- throw new IllegalArgumentException("No memory requirement specified "
- + " for screen density " + screenDensity);
- }
+ int expectedMinimumMemory = ExpectedMemorySizesClass.getExpectedMemorySize(screenDensity,
+ screenSize);
assertTrue("Expected to have at least " + expectedMinimumMemory
+ "mb of memory for screen density " + screenDensity,