Merge master@5406228 into git_qt-dev-plus-aosp.

Change-Id: I2aff0d8c8a0a1f3ee34265febe433284a03b5e7e
BUG: 129345239
diff --git a/client/site_tests/audio_CrasStress/audio_CrasStress.py b/client/site_tests/audio_CrasStress/audio_CrasStress.py
index c6b164e..13dfdba 100755
--- a/client/site_tests/audio_CrasStress/audio_CrasStress.py
+++ b/client/site_tests/audio_CrasStress/audio_CrasStress.py
@@ -72,6 +72,11 @@
                 raise error.TestFail('Output buffer level %d drift too high' %
                                      buffer_level)
 
+    def cleanup(self):
+        """Clean up all streams."""
+        while len(self._streams) > 0:
+            self._streams[0].kill()
+            self._streams.remove(self._streams[0])
 
     def run_once(self, input_stream=True, output_stream=True):
         """
@@ -93,7 +98,7 @@
 
             # 1 for adding stream, 0 for removing stream.
             add = random.randint(0, 1)
-            if len(self._streams) == 0:
+            if not self._streams:
                 add = 1
             elif len(self._streams) == self._MAX_STREAMS:
                 add = 0
@@ -124,12 +129,6 @@
 
             loop_count += 1
 
-        # Clean up all streams.
-        while len(self._streams) > 0:
-            self._streams[0].kill()
-            self._streams.remove(self._streams[0])
-
-
     def _get_buffer_level(self, stream_type):
         """Gets a rough number about current buffer level.
 
@@ -152,4 +151,3 @@
                 if tmp > buffer_level:
                     buffer_level = tmp
         return buffer_level
-
diff --git a/server/cros/faft/config/coral.py b/server/cros/faft/config/coral.py
index 82e2a68..29851c3 100644
--- a/server/cros/faft/config/coral.py
+++ b/server/cros/faft/config/coral.py
@@ -8,4 +8,5 @@
 
 class Values(reef.Values):
     """Inherit overrides from Reef."""
-    pass
+    # Time from deasserting cold_reset to firmware_screen being shown
+    firmware_screen = 35
diff --git a/server/cros/faft/config/lumpy.py b/server/cros/faft/config/lumpy.py
deleted file mode 100644
index 3d4df0b..0000000
--- a/server/cros/faft/config/lumpy.py
+++ /dev/null
@@ -1,12 +0,0 @@
-# Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-"""FAFT config setting overrides for Lumpy."""
-
-
-class Values(object):
-    """FAFT config values for Lumpy."""
-    mode_switcher_type = 'physical_button_switcher'
-    has_eventlog = False
-    smm_store = False
diff --git a/server/cros/faft/config/stumpy.py b/server/cros/faft/config/stumpy.py
deleted file mode 100644
index d90eb99..0000000
--- a/server/cros/faft/config/stumpy.py
+++ /dev/null
@@ -1,14 +0,0 @@
-# Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-"""FAFT config setting overrides for Stumpy."""
-
-
-class Values(object):
-    """FAFT config values for Stumpy."""
-    mode_switcher_type = 'physical_button_switcher'
-    has_lid = False
-    has_keyboard = False
-    has_eventlog = False
-    smm_store = False
diff --git a/server/cros/network/attenuator_hosts.py b/server/cros/network/attenuator_hosts.py
index f5440a1..0a60237 100644
--- a/server/cros/network/attenuator_hosts.py
+++ b/server/cros/network/attenuator_hosts.py
@@ -8,6 +8,16 @@
 # The map maps from:
 #     attenuator hostname -> attenuator number -> frequency -> loss in dB.
 HOST_FIXED_ATTENUATIONS = {
+        'chromeos1-dev-host4-attenuator': {
+                0: {2437: 53, 5220: 59, 5765: 59},
+                1: {2437: 56, 5220: 56, 5765: 56},
+                2: {2437: 53, 5220: 59, 5765: 59},
+                3: {2437: 57, 5220: 56, 5765: 56}},
+        'chromeos1-test-host2-attenuator': {
+                0: {2437: 53, 5220: 59, 5765: 58},
+                1: {2437: 57, 5220: 57, 5765: 59},
+                2: {2437: 53, 5220: 59, 5765: 58},
+                3: {2437: 57, 5220: 57, 5765: 59}},
         'chromeos15-row3-rack9-host1-attenuator': {
                 0: {2437: 59, 5220: 59, 5765: 59},
                 1: {2437: 52, 5220: 54, 5765: 54},
diff --git a/server/site_tests/autoupdate_P2P/autoupdate_P2P.py b/server/site_tests/autoupdate_P2P/autoupdate_P2P.py
index 8c1f2a5..c0cf690 100644
--- a/server/site_tests/autoupdate_P2P/autoupdate_P2P.py
+++ b/server/site_tests/autoupdate_P2P/autoupdate_P2P.py
@@ -205,11 +205,10 @@
         line1 = "Checking if payload is available via p2p, file_id=" \
                 "cros_update_size_(.*)_hash_(.*)"
         line2 = "Lookup complete, p2p-client returned URL " \
-                "'http://%s:(.*)/cros_update_size_(.*)_hash_(.*).cros_au'" % \
-                self._hosts[0].ip
+                "'http://(.*)/cros_update_size_(.*)_hash_(.*).cros_au'"
         line3 = "Replacing URL (.*) with local URL " \
-                "http://%s:(.*)/cros_update_size_(.*)_hash_(.*).cros_au " \
-                "since p2p is enabled." % self._hosts[0].ip
+                "http://(.*)/cros_update_size_(.*)_hash_(.*).cros_au " \
+                "since p2p is enabled."
         errline = "Forcibly disabling use of p2p for downloading because no " \
                   "suitable peer could be found."
         too_many_attempts_err_str = "Forcibly disabling use of p2p for " \
diff --git a/server/site_tests/autoupdate_P2P/control.delta b/server/site_tests/autoupdate_P2P/control.delta
index d7a6a6a..a8b35d1 100644
--- a/server/site_tests/autoupdate_P2P/control.delta
+++ b/server/site_tests/autoupdate_P2P/control.delta
@@ -11,6 +11,7 @@
 TEST_TYPE = "server"
 ATTRIBUTES = "suite:au-perbuild"
 SYNC_COUNT = 2
+JOB_RETRIES = 2
 DOC = """
 This tests autoupdate between two devices via peer to peer.
 
diff --git a/server/site_tests/cheets_CTS_N/cheets_CTS_N.py b/server/site_tests/cheets_CTS_N/cheets_CTS_N.py
index af2f334..6d7c65a 100644
--- a/server/site_tests/cheets_CTS_N/cheets_CTS_N.py
+++ b/server/site_tests/cheets_CTS_N/cheets_CTS_N.py
@@ -28,8 +28,8 @@
 # Public download locations for android cts bundles.
 _DL_CTS = 'https://dl.google.com/dl/android/cts/'
 _CTS_URI = {
-    'arm': _DL_CTS + 'android-cts-7.1_r25-linux_x86-arm.zip',
-    'x86': _DL_CTS + 'android-cts-7.1_r25-linux_x86-x86.zip',
+    'arm': _DL_CTS + 'android-cts-7.1_r26-linux_x86-arm.zip',
+    'x86': _DL_CTS + 'android-cts-7.1_r26-linux_x86-x86.zip',
     'media': _DL_CTS + 'android-cts-media-1.4.zip',
 }
 
diff --git a/server/site_tests/cheets_CTS_P/control.arm.CtsSimRestrictedApisTestCases b/server/site_tests/cheets_CTS_P/control.arm.CtsSimRestrictedApisTestCases
new file mode 100644
index 0000000..110b643
--- /dev/null
+++ b/server/site_tests/cheets_CTS_P/control.arm.CtsSimRestrictedApisTestCases
@@ -0,0 +1,35 @@
+# Copyright 2018 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+# This file has been automatically generated. Do not edit!
+
+AUTHOR = 'ARC++ Team'
+NAME = 'cheets_CTS_P.arm.CtsSimRestrictedApisTestCases'
+ATTRIBUTES = 'suite:cts_P'
+DEPENDENCIES = 'arc'
+JOB_RETRIES = 1
+TEST_TYPE = 'server'
+TIME = 'MEDIUM'
+MAX_RESULT_SIZE_KB = 512000
+DOC = 'Run module CtsSimRestrictedApisTestCases of the Android Compatibility Test Suite (CTS) using arm ABI in the ARC++ container.'
+
+def run_CTS(machine):
+    host_list = [hosts.create_host(machine)]
+    job.run_test(
+        'cheets_CTS_P',
+        hosts=host_list,
+        iterations=1,
+        needs_push_media=False,
+        tag='arm.CtsSimRestrictedApisTestCases',
+        test_name='cheets_CTS_P.arm.CtsSimRestrictedApisTestCases',
+        run_template=['run', 'commandAndExit', 'cts', '--include-filter', 'CtsSimRestrictedApisTestCases'],
+        retry_template=['run', 'commandAndExit', 'retry', '--retry', '{session_id}'],
+        target_module='CtsSimRestrictedApisTestCases',
+        target_plan=None,
+        bundle='arm',
+        retry_manual_tests=True,
+        warn_on_test_retry=False,
+        timeout=3600)
+
+parallel_simple(run_CTS, machines)
diff --git a/server/site_tests/cheets_CTS_P/control.x86.CtsSimRestrictedApisTestCases b/server/site_tests/cheets_CTS_P/control.x86.CtsSimRestrictedApisTestCases
new file mode 100644
index 0000000..f4be4d8
--- /dev/null
+++ b/server/site_tests/cheets_CTS_P/control.x86.CtsSimRestrictedApisTestCases
@@ -0,0 +1,35 @@
+# Copyright 2018 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+# This file has been automatically generated. Do not edit!
+
+AUTHOR = 'ARC++ Team'
+NAME = 'cheets_CTS_P.x86.CtsSimRestrictedApisTestCases'
+ATTRIBUTES = 'suite:cts_P'
+DEPENDENCIES = 'arc, cts_abi_x86'
+JOB_RETRIES = 1
+TEST_TYPE = 'server'
+TIME = 'MEDIUM'
+MAX_RESULT_SIZE_KB = 512000
+DOC = 'Run module CtsSimRestrictedApisTestCases of the Android Compatibility Test Suite (CTS) using x86 ABI in the ARC++ container.'
+
+def run_CTS(machine):
+    host_list = [hosts.create_host(machine)]
+    job.run_test(
+        'cheets_CTS_P',
+        hosts=host_list,
+        iterations=1,
+        needs_push_media=False,
+        tag='x86.CtsSimRestrictedApisTestCases',
+        test_name='cheets_CTS_P.x86.CtsSimRestrictedApisTestCases',
+        run_template=['run', 'commandAndExit', 'cts', '--include-filter', 'CtsSimRestrictedApisTestCases'],
+        retry_template=['run', 'commandAndExit', 'retry', '--retry', '{session_id}'],
+        target_module='CtsSimRestrictedApisTestCases',
+        target_plan=None,
+        bundle='x86',
+        retry_manual_tests=True,
+        warn_on_test_retry=False,
+        timeout=3600)
+
+parallel_simple(run_CTS, machines)
diff --git a/server/site_tests/cheets_GTS/control.tradefed-run-collect-tests-only b/server/site_tests/cheets_GTS/control.tradefed-run-collect-tests-only
index 453031e..c3305be 100644
--- a/server/site_tests/cheets_GTS/control.tradefed-run-collect-tests-only
+++ b/server/site_tests/cheets_GTS/control.tradefed-run-collect-tests-only
@@ -24,7 +24,7 @@
         max_retry=0,
         tag='tradefed-run-collect-tests-only',
         test_name='cheets_GTS.tradefed-run-collect-tests-only',
-        run_template=['run', 'commandAndExit', 'collect-tests-only'],
+        run_template=['run', 'commandAndExit', 'collect-tests-only', '--disable-reboot', '--module-arg', 'GtsYouTubeTestCases:skip-media-download:true'],
         retry_template=None,
         target_module=None,
         target_plan=None,
diff --git a/server/site_tests/cheets_GTS/expectations/waivers.yaml b/server/site_tests/cheets_GTS/expectations/waivers.yaml
index 5815dd3..7add2c3 100644
--- a/server/site_tests/cheets_GTS/expectations/waivers.yaml
+++ b/server/site_tests/cheets_GTS/expectations/waivers.yaml
@@ -1,3 +1,7 @@
+com.google.android.assistant.gts.AssistantTest#testAssistantOpenRearCamera: [all]
+com.google.android.assistant.gts.AssistantTest#testAssistantOpenFrontCamera: [all]
+com.google.android.assistant.gts.AssistantTest#testAssistantTakePhotoWithoutVoiceInteraction: [all]
+com.google.android.assistant.gts.AssistantTest#testAssistantTakeSelfieWithoutVoiceInteraction: [all]
 com.google.android.gts.audio.AudioHostTest#testFocusChangeMediaToGuidance: [P]
 com.google.android.placement.gts.CoreGmsAppsTest#testCoreGmsAppsPreloaded: [all]
 com.google.android.placement.gts.CoreGmsAppsTest#testGoogleDuoPreloaded: [all]
diff --git a/server/site_tests/firmware_CorruptRecoveryCache/control b/server/site_tests/firmware_CorruptRecoveryCache/control
index 1d577fb..93015fc 100644
--- a/server/site_tests/firmware_CorruptRecoveryCache/control
+++ b/server/site_tests/firmware_CorruptRecoveryCache/control
@@ -8,7 +8,7 @@
 NAME = "firmware_CorruptRecoveryCache"
 PURPOSE = "Servo based RECOVERY_MRC_CACHE corruption test"
 CRITERIA = "This test will fail if the cache doesn't retrain and boot into recovery"
-ATTRIBUTES = "suite:faft_lv6"
+ATTRIBUTES = "suite:faft_lv3"
 TIME = "SHORT"
 TEST_CATEGORY = "Functional"
 TEST_CLASS = "firmware"
diff --git a/server/site_tests/firmware_CorruptRecoveryCache/control.dev b/server/site_tests/firmware_CorruptRecoveryCache/control.dev
index 6466ac3..8c54e47 100644
--- a/server/site_tests/firmware_CorruptRecoveryCache/control.dev
+++ b/server/site_tests/firmware_CorruptRecoveryCache/control.dev
@@ -8,7 +8,7 @@
 NAME = "firmware_CorruptRecoveryCache"
 PURPOSE = "Servo based RECOVERY_MRC_CACHE corruption test"
 CRITERIA = "This test will fail if the cache doesn't retrain and boot into recovery"
-ATTRIBUTES = "suite:faft_lv6"
+ATTRIBUTES = "suite:faft_lv3"
 TIME = "SHORT"
 TEST_CATEGORY = "Functional"
 TEST_CLASS = "firmware"
diff --git a/server/site_tests/firmware_Cr50BID/control b/server/site_tests/firmware_Cr50BID/control
index 32aff90..2d220c9 100644
--- a/server/site_tests/firmware_Cr50BID/control
+++ b/server/site_tests/firmware_Cr50BID/control
@@ -7,7 +7,7 @@
 AUTHOR = "mruthven"
 NAME = "firmware_Cr50BID"
 PURPOSE = "Verify cr50 response to board id"
-ATTRIBUTES = "suite:cr50_stress_flaky"
+ATTRIBUTES = "suite:cr50_stress_experimental"
 TIME = "LONG"
 TEST_TYPE = "server"
 DEPENDENCIES = "servo"
diff --git a/server/site_tests/firmware_Cr50CCDServoCap/control b/server/site_tests/firmware_Cr50CCDServoCap/control
index c7f03bb..b008a1e 100644
--- a/server/site_tests/firmware_Cr50CCDServoCap/control
+++ b/server/site_tests/firmware_Cr50CCDServoCap/control
@@ -7,7 +7,7 @@
 AUTHOR = "mruthven"
 NAME = "firmware_Cr50CCDServoCap"
 PURPOSE = "Verify uart control"
-ATTRIBUTES = "suite:cr50_stress_experimental, suite:faft_cr50_pvt, suite:faft_cr50_prepvt"
+ATTRIBUTES = "suite:faft_cr50_pvt, suite:faft_cr50_prepvt"
 TIME = "SHORT"
 TEST_TYPE = "server"
 DEPENDENCIES = "servo"
diff --git a/server/site_tests/firmware_Cr50ConsoleCommands/control b/server/site_tests/firmware_Cr50ConsoleCommands/control
index de5ddf2..e34f7b5 100644
--- a/server/site_tests/firmware_Cr50ConsoleCommands/control
+++ b/server/site_tests/firmware_Cr50ConsoleCommands/control
@@ -7,7 +7,7 @@
 AUTHOR = "mruthven"
 NAME = "firmware_Cr50ConsoleCommands"
 PURPOSE = "Verify Cr50 console output"
-ATTRIBUTES = "suite:cr50_stress_experimental, suite:faft_cr50_pvt, suite:faft_cr50_prepvt"
+ATTRIBUTES = "suite:faft_cr50_pvt, suite:faft_cr50_prepvt"
 TIME = "SHORT"
 TEST_TYPE = "server"
 DEPENDENCIES = "servo"
diff --git a/server/site_tests/firmware_Cr50DeepSleepStress/control b/server/site_tests/firmware_Cr50DeepSleepStress/control
index bb4c1e4..7adfcc0 100644
--- a/server/site_tests/firmware_Cr50DeepSleepStress/control
+++ b/server/site_tests/firmware_Cr50DeepSleepStress/control
@@ -7,7 +7,7 @@
 AUTHOR = "mruthven"
 NAME = "firmware_Cr50DeepSleepStress"
 PURPOSE = "Verify deep sleep"
-ATTRIBUTES = "suite:cr50_stress_experimental, suite:faft_cr50_pvt, suite:faft_cr50_prepvt"
+ATTRIBUTES = "suite:faft_cr50_pvt, suite:faft_cr50_prepvt"
 TIME = "LONG"
 TEST_TYPE = "server"
 DEPENDENCIES = "servo"
diff --git a/server/site_tests/firmware_Cr50DeepSleepStress/control.reboot b/server/site_tests/firmware_Cr50DeepSleepStress/control.reboot
index 0aa391a..f26565b 100644
--- a/server/site_tests/firmware_Cr50DeepSleepStress/control.reboot
+++ b/server/site_tests/firmware_Cr50DeepSleepStress/control.reboot
@@ -7,7 +7,7 @@
 AUTHOR = "mruthven"
 NAME = "firmware_Cr50DeepSleepStress.reboot"
 PURPOSE = "Verify deep sleep"
-ATTRIBUTES = "suite:cr50_stress_experimental, suite:faft_cr50_pvt, suite:faft_cr50_prepvt"
+ATTRIBUTES = "suite:faft_cr50_pvt, suite:faft_cr50_prepvt"
 TIME = "LONG"
 TEST_TYPE = "server"
 DEPENDENCIES = "servo"
diff --git a/server/site_tests/firmware_Cr50DeviceState/control b/server/site_tests/firmware_Cr50DeviceState/control
index 1d9013c..bb80673 100644
--- a/server/site_tests/firmware_Cr50DeviceState/control
+++ b/server/site_tests/firmware_Cr50DeviceState/control
@@ -7,7 +7,7 @@
 AUTHOR = "mruthven"
 NAME = "firmware_Cr50DeviceState"
 PURPOSE = "Verify Cr50 tracks the EC and AP state correctly"
-ATTRIBUTES = "suite:cr50_stress_experimental, suite:faft_cr50_pvt, suite:faft_cr50_prepvt"
+ATTRIBUTES = "suite:faft_cr50_pvt, suite:faft_cr50_prepvt"
 TIME = "SHORT"
 TEST_TYPE = "server"
 DEPENDENCIES = "servo"
diff --git a/server/site_tests/firmware_Cr50GetName/control b/server/site_tests/firmware_Cr50GetName/control
index 310772d..f9bc9cf 100644
--- a/server/site_tests/firmware_Cr50GetName/control
+++ b/server/site_tests/firmware_Cr50GetName/control
@@ -7,7 +7,7 @@
 AUTHOR = "mruthven"
 NAME = "firmware_Cr50GetName"
 PURPOSE = "Verify cr50-get-name"
-ATTRIBUTES = "suite:cr50_stress_flaky"
+ATTRIBUTES = "suite:cr50_stress_experimental"
 TIME = "MEDIUM"
 TEST_TYPE = "server"
 DEPENDENCIES = "servo"
diff --git a/server/site_tests/firmware_Cr50InvalidateRW/control b/server/site_tests/firmware_Cr50InvalidateRW/control
index d8f9c63..9cdcec5 100644
--- a/server/site_tests/firmware_Cr50InvalidateRW/control
+++ b/server/site_tests/firmware_Cr50InvalidateRW/control
@@ -7,7 +7,7 @@
 AUTHOR = "mruthven"
 NAME = "firmware_Cr50InvalidateRW"
 PURPOSE = "Verify the inactive cr50 header is corrupted after login"
-ATTRIBUTES = "suite:cr50_stress_experimental, suite:faft_cr50_pvt, suite:faft_cr50_prepvt"
+ATTRIBUTES = "suite:faft_cr50_pvt, suite:faft_cr50_prepvt"
 TIME = "MEDIUM"
 TEST_TYPE = "server"
 
diff --git a/server/site_tests/firmware_Cr50OpenWhileAPOff/control b/server/site_tests/firmware_Cr50OpenWhileAPOff/control
index 8b03bab..178d78d 100644
--- a/server/site_tests/firmware_Cr50OpenWhileAPOff/control
+++ b/server/site_tests/firmware_Cr50OpenWhileAPOff/control
@@ -7,7 +7,7 @@
 AUTHOR = "mruthven"
 NAME = "firmware_Cr50OpenWhileAPOff"
 PURPOSE = "Verify console open when the AP is off"
-ATTRIBUTES = "suite:cr50_stress_experimental, suite:faft_cr50_pvt, suite:faft_cr50_prepvt"
+ATTRIBUTES = "suite:faft_cr50_pvt, suite:faft_cr50_prepvt"
 TIME = "SHORT"
 TEST_TYPE = "server"
 DEPENDENCIES = "servo"
diff --git a/server/site_tests/firmware_Cr50RMAOpen/control b/server/site_tests/firmware_Cr50RMAOpen/control
index 77a0dfb..668af6a 100644
--- a/server/site_tests/firmware_Cr50RMAOpen/control
+++ b/server/site_tests/firmware_Cr50RMAOpen/control
@@ -7,7 +7,7 @@
 AUTHOR = "mruthven"
 NAME = "firmware_Cr50RMAOpen"
 PURPOSE = "Verify RMA Open"
-ATTRIBUTES = "suite:cr50_stress_experimental, suite:faft_cr50_pvt, suite:faft_cr50_prepvt"
+ATTRIBUTES = "suite:faft_cr50_pvt, suite:faft_cr50_prepvt"
 TIME = "SHORT"
 TEST_TYPE = "server"
 DEPENDENCIES = "servo"
diff --git a/server/site_tests/firmware_Cr50RejectUpdate/control b/server/site_tests/firmware_Cr50RejectUpdate/control
index 1f290bf..b4e257b 100644
--- a/server/site_tests/firmware_Cr50RejectUpdate/control
+++ b/server/site_tests/firmware_Cr50RejectUpdate/control
@@ -7,7 +7,7 @@
 AUTHOR = "mruthven"
 NAME = "firmware_Cr50RejectUpdate"
 PURPOSE = "Verify cr50 update rejection"
-ATTRIBUTES = "suite:cr50_stress_experimental, suite:faft_cr50_pvt, suite:faft_cr50_prepvt"
+ATTRIBUTES = "suite:faft_cr50_pvt, suite:faft_cr50_prepvt"
 TIME = "SHORT"
 TEST_TYPE = "server"
 DEPENDENCIES = "servo"
diff --git a/server/site_tests/firmware_Cr50SetBoardId/control b/server/site_tests/firmware_Cr50SetBoardId/control
index 8fa4e1c..d70024d 100644
--- a/server/site_tests/firmware_Cr50SetBoardId/control
+++ b/server/site_tests/firmware_Cr50SetBoardId/control
@@ -7,7 +7,7 @@
 AUTHOR = "mruthven"
 NAME = "firmware_Cr50SetBoardId"
 PURPOSE = "Verify cr50-set-board-id"
-ATTRIBUTES = "suite:cr50_stress_flaky"
+ATTRIBUTES = "suite:cr50_stress_experimental"
 TIME = "MEDIUM"
 TEST_TYPE = "server"
 DEPENDENCIES = "servo"
diff --git a/server/site_tests/firmware_Cr50Testlab/control b/server/site_tests/firmware_Cr50Testlab/control
index 8bf0228..f6ffdff 100644
--- a/server/site_tests/firmware_Cr50Testlab/control
+++ b/server/site_tests/firmware_Cr50Testlab/control
@@ -7,7 +7,7 @@
 AUTHOR = "mruthven"
 NAME = "firmware_Cr50Testlab"
 PURPOSE = "Verify ccd testlab mode"
-ATTRIBUTES = "suite:cr50_stress_experimental, suite:faft_cr50_pvt, suite:faft_cr50_prepvt"
+ATTRIBUTES = "suite:faft_cr50_pvt, suite:faft_cr50_prepvt"
 TIME = "SHORT"
 TEST_TYPE = "server"
 DEPENDENCIES = "servo"
diff --git a/server/site_tests/firmware_Cr50U2fPowerwash/control b/server/site_tests/firmware_Cr50U2fPowerwash/control
index 5cce856..e53074f 100644
--- a/server/site_tests/firmware_Cr50U2fPowerwash/control
+++ b/server/site_tests/firmware_Cr50U2fPowerwash/control
@@ -4,6 +4,7 @@
 
 AUTHOR = "louiscollard, apronin"
 NAME = "firmware_Cr50U2fPowerwash"
+ATTRIBUTES = "suite:faft_cr50_pvt, suite:faft_cr50_prepvt"
 TIME = "SHORT"
 TEST_CATEGORY = "Functional"
 TEST_CLASS = "firmware"
diff --git a/server/site_tests/firmware_Cr50Update/control b/server/site_tests/firmware_Cr50Update/control
index c85c386..72d73c8 100644
--- a/server/site_tests/firmware_Cr50Update/control
+++ b/server/site_tests/firmware_Cr50Update/control
@@ -5,7 +5,7 @@
 AUTHOR = "mruthven"
 NAME = "firmware_Cr50Update"
 PURPOSE = "Verify Cr50 update"
-ATTRIBUTES = "suite:cr50_stress_flaky"
+ATTRIBUTES = "suite:cr50_stress_experimental"
 TIME = "SHORT"
 TEST_TYPE = "server"
 DEPENDENCIES = "servo"
diff --git a/server/site_tests/firmware_Cr50Update/control.post_install b/server/site_tests/firmware_Cr50Update/control.post_install
index 5eb6069..d4503b6 100644
--- a/server/site_tests/firmware_Cr50Update/control.post_install
+++ b/server/site_tests/firmware_Cr50Update/control.post_install
@@ -5,7 +5,7 @@
 AUTHOR = "mruthven"
 NAME = "firmware_Cr50Update.post_install"
 PURPOSE = "Verify Cr50 update"
-ATTRIBUTES = "suite:cr50_stress_flaky"
+ATTRIBUTES = "suite:cr50_stress_experimental"
 TIME = "SHORT"
 TEST_TYPE = "server"
 DEPENDENCIES = "servo"
diff --git a/server/site_tests/firmware_Cr50UpdateScriptStress/control b/server/site_tests/firmware_Cr50UpdateScriptStress/control
index 37076ef..e4a5579 100644
--- a/server/site_tests/firmware_Cr50UpdateScriptStress/control
+++ b/server/site_tests/firmware_Cr50UpdateScriptStress/control
@@ -7,7 +7,7 @@
 AUTHOR = "mruthven"
 NAME = "firmware_Cr50UpdateScriptStress"
 PURPOSE = "Verify cr50-update"
-ATTRIBUTES = "suite:cr50_stress_experimental, suite:faft_cr50_pvt, suite:faft_cr50_prepvt"
+ATTRIBUTES = "suite:faft_cr50_pvt, suite:faft_cr50_prepvt"
 TIME = "LONG"
 TEST_TYPE = "server"
 DEPENDENCIES = "servo"
diff --git a/server/site_tests/firmware_FWMPDisableCCD/control b/server/site_tests/firmware_FWMPDisableCCD/control
index 9f3d0e6..9135595 100644
--- a/server/site_tests/firmware_FWMPDisableCCD/control
+++ b/server/site_tests/firmware_FWMPDisableCCD/control
@@ -8,7 +8,7 @@
 NAME = "firmware_FWMPDisableCCD"
 PURPOSE = "Verify the cr50 response to FWMP flags being set"
 TIME = "MEDIUM"
-ATTRIBUTES = "suite:cr50_stress_experimental, suite:faft_cr50_pvt, suite:faft_cr50_prepvt"
+ATTRIBUTES = "suite:faft_cr50_pvt, suite:faft_cr50_prepvt"
 TEST_TYPE = "server"
 DEPENDENCIES = "servo"
 
diff --git a/server/site_tests/firmware_IntegratedU2F/control b/server/site_tests/firmware_IntegratedU2F/control
index 8956920..5f04bb7 100644
--- a/server/site_tests/firmware_IntegratedU2F/control
+++ b/server/site_tests/firmware_IntegratedU2F/control
@@ -7,7 +7,7 @@
 AUTHOR = "mruthven"
 NAME = "firmware_IntegratedU2F"
 PURPOSE = "Verify U2F"
-ATTRIBUTES = "suite:cr50_stress_experimental, suite:faft_cr50_pvt, suite:faft_cr50_prepvt"
+ATTRIBUTES = "suite:faft_cr50_pvt, suite:faft_cr50_prepvt"
 TIME = "SHORT"
 TEST_TYPE = "server"
 DEPENDENCIES = "servo"
diff --git a/server/site_tests/firmware_RecoveryCacheBootKeys/control b/server/site_tests/firmware_RecoveryCacheBootKeys/control
index 96781d3..9febe60 100644
--- a/server/site_tests/firmware_RecoveryCacheBootKeys/control
+++ b/server/site_tests/firmware_RecoveryCacheBootKeys/control
@@ -8,7 +8,7 @@
 NAME = "firmware_RecoveryCacheBootKeys"
 PURPOSE = "Servo based RECOVERY_MRC_CACHE boot tests"
 CRITERIA = "This test will fail if the DUT doesn't use the cache during recovery boot."
-ATTRIBUTES = "suite:faft_lv6"
+ATTRIBUTES = "suite:faft_lv2"
 TIME = "SHORT"
 TEST_CATEGORY = "Functional"
 TEST_CLASS = "firmware"
diff --git a/server/site_tests/firmware_RecoveryCacheBootKeys/control.dev b/server/site_tests/firmware_RecoveryCacheBootKeys/control.dev
index 5e1dfb9..8a45cbf 100644
--- a/server/site_tests/firmware_RecoveryCacheBootKeys/control.dev
+++ b/server/site_tests/firmware_RecoveryCacheBootKeys/control.dev
@@ -8,7 +8,7 @@
 NAME = "firmware_RecoveryCacheBootKeys"
 PURPOSE = "Servo based RECOVERY_MRC_CACHE boot tests"
 CRITERIA = "This test will fail if the DUT doesn't use the cache during recovery boot."
-ATTRIBUTES = "suite:faft_lv6"
+ATTRIBUTES = "suite:faft_lv2"
 TIME = "SHORT"
 TEST_CATEGORY = "Functional"
 TEST_CLASS = "firmware"
diff --git a/server/site_tests/tast/control.informational-android b/server/site_tests/tast/control.informational-android
index 44f8eb0..005bf21 100644
--- a/server/site_tests/tast/control.informational-android
+++ b/server/site_tests/tast/control.informational-android
@@ -30,7 +30,7 @@
     job.run_test('tast',
                  host=hosts.create_host(machine),
                  test_exprs=['(!disabled && !"group:*" && informational && '
-                             '"dep:android")'],
+                             '("dep:android" || "dep:android_all"))'],
                  ignore_test_failures=True)
 
 parallel_simple(run, machines)
diff --git a/server/site_tests/tast/control.informational-chrome b/server/site_tests/tast/control.informational-chrome
index 013b2bb..2236a50 100644
--- a/server/site_tests/tast/control.informational-chrome
+++ b/server/site_tests/tast/control.informational-chrome
@@ -31,7 +31,7 @@
                  host=hosts.create_host(machine),
                  test_exprs=['(!disabled && !"group:*" && informational && '
                              '("dep:chrome" || "dep:chrome_login") && '
-                             '!"dep:android")'],
+                             '!"dep:android" && !"dep:android_all")'],
                  ignore_test_failures=True)
 
 parallel_simple(run, machines)
diff --git a/server/site_tests/tast/control.informational-system b/server/site_tests/tast/control.informational-system
index 0736ccf..ead0ec7 100644
--- a/server/site_tests/tast/control.informational-system
+++ b/server/site_tests/tast/control.informational-system
@@ -30,7 +30,7 @@
     job.run_test('tast',
                  host=hosts.create_host(machine),
                  test_exprs=['(!disabled && !"group:*" && informational && '
-                             '!"dep:android" && '
+                             '!"dep:android" && !"dep:android_all" && '
                              '!"dep:chrome" && !"dep:chrome_login")'],
                  ignore_test_failures=True)
 
diff --git a/server/site_tests/tast/control.mustpass-android b/server/site_tests/tast/control.mustpass-android
index 538280c..4a82187 100644
--- a/server/site_tests/tast/control.mustpass-android
+++ b/server/site_tests/tast/control.mustpass-android
@@ -31,7 +31,7 @@
     job.run_test('tast',
                  host=hosts.create_host(machine),
                  test_exprs=['(!disabled && !"group:*" && !informational && '
-                             '"dep:android")'],
+                             '("dep:android" || "dep:android_all"))'],
                  ignore_test_failures=False, max_run_sec=1200)
 
 parallel_simple(run, machines)
diff --git a/server/site_tests/tast/control.mustpass-chrome b/server/site_tests/tast/control.mustpass-chrome
index ec1b68e..386f060 100644
--- a/server/site_tests/tast/control.mustpass-chrome
+++ b/server/site_tests/tast/control.mustpass-chrome
@@ -32,7 +32,7 @@
                  host=hosts.create_host(machine),
                  test_exprs=['(!disabled && !"group:*" && !informational && '
                              '("dep:chrome" || "dep:chrome_login") && '
-                             '!"dep:android")'],
+                             '!"dep:android" && !"dep:android_all")'],
                  ignore_test_failures=False, max_run_sec=1200)
 
 parallel_simple(run, machines)
diff --git a/server/site_tests/tast/control.mustpass-system b/server/site_tests/tast/control.mustpass-system
index 860b41d..1826889 100644
--- a/server/site_tests/tast/control.mustpass-system
+++ b/server/site_tests/tast/control.mustpass-system
@@ -32,7 +32,7 @@
     job.run_test('tast',
                  host=hosts.create_host(machine),
                  test_exprs=['(!disabled && !"group:*" && !informational && '
-                             '!"dep:android" && '
+                             '!"dep:android" && !"dep:android_all" && '
                              '!"dep:chrome" && !"dep:chrome_login")'],
                  ignore_test_failures=False, max_run_sec=1200)
 
diff --git a/site_utils/attribute_whitelist.txt b/site_utils/attribute_whitelist.txt
index c4474d6..d487234 100644
--- a/site_utils/attribute_whitelist.txt
+++ b/site_utils/attribute_whitelist.txt
@@ -80,7 +80,6 @@
 suite:check_setup_storage_qual
 suite:chrome-informational
 suite:cr50_stress_experimental
-suite:cr50_stress_flaky
 suite:crosbolt_arc_perf_nightly
 suite:crosbolt_arc_perf_perbuild
 suite:crosbolt_perf_nightly
diff --git a/site_utils/run_suite.py b/site_utils/run_suite.py
index b66010f..ac8a4df 100755
--- a/site_utils/run_suite.py
+++ b/site_utils/run_suite.py
@@ -1954,14 +1954,20 @@
     start_time = str(datetime.now() -
                      timedelta(days=_SEARCH_JOB_MAX_DAYS))
     afe = _create_afe(options)
-    afe_job_id = afe.get_jobs(
+    afe_jobs = afe.get_jobs(
             name__istartswith=options.test_source_build,
             name__iendswith='control.'+options.name,
             created_on__gte=start_time,
             min_rpc_timeout=_MIN_RPC_TIMEOUT)
-    if afe_job_id:
+    if options.model:
+        model_tag = 'model:%s' % options.model
+        filtered_jobs = [j for j in afe_jobs if model_tag in j.control_file]
+    else:
+        filtered_jobs = afe_jobs
+
+    if filtered_jobs:
         logging.info('Found duplicate suite %s scheduled in past.',
-                     afe_job_id)
+                     filtered_jobs)
         return False
 
     return True
diff --git a/test_suites/control.cr50_stress_flaky b/test_suites/control.cr50_stress_flaky
deleted file mode 100644
index bf07607..0000000
--- a/test_suites/control.cr50_stress_flaky
+++ /dev/null
@@ -1,38 +0,0 @@
-# Copyright (c) 2017 The Chromium OS Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-AUTHOR = "Chrome OS Team"
-NAME = "cr50_stress_flaky"
-PURPOSE = "Experimental suite to test cr50 stress tests."
-
-TIME = "LONG"
-TEST_CATEGORY = "Stress"
-TEST_CLASS = "suite"
-TEST_TYPE = "Server"
-
-DOC = """
-This is the cr50_stress_flaky test suite.
-
-This suite is meant to be a proving ground for cr50 stress tests before they
-are promoted to the actual cr50 stress experimental suite. Specifically for
-tests that may leave the device in a bad state. The tests should remain in
-only this suite until the test reliably restores the Cr50 state.
-
-@param build: The name of the image to test.
-              Ex: x86-mario-release/R17-1412.33.0-a1-b29
-@param board: The board to test on.  Ex: x86-mario
-@param pool: The pool of machines to utilize for scheduling. If pool=None
-             board is used.
-@param check_hosts: require appropriate live hosts to exist in the lab.
-@param SKIP_IMAGE: (optional) If present and True, don't re-image devices.
-"""
-
-import common
-from autotest_lib.server.cros.dynamic_suite import dynamic_suite
-
-args_dict['name'] = 'cr50_stress_flaky'
-args_dict['add_experimental'] = True
-args_dict['job'] = job
-
-dynamic_suite.reimage_and_run(**args_dict)