tast: Update control files to separate Parallels tests into new suite.

Give separate timeout to Parallels tests, and lay groundwork for
lab licensing work.

BUG=chromium:1151765,chromium:1154072
TEST=None

Change-Id: I7c141e4cbab37a8d365dd33e5280806a1ddbcf3a
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/autotest/+/2172221
Reviewed-by: Shuhei Takahashi <nya@chromium.org>
Reviewed-by: Timothy Loh <timloh@chromium.org>
Commit-Queue: Patrick Meiring <meiring@google.com>
Tested-by: Patrick Meiring <meiring@google.com>
diff --git a/server/site_tests/tast/control.critical-android b/server/site_tests/tast/control.critical-android
index df67d88..e4364f4 100644
--- a/server/site_tests/tast/control.critical-android
+++ b/server/site_tests/tast/control.critical-android
@@ -36,6 +36,7 @@
                  test_exprs=['('
                              '"group:mainline" && '
                              '!informational && '
+                             '!"dep:plugin_vm" && '
                              '"dep:android*"'
                              ')'],
                  download_data_lazily=False,
diff --git a/server/site_tests/tast/control.critical-chrome b/server/site_tests/tast/control.critical-chrome
index 41eba0a..b74f07d 100644
--- a/server/site_tests/tast/control.critical-chrome
+++ b/server/site_tests/tast/control.critical-chrome
@@ -35,6 +35,7 @@
                              '"group:mainline" && '
                              '!informational && '
                              '"dep:chrome" && '
+                             '!"dep:plugin_vm" && '
                              '!"dep:android*"'
                              ')'],
                  download_data_lazily=False,
diff --git a/server/site_tests/tast/control.critical-parallels b/server/site_tests/tast/control.critical-parallels
new file mode 100644
index 0000000..216a73c
--- /dev/null
+++ b/server/site_tests/tast/control.critical-parallels
@@ -0,0 +1,41 @@
+# Copyright 2020 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.critical-parallels'
+TIME = 'MEDIUM'
+TEST_TYPE = 'Server'
+ATTRIBUTES = 'suite:bvt-tast-cq'
+MAX_RESULT_SIZE_KB = 256 * 1024
+
+# tast.py uses binaries installed from autotest_server_package.tar.bz2.
+REQUIRE_SSP = True
+
+DOC = '''
+Run the Tast must-pass Parallels test suite.
+
+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 Parallels-dependent Tast-based tests that are required to pass
+against a remote DUT. It fails if any individual Tast tests fail.
+
+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:mainline" && '
+                             '!informational && '
+                             '"dep:plugin_vm"'
+                             ')'],
+                 download_data_lazily=False,
+                 ignore_test_failures=False, max_run_sec=3600,
+                 command_args=args,
+                 clear_tpm=True)
+
+parallel_simple(run, machines)
diff --git a/server/site_tests/tast/control.critical-system b/server/site_tests/tast/control.critical-system
index 90d51bc..eda5205 100644
--- a/server/site_tests/tast/control.critical-system
+++ b/server/site_tests/tast/control.critical-system
@@ -42,6 +42,7 @@
                              '"group:mainline" && '
                              '!informational && '
                              '!"dep:chrome" && '
+                             '!"dep:plugin_vm" && '
                              '!"dep:android*"'
                              ')'],
                  download_data_lazily=False,
diff --git a/server/site_tests/tast/control.informational-android b/server/site_tests/tast/control.informational-android
index d98224f..f440fc2 100644
--- a/server/site_tests/tast/control.informational-android
+++ b/server/site_tests/tast/control.informational-android
@@ -35,6 +35,7 @@
                              '"group:mainline" && '
                              'informational && '
                              '!"name:crostini.*" && '
+                             '!"dep:plugin_vm" && '
                              '"dep:android*"'
                              ')'],
                  ignore_test_failures=True,
diff --git a/server/site_tests/tast/control.informational-chrome b/server/site_tests/tast/control.informational-chrome
index 4685935..d4f6baa 100644
--- a/server/site_tests/tast/control.informational-chrome
+++ b/server/site_tests/tast/control.informational-chrome
@@ -35,6 +35,7 @@
                              '"group:mainline" && '
                              'informational && '
                              '!"name:crostini.*" && '
+                             '!"dep:plugin_vm" && '
                              '"dep:chrome" && '
                              '!"dep:android*"'
                              ')'],
diff --git a/server/site_tests/tast/control.informational-crostini b/server/site_tests/tast/control.informational-crostini
index cddce69..242d8ff 100644
--- a/server/site_tests/tast/control.informational-crostini
+++ b/server/site_tests/tast/control.informational-crostini
@@ -33,7 +33,8 @@
                  test_exprs=['('
                              '"group:mainline" && '
                              'informational && '
-                             '"name:crostini.*"'
+                             '"name:crostini.*" && '
+                             '!"dep:plugin_vm"'
                              ')'],
                  ignore_test_failures=True,
                  max_run_sec=3*60*60,
diff --git a/server/site_tests/tast/control.informational-parallels b/server/site_tests/tast/control.informational-parallels
new file mode 100644
index 0000000..e7e8b39
--- /dev/null
+++ b/server/site_tests/tast/control.informational-parallels
@@ -0,0 +1,44 @@
+# Copyright 2020 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.informational-parallels'
+TIME = 'MEDIUM'
+TEST_TYPE = 'Server'
+ATTRIBUTES = 'suite:bvt-tast-informational, suite:chrome-informational'
+MAX_RESULT_SIZE_KB = 1024 * 1024
+JOB_RETRIES = 0  # Do not retry informational tests.
+
+# tast.py uses binaries installed from autotest_server_package.tar.bz2.
+REQUIRE_SSP = True
+
+DOC = '''
+Run the Tast informational Parallels test suite.
+
+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 Parallels-dependent Tast-based informational tests against a
+remote DUT. It only reports failure if the tast process itself (rather than
+individual Tast tests) fails.
+
+See http://go/tast-failures for information about investigating failures.
+'''
+
+def run(machine):
+    # TODO(crbug.com/992303): Fix android condition.
+    job.run_test('tast',
+                 host=hosts.create_host(machine),
+                 test_exprs=['('
+                             '"group:mainline" && '
+                             'informational && '
+                             '"dep:plugin_vm"'
+                             ')'],
+                 ignore_test_failures=True,
+                 max_run_sec=3*60*60,
+                 command_args=args,
+                 clear_tpm=True)
+
+parallel_simple(run, machines)
diff --git a/server/site_tests/tast/control.informational-system b/server/site_tests/tast/control.informational-system
index aa4aef5..f4c2b68 100644
--- a/server/site_tests/tast/control.informational-system
+++ b/server/site_tests/tast/control.informational-system
@@ -46,6 +46,7 @@
                              '"group:mainline" && '
                              'informational && '
                              '!"name:crostini.*" && '
+                             '!"dep:plugin_vm" && '
                              '!"dep:chrome" && '
                              '!"dep:android*"'
                              ')'],