| # Copyright 2016 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. |
| |
| import os |
| import unittest |
| |
| from catapult_build import build_steps |
| |
| |
| class BuildStepsTest(unittest.TestCase): |
| |
| def testCatapultTestList(self): |
| catapult_dir = os.path.dirname(os.path.dirname(os.path.realpath(__file__))) |
| for test in build_steps._CATAPULT_TESTS: |
| self.assertIn('name', test, msg=( |
| 'All tests in build_steps._CATAPULT_TESTS must have a name;' |
| ' error in:\n %s' % test)) |
| self.assertIsInstance(test['name'], str, msg=( |
| 'Test name %s in build_steps._CATAPULT_TESTS must be a string.' |
| % test['name'])) |
| self.assertIn('path', test, msg=( |
| 'All tests in build_steps._CATAPULT_TESTS must have a path ' |
| 'relative to catapult/; error in:\n %s' % test)) |
| abs_path = os.path.join(catapult_dir, test['path']) |
| self.assertTrue(os.path.exists(abs_path), msg=( |
| 'Bad path %s in build_steps._CATAPULT_TESTS; ' |
| ' should be relative to catapult/' % test['path'])) |
| if test.get('additional_args'): |
| self.assertIsInstance(test['additional_args'], list, msg=( |
| 'additional_args %s in build_steps._CATAPULT_TESTS %s not a list' |
| % (test['additional_args'], test['name']) |
| )) |
| if test.get('disabled'): |
| self.assertIsInstance(test['disabled'], list, msg=( |
| 'disabled %s in build_steps._CATAPULT_TESTS for %s not a list' |
| % (test['disabled'], test['name']) |
| )) |
| for platform in test['disabled']: |
| self.assertIn(platform, ['win', 'mac', 'linux'], msg=( |
| 'Bad platform %s in build_steps._CATAPULT_TESTS for %s;' |
| 'should be one of "linux", "win", "mac"' % ( |
| platform, test['name']) |
| )) |