blob: 70fc6decd9a6cd78a68d14c447b304b2bf1d098c [file] [log] [blame]
# Copyright (c) 2014 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.
"""Launches Legion tests."""
from recipe_engine.types import freeze
DEPS = [
'depot_tools/bot_update',
'depot_tools/gclient',
'isolate',
'legion',
'recipe_engine/path',
'recipe_engine/properties',
'swarming',
]
CONFIG_VARS = {'multi_machine': '1'}
CONTROLLER_VARS = {'verbosity': 'INFO'}
EXAMPLE_DIR = ['testing', 'legion', 'examples']
SUBPROCESS_DIR = EXAMPLE_DIR + ['subprocess']
HELLO_WORLD_DIR = EXAMPLE_DIR + ['hello_world']
HTTP_TEST_DIR = EXAMPLE_DIR + ['http_example']
CONFIGS = freeze({
'subprocess_test': {
'controller_path': SUBPROCESS_DIR + ['subprocess_test.isolate'],
'task_paths': {
'task-hash': SUBPROCESS_DIR + ['task.isolate'],
},
'config_vars': CONFIG_VARS,
'controller_vars': CONTROLLER_VARS,
},
'hello_world_test': {
'controller_path': HELLO_WORLD_DIR + ['controller_test.isolate'],
'task_paths': {
'task-hash': HELLO_WORLD_DIR + ['task_test.isolate'],
},
'config_vars': CONFIG_VARS,
'controller_vars': CONTROLLER_VARS,
},
'http_test': {
'controller_path': HTTP_TEST_DIR + ['http_test.isolate'],
'task_paths': {
'http-server': HTTP_TEST_DIR + ['http_server.isolate'],
'http-client': HTTP_TEST_DIR + ['http_client.isolate']
},
'config_vars': CONFIG_VARS,
'controller_vars': CONTROLLER_VARS,
},
})
def RunSteps(api):
api.isolate.isolate_server = (
'https://omnibot-legion-isolate-server.appspot.com')
api.swarming.swarming_server = (
'https://omnibot-legion-swarming-server.appspot.com')
api.gclient.set_config('chromium')
api.bot_update.ensure_checkout()
for name, config in CONFIGS.iteritems():
controller = api.legion.create_controller(
name=name,
path=api.path['checkout'].join(*config['controller_path']),
os='Ubuntu',
config_vars=config['config_vars'],
controller_vars=config['controller_vars']
)
for name, path in config['task_paths'].iteritems():
api.legion.add_task_to_controller(
controller=controller,
name=name,
path=api.path['checkout'].join(*path),
config_vars=config['config_vars']
)
api.legion.execute(controller)
def GenTests(api):
yield api.test('basic') + api.properties.generic()