Merge pull request #7078 from cmonr/windows-pytest-fixes

Windows pytest fixes
pull/7163/head
Cruz Monrreal 2018-06-04 09:19:36 -05:00 committed by GitHub
commit d364d367fe
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 22 additions and 44 deletions

View File

@ -1,5 +1,6 @@
import sys
from io import open
from os import sep
from os.path import isfile, join, dirname
import json
@ -20,9 +21,12 @@ PARSED_ARM_DATA = {
def test_parse_armcc():
memap = MemapParser()
memap.parse(join(dirname(__file__), "arm.map"), "ARM")
assert memap.modules == PARSED_ARM_DATA
memap.parse(join(dirname(__file__), "arm.map"), "UARM")
assert memap.modules == PARSED_ARM_DATA
parsed_data_os_agnostic = dict()
for k in PARSED_ARM_DATA:
parsed_data_os_agnostic[k.replace('/', sep)] = PARSED_ARM_DATA[k]
assert memap.modules == parsed_data_os_agnostic
PARSED_IAR_DATA = {
"startup/startup.o": {".text": 0xc0},
@ -35,7 +39,12 @@ PARSED_IAR_DATA = {
def test_parse_iar():
memap = MemapParser()
memap.parse(join(dirname(__file__), "iar.map"), "IAR")
assert memap.modules == PARSED_IAR_DATA
parsed_data_os_agnostic = dict()
for k in PARSED_IAR_DATA:
parsed_data_os_agnostic[k.replace('/', sep)] = PARSED_IAR_DATA[k]
assert memap.modules == parsed_data_os_agnostic
PARSED_GCC_DATA = {
"startup/startup.o": {".text": 0xc0},
@ -49,9 +58,14 @@ PARSED_GCC_DATA = {
def test_parse_gcc():
memap = MemapParser()
memap.parse(join(dirname(__file__), "gcc.map"), "GCC_ARM")
assert memap.modules == PARSED_GCC_DATA
parsed_data_os_agnostic = dict()
for k in PARSED_GCC_DATA:
parsed_data_os_agnostic[k.replace('/', sep)] = PARSED_GCC_DATA[k]
assert memap.modules == parsed_data_os_agnostic
memap.parse(join(dirname(__file__), "gcc.map"), "GCC_CR")
assert memap.modules == PARSED_GCC_DATA
assert memap.modules == parsed_data_os_agnostic
def test_add_empty_module():

View File

@ -59,39 +59,3 @@ def test_find_tests_app_config(base_dir, target, toolchain_name, app_config):
"prepare_toolchain was not called with app_config"
assert args[1]['app_config'] == app_config,\
"prepare_toolchain was called with an incorrect app_config"
@pytest.mark.parametrize("build_path", ["build_path"])
@pytest.mark.parametrize("target", ["K64F"])
@pytest.mark.parametrize("toolchain_name", ["ARM"])
@pytest.mark.parametrize("app_config", ["app_config", None])
def test_find_tests_app_config(build_path, target, toolchain_name, app_config):
"""
Test find_tests for correct use of app_config
:param base_dir: dummy value for the test base directory
:param target: the target to "test" for
:param toolchain_name: the toolchain to use for "testing"
:param app_config: Application configuration parameter to find tests
"""
tests = {'test1': 'test1_path','test2': 'test2_path'}
src_paths = ['.']
set_targets_json_location()
with patch('tools.test_api.scan_resources') as mock_scan_resources,\
patch('tools.test_api.build_project') as mock_build_project,\
patch('tools.test_api.get_config') as mock_get_config:
mock_build_project.return_value = "build_project"
mock_scan_resources().inc_dirs.return_value = []
mock_get_config.return_value = ({}, "", "")
build_tests(tests, src_paths, build_path, target, toolchain_name,
app_config=app_config)
arg_list = mock_build_project.call_args_list
for args in arg_list:
assert 'app_config' in args[1],\
"build_tests was not called with app_config"
assert args[1]['app_config'] == app_config,\
"build_tests was called with an incorrect app_config"
mock_get_config.called_with(src_paths, target,
toolchain_name, app_conifg=app_config)

View File

@ -16,7 +16,7 @@ from tools.toolchains import TOOLCHAIN_CLASSES, LEGACY_TOOLCHAIN_NAMES,\
from tools.targets import TARGET_MAP
from tools.notifier.mock import MockNotifier
ALPHABET = [char for char in printable if char not in [u'.', u'/']]
ALPHABET = [char for char in printable if char not in [u'.', u'/', u'\\']]
@given(fixed_dictionaries({
'common': lists(text()),
@ -175,7 +175,7 @@ def test_detect_duplicates(filenames):
assert "dupe.c" in notification["message"]
assert "dupe.cpp" in notification["message"]
@given(text(alphabet=ALPHABET + ["/"], min_size=1))
@given(text(alphabet=ALPHABET + [os.sep], min_size=1))
@given(booleans())
@given(booleans())
@settings(max_examples=20)