[autotest]  Add new test to GTS/CTS to collect a cannonical list of tests.

Change the cheets_GTS test to accept new param of the tradefed command
to run, add new test that uses this feature.

We need the cannonical list of test that should be executed, so run
tradefed with collect_test_only.

test_that 100.107.3.139 cheets_GTS.GtsRlzTestCases
test_that 100.107.3.139 cheets_GTS.tradefed-run-collect-tests-only

both pass

BUG=b:62101940
TEST=test_that pass for new test and rlz test

Change-Id: I862cb799e1e6bf4b721b1350f9b71142a4ff7b01
Reviewed-on: https://chromium-review.googlesource.com/518428
Commit-Ready: Keith Haddow <haddowk@chromium.org>
Tested-by: Ilja H. Friedel <ihf@chromium.org>
Reviewed-by: Ilja H. Friedel <ihf@chromium.org>
Reviewed-by: Keith Haddow <haddowk@chromium.org>
(cherry picked from commit 511364751bb9e10d7a306087fdf6f868475107d5)
Reviewed-on: https://chromium-review.googlesource.com/522351
(cherry picked from commit 90416e1aec3413602301eee048c9cc73090df970)
Reviewed-on: https://chromium-review.googlesource.com/522353
diff --git a/server/site_tests/cheets_GTS/cheets_GTS.py b/server/site_tests/cheets_GTS/cheets_GTS.py
index ae034b3..84a105f 100644
--- a/server/site_tests/cheets_GTS/cheets_GTS.py
+++ b/server/site_tests/cheets_GTS/cheets_GTS.py
@@ -27,6 +27,7 @@
     """Sets up tradefed to run GTS tests."""
     version = 1
 
+
     def setup(self, uri=None):
         """Set up GTS bundle from Google Storage.
 
@@ -41,24 +42,29 @@
         self.waivers = self._get_expected_failures('expectations')
 
 
-    def _run_gts_tradefed(self, target_package):
-        """This tests runs the GTS(XTS) tradefed binary and collects results.
+    def _get_gts_test_args(self, target_package):
+        """ This is the command to run GTS tests.
 
         @param target_package: the name of test package to be run. If None is
                 set, full GTS set will run.
-        @raise TestFail: when a test failure is detected.
         """
         self._target_package = target_package
+        #TODO(dhaddock): remove --skip-device-info with GTS 4.1_r2 (b/32889514)
+        return ['run', 'commandAndExit', 'gts', '--skip-device-info',
+                '--module', target_package]
+
+
+    def _run_gts_tradefed(self, gts_tradefed_args):
+        """This tests runs the GTS(XTS) tradefed binary and collects results.
+
+        @raise TestFail: when a test failure is detected.
+        """
         gts_tradefed = os.path.join(
                 self._android_gts,
                 'android-gts',
                 'tools',
                 'gts-tradefed')
         logging.info('GTS-tradefed path: %s', gts_tradefed)
-        #TODO(dhaddock): remove --skip-device-info with GTS 4.1_r2 (b/32889514)
-        gts_tradefed_args = ['run', 'commandAndExit', 'gts',
-                             '--skip-device-info', '--module',
-                             self._target_package]
         # Run GTS via tradefed and obtain stdout, sterr as output.
         with tradefed_test.adb_keepalive(self._get_adb_target(),
                                          self._install_paths):
@@ -109,10 +115,12 @@
                      datetime_id)
         return datetime_id
 
-    def run_once(self, target_package=None):
+    def run_once(self, target_package=None, gts_tradefed_args=None):
         """Runs GTS target package exactly once."""
         with self._login_chrome():
             self._connect_adb()
             self._disable_adb_install_dialog()
             self._wait_for_arc_boot()
-            self._run_gts_tradefed(target_package)
+            if not gts_tradefed_args:
+                gts_tradefed_args = self._get_gts_test_args(target_package)
+            self._run_gts_tradefed(gts_tradefed_args)
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
new file mode 100644
index 0000000..98af1c3
--- /dev/null
+++ b/server/site_tests/cheets_GTS/control.tradefed-run-collect-tests-only
@@ -0,0 +1,26 @@
+# Copyright 2016 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 = 'ARC++ Team'
+NAME = 'cheets_GTS.tradefed-run-collect-tests-only'
+ATTRIBUTES = 'suite:gts'
+DEPENDENCIES = 'arc'
+JOB_RETRIES = 2
+TEST_TYPE = 'server'
+TIME = 'LENGTHY'
+
+DOC = ('Run tradefed to collect all of the available GTS tests for this device.')
+
+def run_GTS(machine):
+    host = hosts.create_host(machine)
+    job.run_test(
+        'cheets_GTS',
+        host=host,
+        iterations=1,
+        tag='tradefed-run-collect-tests-only',
+        gts_tradefed_args = ['run', 'commandAndExit', 'collect-tests-only'],
+        timeout=600)
+
+parallel_simple(run_GTS, machines)