| # Lint as: python3 |
| """Recipe for running eurtest e2e tests against a particular build.""" |
| import os |
| |
| from slave import base_recipe |
| from slave.recipe import clang_builder |
| from slave.step import cast_shell_step |
| from slave.step import py_env_setup_step |
| from slave.step import py_test_step |
| |
| |
| DEFAULT_E2E_TEST_TIMEOUT_SECONDS = 3600 |
| SHELL_TO_BUILD = 'displayassistant_grte_opal_eng' |
| TEST_FILE_FILTER_REGEX = ( |
| r'test/eurtest/tests/assistant/presubmit_tests/.*_test_case.py$') |
| |
| |
| def GetValidBuildNames(): |
| return ['py_e2e_test_eurtest_assistant'] |
| |
| |
| def CreateRecipe(build_name: str, **kwargs): |
| """Builds a recipe object.""" |
| if build_name != 'py_e2e_test_eurtest_assistant': |
| raise base_recipe.BuildNameNotSupportedError(build_name) |
| return EurtestE2ERecipe(**kwargs) |
| |
| |
| class EurtestE2ERecipe(base_recipe.BaseRecipe): |
| """Recipe to run e2e tests on a repository.""" |
| |
| def __init__(self, |
| **kwargs): |
| super().__init__( |
| enable_build_accelerator=True, |
| **kwargs) |
| |
| |
| def get_steps(self): |
| build_shell_config = clang_builder.BUILD_CONFIGS['displayassistant_grte_opal_eng'] |
| |
| build_branding = build_shell_config.get('build_branding', None) |
| build_arch = build_shell_config.get('build_arch', None) |
| build_product = build_shell_config.get('build_product', None) |
| build_flavor = build_shell_config.get('build_flavor', None) |
| enable_assistant = build_shell_config.get('enable_assistant', False) |
| build_args_official = build_shell_config.get('build_args_official', None) |
| grte_compatible = build_shell_config.get('grte_compatible', False) |
| build_args_product = build_shell_config.get('build_args_product', None) |
| additional_import_paths = [ |
| self._eureka_root / path for path |
| in ( |
| 'builder/masters', |
| 'builder/masters/src', |
| 'chromium/src/third_party/catapult/telemetry', |
| 'chromium/src/chromecast/internal', |
| 'chromium/src/chromecast/tools', |
| 'continuous-tests', |
| 'continuous-tests/cq/scripts', |
| 'test', |
| 'testing/external/autotest', |
| 'testing/external/chromite', |
| 'testing/sprockets', |
| )] |
| return [ |
| cast_shell_step.CastShellStep( |
| build_branding, build_arch, build_product, |
| build_flavor, enable_assistant, |
| build_args_official=build_args_official, |
| code_coverage=False, grte_compatible=grte_compatible, |
| build_args_product=build_args_product, halt_on_failure=True, |
| sanitizer=None, archive_to_tmp=True, **self._step_kwargs), |
| py_env_setup_step.PyEnvSetupStep( |
| additional_import_paths=additional_import_paths, |
| local_packages_dir='team-catatester/python_packages', |
| py3=True, |
| requirements_path='lab_system/requirements3.txt', |
| requirements_project='test', |
| **self._step_kwargs), |
| py_test_step.PyTestStep( |
| project='test', |
| test_file_filter_regex=TEST_FILE_FILTER_REGEX, |
| timeout=DEFAULT_E2E_TEST_TIMEOUT_SECONDS, |
| **self._step_kwargs) |
| ] |