Denislam Valeev / Mbed OS Nucleo_rtos_basic
Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers arm_support_test.py Source File

arm_support_test.py

00001 """Tests for the arm toolchain supported checks"""
00002 import sys
00003 import os
00004 from string import printable
00005 from copy import deepcopy
00006 from mock import MagicMock, patch
00007 from hypothesis import given, settings
00008 from hypothesis.strategies import text, lists, sampled_from
00009 
00010 ROOT = os.path.abspath(os.path.join(os.path.dirname(__file__), "..", "..",
00011                                     ".."))
00012 sys.path.insert(0, ROOT)
00013 
00014 from tools.toolchains.arm import ARM_STD, ARM_MICRO, ARMC6
00015 from tools.utils import NotSupportedException
00016 
00017 ARMC5_CORES = ["Cortex-M0", "Cortex-M0+", "Cortex-M3", "Cortex-M4",
00018                "Cortex-M4F", "Cortex-M7", "Cortex-M7F", "Cortex-M7FD"]
00019 ARMC6_CORES = ARMC5_CORES + ["Cortex-M23", "Cortex-M23-NS",
00020                              "Cortex-M33", "CortexM33-NS"]
00021 
00022 CORE_SUF_ALPHA = ["MDFNS02347-+"]
00023 
00024 @given(lists(sampled_from(["ARM", "uARM", "GCC_ARM", "ARMC6", "IAR", "GARBAGE"])),
00025        text(alphabet=CORE_SUF_ALPHA))
00026 def test_arm_std(supported_toolchains, core):
00027     mock_target = MagicMock()
00028     mock_target.core = "Cortex-" + core
00029     mock_target.supported_toolchains = supported_toolchains
00030     try:
00031         ARM_STD(mock_target)
00032         assert "ARM" in supported_toolchains
00033         assert mock_target.core in ARMC5_CORES
00034     except NotSupportedException:
00035         assert "ARM" not in supported_toolchains or mock_target.core not in ARMC5_CORES
00036 
00037 
00038 @given(lists(sampled_from(["ARM", "uARM", "GCC_ARM", "ARMC6", "IAR", "GARBAGE"])),
00039        text(alphabet=CORE_SUF_ALPHA))
00040 def test_arm_micro(supported_toolchains, core):
00041     mock_target = MagicMock()
00042     mock_target.core = "Cortex-" + core
00043     mock_target.supported_toolchains = supported_toolchains
00044     try:
00045         ARM_MICRO(mock_target)
00046         assert "ARM" in supported_toolchains or "uARM" in supported_toolchains
00047         assert mock_target.core in ARMC5_CORES
00048     except NotSupportedException:
00049         assert ("ARM" not in supported_toolchains and "uARM" not in supported_toolchains)\
00050             or mock_target.core not in ARMC5_CORES
00051 
00052 
00053 @given(lists(sampled_from(["ARM", "uARM", "GCC_ARM", "ARMC6", "IAR", "GARBAGE"])),
00054        text(alphabet=CORE_SUF_ALPHA))
00055 def test_armc6(supported_toolchains, core):
00056     mock_target = MagicMock()
00057     mock_target.core = "Cortex-" + core
00058     mock_target.supported_toolchains = supported_toolchains
00059     try:
00060         ARMC6(mock_target)
00061         assert "ARM" in supported_toolchains or "ARMC6" in supported_toolchains
00062         assert mock_target.core in ARMC6_CORES
00063     except NotSupportedException:
00064         assert ("ARM" not in supported_toolchains and "ARMC6" not in supported_toolchains)\
00065             or mock_target.core not in ARMC6_CORES