tast: split out Parallels critical, informational, performance tests

Split out Parallels tests from existing control files (where not already
done so) and define additional suite names so that they can be scheduled
separately.

Once the new suite names are being scheduled, they will be removed from
the existing suites to avoid running tests running twice (under both the
old and new suite names).

BUG=chromium:1154072
TEST=None

Change-Id: Iccbd8dd21031da179ecf99395b8bc11143faa4d0
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/autotest/+/2591845
Commit-Queue: Patrick Meiring <meiring@google.com>
Tested-by: Patrick Meiring <meiring@google.com>
Reviewed-by: Shuhei Takahashi <nya@chromium.org>
Reviewed-by: Sean Abraham <seanabraham@chromium.org>
Auto-Submit: Patrick Meiring <meiring@google.com>
diff --git a/server/site_tests/tast/control.critical-parallels b/server/site_tests/tast/control.critical-parallels
index 216a73c..2b5e1aa 100644
--- a/server/site_tests/tast/control.critical-parallels
+++ b/server/site_tests/tast/control.critical-parallels
@@ -6,7 +6,9 @@
 NAME = 'tast.critical-parallels'
 TIME = 'MEDIUM'
 TEST_TYPE = 'Server'
-ATTRIBUTES = 'suite:bvt-tast-cq'
+# TODO(crbug.com/1154072): Remove from 'suite:bvt-tast-cq' once the
+# parallels suite is scheduled.
+ATTRIBUTES = 'suite:bvt-tast-cq, suite:bvt-tast-parallels-cq'
 MAX_RESULT_SIZE_KB = 256 * 1024
 
 # tast.py uses binaries installed from autotest_server_package.tar.bz2.
diff --git a/server/site_tests/tast/control.crosbolt-nightly b/server/site_tests/tast/control.crosbolt-nightly
index 2c1b82d..4d6df66 100644
--- a/server/site_tests/tast/control.crosbolt-nightly
+++ b/server/site_tests/tast/control.crosbolt-nightly
@@ -27,7 +27,11 @@
 def run(machine):
     job.run_test('tast',
                  host=hosts.create_host(machine),
-                 test_exprs=['("group:crosbolt" && crosbolt_nightly)'],
+                 test_exprs=['('
+                             '"group:crosbolt" && '
+                             'crosbolt_nightly && '
+                             '!"dep:plugin_vm"'
+                             ')'],
                  ignore_test_failures=True,
                  max_run_sec=14400,  # 4 hours.
                  command_args=args)
diff --git a/server/site_tests/tast/control.crosbolt-parallels-nightly b/server/site_tests/tast/control.crosbolt-parallels-nightly
new file mode 100644
index 0000000..1ea5880
--- /dev/null
+++ b/server/site_tests/tast/control.crosbolt-parallels-nightly
@@ -0,0 +1,41 @@
+# 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.
+
+AUTHOR = 'Chromium OS team'
+NAME = 'tast.crosbolt-parallels-nightly'
+TIME = 'MEDIUM'
+TEST_TYPE = 'Server'
+# TODO(crbug.com/1154072): Remove from 'suite:crosbolt_perf_nightly' once the
+# parallels suite is scheduled.
+ATTRIBUTES = 'suite:crosbolt_perf_nightly, suite:crosbolt_perf_parallels_nightly'
+MAX_RESULT_SIZE_KB = 1024 * 1024
+
+# tast.py uses binaries installed from autotest_server_package.tar.bz2.
+REQUIRE_SSP = True
+
+DOC = '''
+Run the Tast crosbolt performance test suite for Parallels.
+
+Tast is an integration-testing framework analagous to the test-running portion
+of Autotest. See https://chromium.googlesource.com/chromiumos/platform/tast/ for
+more information.
+
+This test runs Tast-based crosbolt performance tests against a remote DUT.
+
+See http://go/tast-failures for information about investigating failures.
+'''
+
+def run(machine):
+    job.run_test('tast',
+                 host=hosts.create_host(machine),
+                 test_exprs=['('
+                             '"group:crosbolt" && '
+                             'crosbolt_nightly && '
+                             '"dep:plugin_vm"'
+                             ')'],
+                 ignore_test_failures=True,
+                 max_run_sec=7200,  # 2 hours.
+                 command_args=args)
+
+parallel_simple(run, machines)
diff --git a/server/site_tests/tast/control.crosbolt-parallels-perbuild b/server/site_tests/tast/control.crosbolt-parallels-perbuild
new file mode 100644
index 0000000..f5c9431
--- /dev/null
+++ b/server/site_tests/tast/control.crosbolt-parallels-perbuild
@@ -0,0 +1,41 @@
+# 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.
+
+AUTHOR = 'Chromium OS team'
+NAME = 'tast.crosbolt-parallels-perbuild'
+TIME = 'MEDIUM'
+TEST_TYPE = 'Server'
+# TODO(crbug.com/1154072): Remove from 'suite:crosbolt_perf_perbuild' once the
+# parallels suite is scheduled.
+ATTRIBUTES = 'suite:crosbolt_perf_perbuild, suite:crosbolt_perf_parallels_perbuild'
+MAX_RESULT_SIZE_KB = 1024 * 1024
+
+# tast.py uses binaries installed from autotest_server_package.tar.bz2.
+REQUIRE_SSP = True
+
+DOC = '''
+Run the Tast crosbolt performance test suite for Parallels.
+
+Tast is an integration-testing framework analagous to the test-running portion
+of Autotest. See https://chromium.googlesource.com/chromiumos/platform/tast/ for
+more information.
+
+This test runs Tast-based crosbolt performance tests against a remote DUT.
+
+See http://go/tast-failures for information about investigating failures.
+'''
+
+def run(machine):
+    job.run_test('tast',
+                 host=hosts.create_host(machine),
+                 test_exprs=['('
+                             '"group:crosbolt" && '
+                             'crosbolt_perbuild && '
+                             '"dep:plugin_vm"'
+                             ')'],
+                 ignore_test_failures=True,
+                 max_run_sec=7200,  # 2 hours.
+                 command_args=args)
+
+parallel_simple(run, machines)
diff --git a/server/site_tests/tast/control.crosbolt-parallels-weekly b/server/site_tests/tast/control.crosbolt-parallels-weekly
new file mode 100644
index 0000000..a67d24e
--- /dev/null
+++ b/server/site_tests/tast/control.crosbolt-parallels-weekly
@@ -0,0 +1,41 @@
+# 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.
+
+AUTHOR = 'Chromium OS team'
+NAME = 'tast.crosbolt-parallels-weekly'
+TIME = 'MEDIUM'
+TEST_TYPE = 'Server'
+# TODO(crbug.com/1154072): Remove from 'suite:crosbolt_perf_weekly' once the
+# parallels suite is scheduled.
+ATTRIBUTES = 'suite:crosbolt_perf_weekly, suite:crosbolt_perf_parallels_weekly'
+MAX_RESULT_SIZE_KB = 1024 * 1024
+
+# tast.py uses binaries installed from autotest_server_package.tar.bz2.
+REQUIRE_SSP = True
+
+DOC = '''
+Run the Tast crosbolt performance test suite for Parallels.
+
+Tast is an integration-testing framework analagous to the test-running portion
+of Autotest. See https://chromium.googlesource.com/chromiumos/platform/tast/ for
+more information.
+
+This test runs Tast-based crosbolt performance tests against a remote DUT.
+
+See http://go/tast-failures for information about investigating failures.
+'''
+
+def run(machine):
+    job.run_test('tast',
+                 host=hosts.create_host(machine),
+                 test_exprs=['('
+                             '"group:crosbolt" && '
+                             'crosbolt_weekly && '
+                             '"dep:plugin_vm"'
+                             ')'],
+                 ignore_test_failures=True,
+                 max_run_sec=7200,  # 2 hours.
+                 command_args=args)
+
+parallel_simple(run, machines)
diff --git a/server/site_tests/tast/control.crosbolt-perbuild b/server/site_tests/tast/control.crosbolt-perbuild
index 4a251ee..1243b41 100644
--- a/server/site_tests/tast/control.crosbolt-perbuild
+++ b/server/site_tests/tast/control.crosbolt-perbuild
@@ -27,7 +27,12 @@
 def run(machine):
     job.run_test('tast',
                  host=hosts.create_host(machine),
-                 test_exprs=['("group:crosbolt" && crosbolt_perbuild && !"dep:android*")'],
+                 test_exprs=['('
+                             '"group:crosbolt" && '
+                             'crosbolt_perbuild && '
+                             '!"dep:android*" && '
+                             '!"dep:plugin_vm"'
+                             ')'],
                  ignore_test_failures=True,
                  max_run_sec=21600,  # 6 hours.
                  command_args=args)
diff --git a/server/site_tests/tast/control.crosbolt-prebuild-android b/server/site_tests/tast/control.crosbolt-prebuild-android
index 097d451..e8a5ead 100644
--- a/server/site_tests/tast/control.crosbolt-prebuild-android
+++ b/server/site_tests/tast/control.crosbolt-prebuild-android
@@ -27,7 +27,12 @@
 def run(machine):
     job.run_test('tast',
                  host=hosts.create_host(machine),
-                 test_exprs=['("group:crosbolt" && crosbolt_perbuild && "dep:android*")'],
+                 test_exprs=['('
+                             '"group:crosbolt" && '
+                             'crosbolt_perbuild && '
+                             '"dep:android*" && '
+                             '!"dep:plugin_vm"'
+                             ')'],
                  ignore_test_failures=True,
                  max_run_sec=21600,  # 6 hours.
                  command_args=args)
diff --git a/server/site_tests/tast/control.crosbolt-weekly b/server/site_tests/tast/control.crosbolt-weekly
index fe2a4a7..0e8ad70 100644
--- a/server/site_tests/tast/control.crosbolt-weekly
+++ b/server/site_tests/tast/control.crosbolt-weekly
@@ -27,7 +27,11 @@
 def run(machine):
     job.run_test('tast',
                  host=hosts.create_host(machine),
-                 test_exprs=['("group:crosbolt" && crosbolt_weekly)'],
+                 test_exprs=['('
+                             '"group:crosbolt" && '
+                             'crosbolt_weekly && '
+                             '!"dep:plugin_vm"'
+                             ')'],
                  ignore_test_failures=True, max_run_sec=10800,
                  command_args=args)
 
diff --git a/server/site_tests/tast/control.informational-parallels b/server/site_tests/tast/control.informational-parallels
index e7e8b39..4d80635 100644
--- a/server/site_tests/tast/control.informational-parallels
+++ b/server/site_tests/tast/control.informational-parallels
@@ -6,7 +6,9 @@
 NAME = 'tast.informational-parallels'
 TIME = 'MEDIUM'
 TEST_TYPE = 'Server'
-ATTRIBUTES = 'suite:bvt-tast-informational, suite:chrome-informational'
+# TODO(crbug.com/1154072): Remove from 'suite:bvt-tast-informational' once the
+# parallels suite is scheduled.
+ATTRIBUTES = 'suite:bvt-tast-informational, suite:bvt-tast-parallels-informational'
 MAX_RESULT_SIZE_KB = 1024 * 1024
 JOB_RETRIES = 0  # Do not retry informational tests.
 
diff --git a/site_utils/attribute_allowlist.txt b/site_utils/attribute_allowlist.txt
index 0bb758d..fab6fbc 100644
--- a/site_utils/attribute_allowlist.txt
+++ b/site_utils/attribute_allowlist.txt
@@ -50,6 +50,8 @@
 suite:bvt-tast-chrome-pfq
 suite:bvt-tast-cq
 suite:bvt-tast-informational
+suite:bvt-tast-parallels-cq
+suite:bvt-tast-parallels-informational
 suite:camera-libcamera
 suite:camera-postsubmit
 suite:camerabox_facing-back
@@ -73,6 +75,9 @@
 suite:chrome-informational
 suite:cros-av-analysis
 suite:crosbolt_perf_nightly
+suite:crosbolt_perf_parallels_nightly
+suite:crosbolt_perf_parallels_perbuild
+suite:crosbolt_perf_parallels_weekly
 suite:crosbolt_perf_perbuild
 suite:crosbolt_perf_weekly
 suite:cts_P