Skip to content

Commit

Permalink
Enforce device_name is valid in targets.json
Browse files Browse the repository at this point in the history
Add a CI test ensure that device_name exists inside the pack index.
  • Loading branch information
c1728p9 committed Feb 8, 2017
1 parent acdf1e3 commit 32b9ada
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 0 deletions.
1 change: 1 addition & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ script:
- make -C events/equeue test clean
- PYTHONPATH=. python tools/test/config_test/config_test.py
- PYTHONPATH=. python tools/test/build_api/build_api_test.py
- PYTHONPATH=. python tools/test/targets/target_test.py
- python tools/test/pylint.py
- py.test tools/test/toolchains/api.py
- python tools/test/memap/memap_test.py
Expand Down
43 changes: 43 additions & 0 deletions tools/test/targets/target_test.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
#!/usr/bin/env python
"""
mbed
Copyright (c) 2017-2017 ARM Limited
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.
"""

import sys
from os.path import join, abspath, dirname
import unittest

# Be sure that the tools directory is in the search path
ROOT = abspath(join(dirname(__file__), "..", "..", ".."))
sys.path.insert(0, ROOT)

from tools.targets import TARGETS
from tools.arm_pack_manager import Cache

class TestTargets(unittest.TestCase):

def test_device_name(self):
"""Assert device name is in a pack"""
cache = Cache(True, True)
named_targets = (target for target in TARGETS if
hasattr(target, "device_name"))
for target in named_targets:
self.assertTrue(target.device_name in cache.index,
"Target %s contains invalid device_name %s" %
(target.name, target.device_name))

if __name__ == '__main__':
unittest.main()

0 comments on commit 32b9ada

Please sign in to comment.