Separate FAFT tests to improve run time

The tests are capable to moving the DUT into the required state (dev
or normal), but frequent state change takes a lot of time. It is
better to run tests in series by the initial state (dev/control). The
EC tests are in their own category. This will also allow to run tests
concurrently on multiple DUTs.

There are a few tests which have 'faft' in the SUITE = section, but
are not classified as either dev, normal or ec - they will be assigned
to one of the categories in a separate change.

BUG=chromium-os:38129
TEST=manual
   $ ./site_utils/suite_scheduler/suite_scheduler.py --sanity

Change-Id: Ibab67f1648e4a9259de259f3a41dbe329eb3475f
Signed-off-by: Vadim Bendebury <vbendeb@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/41807
Reviewed-by: Scott Zawalski <scottz@chromium.org>
diff --git a/test_suites/control.faft_ec b/test_suites/control.faft_ec
new file mode 100644
index 0000000..8336e04
--- /dev/null
+++ b/test_suites/control.faft_ec
@@ -0,0 +1,39 @@
+# Copyright (c) 2012 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 = "faft_ec"
+PURPOSE = "Test hard-to-automate firmware and ec scenarios."
+CRITERIA = "All tests with SUITE=faft_ec must pass."
+
+TIME = "SHORT"
+TEST_CATEGORY = "General"
+TEST_CLASS = "suite"
+TEST_TYPE = "Server"
+
+DOC = """
+This is a faft (FULLY AUTOMATED FIRMWARE TEST) suite. The tests in this suite
+verify the Chrome OS EC operation, that valid boot scenarios progress properly
+(with state progress checks) and that error scenarios (corrupted blobs) are
+caught as expected. Some of these test failures should close the tree as they
+may imply that the system is unbootable and further tests will only become
+hung or blocked. Other tests verify all of the features (some of them security
+related) are functioning.
+
+@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
+
+dynamic_suite.reimage_and_run(
+    build=build, board=board, name='faft_ec', job=job,
+    pool=pool, check_hosts=check_hosts, add_experimental=True, num=num,
+    file_bugs=file_bugs, skip_reimage=dynamic_suite.skip_reimage(globals()))