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

from autotest_lib.server import utils

AUTHOR = 'angli, sbasi'
NAME = 'android_ACTS'
TIME = 'MEDIUM'
TEST_TYPE = 'Server'
SUITE = ''

DOC = """
This test runs ACTS against a inputed config_file, test_bed, test_case.
"""

args_dict = utils.args_to_dict(args)
config_file = args_dict.get('config_file')
test_bed = args_dict.get('test_bed')
test_case = args_dict.get('test_case')
test_file = args_dict.get('test_file')

def run(machine):
    job.run_test('android_ACTS', testbed=hosts.create_testbed(machine),
                 config_file=config_file, testbed_name=test_bed,
                 test_case=test_case, test_file=test_file)


parallel_simple(run, machines)
