Merge pull request #88 from valeros/develop

Fix CMSIS path for atmelsam platform
This commit is contained in:
Ivan Kravets
2015-02-20 13:50:44 +02:00
3 changed files with 141 additions and 1 deletions

View File

@ -74,7 +74,7 @@ env.Append(
if env.subst("${PLATFORMFW_DIR}")[-3:] == "sam":
env.VariantDir(
join("$BUILD_DIR", "FrameworkCMSISInc"),
join("$PLATFORMFW_DIR", "system", "CMSIS", "CMSIS", "include")
join("$PLATFORMFW_DIR", "system", "CMSIS", "CMSIS", "Include")
)
env.VariantDir(
join("$BUILD_DIR", "FrameworkDeviceInc"),

View File

@ -0,0 +1,60 @@
# Copyright (C) Ivan Kravets <me@ikravets.com>
# See LICENSE for details.
import json
from os.path import isfile, join
from click.testing import CliRunner
from platformio.commands.boards import cli as boards_cli
from platformio.commands.search import cli as search_cli
from platformio.commands.install import cli as install_cli
from platformio import util
runner = CliRunner()
def validate_output(result):
assert result.exit_code == 0
assert not result.exception
assert "error" not in result.output.lower()
def test_board_json_output(platformio_setup):
result = runner.invoke(boards_cli, ["cortex", "--json-output"])
validate_output(result)
boards = json.loads(result.output)
assert isinstance(boards, dict)
assert "teensy30" in boards
def test_board_options(platformio_setup):
required_opts = set(
["build", "platform", "upload", "name"])
# fetch avaialble platforms
result = runner.invoke(search_cli, ["--json-output"])
validate_output(result)
search_result = json.loads(result.output)
assert isinstance(search_result, list)
assert len(search_result)
platforms = [item['name'] for item in search_result]
for name, opts in util.get_boards().iteritems():
assert required_opts.issubset(set(opts))
assert opts['platform'] in platforms
def test_board_ldscripts(platformio_setup):
result = runner.invoke(
install_cli, [
"stm32",
"--skip-default-package",
"--with-package=ldscripts"
])
validate_output(result)
ldscripts_path = join(util.get_home_dir(), "packages", "ldscripts")
for _, opts in util.get_boards().iteritems():
if opts['build'].get("ldscript"):
assert isfile(join(ldscripts_path, opts['build'].get("ldscript")))

View File

@ -0,0 +1,80 @@
# Copyright (C) Ivan Kravets <me@ikravets.com>
# See LICENSE for details.
from os import makedirs, getcwd
from os.path import getsize, isdir, isfile, join
from click.testing import CliRunner
from platformio.commands.init import cli
from platformio import exception, util
runner = CliRunner()
def validate_pioproject(pioproject_dir):
pioconf_path = join(pioproject_dir, "platformio.ini")
assert isfile(pioconf_path) and getsize(pioconf_path) > 0
assert isdir(join(pioproject_dir, "src")) and isdir(
join(pioproject_dir, "lib"))
def validate_output(result):
assert result.exit_code == 0
assert not result.exception
assert "error" not in result.output.lower()
assert "Project has been successfully initialized!" in result.output
def test_init_default(platformio_setup):
with runner.isolated_filesystem():
result = runner.invoke(cli)
validate_output(result)
validate_pioproject(getcwd())
def test_init_ext_folder(platformio_setup):
with runner.isolated_filesystem():
ext_folder_name = "ext_folder"
makedirs(ext_folder_name)
result = runner.invoke(cli, ["-d", ext_folder_name])
validate_output(result)
validate_pioproject(join(getcwd(), ext_folder_name))
def test_init_special_board(platformio_setup):
with runner.isolated_filesystem():
result = runner.invoke(cli, ["-b", "uno"])
validate_output(result)
validate_pioproject(getcwd())
uno = util.get_boards("uno")
config = util.get_project_config()
expected_result = [
('platform', uno['platform']),
('framework', uno['framework']),
('board', 'uno'),
('targets', 'upload')
]
assert config.has_section("env:autogen_uno")
assert config.items("env:autogen_uno") == expected_result
def test_init_disable_auto_uploading(platformio_setup):
with runner.isolated_filesystem():
result = runner.invoke(cli, ["-b", "uno", "--disable-auto-uploading"])
validate_output(result)
validate_pioproject(getcwd())
config = util.get_project_config()
expected_result = [
('platform', 'atmelavr'),
('framework', 'arduino'),
('board', 'uno')
]
assert config.has_section("env:autogen_uno")
assert config.items("env:autogen_uno") == expected_result
def test_init_incorrect_board():
result = runner.invoke(cli, ["-b", "missed_board"])
assert isinstance(result.exception, exception.UnknownBoard)