graphics_dEQP: add a hand selected bvt list.

This runs on minnie on 15 seconds and exercises the gles2, gles3, gles31
and vk APIs (vk of course is skipped on minnie).

BUG=chromium:725656
TEST=test_that <ip> graphics_dEQP.bvt
graphics_dEQP.bvt [  PASSED  ]
graphics_dEQP.bvt   Pass                                 24
graphics_dEQP.bvt   Skipped                              19

Change-Id: Ib2ee6edec432fa9674c170cae72a0ecb40f80781
Reviewed-on: https://chromium-review.googlesource.com/513508
Commit-Ready: Ilja H. Friedel <ihf@chromium.org>
Tested-by: Ilja H. Friedel <ihf@chromium.org>
Reviewed-by: Chad Versace <chadversary@chromium.org>
diff --git a/client/site_tests/graphics_dEQP/control.bvt b/client/site_tests/graphics_dEQP/control.bvt
new file mode 100644
index 0000000..e95c33c
--- /dev/null
+++ b/client/site_tests/graphics_dEQP/control.bvt
@@ -0,0 +1,26 @@
+# Copyright 2015 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.
+
+# Please do not edit this file! It has been created by generate_controlfiles.py.
+
+NAME = 'graphics_dEQP.bvt'
+AUTHOR = 'chromeos-gfx'
+PURPOSE = 'Run the drawElements Quality Program test suite.'
+CRITERIA = 'All of the individual tests must pass.'
+ATTRIBUTES = 'suite:deqp, suite:graphics_per-day, suite:graphics_system, suite:bvt-cq'
+TIME = 'FAST'
+TEST_CATEGORY = 'Functional'
+TEST_CLASS = 'graphics'
+TEST_TYPE = 'client'
+DOC = """
+This test runs the drawElements Quality Program test suite.
+"""
+job.run_test('graphics_dEQP',
+             tag = 'bvt',
+             opts = args + [
+                 'test_names_file=/usr/local/autotest/tests/graphics_dEQP/master/bvt.txt',
+                 'hasty=False',
+                 'shard_number=0',
+                 'shard_count=1'
+             ])
\ No newline at end of file
diff --git a/client/site_tests/graphics_dEQP/generate_controlfiles.py b/client/site_tests/graphics_dEQP/generate_controlfiles.py
index d2f750c..14ac968 100755
--- a/client/site_tests/graphics_dEQP/generate_controlfiles.py
+++ b/client/site_tests/graphics_dEQP/generate_controlfiles.py
@@ -33,12 +33,14 @@
     bvtpb = 4
 
 test_file_folder = '/usr/local/deqp/master/'
+BVT_MASTER_FILE = '/usr/local/autotest/tests/graphics_dEQP/master/bvt.txt'
 GLES2_MASTER_FILE = os.path.join(test_file_folder, 'gles2-master.txt')
 GLES3_MASTER_FILE = os.path.join(test_file_folder, 'gles3-master.txt')
 GLES31_MASTER_FILE = os.path.join(test_file_folder, 'gles31-master.txt')
 VK_MASTER_FILE = os.path.join(test_file_folder, 'vk-master.txt')
 
 tests = [
+    Test('bvt',                    Suite.bvtcq, shards=1,  hasty=False, time='FAST',     tag='bvt',           test_file=BVT_MASTER_FILE),
     Test('dEQP-GLES2-master',      Suite.daily, shards=1,  hasty=False, time='LENGTHY',  tag='gles2-master',  test_file=GLES2_MASTER_FILE),
     Test('dEQP-GLES2-master',      Suite.bvtpb, shards=10, hasty=True,  time='FAST',     tag='gles2-master',  test_file=GLES2_MASTER_FILE),
     Test('dEQP-GLES2.accuracy',    Suite.bvtcq, shards=1,  hasty=False, time='FAST',     tag=None,            test_file=None),
diff --git a/client/site_tests/graphics_dEQP/graphics_dEQP.py b/client/site_tests/graphics_dEQP/graphics_dEQP.py
index 862c568..b719ba9 100644
--- a/client/site_tests/graphics_dEQP/graphics_dEQP.py
+++ b/client/site_tests/graphics_dEQP/graphics_dEQP.py
@@ -251,22 +251,11 @@
         return test_cases
 
     def _get_test_cases_from_names_file(self):
-        # Assume master file comes with '-master.txt' suffix,
-        # Ex. gles2-master.txt, gles31-master.txt, vk-master.txt
-        basename = os.path.basename(self._test_names_file)
-        groups = re.match(r'(.*)-master\.txt$', basename)
-        if groups is None:
-            logging.warning('File name \'%s\' could not be recognized.' %
-                            basename)
-        else:
-            api = groups.group(1)
-            if not api in self._api_helper.get_supported_apis():
-                logging.warning('\'%s\' is not supported in this board' % api)
-                return []
-
-            file_path = os.path.join(self.bindir, self._test_names_file)
+        if os.path.exists(self._test_names_file):
+            file_path = self._test_names_file
             test_cases = [line.rstrip('\n') for line in open(file_path)]
             return [test for test in test_cases if test and not test.isspace()]
+        return []
 
     def _get_test_cases(self, test_filter, subset):
         """Gets the test cases for 'Pass', 'Fail' etc. expectations.
@@ -613,5 +602,5 @@
             raise error.TestFail('Failed: on %s %d/%d tests failed.' %
                                  (self._gpu_type, test_failures, test_count))
         if test_skipped > 0:
-            raise error.TestFail('Failed: on %s %d tests skipped, %d passes' %
-                                 (self._gpu_type, test_skipped, test_passes))
+            logging.info('On %s %d tests skipped, %d passes' %
+                         (self._gpu_type, test_skipped, test_passes))
diff --git a/client/site_tests/graphics_dEQP/master/bvt.txt b/client/site_tests/graphics_dEQP/master/bvt.txt
new file mode 100644
index 0000000..54148be
--- /dev/null
+++ b/client/site_tests/graphics_dEQP/master/bvt.txt
@@ -0,0 +1,43 @@
+dEQP-GLES2.info.vendor
+dEQP-GLES2.info.renderer
+dEQP-GLES2.info.version
+dEQP-GLES2.info.shading_language_version
+dEQP-GLES2.info.extensions
+dEQP-GLES2.info.render_target
+dEQP-GLES2.functional.prerequisite.state_reset
+dEQP-GLES2.functional.prerequisite.clear_color
+dEQP-GLES2.functional.prerequisite.read_pixels
+dEQP-GLES3.info.vendor
+dEQP-GLES3.info.renderer
+dEQP-GLES3.info.version
+dEQP-GLES3.info.shading_language_version
+dEQP-GLES3.info.extensions
+dEQP-GLES3.info.render_target
+dEQP-GLES3.functional.prerequisite.state_reset
+dEQP-GLES3.functional.prerequisite.clear_color
+dEQP-GLES3.functional.prerequisite.read_pixels
+dEQP-GLES31.info.vendor
+dEQP-GLES31.info.renderer
+dEQP-GLES31.info.version
+dEQP-GLES31.info.shading_language_version
+dEQP-GLES31.info.extensions
+dEQP-GLES31.info.render_target
+dEQP-VK.info.build
+dEQP-VK.info.device
+dEQP-VK.info.platform
+dEQP-VK.info.memory_limits
+dEQP-VK.api.smoke.create_sampler
+dEQP-VK.api.smoke.create_shader
+dEQP-VK.api.smoke.triangle
+dEQP-VK.api.smoke.asm_triangle
+dEQP-VK.api.smoke.asm_triangle_no_opname
+dEQP-VK.api.smoke.unused_resolve_attachment
+dEQP-VK.api.info.instance.physical_devices
+dEQP-VK.api.info.instance.layers
+dEQP-VK.api.info.instance.extensions
+dEQP-VK.api.info.device.features
+dEQP-VK.api.info.device.properties
+dEQP-VK.api.info.device.queue_family_properties
+dEQP-VK.api.info.device.memory_properties
+dEQP-VK.api.info.device.layers
+dEQP-VK.api.info.device.extensions