| # 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 = "akeshet, chromeos-lab-infrastructure" | |
| NAME = "test_that_wrapper" | |
| PURPOSE = "Wrapper for ad-hoc suites kicked of by test_that tool." | |
| TIME = "SHORT" | |
| TEST_CATEGORY = "General" | |
| TEST_CLASS = "suite" | |
| TEST_TYPE = "Server" | |
| DOC = """ | |
| This is a wrapper suite for lab jobs that get kicked off by developers | |
| running the test_that tool on their desks, but targetting devices in the lab. | |
| @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 logging, shlex | |
| import common | |
| from autotest_lib.server.cros.dynamic_suite import dynamic_suite | |
| from autotest_lib.site_utils import test_runner_utils | |
| from autotest_lib.site_utils import test_that | |
| # Values specified in this bug template will override default values when | |
| # filing bugs on tests that are a part of this suite. If left unspecified | |
| # the bug filer will fallback to it's defaults. | |
| _BUG_TEMPLATE = { | |
| 'labels': ['test_that_wrapper'], | |
| 'owner': '', | |
| 'status': None, | |
| 'summary': None, | |
| 'title': None, | |
| } | |
| parsed_test_arguments = [test_runner_utils.get_predicate_for_test_arg(test_arg) | |
| for test_arg in args_dict['tests']] | |
| sub_predicates, descriptions = zip(*parsed_test_arguments) | |
| logging.info('This is a test_that triggered suite, consisting of:') | |
| for desc in descriptions: | |
| logging.info('A %s.', desc) | |
| combined_predicate = lambda test: any(f(test) for f in sub_predicates) | |
| args_dict['name'] = NAME | |
| args_dict.setdefault('max_runtime_mins', 20) | |
| args_dict['predicate'] = combined_predicate | |
| args_dict['job'] = job | |
| args_dict['add_experimental'] = True | |
| args_dict['bug_template'] = _BUG_TEMPLATE | |
| dynamic_suite.reimage_and_run(**args_dict) |