autotest: Add suite and control file for Tast WiFi tests.

We plan to migrate WiFi Autotest tests to Tast. The first step is to
migrate tests in suite:wifi_matfunc suite. So we create
suite:wifi_func_tast, which is the Tast counterpart of
suite:wifi_matfunc. It is a placeholder for Tast remote tests that
verify WiFi basic functionalities using wificell fixture [1].
The reason why we need a separate suite is because "test_that" command
cannot run Tast tests if devserver is not presented (crbug.com/948805).
Placing Tast tests on this suite can avoid possible regression of
running suite:wifi_matfunc.

Also, we add a control file, control.wifi-func, which launches Tast
tests with group:wificell attribute. And it is currently the only
control file under suite:wifi_func_tast.

[1] https://chromium.googlesource.com/chromiumos/third_party/autotest/+/master/docs/wificell.md

BUG=chromium:1034878
TEST=./site_utils/suite_enumerator.py wifi_func_tast -a .

Cq-Depend: chromium:1971353
Change-Id: I1cf9bcfffc8121ecd9836fd9369415a032771dde
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/autotest/+/1971331
Reviewed-by: Brian Norris <briannorris@chromium.org>
Reviewed-by: Harpreet Grewal <harpreet@chromium.org>
Reviewed-by: Eric Caruso <ejcaruso@chromium.org>
Reviewed-by: Shuhei Takahashi <nya@chromium.org>
Reviewed-by: Keigo Oka <oka@chromium.org>
Tested-by: Shuo-Peng Liao <deanliao@chromium.org>
Commit-Queue: Shuo-Peng Liao <deanliao@chromium.org>
diff --git a/server/site_tests/tast/control.wifi-func b/server/site_tests/tast/control.wifi-func
new file mode 100644
index 0000000..0f15809
--- /dev/null
+++ b/server/site_tests/tast/control.wifi-func
@@ -0,0 +1,33 @@
+# Copyright 2019 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.wifi-func'
+TIME = 'MEDIUM'
+TEST_TYPE = 'Server'
+ATTRIBUTES = 'suite:wifi_func_tast'
+MAX_RESULT_SIZE_KB = 50 * 1024
+
+DOC = '''
+Run the Tast tests which verifies basic WiFi functions using wificell fixture.
+
+"group:wificell" indicates tests that runs on wificell.
+And its sub-attribute "wifi_func" indicates tests which verifies basic WiFi functions.
+
+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.
+
+See http://go/tast-failures for information about investigating failures.
+'''
+
+def run(machine):
+    job.run_test('tast',
+                 host=hosts.create_host(machine),
+                 test_exprs=['(!disabled && "group:wificell" && '
+                             'wifi_func)'],
+                 ignore_test_failures=True, max_run_sec=10800,
+                 command_args=args)
+
+parallel_simple(run, machines)
diff --git a/site_utils/attribute_whitelist.txt b/site_utils/attribute_whitelist.txt
index 71fc201..1d58a17 100644
--- a/site_utils/attribute_whitelist.txt
+++ b/site_utils/attribute_whitelist.txt
@@ -226,6 +226,7 @@
 suite:wifi_atten_perf
 suite:wifi_endtoend
 suite:wifi_flaky
+suite:wifi_func_tast
 suite:wifi_interop
 suite:wifi_interop_static
 suite:wifi_interop_wpa2
diff --git a/test_suites/control.wifi_func_tast b/test_suites/control.wifi_func_tast
new file mode 100644
index 0000000..13ffaa3
--- /dev/null
+++ b/test_suites/control.wifi_func_tast
@@ -0,0 +1,31 @@
+# Copyright (c) 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 = "deanliao@chromium.org"
+NAME = "wifi_func_tast"
+PURPOSE = "Test basic WiFi functionalities using Tast framework."
+
+TIME = "SHORT"
+TEST_CATEGORY = "General"
+TEST_CLASS = "suite"
+TEST_TYPE = "Server"
+
+DOC = """
+The suite is the Tast counterpart of suite:wifi_matfunc.
+
+The reason why we need a separate suite is because "test_that" command
+cannot run Tast tests if devserver is not presented (crbug.com/948805).
+Placing Tast tests on this suite can avoid possible regression of
+suite:wifi_matfunc.
+"""
+
+import common
+from autotest_lib.server.cros.dynamic_suite import dynamic_suite
+
+args_dict['add_experimental'] = True
+args_dict['max_runtime_mins'] = 60
+args_dict['name'] = NAME
+args_dict['job'] = job
+
+dynamic_suite.reimage_and_run(**args_dict)