Merge "Generate tests for all neverallow rules" into oc-dev
diff --git a/common/host-side/tradefed/src/com/android/compatibility/common/tradefed/testtype/CompatibilityTest.java b/common/host-side/tradefed/src/com/android/compatibility/common/tradefed/testtype/CompatibilityTest.java
index a2dad7e..30d5f95 100644
--- a/common/host-side/tradefed/src/com/android/compatibility/common/tradefed/testtype/CompatibilityTest.java
+++ b/common/host-side/tradefed/src/com/android/compatibility/common/tradefed/testtype/CompatibilityTest.java
@@ -366,6 +366,8 @@
                 // Get the tests to run in this shard
                 modules = mModuleRepo.getModules(getDevice().getSerialNumber(), mShardIndex);
             }
+            mExcludeFilters.clear();
+            mIncludeFilters.clear();
             // Update BuildInfo in each shard to store the original command-line arguments from
             // the session to be retried. These arguments will be serialized in the report later.
             if (mRetrySessionId != null) {
diff --git a/common/host-side/tradefed/src/com/android/compatibility/common/tradefed/testtype/ModuleRepo.java b/common/host-side/tradefed/src/com/android/compatibility/common/tradefed/testtype/ModuleRepo.java
index ad12490..794e45e 100644
--- a/common/host-side/tradefed/src/com/android/compatibility/common/tradefed/testtype/ModuleRepo.java
+++ b/common/host-side/tradefed/src/com/android/compatibility/common/tradefed/testtype/ModuleRepo.java
@@ -286,6 +286,7 @@
                         configFile.getName()), e);
             }
         }
+        mExcludeFilters.clear();
         TestRunHandler.setTestRuns(new CompatibilityBuildHelper(buildInfo), shardedTestCounts);
     }
 
diff --git a/tests/autofillservice/src/android/autofillservice/cts/LoginActivityTest.java b/tests/autofillservice/src/android/autofillservice/cts/LoginActivityTest.java
index bf6901d..f6ddb13 100644
--- a/tests/autofillservice/src/android/autofillservice/cts/LoginActivityTest.java
+++ b/tests/autofillservice/src/android/autofillservice/cts/LoginActivityTest.java
@@ -93,11 +93,8 @@
  */
 public class LoginActivityTest extends AutoFillServiceTestCase {
 
-    // TODO(b/33197203 , b/36855717): remove when bug 36855717 is fixed
-    private static final boolean BUG_36855717_FIXED = false;
-
     // TODO(b/33197203 , b/35707731): remove when fixed
-    private static final boolean SUPPORTS_PARTIOTINED_AUTH = false;
+    private static final boolean SUPPORTS_PARTITIONED_AUTH = false;
 
     @Rule
     public final ActivityTestRule<LoginActivity> mActivityRule =
@@ -997,13 +994,9 @@
         sUiBot.assertNotShownByText("Tap to auth response");
 
         // ...and select it this time
-        if (BUG_36855717_FIXED) {
-            callback.assertUiShownEvent(username);
-        }
+        callback.assertUiShownEvent(username);
         sUiBot.selectDataset("Dataset");
-        if (BUG_36855717_FIXED) {
-            callback.assertUiHiddenEvent(username);
-        }
+        callback.assertUiHiddenEvent(username);
         sUiBot.assertNoDatasets();
         sUiBot.assertNotShownByText("Tap to auth response");
 
@@ -1058,7 +1051,7 @@
         callback.assertUiShownEvent(username);
         sUiBot.assertShownByText("Tap to auth response");
 
-        if (SUPPORTS_PARTIOTINED_AUTH) {
+        if (SUPPORTS_PARTITIONED_AUTH) {
             // Make sure UI is not show on 2nd field
             final View password = mActivity.getPassword();
             mActivity.onPassword(View::requestFocus);
@@ -1087,13 +1080,9 @@
         callback.assertUiHiddenEvent(username);
         sUiBot.assertNotShownByText("Tap to auth response");
 
-        if (BUG_36855717_FIXED) {
-            callback.assertUiShownEvent(username);
-        }
+        callback.assertUiShownEvent(username);
         sUiBot.selectDataset("Dataset");
-        if (BUG_36855717_FIXED) {
-            callback.assertUiHiddenEvent(username);
-        }
+        callback.assertUiHiddenEvent(username);
         sUiBot.assertNoDatasets();
         sUiBot.assertNotShownByText("Tap to auth response");
 
diff --git a/tests/tests/media/src/android/media/cts/AudioManagerTest.java b/tests/tests/media/src/android/media/cts/AudioManagerTest.java
index d15643f..ba657bf 100644
--- a/tests/tests/media/src/android/media/cts/AudioManagerTest.java
+++ b/tests/tests/media/src/android/media/cts/AudioManagerTest.java
@@ -481,12 +481,12 @@
             Thread.sleep(ASYNC_TIMING_TOLERANCE_MS);
             int maxMusicVolume = mAudioManager.getStreamMaxVolume(STREAM_MUSIC);
 
-            for (int i = 0; i < streams.length; i++) {
+            for (int stream : streams) {
                 // set ringer mode to back normal to not interfere with volume tests
                 mAudioManager.setRingerMode(RINGER_MODE_NORMAL);
 
-                int maxVolume = mAudioManager.getStreamMaxVolume(streams[i]);
-                int minVolume = mAudioManager.getStreamMinVolume(streams[i]);
+                int maxVolume = mAudioManager.getStreamMaxVolume(stream);
+                int minVolume = mAudioManager.getStreamMinVolume(stream);
 
                 // validate min
                 assertTrue(String.format("minVolume(%d) must be >= 0", minVolume), minVolume >= 0);
@@ -494,14 +494,15 @@
                         maxVolume),
                         minVolume < maxVolume);
 
-                mAudioManager.setStreamVolume(streams[i], 1, 0);
+                mAudioManager.setStreamVolume(stream, 1, 0);
                 if (mUseFixedVolume) {
-                    assertEquals(maxVolume, mAudioManager.getStreamVolume(streams[i]));
+                    assertEquals(maxVolume, mAudioManager.getStreamVolume(stream));
                     continue;
                 }
-                assertEquals(1, mAudioManager.getStreamVolume(streams[i]));
+                assertEquals(String.format("stream=%d", stream),
+                             1, mAudioManager.getStreamVolume(stream));
 
-                if (streams[i] == AudioManager.STREAM_MUSIC && mAudioManager.isWiredHeadsetOn()) {
+                if (stream == AudioManager.STREAM_MUSIC && mAudioManager.isWiredHeadsetOn()) {
                     // due to new regulations, music sent over a wired headset may be volume limited
                     // until the user explicitly increases the limit, so we can't rely on being able
                     // to set the volume to getStreamMaxVolume(). Instead, determine the current limit
@@ -511,52 +512,52 @@
                     int prevvol = 0;
                     do {
                         prevvol = curvol;
-                        mAudioManager.adjustStreamVolume(streams[i], ADJUST_RAISE, 0);
-                        curvol = mAudioManager.getStreamVolume(streams[i]);
+                        mAudioManager.adjustStreamVolume(stream, ADJUST_RAISE, 0);
+                        curvol = mAudioManager.getStreamVolume(stream);
                     } while (curvol != prevvol);
                     maxVolume = maxMusicVolume = curvol;
                 }
-                mAudioManager.setStreamVolume(streams[i], maxVolume, 0);
-                mAudioManager.adjustStreamVolume(streams[i], ADJUST_RAISE, 0);
-                assertEquals(maxVolume, mAudioManager.getStreamVolume(streams[i]));
+                mAudioManager.setStreamVolume(stream, maxVolume, 0);
+                mAudioManager.adjustStreamVolume(stream, ADJUST_RAISE, 0);
+                assertEquals(maxVolume, mAudioManager.getStreamVolume(stream));
 
-                volumeDelta = getVolumeDelta(mAudioManager.getStreamVolume(streams[i]));
-                mAudioManager.adjustSuggestedStreamVolume(ADJUST_LOWER, streams[i], 0);
+                volumeDelta = getVolumeDelta(mAudioManager.getStreamVolume(stream));
+                mAudioManager.adjustSuggestedStreamVolume(ADJUST_LOWER, stream, 0);
                 Thread.sleep(ASYNC_TIMING_TOLERANCE_MS);
-                assertEquals(maxVolume - volumeDelta, mAudioManager.getStreamVolume(streams[i]));
+                assertEquals(maxVolume - volumeDelta, mAudioManager.getStreamVolume(stream));
 
                 // volume lower
-                mAudioManager.setStreamVolume(streams[i], maxVolume, 0);
-                volume = mAudioManager.getStreamVolume(streams[i]);
+                mAudioManager.setStreamVolume(stream, maxVolume, 0);
+                volume = mAudioManager.getStreamVolume(stream);
                 while (volume > minVolume) {
-                    volumeDelta = getVolumeDelta(mAudioManager.getStreamVolume(streams[i]));
-                    mAudioManager.adjustStreamVolume(streams[i], ADJUST_LOWER, 0);
+                    volumeDelta = getVolumeDelta(mAudioManager.getStreamVolume(stream));
+                    mAudioManager.adjustStreamVolume(stream, ADJUST_LOWER, 0);
                     assertEquals(Math.max(0, volume - volumeDelta),
-                            mAudioManager.getStreamVolume(streams[i]));
-                    volume = mAudioManager.getStreamVolume(streams[i]);
+                            mAudioManager.getStreamVolume(stream));
+                    volume = mAudioManager.getStreamVolume(stream);
                 }
 
-                mAudioManager.adjustStreamVolume(streams[i], ADJUST_SAME, 0);
+                mAudioManager.adjustStreamVolume(stream, ADJUST_SAME, 0);
 
                 // volume raise
-                mAudioManager.setStreamVolume(streams[i], 1, 0);
-                volume = mAudioManager.getStreamVolume(streams[i]);
+                mAudioManager.setStreamVolume(stream, 1, 0);
+                volume = mAudioManager.getStreamVolume(stream);
                 while (volume < maxVolume) {
-                    volumeDelta = getVolumeDelta(mAudioManager.getStreamVolume(streams[i]));
-                    mAudioManager.adjustStreamVolume(streams[i], ADJUST_RAISE, 0);
+                    volumeDelta = getVolumeDelta(mAudioManager.getStreamVolume(stream));
+                    mAudioManager.adjustStreamVolume(stream, ADJUST_RAISE, 0);
                     assertEquals(Math.min(volume + volumeDelta, maxVolume),
-                            mAudioManager.getStreamVolume(streams[i]));
-                    volume = mAudioManager.getStreamVolume(streams[i]);
+                            mAudioManager.getStreamVolume(stream));
+                    volume = mAudioManager.getStreamVolume(stream);
                 }
 
                 // volume same
-                mAudioManager.setStreamVolume(streams[i], maxVolume, 0);
+                mAudioManager.setStreamVolume(stream, maxVolume, 0);
                 for (int k = 0; k < maxVolume; k++) {
-                    mAudioManager.adjustStreamVolume(streams[i], ADJUST_SAME, 0);
-                    assertEquals(maxVolume, mAudioManager.getStreamVolume(streams[i]));
+                    mAudioManager.adjustStreamVolume(stream, ADJUST_SAME, 0);
+                    assertEquals(maxVolume, mAudioManager.getStreamVolume(stream));
                 }
 
-                mAudioManager.setStreamVolume(streams[i], maxVolume, 0);
+                mAudioManager.setStreamVolume(stream, maxVolume, 0);
             }
 
             if (mUseFixedVolume) {
@@ -659,18 +660,18 @@
                 AudioManager.STREAM_NOTIFICATION,
                 AudioManager.STREAM_SYSTEM};
         if (mUseFixedVolume) {
-            for (int i = 0; i < streams.length; i++) {
-                mAudioManager.adjustStreamVolume(streams[i], AudioManager.ADJUST_MUTE, 0);
+            for (int stream : streams) {
+                mAudioManager.adjustStreamVolume(stream, AudioManager.ADJUST_MUTE, 0);
                 assertFalse("Muting should not affect a fixed volume device.",
-                        mAudioManager.isStreamMute(streams[i]));
+                        mAudioManager.isStreamMute(stream));
 
-                mAudioManager.adjustStreamVolume(streams[i], AudioManager.ADJUST_TOGGLE_MUTE, 0);
+                mAudioManager.adjustStreamVolume(stream, AudioManager.ADJUST_TOGGLE_MUTE, 0);
                 assertFalse("Toggling mute should not affect a fixed volume device.",
-                        mAudioManager.isStreamMute(streams[i]));
+                        mAudioManager.isStreamMute(stream));
 
-                mAudioManager.setStreamMute(streams[i], true);
+                mAudioManager.setStreamMute(stream, true);
                 assertFalse("Muting should not affect a fixed volume device.",
-                        mAudioManager.isStreamMute(streams[i]));
+                        mAudioManager.isStreamMute(stream));
             }
         }
     }
@@ -688,16 +689,16 @@
             Utils.toggleNotificationPolicyAccess(
                     mContext.getPackageName(), getInstrumentation(), false);
             // Verify streams cannot be unmuted without policy access.
-            for (int i = 0; i < streams.length; i++) {
+            for (int stream : streams) {
                 try {
-                    mAudioManager.adjustStreamVolume(streams[i], AudioManager.ADJUST_UNMUTE, 0);
+                    mAudioManager.adjustStreamVolume(stream, AudioManager.ADJUST_UNMUTE, 0);
                     assertEquals("Apps without Notification policy access can't change ringer mode",
                             RINGER_MODE_SILENT, mAudioManager.getRingerMode());
                 } catch (SecurityException e) {
                 }
 
                 try {
-                    mAudioManager.adjustStreamVolume(streams[i], AudioManager.ADJUST_TOGGLE_MUTE,
+                    mAudioManager.adjustStreamVolume(stream, AudioManager.ADJUST_TOGGLE_MUTE,
                             0);
                     assertEquals("Apps without Notification policy access can't change ringer mode",
                             RINGER_MODE_SILENT, mAudioManager.getRingerMode());
@@ -705,7 +706,7 @@
                 }
 
                 try {
-                    mAudioManager.setStreamMute(streams[i], false);
+                    mAudioManager.setStreamMute(stream, false);
                     assertEquals("Apps without Notification policy access can't change ringer mode",
                             RINGER_MODE_SILENT, mAudioManager.getRingerMode());
                 } catch (SecurityException e) {
@@ -716,37 +717,37 @@
             Utils.toggleNotificationPolicyAccess(
                     mContext.getPackageName(), getInstrumentation(), true);
             mAudioManager.setRingerMode(RINGER_MODE_NORMAL);
-            for (int i = 0; i < streams.length; i++) {
+            for (int stream : streams) {
                 // ensure each stream is on and turned up.
-                mAudioManager.setStreamVolume(streams[i],
-                        mAudioManager.getStreamMaxVolume(streams[i]),
+                mAudioManager.setStreamVolume(stream,
+                        mAudioManager.getStreamMaxVolume(stream),
                         0);
 
                 Utils.toggleNotificationPolicyAccess(
                         mContext.getPackageName(), getInstrumentation(), false);
                 try {
-                    mAudioManager.adjustStreamVolume(streams[i], AudioManager.ADJUST_MUTE, 0);
+                    mAudioManager.adjustStreamVolume(stream, AudioManager.ADJUST_MUTE, 0);
                     assertEquals("Apps without Notification policy access can't change ringer mode",
                             RINGER_MODE_NORMAL, mAudioManager.getRingerMode());
                 } catch (SecurityException e) {
                 }
                 try {
                     mAudioManager.adjustStreamVolume(
-                            streams[i], AudioManager.ADJUST_TOGGLE_MUTE, 0);
+                            stream, AudioManager.ADJUST_TOGGLE_MUTE, 0);
                     assertEquals("Apps without Notification policy access can't change ringer mode",
                             RINGER_MODE_NORMAL, mAudioManager.getRingerMode());
                 } catch (SecurityException e) {
                 }
 
                 try {
-                    mAudioManager.setStreamMute(streams[i], true);
+                    mAudioManager.setStreamMute(stream, true);
                     assertEquals("Apps without Notification policy access can't change ringer mode",
                             RINGER_MODE_NORMAL, mAudioManager.getRingerMode());
                 } catch (SecurityException e) {
                 }
                 Utils.toggleNotificationPolicyAccess(
                         mContext.getPackageName(), getInstrumentation(), true);
-                testStreamMuting(streams[i]);
+                testStreamMuting(stream);
             }
         } finally {
             Utils.toggleNotificationPolicyAccess(
@@ -779,25 +780,25 @@
             mAudioManager.setRingerMode(RINGER_MODE_NORMAL);
             Utils.toggleNotificationPolicyAccess(
                     mContext.getPackageName(), getInstrumentation(), false);
-            for (int i = 0; i < streams.length; i++) {
+            for (int stream : streams) {
                 // ensure each stream is on and turned up.
-                mAudioManager.setStreamVolume(streams[i],
-                        mAudioManager.getStreamMaxVolume(streams[i]),
+                mAudioManager.setStreamVolume(stream,
+                        mAudioManager.getStreamMaxVolume(stream),
                         0);
-                if (((1 << streams[i]) & muteAffectedStreams) == 0) {
-                    mAudioManager.adjustStreamVolume(streams[i], AudioManager.ADJUST_MUTE, 0);
-                    assertFalse("Stream " + streams[i] + " should not be affected by mute.",
-                            mAudioManager.isStreamMute(streams[i]));
-                    mAudioManager.setStreamMute(streams[i], true);
-                    assertFalse("Stream " + streams[i] + " should not be affected by mute.",
-                            mAudioManager.isStreamMute(streams[i]));
-                    mAudioManager.adjustStreamVolume(streams[i], AudioManager.ADJUST_TOGGLE_MUTE,
+                if (((1 << stream) & muteAffectedStreams) == 0) {
+                    mAudioManager.adjustStreamVolume(stream, AudioManager.ADJUST_MUTE, 0);
+                    assertFalse("Stream " + stream + " should not be affected by mute.",
+                            mAudioManager.isStreamMute(stream));
+                    mAudioManager.setStreamMute(stream, true);
+                    assertFalse("Stream " + stream + " should not be affected by mute.",
+                            mAudioManager.isStreamMute(stream));
+                    mAudioManager.adjustStreamVolume(stream, AudioManager.ADJUST_TOGGLE_MUTE,
                             0);
-                    assertFalse("Stream " + streams[i] + " should not be affected by mute.",
-                            mAudioManager.isStreamMute(streams[i]));
+                    assertFalse("Stream " + stream + " should not be affected by mute.",
+                            mAudioManager.isStreamMute(stream));
                     continue;
                 }
-                testStreamMuting(streams[i]);
+                testStreamMuting(stream);
             }
         } finally {
             Utils.toggleNotificationPolicyAccess(
diff --git a/tests/tests/uirendering/src/android/uirendering/cts/testclasses/ColorSpaceTests.java b/tests/tests/uirendering/src/android/uirendering/cts/testclasses/ColorSpaceTests.java
index f66f5f4..c5aa1b3 100644
--- a/tests/tests/uirendering/src/android/uirendering/cts/testclasses/ColorSpaceTests.java
+++ b/tests/tests/uirendering/src/android/uirendering/cts/testclasses/ColorSpaceTests.java
@@ -81,7 +81,7 @@
                         new Point[] {
                                 point(0, 0), point(48, 0), point(32, 40), point(0, 40), point(0, 56)
                         },
-                        new int[] { 0xff75fb4c, 0xff75fb4c, 0xff75fb4c, 0xffffffff, 0xffba7d26 }
+                        new int[] { 0xff00ff00, 0xff00ff00, 0xff00ff00, 0xffffffff, 0xff7f7f00 }
                 ));
     }
 
@@ -114,7 +114,7 @@
                         new Point[] {
                                 point(0, 0), point(48, 0), point(32, 40), point(0, 40), point(0, 56)
                         },
-                        new int[] { 0xffc07f2c, 0xffc07f2c, 0xffc07f2c, 0xffffffff, 0xffe03f16 }
+                        new int[] { 0xffff7f00, 0xffff7f00, 0xffff7f00, 0xffffffff, 0xffff3f00 }
                 ));
     }
 
diff --git a/tests/tests/widget/src/android/widget/cts/AdapterViewTest.java b/tests/tests/widget/src/android/widget/cts/AdapterViewTest.java
index f7fc033..4e33156 100644
--- a/tests/tests/widget/src/android/widget/cts/AdapterViewTest.java
+++ b/tests/tests/widget/src/android/widget/cts/AdapterViewTest.java
@@ -270,7 +270,7 @@
 
         verifyZeroInteractions(mockClickListener);
         assertTrue(mAdapterView.performItemClick(null, 0, 0));
-        verify(mockClickListener, times(1)).onItemClick(eq(mAdapterView), any(View.class),
+        verify(mockClickListener, times(1)).onItemClick(eq(mAdapterView), any(),
                 eq(0), eq(0L));
 
         setArrayAdapter(mAdapterView);
diff --git a/tests/tests/widget/src/android/widget/cts/ArrayAdapterTest.java b/tests/tests/widget/src/android/widget/cts/ArrayAdapterTest.java
index 84c60c8..7595c98 100644
--- a/tests/tests/widget/src/android/widget/cts/ArrayAdapterTest.java
+++ b/tests/tests/widget/src/android/widget/cts/ArrayAdapterTest.java
@@ -26,6 +26,7 @@
 import static org.mockito.Mockito.verifyZeroInteractions;
 
 import android.content.Context;
+import android.content.res.Resources;
 import android.content.res.Resources.Theme;
 import android.database.DataSetObserver;
 import android.support.test.annotation.UiThreadTest;
@@ -411,7 +412,7 @@
         ArrayAdapter.createFromResource(null, R.array.string, R.layout.simple_spinner_item);
     }
 
-    @Test(expected=NullPointerException.class)
+    @Test(expected=Resources.NotFoundException.class)
     public void testCreateFromResourceWithInvalidId() {
         ArrayAdapter.createFromResource(mContext, INVALID_ID, R.layout.simple_spinner_item);
     }
diff --git a/tools/cts-tradefed/etc/cts-tradefed b/tools/cts-tradefed/etc/cts-tradefed
index 86f2fe3..15249c3 100755
--- a/tools/cts-tradefed/etc/cts-tradefed
+++ b/tools/cts-tradefed/etc/cts-tradefed
@@ -121,5 +121,5 @@
     JAR_PATH=${JAR_PATH}:$j
 done
 
-java $RDBG_FLAG -XX:+HeapDumpOnOutOfMemoryError -cp ${JAR_PATH} -DCTS_ROOT=${CTS_ROOT} com.android.compatibility.common.tradefed.command.CompatibilityConsole "$@"
+java $RDBG_FLAG -Xmx4g -XX:+HeapDumpOnOutOfMemoryError -cp ${JAR_PATH} -DCTS_ROOT=${CTS_ROOT} com.android.compatibility.common.tradefed.command.CompatibilityConsole "$@"