Merge "Update android.host.theme reference images for 400dpi device" into lmp-dev
diff --git a/apps/CtsVerifier/Android.mk b/apps/CtsVerifier/Android.mk
index 88386ec..34bc230 100644
--- a/apps/CtsVerifier/Android.mk
+++ b/apps/CtsVerifier/Android.mk
@@ -21,6 +21,8 @@
LOCAL_MODULE_PATH := $(TARGET_OUT_DATA_APPS)
+LOCAL_MULTILIB := both
+
LOCAL_SRC_FILES := $(call all-java-files-under, src) $(call all-Iaidl-files-under, src)
LOCAL_STATIC_JAVA_LIBRARIES := cts-sensors-tests ctstestrunner
diff --git a/hostsidetests/appsecurity/test-apps/DocumentClient/src/com/android/cts/documentclient/DocumentsClientTest.java b/hostsidetests/appsecurity/test-apps/DocumentClient/src/com/android/cts/documentclient/DocumentsClientTest.java
index 6720dff..fe8f9ee 100644
--- a/hostsidetests/appsecurity/test-apps/DocumentClient/src/com/android/cts/documentclient/DocumentsClientTest.java
+++ b/hostsidetests/appsecurity/test-apps/DocumentClient/src/com/android/cts/documentclient/DocumentsClientTest.java
@@ -30,6 +30,7 @@
import android.support.test.uiautomator.UiSelector;
import android.test.InstrumentationTestCase;
import android.test.MoreAsserts;
+import android.text.format.DateUtils;
import com.android.cts.documentclient.MyActivity.Result;
@@ -47,6 +48,8 @@
private UiDevice mDevice;
private MyActivity mActivity;
+ private static final long TIMEOUT = 10 * DateUtils.SECOND_IN_MILLIS;
+
@Override
public void setUp() throws Exception {
super.setUp();
@@ -80,7 +83,7 @@
// Ensure that we see both of our roots
mDevice.waitForIdle();
- assertTrue("CtsLocal root", new UiObject(new UiSelector().text("CtsLocal")).exists());
+ assertTrue("CtsLocal root", new UiObject(new UiSelector().text("CtsLocal")).waitForExists(TIMEOUT));
assertTrue("CtsCreate root", new UiObject(new UiSelector().text("CtsCreate")).exists());
assertFalse("CtsGetContent", new UiObject(new UiSelector().text("CtsGetContent")).exists());
@@ -241,7 +244,7 @@
// Look around, we should be able to see both DocumentsProviders and
// other GET_CONTENT sources.
mDevice.waitForIdle();
- assertTrue("CtsLocal root", new UiObject(new UiSelector().text("CtsLocal")).exists());
+ assertTrue("CtsLocal root", new UiObject(new UiSelector().text("CtsLocal")).waitForExists(TIMEOUT));
assertTrue("CtsCreate root", new UiObject(new UiSelector().text("CtsCreate")).exists());
assertTrue("CtsGetContent", new UiObject(new UiSelector().text("CtsGetContent")).exists());
diff --git a/tests/expectations/knownfailures.txt b/tests/expectations/knownfailures.txt
index 9ae041c..ae78695 100644
--- a/tests/expectations/knownfailures.txt
+++ b/tests/expectations/knownfailures.txt
@@ -357,5 +357,12 @@
"android.media.cts.ImageReaderDecoderTest#testHwAVCDecode360pForFlexibleYuv"
],
bug: 17144778
+},
+{
+ description: "Roboto font tests are not yet known good on all devices",
+ names: [
+ "android.uirendering.cts.testclasses.FontRenderingTests"
+ ],
+ bug: 17109280
}
]
diff --git a/tests/tests/location2/src/android/location2/cts/LocationManagerTest.java b/tests/tests/location2/src/android/location2/cts/LocationManagerTest.java
index f330e8a..3765809 100644
--- a/tests/tests/location2/src/android/location2/cts/LocationManagerTest.java
+++ b/tests/tests/location2/src/android/location2/cts/LocationManagerTest.java
@@ -227,15 +227,18 @@
@UiThreadTest
public void testGpsStatusListener() {
try {
- mManager.addGpsStatusListener(new MockGpsStatusListener());
- fail("Should have failed to add a gps status listener");
+ // .addGpsStatusListener returns true if the listener added successfully
+ if (mManager.addGpsStatusListener(new MockGpsStatusListener())) {
+ fail("Should have failed to add a gps status listener");
+ }
} catch (SecurityException e) {
// expected
}
try {
- mManager.addGpsStatusListener(null);
- fail("Should have failed to add a gps status listener");
+ if (mManager.addGpsStatusListener(null)) {
+ fail("Should have failed to add null as a gps status listener");
+ }
} catch (SecurityException e) {
// expected
}
diff --git a/tests/tests/media/src/android/media/cts/MediaCodecTest.java b/tests/tests/media/src/android/media/cts/MediaCodecTest.java
index 6726728..f72e3a0 100644
--- a/tests/tests/media/src/android/media/cts/MediaCodecTest.java
+++ b/tests/tests/media/src/android/media/cts/MediaCodecTest.java
@@ -402,8 +402,7 @@
inputSurface.makeCurrent();
encoder.start();
- int totalBuffers = encoder.getInputBuffers().length +
- encoder.getOutputBuffers().length;
+ int totalBuffers = encoder.getOutputBuffers().length;
if (VERBOSE) Log.d(TAG, "Total buffers: " + totalBuffers);
// Submit several frames quickly, without draining the encoder output, to try to
diff --git a/tests/tests/os/src/android/os/cts/BuildTest.java b/tests/tests/os/src/android/os/cts/BuildTest.java
index 08db484..26b07f1 100644
--- a/tests/tests/os/src/android/os/cts/BuildTest.java
+++ b/tests/tests/os/src/android/os/cts/BuildTest.java
@@ -18,8 +18,13 @@
import android.os.Build;
+import android.os.SystemProperties;
+
+import dalvik.system.VMRuntime;
import java.io.IOException;
+import java.util.Arrays;
+import java.util.List;
import java.util.Scanner;
import java.util.regex.Pattern;
@@ -27,59 +32,76 @@
public class BuildTest extends TestCase {
- private static final String RO_PRODUCT_CPU_ABI = "ro.product.cpu.abi";
-
- private static final String RO_PRODUCT_CPU_ABI2 = "ro.product.cpu.abi2";
+ private static final String RO_PRODUCT_CPU_ABILIST = "ro.product.cpu.abilist";
+ private static final String RO_PRODUCT_CPU_ABILIST32 = "ro.product.cpu.abilist32";
+ private static final String RO_PRODUCT_CPU_ABILIST64 = "ro.product.cpu.abilist64";
/** Tests that check the values of {@link Build#CPU_ABI} and {@link Build#CPU_ABI2}. */
- public void testCpuAbi() throws IOException {
- if (CpuFeatures.isArmCpu()) {
- assertArmCpuAbiConstants();
+ public void testCpuAbi() throws Exception {
+ testCpuAbiCommon();
+ if (VMRuntime.getRuntime().is64Bit()) {
+ testCpuAbi64();
+ } else {
+ testCpuAbi32();
}
}
- private void assertArmCpuAbiConstants() throws IOException {
- if (CpuFeatures.isArm7Compatible()) {
- String cpuAbi = getProperty(RO_PRODUCT_CPU_ABI);
- String cpuAbi2 = getProperty(RO_PRODUCT_CPU_ABI2);
- //if CPU_ABI is armv7, CPU_ABI2 is either of {armeabi, NULL}
- if (cpuAbi.equals(CpuFeatures.ARMEABI_V7)) {
- String message = "CPU is ARM v7 compatible, so "
- + RO_PRODUCT_CPU_ABI + " must be set to " + CpuFeatures.ARMEABI_V7 + " and "
- + RO_PRODUCT_CPU_ABI2 + " must be set to " + CpuFeatures.ARMEABI + " or NULL";
- assertEquals(message, CpuFeatures.ARMEABI_V7, Build.CPU_ABI);
- if (cpuAbi2.equals(CpuFeatures.ARMEABI)){
- assertEquals(message, cpuAbi2, Build.CPU_ABI2);
- } else {
- assertNoPropertySet(message, RO_PRODUCT_CPU_ABI2);
- assertEquals(message, Build.UNKNOWN, Build.CPU_ABI2);
- }
- }
- //if CPU_ABI is x86, then CPU_ABI2 is either of {armeabi, armv7, NULL}
- else if (cpuAbi.equals(CpuFeatures.X86ABI)) {
- String message = "CPU is x86 but ARM v7 compatible, so "
- + RO_PRODUCT_CPU_ABI + " must be set to " + CpuFeatures.X86ABI + " and "
- + RO_PRODUCT_CPU_ABI2 + " must be set to " + CpuFeatures.ARMEABI + " or "
- + CpuFeatures.ARMEABI_V7 + " or NULL";
- assertEquals(message, CpuFeatures.X86ABI, Build.CPU_ABI);
- if (cpuAbi2.equals(CpuFeatures.ARMEABI_V7) || cpuAbi2.equals(CpuFeatures.ARMEABI))
- assertEquals(message, cpuAbi2, Build.CPU_ABI2);
- else {
- assertNoPropertySet(message, RO_PRODUCT_CPU_ABI2);
- assertEquals(message, Build.UNKNOWN, Build.CPU_ABI2);
- }
- }
+ private void testCpuAbiCommon() throws Exception {
+ // The build property must match Build.SUPPORTED_ABIS exactly.
+ final String[] abiListProperty = getStringList(RO_PRODUCT_CPU_ABILIST);
+ assertEquals(Arrays.toString(abiListProperty), Arrays.toString(Build.SUPPORTED_ABIS));
+
+ List<String> abiList = Arrays.asList(abiListProperty);
+
+ // Every device must support at least one 32 bit ABI.
+ assertTrue(Build.SUPPORTED_32_BIT_ABIS.length > 0);
+
+ // Every supported 32 bit ABI must be present in Build.SUPPORTED_ABIS.
+ for (String abi : Build.SUPPORTED_32_BIT_ABIS) {
+ assertTrue(abiList.contains(abi));
+ assertFalse(VMRuntime.is64BitAbi(abi));
}
- else {
- String message = "CPU is not ARM v7 compatible. "
- + RO_PRODUCT_CPU_ABI + " must be set to " + CpuFeatures.ARMEABI + " and "
- + RO_PRODUCT_CPU_ABI2 + " must not be set.";
- assertProperty(message, RO_PRODUCT_CPU_ABI, CpuFeatures.ARMEABI);
- assertNoPropertySet(message, RO_PRODUCT_CPU_ABI2);
- assertEquals(message, CpuFeatures.ARMEABI, Build.CPU_ABI);
- assertEquals(message, Build.UNKNOWN, Build.CPU_ABI2);
+
+ // Every supported 64 bit ABI must be present in Build.SUPPORTED_ABIS.
+ for (String abi : Build.SUPPORTED_64_BIT_ABIS) {
+ assertTrue(abiList.contains(abi));
+ assertTrue(VMRuntime.is64BitAbi(abi));
+ }
+
+ // Build.CPU_ABI and Build.CPU_ABI2 must be present in Build.SUPPORTED_ABIS.
+ assertTrue(abiList.contains(Build.CPU_ABI));
+ if (!Build.CPU_ABI2.isEmpty()) {
+ assertTrue(abiList.contains(Build.CPU_ABI2));
}
}
+
+ private void testCpuAbi32() throws Exception {
+ List<String> abi32 = Arrays.asList(Build.SUPPORTED_32_BIT_ABIS);
+ assertTrue(abi32.contains(Build.CPU_ABI));
+
+ if (!Build.CPU_ABI2.isEmpty()) {
+ assertTrue(abi32.contains(Build.CPU_ABI2));
+ }
+ }
+
+ private void testCpuAbi64() {
+ List<String> abi64 = Arrays.asList(Build.SUPPORTED_64_BIT_ABIS);
+ assertTrue(abi64.contains(Build.CPU_ABI));
+
+ if (!Build.CPU_ABI2.isEmpty()) {
+ assertTrue(abi64.contains(Build.CPU_ABI2));
+ }
+ }
+
+ private String[] getStringList(String property) throws IOException {
+ String value = getProperty(property);
+ if (value.isEmpty()) {
+ return new String[0];
+ } else {
+ return value.split(",");
+ }
+ }
+
/**
* @param property name passed to getprop
*/
diff --git a/tests/tests/uirendering/res/drawable-nodpi/black1.png b/tests/tests/uirendering/res/drawable-nodpi/black1.png
new file mode 100644
index 0000000..3487ced
--- /dev/null
+++ b/tests/tests/uirendering/res/drawable-nodpi/black1.png
Binary files differ
diff --git a/tests/tests/uirendering/res/drawable-nodpi/blackitalic1.png b/tests/tests/uirendering/res/drawable-nodpi/blackitalic1.png
new file mode 100644
index 0000000..8fd3b50
--- /dev/null
+++ b/tests/tests/uirendering/res/drawable-nodpi/blackitalic1.png
Binary files differ
diff --git a/tests/tests/uirendering/res/drawable-nodpi/bold1.png b/tests/tests/uirendering/res/drawable-nodpi/bold1.png
new file mode 100644
index 0000000..199cccc
--- /dev/null
+++ b/tests/tests/uirendering/res/drawable-nodpi/bold1.png
Binary files differ
diff --git a/tests/tests/uirendering/res/drawable-nodpi/bolditalic1.png b/tests/tests/uirendering/res/drawable-nodpi/bolditalic1.png
new file mode 100644
index 0000000..985635e
--- /dev/null
+++ b/tests/tests/uirendering/res/drawable-nodpi/bolditalic1.png
Binary files differ
diff --git a/tests/tests/uirendering/res/drawable-nodpi/condensed1.png b/tests/tests/uirendering/res/drawable-nodpi/condensed1.png
new file mode 100644
index 0000000..6889a3a
--- /dev/null
+++ b/tests/tests/uirendering/res/drawable-nodpi/condensed1.png
Binary files differ
diff --git a/tests/tests/uirendering/res/drawable-nodpi/condensedbold1.png b/tests/tests/uirendering/res/drawable-nodpi/condensedbold1.png
new file mode 100644
index 0000000..9554dee
--- /dev/null
+++ b/tests/tests/uirendering/res/drawable-nodpi/condensedbold1.png
Binary files differ
diff --git a/tests/tests/uirendering/res/drawable-nodpi/condensedbolditalic1.png b/tests/tests/uirendering/res/drawable-nodpi/condensedbolditalic1.png
new file mode 100644
index 0000000..0483355
--- /dev/null
+++ b/tests/tests/uirendering/res/drawable-nodpi/condensedbolditalic1.png
Binary files differ
diff --git a/tests/tests/uirendering/res/drawable-nodpi/condenseditalic1.png b/tests/tests/uirendering/res/drawable-nodpi/condenseditalic1.png
new file mode 100644
index 0000000..6584147
--- /dev/null
+++ b/tests/tests/uirendering/res/drawable-nodpi/condenseditalic1.png
Binary files differ
diff --git a/tests/tests/uirendering/res/drawable-nodpi/condensedlight1.png b/tests/tests/uirendering/res/drawable-nodpi/condensedlight1.png
new file mode 100644
index 0000000..49d01ac
--- /dev/null
+++ b/tests/tests/uirendering/res/drawable-nodpi/condensedlight1.png
Binary files differ
diff --git a/tests/tests/uirendering/res/drawable-nodpi/condensedlightitalic1.png b/tests/tests/uirendering/res/drawable-nodpi/condensedlightitalic1.png
new file mode 100644
index 0000000..6fe4a76
--- /dev/null
+++ b/tests/tests/uirendering/res/drawable-nodpi/condensedlightitalic1.png
Binary files differ
diff --git a/tests/tests/uirendering/res/drawable-nodpi/hello1.png b/tests/tests/uirendering/res/drawable-nodpi/hello1.png
new file mode 100644
index 0000000..7a4be5a
--- /dev/null
+++ b/tests/tests/uirendering/res/drawable-nodpi/hello1.png
Binary files differ
diff --git a/tests/tests/uirendering/res/drawable-nodpi/italic1.png b/tests/tests/uirendering/res/drawable-nodpi/italic1.png
new file mode 100644
index 0000000..a5f9ef2
--- /dev/null
+++ b/tests/tests/uirendering/res/drawable-nodpi/italic1.png
Binary files differ
diff --git a/tests/tests/uirendering/res/drawable-nodpi/light1.png b/tests/tests/uirendering/res/drawable-nodpi/light1.png
new file mode 100644
index 0000000..dfa59da
--- /dev/null
+++ b/tests/tests/uirendering/res/drawable-nodpi/light1.png
Binary files differ
diff --git a/tests/tests/uirendering/res/drawable-nodpi/lightitalic1.png b/tests/tests/uirendering/res/drawable-nodpi/lightitalic1.png
new file mode 100644
index 0000000..283ddc4
--- /dev/null
+++ b/tests/tests/uirendering/res/drawable-nodpi/lightitalic1.png
Binary files differ
diff --git a/tests/tests/uirendering/res/drawable-nodpi/medium1.png b/tests/tests/uirendering/res/drawable-nodpi/medium1.png
new file mode 100644
index 0000000..e615186
--- /dev/null
+++ b/tests/tests/uirendering/res/drawable-nodpi/medium1.png
Binary files differ
diff --git a/tests/tests/uirendering/res/drawable-nodpi/mediumitalic1.png b/tests/tests/uirendering/res/drawable-nodpi/mediumitalic1.png
new file mode 100644
index 0000000..3e15fc8
--- /dev/null
+++ b/tests/tests/uirendering/res/drawable-nodpi/mediumitalic1.png
Binary files differ
diff --git a/tests/tests/uirendering/res/drawable-nodpi/thin1.png b/tests/tests/uirendering/res/drawable-nodpi/thin1.png
new file mode 100644
index 0000000..9637262
--- /dev/null
+++ b/tests/tests/uirendering/res/drawable-nodpi/thin1.png
Binary files differ
diff --git a/tests/tests/uirendering/res/drawable-nodpi/thinitalic1.png b/tests/tests/uirendering/res/drawable-nodpi/thinitalic1.png
new file mode 100644
index 0000000..0afbb9a
--- /dev/null
+++ b/tests/tests/uirendering/res/drawable-nodpi/thinitalic1.png
Binary files differ
diff --git a/tests/tests/uirendering/src/android/uirendering/cts/testclasses/FontRenderingTests.java b/tests/tests/uirendering/src/android/uirendering/cts/testclasses/FontRenderingTests.java
new file mode 100644
index 0000000..e7ed7ac
--- /dev/null
+++ b/tests/tests/uirendering/src/android/uirendering/cts/testclasses/FontRenderingTests.java
@@ -0,0 +1,223 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.uirendering.cts.testclasses;
+
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
+import android.graphics.Canvas;
+import android.graphics.Color;
+import android.graphics.Paint;
+import android.graphics.Typeface;
+import android.test.suitebuilder.annotation.SmallTest;
+import android.uirendering.cts.bitmapcomparers.BitmapComparer;
+import android.uirendering.cts.bitmapcomparers.MSSIMComparer;
+import android.uirendering.cts.bitmapverifiers.GoldenImageVerifier;
+import android.uirendering.cts.testinfrastructure.ActivityTestBase;
+import android.uirendering.cts.testinfrastructure.CanvasClient;
+
+import com.android.cts.uirendering.R;
+
+public class FontRenderingTests extends ActivityTestBase {
+ // Threshold is barely loose enough for differences between sw and hw renderers
+ static double MSSIM_THRESHOLD = 0.91;
+
+ private final BitmapComparer mFuzzyComparer = new MSSIMComparer(MSSIM_THRESHOLD);
+
+ // Representative characters including some from Unicode 7
+ private final String mTestString1 = "Hamburg \u20bd";
+ private final String mTestString2 = "\u20b9\u0186\u0254\u1e24\u1e43";
+
+ private void fontTestBody(final Typeface typeface, int id) {
+ Bitmap goldenBitmap = BitmapFactory.decodeResource(getActivity().getResources(), id);
+ createTest()
+ .addCanvasClient(new CanvasClient() {
+ @Override
+ public void draw(Canvas canvas, int width, int height) {
+ Paint p = new Paint();
+ p.setAntiAlias(true);
+ p.setColor(Color.BLACK);
+ p.setTextSize(30);
+ p.setTypeface(typeface);
+ canvas.drawText(mTestString1, 10, 60, p);
+ canvas.drawText(mTestString2, 10, 100, p);
+ }
+ })
+ .runWithVerifier(new GoldenImageVerifier(goldenBitmap, mFuzzyComparer));
+ }
+
+ @SmallTest
+ public void testDefaultFont() {
+ Typeface tf = Typeface.create("sans-serif", Typeface.NORMAL);
+ fontTestBody(tf, R.drawable.hello1);
+ }
+
+ @SmallTest
+ public void testBoldFont() {
+ Typeface tf = Typeface.create("sans-serif", Typeface.BOLD);
+ fontTestBody(tf, R.drawable.bold1);
+ }
+
+ @SmallTest
+ public void testItalicFont() {
+ Typeface tf = Typeface.create("sans-serif", Typeface.ITALIC);
+ fontTestBody(tf, R.drawable.italic1);
+ }
+
+ @SmallTest
+ public void testBoldItalicFont() {
+ Typeface tf = Typeface.create("sans-serif", Typeface.BOLD | Typeface.ITALIC);
+ fontTestBody(tf, R.drawable.bolditalic1);
+ }
+
+ @SmallTest
+ public void testMediumFont() {
+ Typeface tf = Typeface.create("sans-serif-medium", Typeface.NORMAL);
+ fontTestBody(tf, R.drawable.medium1);
+ }
+
+ @SmallTest
+ public void testMediumBoldFont() {
+ // bold attribute on medium base font = black
+ Typeface tf = Typeface.create("sans-serif-medium", Typeface.BOLD);
+ fontTestBody(tf, R.drawable.black1);
+ }
+
+ @SmallTest
+ public void testMediumItalicFont() {
+ Typeface tf = Typeface.create("sans-serif-medium", Typeface.ITALIC);
+ fontTestBody(tf, R.drawable.mediumitalic1);
+ }
+
+ @SmallTest
+ public void testMediumBoldItalicFont() {
+ Typeface tf = Typeface.create("sans-serif-medium", Typeface.BOLD | Typeface.ITALIC);
+ fontTestBody(tf, R.drawable.blackitalic1);
+ }
+
+ @SmallTest
+ public void testLightFont() {
+ Typeface tf = Typeface.create("sans-serif-light", Typeface.NORMAL);
+ fontTestBody(tf, R.drawable.light1);
+ }
+
+ @SmallTest
+ public void testLightBoldFont() {
+ // bold attribute on light base font = medium
+ Typeface tf = Typeface.create("sans-serif-light", Typeface.BOLD);
+ fontTestBody(tf, R.drawable.medium1);
+ }
+
+ @SmallTest
+ public void testLightItalicFont() {
+ Typeface tf = Typeface.create("sans-serif-light", Typeface.ITALIC);
+ fontTestBody(tf, R.drawable.lightitalic1);
+ }
+
+ @SmallTest
+ public void testLightBoldItalicFont() {
+ Typeface tf = Typeface.create("sans-serif-light", Typeface.BOLD | Typeface.ITALIC);
+ fontTestBody(tf, R.drawable.mediumitalic1);
+ }
+
+ @SmallTest
+ public void testThinFont() {
+ Typeface tf = Typeface.create("sans-serif-thin", Typeface.NORMAL);
+ fontTestBody(tf, R.drawable.thin1);
+ }
+
+ @SmallTest
+ public void testThinBoldFont() {
+ // bold attribute on thin base font = normal
+ Typeface tf = Typeface.create("sans-serif-thin", Typeface.BOLD);
+ fontTestBody(tf, R.drawable.hello1);
+ }
+
+ @SmallTest
+ public void testThinItalicFont() {
+ Typeface tf = Typeface.create("sans-serif-thin", Typeface.ITALIC);
+ fontTestBody(tf, R.drawable.thinitalic1);
+ }
+
+ @SmallTest
+ public void testThinBoldItalicFont() {
+ Typeface tf = Typeface.create("sans-serif-thin", Typeface.BOLD | Typeface.ITALIC);
+ fontTestBody(tf, R.drawable.italic1);
+ }
+
+ @SmallTest
+ public void testBlackFont() {
+ Typeface tf = Typeface.create("sans-serif-black", Typeface.NORMAL);
+ fontTestBody(tf, R.drawable.black1);
+ }
+
+ @SmallTest
+ public void testBlackBoldFont() {
+ // bold attribute on black base font = black
+ Typeface tf = Typeface.create("sans-serif-black", Typeface.BOLD);
+ fontTestBody(tf, R.drawable.black1);
+ }
+
+ @SmallTest
+ public void testBlackItalicFont() {
+ Typeface tf = Typeface.create("sans-serif-black", Typeface.ITALIC);
+ fontTestBody(tf, R.drawable.blackitalic1);
+ }
+
+ @SmallTest
+ public void testBlackBoldItalicFont() {
+ Typeface tf = Typeface.create("sans-serif-black", Typeface.BOLD | Typeface.ITALIC);
+ fontTestBody(tf, R.drawable.blackitalic1);
+ }
+
+ /* condensed fonts */
+
+ @SmallTest
+ public void testCondensedFont() {
+ Typeface tf = Typeface.create("sans-serif-condensed", Typeface.NORMAL);
+ fontTestBody(tf, R.drawable.condensed1);
+ }
+
+ @SmallTest
+ public void testCondensedBoldFont() {
+ Typeface tf = Typeface.create("sans-serif-condensed", Typeface.BOLD);
+ fontTestBody(tf, R.drawable.condensedbold1);
+ }
+
+ @SmallTest
+ public void testCondensedItalicFont() {
+ Typeface tf = Typeface.create("sans-serif-condensed", Typeface.ITALIC);
+ fontTestBody(tf, R.drawable.condenseditalic1);
+ }
+
+ @SmallTest
+ public void testCondensedBoldItalicFont() {
+ Typeface tf = Typeface.create("sans-serif-condensed", Typeface.BOLD | Typeface.ITALIC);
+ fontTestBody(tf, R.drawable.condensedbolditalic1);
+ }
+
+ @SmallTest
+ public void testCondensedLightFont() {
+ Typeface tf = Typeface.create("sans-serif-condensed-light", Typeface.NORMAL);
+ fontTestBody(tf, R.drawable.condensedlight1);
+ }
+
+ @SmallTest
+ public void testCondensedLightItalicFont() {
+ Typeface tf = Typeface.create("sans-serif-condensed-light", Typeface.ITALIC);
+ fontTestBody(tf, R.drawable.condensedlightitalic1);
+ }
+}
diff --git a/tests/tests/uirendering/src/android/uirendering/cts/testinfrastructure/ActivityTestBase.java b/tests/tests/uirendering/src/android/uirendering/cts/testinfrastructure/ActivityTestBase.java
index 9f9aa41..052b251 100644
--- a/tests/tests/uirendering/src/android/uirendering/cts/testinfrastructure/ActivityTestBase.java
+++ b/tests/tests/uirendering/src/android/uirendering/cts/testinfrastructure/ActivityTestBase.java
@@ -185,7 +185,8 @@
TEST_WIDTH, TEST_HEIGHT);
boolean success = bitmapVerifier.verify(mSoftwareArray, 0, TEST_WIDTH, TEST_WIDTH, TEST_HEIGHT);
if (!success) {
- BitmapDumper.dumpBitmap(bitmap, getName(), this.getClass().getSimpleName());
+ Bitmap croppedBitmap = Bitmap.createBitmap(bitmap, 0, 0, TEST_WIDTH, TEST_HEIGHT);
+ BitmapDumper.dumpBitmap(croppedBitmap, getName(), this.getClass().getSimpleName());
BitmapDumper.dumpBitmap(bitmapVerifier.getDifferenceBitmap(), getName() + "_verifier",
this.getClass().getSimpleName());
}
diff --git a/tests/tests/uirendering/src/android/uirendering/cts/util/BitmapDumper.java b/tests/tests/uirendering/src/android/uirendering/cts/util/BitmapDumper.java
index be680d9..41e255b 100644
--- a/tests/tests/uirendering/src/android/uirendering/cts/util/BitmapDumper.java
+++ b/tests/tests/uirendering/src/android/uirendering/cts/util/BitmapDumper.java
@@ -84,9 +84,10 @@
int[] visualizerArray = differenceVisualizer.getDifferences(idealArray, testedArray);
visualizerBitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
visualizerBitmap.setPixels(visualizerArray, 0, width, 0, 0, width, height);
+ Bitmap croppedBitmap = Bitmap.createBitmap(testedBitmap, 0, 0, width, height);
saveFile(className, testName, IDEAL_RENDERING_FILE_NAME, idealBitmap);
- saveFile(className, testName, TESTED_RENDERING_FILE_NAME, testedBitmap);
+ saveFile(className, testName, TESTED_RENDERING_FILE_NAME, croppedBitmap);
saveFile(className, testName, VISUALIZER_RENDERING_FILE_NAME, visualizerBitmap);
}
diff --git a/tools/tradefed-host/src/com/android/cts/tradefed/result/CtsXmlResultReporter.java b/tools/tradefed-host/src/com/android/cts/tradefed/result/CtsXmlResultReporter.java
index 8224481..08e9a0b 100644
--- a/tools/tradefed-host/src/com/android/cts/tradefed/result/CtsXmlResultReporter.java
+++ b/tools/tradefed-host/src/com/android/cts/tradefed/result/CtsXmlResultReporter.java
@@ -33,7 +33,6 @@
import com.android.tradefed.result.LogDataType;
import com.android.tradefed.result.LogFileSaver;
import com.android.tradefed.result.TestSummary;
-import com.android.tradefed.util.AbiFormatter;
import com.android.tradefed.util.FileUtil;
import com.android.tradefed.util.StreamUtil;
@@ -226,6 +225,7 @@
mIsDeviceInfoRun = DeviceInfoCollector.IDS.contains(id);
if (!mIsDeviceInfoRun) {
mCurrentPkgResult = mResults.getOrCreatePackage(id);
+ mCurrentPkgResult.setDeviceSerial(mDeviceSerial);
}
}