blob: e0146cdbc4fe5dae7c21035f3a759520ac60d3b6 [file] [log] [blame]
# Copyright 2013 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
DEPS = [
'adb',
'bisect_tester',
'depot_tools/bot_update',
'chromium',
'chromium_android',
'chromium_swarming',
'chromium_tests',
'commit_position',
'file',
'isolate',
'gsutil',
'recipe_engine/json',
'recipe_engine/path',
'recipe_engine/platform',
'recipe_engine/properties',
'recipe_engine/python',
'recipe_engine/raw_io',
'recipe_engine/step',
'recipe_engine/tempfile',
'swarming',
'test_results',
'test_utils',
]
from recipe_engine import config_types
def ignore_undumpable(obj): # pragma: no cover
try:
return config_types.json_fixup(obj)
except TypeError:
return None
def RunSteps(api):
# build/tests/masters_recipes_tests.py needs to manipulate the BUILDERS
# dict, so we provide an API to dump it here.
if api.properties.get('dump_builders'): # pragma: no cover
api.file.write(
'Dump BUILDERS dict', api.properties['dump_builders'],
api.json.dumps(api.chromium_tests.builders, default=ignore_undumpable))
return
api.chromium_tests.main_waterfall_steps(api)
def _sanitize_nonalpha(text):
return ''.join(c if c.isalnum() else '_' for c in text)
def GenTests(api):
for mastername, master_config in api.chromium_tests.builders.iteritems():
# parent builder name -> list of triggered builders.
triggered_by_parent = {}
for buildername, bot_config in master_config['builders'].iteritems():
parent = bot_config.get('parent_buildername')
if parent:
triggered_by_parent.setdefault(parent, []).append(buildername)
for buildername, bot_config in master_config['builders'].iteritems():
bot_type = bot_config.get('bot_type', 'builder_tester')
if bot_type in ['builder', 'builder_tester']:
assert bot_config.get('parent_buildername') is None, (
'Unexpected parent_buildername for builder %r on master %r.' %
(buildername, mastername))
properties = {
'mastername': mastername,
'buildername': buildername,
'parent_buildername': bot_config.get('parent_buildername'),
'build_data_dir': api.path['root'].join('build_data_dir'),
'path_config': 'kitchen',
}
if mastername == 'chromium.webkit':
properties['gs_acl'] = 'public-read'
if buildername == 'Android Find Annotated Test':
properties['current_time'] = '20160101T000000'
test = (
api.test('full_%s_%s' % (_sanitize_nonalpha(mastername),
_sanitize_nonalpha(buildername))) +
api.properties.generic(**properties) +
api.platform(bot_config['testing']['platform'],
bot_config.get(
'chromium_config_kwargs', {}).get('TARGET_BITS', 64))
)
if bot_config.get('parent_buildername'):
test += api.properties(parent_got_revision='1111111')
test += api.properties(
parent_build_archive_url='gs://test-domain/test-archive.zip')
if mastername == 'client.v8.fyi':
test += api.properties(revision='22135')
if bot_config.get('enable_swarming'):
if bot_type == 'tester':
test += api.properties(swarm_hashes={
'browser_tests': 'ffffffffffffffffffffffffffffffffffffffff',
})
builders_with_tests = []
if bot_type == 'builder':
builders_with_tests = triggered_by_parent.get(buildername, [])
else:
builders_with_tests = [buildername]
test_spec_name = bot_config.get('testing', {}).get(
'test_spec_file', mastername + '.json')
test += api.override_step_data(
'read test spec (%s)' % test_spec_name,
api.json.output({
b: {
'gtest_tests': [
{
'test': 'browser_tests',
'swarming': {'can_use_on_swarming_builders': True},
},
],
} for b in builders_with_tests
})
)
yield test
yield (
api.test('dynamic_gtest') +
api.properties.generic(mastername='chromium.linux',
buildername='Linux Tests',
parent_buildername='Linux Builder') +
api.platform('linux', 64) +
api.override_step_data(
'read test spec (chromium.linux.json)',
api.json.output({
'Linux Tests': {
'gtest_tests': [
'base_unittests',
{'test': 'browser_tests', 'shard_index': 0, 'total_shards': 2},
{
'test': 'content_unittests',
'name': 'renamed_content_unittests',
'use_xvfb': False,
},
],
},
})
)
)
yield (
api.test('dynamic_swarmed_gtest') +
api.properties.generic(mastername='chromium.linux',
buildername='Linux Builder') +
api.platform('linux', 64) +
api.override_step_data(
'read test spec (chromium.linux.json)',
api.json.output({
'Linux Tests': {
'gtest_tests': [
{'test': 'browser_tests',
'swarming': {'can_use_on_swarming_builders': True}},
],
},
})
)
)
yield (
api.test('dynamic_swarmed_serialized_gtests') +
# The chromium.gpu.fyi bots use serialize_tests in order to reduce
# load on the GPU bots in the Swarming pool.
api.properties.generic(mastername='chromium.gpu.fyi',
buildername='Linux Release (NVIDIA)',
parent_buildername='GPU Linux Builder') +
api.platform('linux', 64) +
api.properties(swarm_hashes={
'base_unittests': 'eeeeeeeeeeeeeeeeeeeeeeeeeeeeee',
'browser_tests': 'ffffffffffffffffffffffffffffff',
}) +
api.override_step_data(
'read test spec (chromium.gpu.fyi.json)',
api.json.output({
'Linux Release (NVIDIA)': {
'gtest_tests': [
{
'test': 'base_unittests',
'swarming': {
'can_use_on_swarming_builders': True,
'dimension_sets': [
{
'gpu': '10de:104a', # NVIDIA GeForce GT 610
'os': 'Linux',
},
],
},
},
{
'test': 'browser_tests',
'swarming': {
'can_use_on_swarming_builders': True,
'dimension_sets': [
{
'gpu': '10de:104a', # NVIDIA GeForce GT 610
'os': 'Linux',
},
],
},
},
],
},
})
) +
# Make one of the tests fail to improve code coverage.
api.override_step_data('base_unittests on NVIDIA GPU on Linux on Linux',
api.test_utils.canned_gtest_output(False))
)
yield (
api.test('dynamic_swarmed_gtest_mac_gpu') +
api.properties.generic(mastername='chromium.mac',
buildername='Mac10.9 Tests',
parent_buildername='Mac Builder') +
api.properties(swarm_hashes={
'gl_tests': 'eeeeeeeeeeeeeeeeeeeeeeeeeeeeee',
}) +
api.platform('mac', 64) +
api.override_step_data(
'read test spec (chromium.mac.json)',
api.json.output({
'Mac10.9 Tests': {
'gtest_tests': [
{
'test': 'gl_tests',
'swarming': {
'can_use_on_swarming_builders': True,
'dimension_sets': [
{
'gpu': '8086:0a2e', # Intel Iris
'hidpi': '0',
'os': 'Mac-10.10',
}, {
'gpu': '10de:0fe9', # NVIDIA GeForce GT750M
'hidpi': '1',
'os': 'Mac-10.9',
},
],
},
},
],
},
})
)
)
yield (
api.test('dynamic_swarmed_gtest_override_compile_targets') +
api.properties.generic(mastername='chromium.linux',
buildername='Linux Builder') +
api.platform('linux', 64) +
api.properties(swarm_hashes={
'tab_capture_end2end_tests': 'eeeeeeeeeeeeeeeeeeeeeeeeeeeeee',
}) +
api.override_step_data(
'read test spec (chromium.linux.json)',
api.json.output({
'Linux Tests': {
'gtest_tests': [
{
'test': 'tab_capture_end2end_tests',
'override_compile_targets': [
'tab_capture_end2end_tests_run'
],
'swarming': {
'can_use_on_swarming_builders': True,
},
},
],
},
})
)
)
yield (
api.test('build_dynamic_isolated_script_test') +
api.properties.generic(mastername='chromium.linux',
buildername='Linux Builder') +
api.platform('linux', 64) +
api.override_step_data(
'read test spec (chromium.linux.json)',
api.json.output({
'Linux Tests': {
'isolated_scripts': [
{
'isolate_name': 'telemetry_gpu_unittests',
'name': 'telemetry_gpu_unittests',
},
],
},
})
)
)
yield (
api.test('dynamic_isolated_script_test') +
api.properties.generic(mastername='chromium.linux',
buildername='Linux Tests',
parent_buildername='Linux Builder') +
api.properties(swarm_hashes={
'telemetry_gpu_unittests': 'eeeeeeeeeeeeeeeeeeeeeeeeeeeeee',
}) +
api.platform('linux', 64) +
api.override_step_data(
'read test spec (chromium.linux.json)',
api.json.output({
'Linux Tests': {
'isolated_scripts': [
{
'isolate_name': 'telemetry_gpu_unittests',
'name': 'telemetry_gpu_unittests',
'args': ['--correct-common-arg'],
'precommit_args': [
'--SHOULD-NOT-BE-PRESENT-DURING-THE-RUN'
],
'non_precommit_args': [
'--these-args-should-be-present',
'--test-machine-name=\"${buildername}\"',
'--build-revision=\"${got_revision}\"',
],
},
],
},
})
)
)
yield (
api.test('dynamic_isolated_script_test_harness_failure_zero_retcode') +
api.properties.generic(mastername='chromium.linux',
buildername='Linux Tests',
parent_buildername='Linux Builder') +
api.properties(swarm_hashes={
'telemetry_gpu_unittests': 'eeeeeeeeeeeeeeeeeeeeeeeeeeeeee',
}) +
api.platform('linux', 64) +
api.override_step_data(
'read test spec (chromium.linux.json)',
api.json.output({
'Linux Tests': {
'isolated_scripts': [
{
'isolate_name': 'telemetry_gpu_unittests',
'name': 'telemetry_gpu_unittests',
},
],
},
})
) +
api.override_step_data('telemetry_gpu_unittests',
api.test_utils.canned_isolated_script_output(
passing=False, is_win=False, swarming=False,
isolated_script_passing=False, valid=False),
retcode=0)
)
yield (
api.test('build_dynamic_isolated_script_test_compile_target_overriden') +
api.properties.generic(mastername='chromium.linux',
buildername='Linux Builder') +
api.platform('linux', 64) +
api.override_step_data(
'read test spec (chromium.linux.json)',
api.json.output({
'Linux Tests': {
'isolated_scripts': [
{
'isolate_name': 'telemetry_gpu_unittests',
'name': 'telemetry_gpu_unittests',
'override_compile_targets': [
'abc',
'telemetry_gpu_unittests_run'
],
},
],
},
})
)
)
yield (
api.test('build_dynamic_swarmed_isolated_script_test') +
api.properties.generic(mastername='chromium.linux',
buildername='Linux Builder') +
api.platform('linux', 64) +
api.override_step_data(
'read test spec (chromium.linux.json)',
api.json.output({
'Linux Tests': {
'isolated_scripts': [
{
'isolate_name': 'telemetry_gpu_unittests',
'name': 'telemetry_gpu_unittests',
'swarming': {'can_use_on_swarming_builders': True},
},
],
},
})
)
)
yield (
api.test(
'build_dynamic_swarmed_isolated_script_test_compile_target_overidden') +
api.properties.generic(mastername='chromium.linux',
buildername='Linux Builder') +
api.platform('linux', 64) +
api.override_step_data(
'read test spec (chromium.linux.json)',
api.json.output({
'Linux Tests': {
'isolated_scripts': [
{
'isolate_name': 'telemetry_gpu_unittests',
'name': 'telemetry_gpu_unittests',
'swarming': {'can_use_on_swarming_builders': True},
'override_compile_targets': [
'telemetry_gpu_unittests_run',
'a'
],
},
],
},
})
)
)
yield (
api.test('dynamic_swarmed_passed_isolated_script_test') +
api.properties.generic(mastername='chromium.linux',
buildername='Linux Tests',
parent_buildername='Linux Builder') +
api.properties(swarm_hashes={
'telemetry_gpu_unittests': 'eeeeeeeeeeeeeeeeeeeeeeeeeeeeee',
}) +
api.platform('linux', 64) +
api.override_step_data(
'read test spec (chromium.linux.json)',
api.json.output({
'Linux Tests': {
'isolated_scripts': [
{
'isolate_name': 'telemetry_gpu_unittests',
'name': 'telemetry_gpu_unittests',
'swarming': {'can_use_on_swarming_builders': True},
},
],
},
})
)
)
yield (
api.test('dynamic_swarmed_sharded_passed_isolated_script_test') +
api.properties.generic(mastername='chromium.linux',
buildername='Linux Tests',
parent_buildername='Linux Builder',
got_revision_cp='refs/heads/master@{#291141}',
buildnumber='1234',
version='v23523',
git_revision='asdfawe2342',
got_webrtc_revision='asdfas',
got_v8_revision='asdfadsfa4e3w') +
api.properties(
swarm_hashes={
'telemetry_gpu_unittests': 'eeeeeeeeeeeeeeeeeeeeeeeeeeeeee'
}, **{'perf-id': 'testid', 'results-url': 'http://test-results-url'}) +
api.platform('linux', 64) +
api.override_step_data(
'read test spec (chromium.linux.json)',
api.json.output({
'Linux Tests': {
'isolated_scripts': [
{
'isolate_name': 'telemetry_gpu_unittests',
'name': 'telemetry_gpu_unittests',
'swarming': {
'can_use_on_swarming_builders': True,
'shards': 2,
},
},
],
},
})
) +
api.override_step_data('telemetry_gpu_unittests on Ubuntu-12.04',
api.test_utils.canned_isolated_script_output(
passing=True, is_win=False, swarming=True,
shards=2, isolated_script_passing=True, valid=True,
use_json_test_format=True, output_chartjson=True),
retcode=0)
)
yield (
api.test('dynamic_swarmed_sharded_invalid_format_isolated_script_test') +
api.properties.generic(mastername='chromium.linux',
buildername='Linux Tests',
parent_buildername='Linux Builder') +
api.properties(swarm_hashes={
'telemetry_gpu_unittests': 'eeeeeeeeeeeeeeeeeeeeeeeeeeeeee',
}) +
api.platform('linux', 64) +
api.override_step_data(
'read test spec (chromium.linux.json)',
api.json.output({
'Linux Tests': {
'isolated_scripts': [
{
'isolate_name': 'telemetry_gpu_unittests',
'name': 'telemetry_gpu_unittests',
'swarming': {
'can_use_on_swarming_builders': True,
'shards': 3,
},
},
],
},
})
) +
api.override_step_data('telemetry_gpu_unittests on Ubuntu-12.04',
api.test_utils.canned_isolated_script_output(
passing=True, is_win=False, swarming=True,
shards=3, isolated_script_passing=True, valid=False,
use_json_test_format=True, output_chartjson=True),
retcode=0)
)
yield (
api.test('dynamic_swarmed_sharded_failed_isolated_script_test') +
api.properties.generic(mastername='chromium.linux',
buildername='Linux Tests',
parent_buildername='Linux Builder') +
api.properties(swarm_hashes={
'telemetry_gpu_unittests': 'eeeeeeeeeeeeeeeeeeeeeeeeeeeeee',
}) +
api.platform('linux', 64) +
api.override_step_data(
'read test spec (chromium.linux.json)',
api.json.output({
'Linux Tests': {
'isolated_scripts': [
{
'isolate_name': 'telemetry_gpu_unittests',
'name': 'telemetry_gpu_unittests',
'swarming': {
'can_use_on_swarming_builders': True,
'shards': 2,
},
},
],
},
})
) +
api.override_step_data('telemetry_gpu_unittests on Ubuntu-12.04',
api.test_utils.canned_isolated_script_output(
passing=False, is_win=False, swarming=True,
shards=2, isolated_script_passing=False, valid=True,
use_json_test_format=True), retcode=1)
)
yield (
api.test('dynamic_swarmed_sharded_isolated_script_test_missing_shard') +
api.properties.generic(mastername='chromium.linux',
buildername='Linux Tests',
parent_buildername='Linux Builder') +
api.properties(swarm_hashes={
'telemetry_gpu_unittests': 'eeeeeeeeeeeeeeeeeeeeeeeeeeeeee',
}) +
api.platform('linux', 64) +
api.override_step_data(
'read test spec (chromium.linux.json)',
api.json.output({
'Linux Tests': {
'isolated_scripts': [
{
'isolate_name': 'telemetry_gpu_unittests',
'name': 'telemetry_gpu_unittests',
'swarming': {
'can_use_on_swarming_builders': True,
'shards': 2,
},
},
],
},
})
) +
api.override_step_data(
'telemetry_gpu_unittests on Ubuntu-12.04',
api.test_utils.canned_isolated_script_output(
passing=True, is_win=False, swarming=True,
shards=2, isolated_script_passing=True, valid=True,
missing_shards=[1]),
retcode=1)
)
yield (
api.test('dynamic_swarmed_sharded_isolated_script_test_harness_failure') +
api.properties.generic(mastername='chromium.linux',
buildername='Linux Tests',
parent_buildername='Linux Builder') +
api.properties(swarm_hashes={
'telemetry_gpu_unittests': 'eeeeeeeeeeeeeeeeeeeeeeeeeeeeee',
}) +
api.platform('linux', 64) +
api.override_step_data(
'read test spec (chromium.linux.json)',
api.json.output({
'Linux Tests': {
'isolated_scripts': [
{
'isolate_name': 'telemetry_gpu_unittests',
'name': 'telemetry_gpu_unittests',
'swarming': {
'can_use_on_swarming_builders': True,
'shards': 2,
},
},
],
},
})
) +
api.override_step_data(
'telemetry_gpu_unittests on Ubuntu-12.04',
api.test_utils.canned_isolated_script_output(
passing=True, is_win=False, swarming=True,
shards=2, isolated_script_passing=True, valid=True,
empty_shards=[1]),
retcode=1)
)
yield (
api.test(
'dynamic_swarmed_sharded_isolated_chartjson_test_harness_failure') +
api.properties.generic(mastername='chromium.linux',
buildername='Linux Tests',
parent_buildername='Linux Builder') +
api.properties(swarm_hashes={
'telemetry_gpu_unittests': 'eeeeeeeeeeeeeeeeeeeeeeeeeeeeee',
}) +
api.platform('linux', 64) +
api.override_step_data(
'read test spec (chromium.linux.json)',
api.json.output({
'Linux Tests': {
'isolated_scripts': [
{
'isolate_name': 'telemetry_gpu_unittests',
'name': 'telemetry_gpu_unittests',
'swarming': {
'can_use_on_swarming_builders': True,
'shards': 2,
},
},
],
},
})
) +
api.override_step_data(
'telemetry_gpu_unittests on Ubuntu-12.04',
api.test_utils.canned_isolated_script_output(
passing=True, is_win=False, swarming=True,
shards=4, isolated_script_passing=True, valid=True,
empty_shards=[1], output_chartjson=True),
retcode=1)
)
yield (
api.test('dynamic_swarmed_sharded_isolated_chartjson_test_disabled') +
api.properties.generic(mastername='chromium.linux',
buildername='Linux Tests',
parent_buildername='Linux Builder',
got_revision_cp='refs/heads/master@{#291141}') +
api.properties(swarm_hashes={
'telemetry_gpu_unittests': 'eeeeeeeeeeeeeeeeeeeeeeeeeeeeee',
}) +
api.platform('linux', 64) +
api.override_step_data(
'read test spec (chromium.linux.json)',
api.json.output({
'Linux Tests': {
'isolated_scripts': [
{
'isolate_name': 'telemetry_gpu_unittests',
'name': 'telemetry_gpu_unittests',
'swarming': {
'can_use_on_swarming_builders': True,
'shards': 2,
},
},
],
},
})
) +
api.override_step_data('telemetry_gpu_unittests on Ubuntu-12.04',
api.test_utils.canned_isolated_script_output(
passing=True, is_win=False, swarming=True,
shards=2, isolated_script_passing=True, valid=True,
output_chartjson=True, benchmark_enabled=False),
retcode=0)
)
yield (
api.test('dynamic_swarmed_sharded_isolated_chartjson_test_missing_shard') +
api.properties.generic(mastername='chromium.linux',
buildername='Linux Tests',
parent_buildername='Linux Builder',
got_revision_cp='refs/heads/master@{#291141}'
) +
api.properties(swarm_hashes={
'telemetry_gpu_unittests': 'eeeeeeeeeeeeeeeeeeeeeeeeeeeeee',
}) +
api.platform('linux', 64) +
api.override_step_data(
'read test spec (chromium.linux.json)',
api.json.output({
'Linux Tests': {
'isolated_scripts': [
{
'isolate_name': 'telemetry_gpu_unittests',
'name': 'telemetry_gpu_unittests',
'swarming': {
'can_use_on_swarming_builders': True,
'shards': 2,
},
},
],
},
})
) +
api.override_step_data(
'telemetry_gpu_unittests on Ubuntu-12.04',
api.test_utils.canned_isolated_script_output(
passing=True, is_win=False, swarming=True,
shards=2, isolated_script_passing=True, valid=True,
missing_shards=[1], output_chartjson=True),
retcode=1)
)
yield (
api.test('dynamic_swarmed_isolated_script_test_linux_gpu') +
api.properties.generic(mastername='chromium.linux',
buildername='Linux Tests',
parent_buildername='Linux Builder') +
api.properties(swarm_hashes={
'telemetry_gpu_unittests': 'eeeeeeeeeeeeeeeeeeeeeeeeeeeeee',
}) +
api.platform('linux', 64) +
api.override_step_data(
'read test spec (chromium.linux.json)',
api.json.output({
'Linux Tests': {
'isolated_scripts': [
{
'isolate_name': 'telemetry_gpu_unittests',
'name': 'telemetry_gpu_unittests',
'swarming': {
'can_use_on_swarming_builders': True,
'dimension_sets': [
{
'gpu': '10de:104a', # NVIDIA GeForce GT 610
'os': 'Linux',
},
],
},
},
],
},
})
)
)
yield (
api.test('dynamic_swarmed_isolated_script_test_mac_gpu') +
api.properties.generic(mastername='chromium.mac',
buildername='Mac10.9 Tests',
parent_buildername='Mac Builder') +
api.properties(swarm_hashes={
'telemetry_gpu_unittests': 'eeeeeeeeeeeeeeeeeeeeeeeeeeeeee',
}) +
api.platform('mac', 64) +
api.override_step_data(
'read test spec (chromium.mac.json)',
api.json.output({
'Mac10.9 Tests': {
'isolated_scripts': [
{
'isolate_name': 'telemetry_gpu_unittests',
'name': 'telemetry_gpu_unittests',
'swarming': {
'can_use_on_swarming_builders': True,
'dimension_sets': [
{
'gpu': '8086:0a2e', # Intel Iris
'hidpi': '0',
'os': 'Mac-10.10',
}, {
'gpu': '10de:0fe9', # NVIDIA GeForce GT750M
'hidpi': '1',
'os': 'Mac-10.9',
},
],
},
},
],
},
})
)
)
yield (
api.test('dynamic_swarmed_isolated_script_test_win_gpu') +
api.properties.generic(mastername='chromium.win',
buildername='Win7 Tests (1)',
parent_buildername='Win Builder') +
api.properties(swarm_hashes={
'telemetry_gpu_unittests': 'eeeeeeeeeeeeeeeeeeeeeeeeeeeeee',
}) +
api.platform('win', 64) +
api.override_step_data(
'read test spec (chromium.win.json)',
api.json.output({
'Win7 Tests (1)': {
'isolated_scripts': [
{
'isolate_name': 'telemetry_gpu_unittests',
'name': 'telemetry_gpu_unittests',
'swarming': {
'can_use_on_swarming_builders': True,
'dimension_sets': [
{
# NVIDIA GeForce GT 610
'gpu': '10de:104a',
'os': 'Windows',
}, {
# AMD Radeon HD 6450
'gpu': '1002:6779',
'os': 'Windows',
}, {
# VMWare SVGA II Adapter
'gpu': '15ad:0405',
'os': 'Windows',
},
],
},
},
],
},
})
)
)
yield (
api.test('dynamic_swarmed_isolated_script_test_win_non_gpu') +
api.properties.generic(mastername='chromium.win',
buildername='Win7 Tests (1)',
parent_buildername='Win Builder') +
api.properties(swarm_hashes={
'telemetry_gpu_unittests': 'eeeeeeeeeeeeeeeeeeeeeeeeeeeeee',
}) +
api.platform('win', 64) +
api.override_step_data(
'read test spec (chromium.win.json)',
api.json.output({
'Win7 Tests (1)': {
'isolated_scripts': [
{
'isolate_name': 'telemetry_gpu_unittests',
'name': 'telemetry_gpu_unittests',
'swarming': {
'can_use_on_swarming_builders': True,
'dimension_sets': [
{
'os': 'Windows',
},
],
},
},
],
},
})
)
)
yield (
api.test('dynamic_swarmed_failed_isolated_script_test') +
api.properties.generic(mastername='chromium.linux',
buildername='Linux Tests',
parent_buildername='Linux Builder') +
api.properties(swarm_hashes={
'telemetry_gpu_unittests': 'eeeeeeeeeeeeeeeeeeeeeeeeeeeeee',
}) +
api.platform('linux', 64) +
api.override_step_data(
'read test spec (chromium.linux.json)',
api.json.output({
'Linux Tests': {
'isolated_scripts': [
{
'isolate_name': 'telemetry_gpu_unittests',
'name': 'telemetry_gpu_unittests',
'swarming': {'can_use_on_swarming_builders': True},
},
],
},
})
) +
api.override_step_data('telemetry_gpu_unittests on Ubuntu-12.04',
api.test_utils.canned_isolated_script_output(
passing=True, is_win=False, swarming=True,
isolated_script_passing=False, valid=True),
retcode=255)
)
yield (
api.test('dynamic_swarmed_passed_with_bad_retcode_isolated_script_test') +
api.properties.generic(mastername='chromium.linux',
buildername='Linux Tests',
parent_buildername='Linux Builder') +
api.properties(swarm_hashes={
'telemetry_gpu_unittests': 'eeeeeeeeeeeeeeeeeeeeeeeeeeeeee',
}) +
api.platform('linux', 64) +
api.override_step_data(
'read test spec (chromium.linux.json)',
api.json.output({
'Linux Tests': {
'isolated_scripts': [
{
'isolate_name': 'telemetry_gpu_unittests',
'name': 'telemetry_gpu_unittests',
'swarming': {'can_use_on_swarming_builders': True},
},
],
},
})
) +
api.override_step_data('telemetry_gpu_unittests on Ubuntu-12.04',
api.test_utils.canned_isolated_script_output(
passing=True, is_win=False, swarming=True,
isolated_script_passing=True, valid=True),
retcode=255)
)
yield (
api.test(
'dynamic_swarmed_passed_isolated_script_test_with_swarming_failure') +
api.properties.generic(mastername='chromium.linux',
buildername='Linux Tests',
parent_buildername='Linux Builder') +
api.properties(swarm_hashes={
'telemetry_gpu_unittests': 'eeeeeeeeeeeeeeeeeeeeeeeeeeeeee',
}) +
api.platform('linux', 64) +
api.override_step_data(
'read test spec (chromium.linux.json)',
api.json.output({
'Linux Tests': {
'isolated_scripts': [
{
'isolate_name': 'telemetry_gpu_unittests',
'name': 'telemetry_gpu_unittests',
'swarming': {'can_use_on_swarming_builders': True},
},
],
},
})
) +
api.override_step_data('telemetry_gpu_unittests on Ubuntu-12.04',
api.test_utils.canned_isolated_script_output(
passing=False, is_win=False, swarming=True,
swarming_internal_failure=True, isolated_script_passing=True,
valid=True),
retcode=255)
)
yield (
api.test('dynamic_instrumentation_test') +
api.properties.generic(mastername='chromium.linux',
buildername='Android Tests',
parent_buildername='Android Builder') +
api.override_step_data(
'read test spec (chromium.linux.json)',
api.json.output({
'Android Tests': {
'instrumentation_tests': [
{
'test': 'ChromePublicTest',
'test_apk': 'one_apk',
'apk_under_test': 'second_apk',
'additional_apks': [
'another_apk',
'omg_so_many_apks',
]
}
],
},
})
)
)
yield (
api.test('dynamic_instrumentation_nodefault_build') +
api.properties.generic(mastername='chromium.linux',
buildername='Android Builder') +
api.override_step_data(
'read test spec (chromium.linux.json)',
api.json.output({
'Android Tests': {
'instrumentation_tests': [
{
'test': 'blimp_test_apk',
}
],
},
})
)
)
yield (
api.test('dynamic_instrumentation_nodefault_test') +
api.properties.generic(mastername='chromium.linux',
buildername='Android Tests',
parent_buildername='Android Builder') +
api.override_step_data(
'read test spec (chromium.linux.json)',
api.json.output({
'Android Tests': {
'instrumentation_tests': [
{
'test': 'blimp_test_apk',
}
],
},
})
)
)
yield (
api.test('dynamic_swarmed_instrumentation_test') +
api.properties.generic(mastername='chromium.linux',
buildername='Android Tests',
parent_buildername='Android Builder') +
api.override_step_data(
'read test spec (chromium.linux.json)',
api.json.output({
'Android Tests': {
'instrumentation_tests': [
{
'test': 'chrome_public_test',
'swarming': {
'can_use_on_swarming_builders': True,
'dimension_sets': [
{
'build.id': 'KTU84P',
'product.board': 'hammerhead',
},
],
},
}
],
},
})
)
)
yield (
api.test('dynamic_swarmed_gn_instrumentation_test') +
api.properties.generic(mastername='chromium.linux',
buildername='Android Builder') +
api.override_step_data(
'read test spec (chromium.linux.json)',
api.json.output({
'Android Tests': {
'gtest_tests': [
{
'test': 'chrome_public_test_apk',
'swarming': {
'can_use_on_swarming_builders': True,
'dimension_sets': [
{
'build.id': 'KTU84P',
'product.board': 'hammerhead',
},
],
'cipd_packages': [
{
'location': '{$HOME}/logdog',
'cipd_package': 'infra/logdog/linux-386',
'revision': 'git_revision:deadbeef',
},
],
},
'override_compile_targets': [
'chrome_public_test_apk'
],
'override_isolate_target': 'chrome_public_test_apk',
}
],
},
})
)
)
yield (
api.test('dynamic_instrumentation_test_with_timeout_scale') +
api.properties.generic(mastername='chromium.android',
buildername='Lollipop Low-end Tester',
parent_buildername='Android arm Builder (dbg)') +
api.override_step_data(
'read test spec (chromium.android.json)',
api.json.output({
'Lollipop Low-end Tester': {
'instrumentation_tests': [
{
'test': 'ChromePublicTest',
'timeout_scale': 2,
}
],
},
})
)
)
yield (
api.test('dynamic_junit_test') +
api.properties.generic(mastername='chromium.linux',
buildername='Android Tests',
parent_buildername='Android Builder') +
api.override_step_data(
'read test spec (chromium.linux.json)',
api.json.output({
'Android Tests': {
'junit_tests': [
{
'test': 'base_junit_tests',
},
],
},
})
)
)
yield (
api.test('dynamic_gtest_on_builder') +
api.properties.generic(mastername='chromium.linux',
buildername='Linux Builder') +
api.platform('linux', 64) +
api.override_step_data(
'read test spec (chromium.linux.json)',
api.json.output({
'Linux Tests': {
'gtest_tests': [
'base_unittests',
{
'test': 'browser_tests',
'shard_index': 0,
'total_shards': 2
},
],
},
})
)
)
yield (
api.test('dynamic_gtest_win') +
api.properties.generic(mastername='chromium.win',
buildername='Win7 Tests (1)',
parent_buildername='Win Builder') +
api.platform('win', 64) +
api.override_step_data(
'read test spec (chromium.win.json)',
api.json.output({
'Win7 Tests (1)': {
'gtest_tests': [
'aura_unittests',
{
'test': 'browser_tests',
'shard_index': 0,
'total_shards': 2
},
],
},
})
)
)
yield (
api.test('dynamic_gtest_android') +
api.properties.generic(mastername='chromium.android',
buildername='Lollipop Phone Tester',
parent_buildername='Android arm Builder (dbg)') +
api.override_step_data(
'read test spec (chromium.android.json)',
api.json.output({
'Lollipop Phone Tester': {
'gtest_tests': [
{
'test': 'base_unittests',
}
],
},
}))
)
yield (
api.test('dynamic_gtest_asan_android') +
api.properties.generic(mastername='chromium.fyi',
buildername='ClangToTAndroidASan') +
api.override_step_data(
'read test spec (chromium.fyi.json)',
api.json.output({
'ClangToTAndroidASan': {
'gtest_tests': [
{
'args': ['--tool=asan'],
'test': 'gfx_unittests',
},
]
}
}))
)
# Tests switching on asan and swiching off lsan for sandbox tester.
yield (
api.test('dynamic_gtest_memory_asan_no_lsan') +
api.properties.generic(mastername='chromium.memory',
buildername='Linux ASan Tests (sandboxed)',
parent_buildername='Linux ASan LSan Builder') +
api.platform('linux', 64) +
api.override_step_data(
'read test spec (chromium.memory.json)',
api.json.output({
'Linux ASan Tests (sandboxed)': {
'gtest_tests': [
'browser_tests',
],
},
})
)
)
# Tests that the memory builder is using the correct compile targets.
yield (
api.test('dynamic_gtest_memory_builder') +
api.properties.generic(mastername='chromium.memory',
buildername='Linux ASan LSan Builder',
revision='123456') +
api.platform('linux', 64) +
# The builder should build 'browser_tests', because there exists a child
# tester that uses that test.
api.override_step_data(
'read test spec (chromium.memory.json)',
api.json.output({
'Linux ASan Tests (sandboxed)': {
'gtest_tests': [
'browser_tests',
],
},
})
)
)
# Tests that the memory mac tester is using the correct test flags.
yield (
api.test('dynamic_gtest_memory_mac64') +
api.properties.generic(
mastername='chromium.memory',
buildername='Mac ASan 64 Tests (1)',
parent_buildername='Mac ASan 64 Builder') +
api.platform('mac', 64) +
api.override_step_data(
'read test spec (chromium.memory.json)',
api.json.output({
'Mac ASan 64 Tests (1)': {
'gtest_tests': [
'browser_tests',
],
},
})
)
)
yield (
api.test('tsan') +
api.properties.generic(mastername='chromium.memory.full',
buildername='Linux TSan Tests',
parent_buildername='Chromium Linux TSan Builder') +
api.platform('linux', 64) +
api.override_step_data(
'read test spec (chromium.memory.full.json)',
api.json.output({
'Linux TSan Tests': {
'compile_targets': ['base_unittests'],
'gtest_tests': ['base_unittests'],
},
})
)
)
yield (
api.test('msan') +
api.properties.generic(mastername='chromium.memory.full',
buildername='Linux MSan Tests',
parent_buildername='Chromium Linux MSan Builder') +
api.platform('linux', 64) +
api.override_step_data(
'read test spec (chromium.memory.full.json)',
api.json.output({
'Linux MSan Tests': {
'compile_targets': ['base_unittests'],
'gtest_tests': ['base_unittests'],
},
})
)
)
yield (
api.test('buildnumber_zero') +
api.properties.generic(mastername='chromium.linux',
buildername='Linux Tests',
parent_buildername='Linux Builder',
buildnumber=0) +
api.platform('linux', 64) +
api.override_step_data(
'read test spec (chromium.linux.json)',
api.json.output({
'Linux Tests': {
'gtest_tests': [
'base_unittests',
{
'test': 'browser_tests',
'shard_index': 0,
'total_shards': 2
},
],
},
})
)
)
yield (
api.test('one_failure_keeps_going_dynamic_tests') +
api.properties.generic(mastername='chromium.linux',
buildername='Linux Tests',
parent_buildername='Linux Builder') +
api.platform('linux', 64) +
api.override_step_data(
'read test spec (chromium.linux.json)',
api.json.output({
'Linux Tests': {
'gtest_tests': [
'base_unittests',
{
'test': 'browser_tests',
'shard_index': 0,
'total_shards': 2
},
],
},
})
) +
api.step_data('base_unittests', retcode=1)
)
yield (
api.test('perf_test_profile_failure') +
api.properties.generic(mastername='chromium.perf',
buildername='Linux Perf (1)',
parent_buildername='Linux Builder',
buildnumber=0) +
api.platform('linux', 64) +
api.override_step_data(
'blink_perf.all.release',
api.json.output([]),
retcode=1)
)
yield (
api.test('dynamic_script_test_with_args') +
api.properties.generic(mastername='chromium.linux',
buildername='Linux Tests',
parent_buildername='Linux Builder') +
api.platform('linux', 64) +
api.override_step_data(
'read test spec (chromium.linux.json)',
api.json.output({
'Linux Tests': {
'scripts': [
{
'name': 'media_perftests',
'script': 'gtest_perf_test.py',
'args': ['media_perftests', '--single-process-tests']
},
],
},
})
)
)
yield (
api.test('dynamic_script_test_failure') +
api.properties.generic(mastername='chromium.linux',
buildername='Linux Tests',
parent_buildername='Linux Builder') +
api.platform('linux', 64) +
api.override_step_data(
'read test spec (chromium.linux.json)',
api.json.output({
'Linux Tests': {
'scripts': [
{
'name': 'test_script_with_broken_tests',
'script': 'test_script_with_broken_tests.py'
}
]
}
})
) +
api.override_step_data('test_script_with_broken_tests',
api.json.output({
'valid': True,
'failures': ['FailSuite.Test1', 'FlakySuite.TestA']
}))
)
yield (
api.test('chromium_webkit_crash') +
api.properties.generic(mastername='chromium.webkit',
buildername='WebKit Linux Precise') +
api.platform('linux', 64) +
api.override_step_data(
'webkit_tests',
api.test_utils.raw_test_output(None, retcode=1))
)
yield (
api.test('chromium_webkit_warnings') +
api.properties.generic(mastername='chromium.webkit',
buildername='WebKit Linux Precise') +
api.platform('linux', 64) +
api.override_step_data(
'webkit_tests',
api.test_utils.canned_test_output(
passing=True, unexpected_flakes=True, retcode=0))
)
yield (
api.test('chromium_webkit_revision_webkit') +
api.properties.generic(mastername='chromium.webkit',
buildername='WebKit Linux Precise',
project='webkit',
revision='191187') +
api.platform('linux', 64)
)
yield (
api.test('chromium_webkit_revision_chromium') +
api.properties.generic(
mastername='chromium.webkit',
buildername='WebKit Linux Precise',
project='chromium',
revision='3edb4989f8f69c968c0df14cb1c26d21dd19bf1f') +
api.platform('linux', 64)
)
yield (
api.test('chromium_webkit_parent_revision_webkit') +
api.properties.generic(
mastername='chromium.webkit',
buildername='WebKit Win7',
project='webkit',
parent_buildername='WebKit Win Builder',
parent_got_revision='7496f63cbefd34b2d791022fbad64a82838a3f3f',
parent_got_webkit_revision='191275',
revision='191275') +
api.platform('win', 32)
)
yield (
api.test('chromium_webkit_parent_revision_chromium') +
api.properties.generic(
mastername='chromium.webkit',
buildername='WebKit Win7',
project='chromium',
parent_buildername='WebKit Win Builder',
parent_got_revision='1e74b372f951d4491f305ec64f6decfcda739e73',
parent_got_webkit_revision='191269',
revision='1e74b372f951d4491f305ec64f6decfcda739e73') +
api.platform('win', 32)
)
yield (
api.test('kitchen_path_config') +
api.properties(
mastername='chromium.fyi',
buildername='Linux remote_run Builder',
slavename='build1-a1',
buildnumber='77457',
path_config='kitchen')
)
yield (
api.test('ensure_goma_fail') +
api.properties(
mastername='chromium.fyi',
buildername='Linux remote_run Builder',
slavename='build1-a1',
buildnumber='77457',
path_config='kitchen') +
api.override_step_data('ensure_goma.ensure_installed', retcode=1)
)