# Copyright 2014 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.

# Do not edit this file! It was created by generate_controlfiles.py.

AUTHOR = 'chromeos-gfx'
NAME = 'telemetry_GpuTests.webgl_conformance'
ATTRIBUTES = "suite:graphics, suite:graphics_browser, suite:graphics_per-day"
SUITE = 'graphics_per-day, graphics, graphics_browser'
TIME = 'LONG'
TEST_CATEGORY = 'Functional'
TEST_CLASS = 'gl'
TEST_TYPE = 'server'

DOC = '''
This server control file executes the GPU telemetry test: webgl_conformance.

Pass local=True to run with local telemetry and no AFE server.
'''

from autotest_lib.client.common_lib import utils

def run_test(machine):
    host = hosts.create_host(machine)
    job.run_test('telemetry_GpuTests',
                 host=host,
                 test='webgl_conformance',
                 args=utils.args_to_dict(args))


parallel_simple(run_test, machines)