Add unit test for gcc path specifications

pull/3895/head
Jimmy Brisson 2017-03-07 11:41:56 -06:00
parent a5745cadd9
commit 4408c01522
1 changed files with 21 additions and 3 deletions

View File

@ -4,15 +4,15 @@ import os
from string import printable
from copy import deepcopy
from mock import MagicMock, patch
from hypothesis import given
from hypothesis.strategies import text, lists, fixed_dictionaries
from hypothesis import given, settings
from hypothesis.strategies import text, lists, fixed_dictionaries, booleans
ROOT = os.path.abspath(os.path.join(os.path.dirname(__file__), "..", "..",
".."))
sys.path.insert(0, ROOT)
from tools.toolchains import TOOLCHAIN_CLASSES, LEGACY_TOOLCHAIN_NAMES,\
Resources
Resources, TOOLCHAIN_PATHS
from tools.targets import TARGET_MAP
def test_instantiation():
@ -125,3 +125,21 @@ def test_detect_duplicates(filenames):
assert "dupe.s" in notification["message"]
assert "dupe.c" in notification["message"]
assert "dupe.cpp" in notification["message"]
@given(text(alphabet=ALPHABET + ["/"], min_size=1))
@given(booleans())
@given(booleans())
@settings(max_examples=20)
def test_path_specified_gcc(gcc_loc, exists_at_loc, exists_in_path):
with patch('tools.toolchains.gcc.exists') as _exists:
with patch('tools.toolchains.gcc.find_executable') as _find:
_exists.return_value = exists_at_loc
_find.return_value = exists_in_path
TOOLCHAIN_PATHS['GCC_ARM'] = gcc_loc
toolchain_class = TOOLCHAIN_CLASSES["GCC_ARM"]
found_p = toolchain_class.check_executable()
assert found_p == (exists_at_loc or exists_in_path)
if exists_at_loc:
assert TOOLCHAIN_PATHS['GCC_ARM'] == gcc_loc
elif exists_in_path:
assert TOOLCHAIN_PATHS['GCC_ARM'] == ''