| #!/usr/bin/env vpython3 |
| |
| # Copyright 2024 The Chromium Authors |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| """Tests of BundledTestRunner.""" |
| |
| import unittest |
| |
| from bundled_test_runner import _BundledTestRunner, TestCase |
| |
| # Test names should be self-explained, no point of adding function docstring. |
| # pylint: disable=missing-function-docstring, protected-access |
| |
| |
| class BundledTestRunnerTests(unittest.TestCase): |
| """Test class.""" |
| |
| @staticmethod |
| def _default_test_case() -> TestCase: |
| return TestCase( |
| package='fuchsia-pkg://fuchsia.com/dart_runner_tests#meta/' + |
| 'dart_runner_tests.cm') |
| |
| def test_resolve_test_package_into_far(self): |
| runner = _BundledTestRunner( |
| 'out/put', [BundledTestRunnerTests._default_test_case()], |
| 'target-id', None, '/tmp/log', [], None) |
| self.assertEqual( |
| runner._package_deps, |
| {'dart_runner_tests': 'out/put/dart_runner_tests.far'}) |
| |
| def test_dedupe_fars(self): |
| runner = _BundledTestRunner( |
| 'out/put', [BundledTestRunnerTests._default_test_case()], |
| 'target-id', None, '/tmp/log', ['dart_runner_tests.far'], None) |
| self.assertEqual( |
| runner._package_deps, |
| {'dart_runner_tests': 'out/put/dart_runner_tests.far'}) |
| |
| def test_absolute_path(self): |
| runner = _BundledTestRunner( |
| 'out/put', [BundledTestRunnerTests._default_test_case()], |
| 'target-id', None, '/tmp/log', |
| ['/tmp/packages/dart_runner_tests.far'], None) |
| self.assertEqual( |
| runner._package_deps, |
| {'dart_runner_tests': '/tmp/packages/dart_runner_tests.far'}) |
| |
| def test_different_cm(self): |
| runner = _BundledTestRunner('out/put', [ |
| TestCase( |
| package= |
| 'fuchsia-pkg://fuchsia.com/dart_runner_tests#meta/meta.cm') |
| ], 'target-id', None, '/tmp/log', [], None) |
| self.assertEqual( |
| runner._package_deps, |
| {'dart_runner_tests': 'out/put/dart_runner_tests.far'}) |
| |
| def test_join_relative_path(self): |
| runner = _BundledTestRunner( |
| 'out/default', [BundledTestRunnerTests._default_test_case()], |
| 'target-id', None, '/tmp/log', ['gen/dart_runner_tests.far'], None) |
| self.assertEqual( |
| runner._package_deps, |
| {'dart_runner_tests': 'out/default/gen/dart_runner_tests.far'}) |
| |
| def test_current_dir_as_out_dir(self): |
| runner = _BundledTestRunner( |
| '.', [BundledTestRunnerTests._default_test_case()], 'target-id', |
| None, '/tmp/log', ['out/default/bin/dart_runner_tests.far'], None) |
| self.assertEqual( |
| runner._package_deps, |
| {'dart_runner_tests': './out/default/bin/dart_runner_tests.far'}) |
| |
| def test_empty_out_dir(self): |
| runner = _BundledTestRunner( |
| '', [BundledTestRunnerTests._default_test_case()], 'target-id', |
| None, '/tmp/log', ['out/default/bin/dart_runner_tests.far'], None) |
| self.assertEqual( |
| runner._package_deps, |
| {'dart_runner_tests': 'out/default/bin/dart_runner_tests.far'}) |
| |
| def test_none_out_dir(self): |
| with self.assertRaises(TypeError): |
| _BundledTestRunner(None, |
| [BundledTestRunnerTests._default_test_case()], |
| 'target-id', None, '/tmp/log', |
| ['out/default/bin/dart_runner_tests.far'], None) |
| |
| def test_conflict_fars(self): |
| with self.assertRaises(AssertionError): |
| _BundledTestRunner('', |
| [BundledTestRunnerTests._default_test_case()], |
| 'target-id', None, '/tmp/log', [ |
| 'out/default/bin/dart_runner_tests.far', |
| 'not/out/default/bin/dart_runner_tests.far' |
| ], None) |
| |
| |
| if __name__ == '__main__': |
| unittest.main() |