115 lines
4.0 KiB
Plaintext
115 lines
4.0 KiB
Plaintext
# Copyright 2019 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.
|
|
|
|
# This file is not auto-generated. Don't delete it.
|
|
|
|
# Boring.
|
|
import logging
|
|
import pprint
|
|
from autotest_lib.client.bin import utils
|
|
|
|
usage = """
|
|
1) To run agains a particular $DUT use
|
|
test_that --args="module=GtsMediaTestCases test=com.google.android.media.gts.MediaCodecStressTest#testDecodeDecodeCompositeDisplay1080p" $DUT cheets_GTS.tradefed-run-test
|
|
|
|
2) To run against a lab pool use
|
|
run_suite.py --board=eve --build=$TRYJOB_BUILD --suite_name arc-gts-test --pool cts --no_wait True --priority CQ --timeout_mins 6160 --retry False --num 1 --suite_min_duts 1 --test_args="{'module' : 'GtsMediaTestCases', 'test' : 'com.google.android.media.gts.MediaCodecStressTest#testDecodeDecodeCompositeDisplay1080p'}"
|
|
"""
|
|
|
|
def usage_error():
|
|
logging.info('Example usage:')
|
|
logging.info(usage)
|
|
raise SystemExit
|
|
|
|
pp = pprint.PrettyPrinter()
|
|
logging.info(
|
|
'***********************************************************************')
|
|
|
|
# Define the variables that we are going to use and set sensible defaults.
|
|
gts_module = ''
|
|
gts_retry = 5
|
|
gts_revision = '8-R2-P-6955212' # TODO(ihf): Set this default value from generator.
|
|
gts_test = ''
|
|
gts_timeout = 600
|
|
|
|
# Pull parameters either from run_suite or test_that.
|
|
if 'args_dict' in vars():
|
|
logging.info('Raw test options from run_suite:')
|
|
pp.pprint(args_dict)
|
|
elif args:
|
|
logging.info('Raw test options from test_that:')
|
|
pp.pprint(args)
|
|
args_dict = utils.args_to_dict(args)
|
|
else:
|
|
usage_error()
|
|
|
|
gts_module = args_dict.get('module', gts_module)
|
|
gts_revision = args_dict.get('revision', gts_revision)
|
|
gts_test = args_dict.get('test', gts_test)
|
|
gts_timeout = float(args_dict.get('timeout', gts_timeout))
|
|
gts_retry = int(args_dict.get('max_retry', gts_retry))
|
|
|
|
# Basic checks for option validity.
|
|
logging.error('Running module %s with test %s on revision %s',
|
|
gts_module, gts_test, gts_revision)
|
|
if not gts_module or not gts_revision or not gts_test:
|
|
usage_error()
|
|
|
|
# And we are getting ready for tradefed.
|
|
uri = ('gs://chromeos-arc-images/cts/bundle/android-gts-' + gts_revision + '.zip')
|
|
run_template = ['run', 'commandAndExit', 'gts',
|
|
'--include-filter', gts_module + ' ' + gts_test,
|
|
'--ignore-business-logic-failure']
|
|
retry_template = ['run', 'commandAndExit', 'retry',
|
|
'--retry', '{session_id}']
|
|
# Unfortunately super long test names can cause problems. Try to get the
|
|
# rightmost element and use that as a simplified name.
|
|
# TODO(ihf): fix pipeline so it works with super long names.
|
|
simplified_test = gts_test
|
|
if '#' in gts_test:
|
|
simplified_test = gts_test.split('#')[-1]
|
|
elif '.' in gts_test:
|
|
simplified_test = gts_test.split('.')[-1]
|
|
tag = 'tradefed-run-test.%s.%s' % (gts_module, simplified_test)
|
|
|
|
# The usual testing stanza. We are suppressing some DEPENDENCIES on purpose.
|
|
AUTHOR = 'ARC++ Team'
|
|
NAME = 'cheets_GTS.tradefed-run-test'
|
|
ATTRIBUTES = ''
|
|
DEPENDENCIES = 'arc'
|
|
JOB_RETRIES = 0
|
|
TEST_TYPE = 'server'
|
|
TIME = 'LONG'
|
|
MAX_RESULT_SIZE_KB = 256000
|
|
DOC = ('Run a test of the Android Google Test Suite (GTS) in the ARC++ '
|
|
'container.')
|
|
|
|
# And launch.
|
|
def run_TS(machine):
|
|
host_list = [hosts.create_host(machine)]
|
|
job.run_test(
|
|
'cheets_GTS',
|
|
hosts=host_list,
|
|
iterations=1,
|
|
max_retry=gts_retry,
|
|
needs_push_media=True,
|
|
tag=tag,
|
|
test_name=NAME,
|
|
authkey='gs://chromeos-arc-images/cts/bundle/gts-arc.json',
|
|
run_template=run_template,
|
|
retry_template=retry_template,
|
|
target_module=None,
|
|
target_plan=None,
|
|
uri=uri,
|
|
login_precondition_commands=[
|
|
'lsblk -do NAME,RM | sed -n s/1$//p | xargs -n1 eject'
|
|
],
|
|
precondition_commands=[
|
|
'echo $(({0} % 2 * 2 + 1)) > /proc/sys/kernel/perf_event_paranoid',
|
|
'modprobe configs'
|
|
],
|
|
timeout=gts_timeout)
|
|
|
|
parallel_simple(run_TS, machines)
|