| # Copyright 2019 The Fuchsia Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| from recipe_engine import recipe_test_api |
| from RECIPE_MODULES.fuchsia.testing_requests import api |
| |
| |
| class FuchsiaTestingRequestsTestApi(recipe_test_api.RecipeTestApi): |
| |
| SERIAL_LOG_NAME = api.SERIAL_LOG_NAME |
| SYSLOG_NAME = api.SYSLOG_NAME |
| TEST_RESULTS_DIR_NAME = api.TestingRequestsApi.TEST_RESULTS_DIR_NAME |
| |
| EXAMPLE_TESTS_JSON = [ |
| { |
| "test": { |
| "name": "hello", |
| "label": "//a/b/c:hello_test(//toolchain)", |
| "os": "fuchsia", |
| "path": "/pkgfs/packages/path/to/hello", |
| "package_url": "fuchsia-pkg://fuchsia.com/hello", |
| } |
| }, |
| { |
| "test": { |
| "name": "goodbye", |
| "label": "//a/b/c:goodbye_test(//toolchain)", |
| "os": "fuchsia", |
| "path": "/pkgfs/packages/path/to/goodbye", |
| "package_url": "fuchsia-pkg://fuchsia.com/goodbye", |
| } |
| }, |
| ] |
| |
| def default_tests(self): |
| """Returns mock step data for the output of testsharder. |
| |
| Returns: |
| list(testsharder.Test) |
| """ |
| return [self.m.testsharder.test(**t["test"]) for t in self.EXAMPLE_TESTS_JSON] |
| |
| def task_request_jsonish(self, legacy_qemu): |
| ret = self.m.swarming.example_task_request_jsonish() |
| ret["tags"] = ["uses_legacy_qemu:%s" % str(legacy_qemu).lower()] |
| return ret |
| |
| def task_requests_step_data(self, task_requests, step_name): |
| """Returns mock step data for swarming task requests. |
| |
| This should be used by any test which calls api.testing_requests.task_requests() and expects |
| to shard tests. |
| |
| Args: |
| shards (seq[dict]): A set of example shards which should |
| be used as step data for the result of invoking the testsharder. |
| step_name (str): name to use for step data |
| |
| Returns: |
| RecipeTestApi.step_data for the extract_results step. |
| """ |
| return self.step_data(step_name, self.m.json.output(task_requests)) |