| # Copyright 2018, The Android Open Source Project |
| # |
| # Licensed under the Apache License, Version 2.0 (the "License"); |
| # you may not use this file except in compliance with the License. |
| # You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| |
| """ |
| Example test runner class. |
| """ |
| |
| # pylint: disable=import-error |
| import test_runner_base |
| |
| |
| class ExampleTestRunner(test_runner_base.TestRunnerBase): |
| """Base Test Runner class.""" |
| NAME = 'ExampleTestRunner' |
| EXECUTABLE = 'echo' |
| _RUN_CMD = '{exe} ExampleTestRunner - test:{test}' |
| _BUILD_REQ = set() |
| |
| def run_tests(self, test_infos, extra_args, reporter): |
| """Run the list of test_infos. |
| |
| Args: |
| test_infos: List of TestInfo. |
| extra_args: Dict of extra args to add to test run. |
| reporter: An instance of result_report.ResultReporter |
| """ |
| run_cmds = self.generate_run_commands(test_infos, extra_args) |
| for run_cmd in run_cmds: |
| super(ExampleTestRunner, self).run(run_cmd) |
| |
| def host_env_check(self): |
| """Check that host env has everything we need. |
| |
| We actually can assume the host env is fine because we have the same |
| requirements that atest has. Update this to check for android env vars |
| if that changes. |
| """ |
| pass |
| |
| def get_test_runner_build_reqs(self): |
| """Return the build requirements. |
| |
| Returns: |
| Set of build targets. |
| """ |
| return set() |
| |
| # pylint: disable=unused-argument |
| def generate_run_commands(self, test_infos, extra_args, port=None): |
| """Generate a list of run commands from TestInfos. |
| |
| Args: |
| test_infos: A set of TestInfo instances. |
| extra_args: A Dict of extra args to append. |
| port: Optional. An int of the port number to send events to. |
| Subprocess reporter in TF won't try to connect if it's None. |
| |
| Returns: |
| A list of run commands to run the tests. |
| """ |
| run_cmds = [] |
| for test_info in test_infos: |
| run_cmd_dict = {'exe': self.EXECUTABLE, |
| 'test': test_info.test_name} |
| run_cmds.extend(self._RUN_CMD.format(**run_cmd_dict)) |
| return run_cmds |