forked from platformio/platformio-core
Merge branch 'release/v6.0.1'
This commit is contained in:
10
HISTORY.rst
10
HISTORY.rst
@ -3,6 +3,7 @@ Release Notes
|
|||||||
|
|
||||||
.. |PIOCONF| replace:: `"platformio.ini" <https://docs.platformio.org/en/latest/projectconf.html>`__ configuration file
|
.. |PIOCONF| replace:: `"platformio.ini" <https://docs.platformio.org/en/latest/projectconf.html>`__ configuration file
|
||||||
.. |LDF| replace:: `LDF <https://docs.platformio.org/en/latest/librarymanager/ldf.html>`__
|
.. |LDF| replace:: `LDF <https://docs.platformio.org/en/latest/librarymanager/ldf.html>`__
|
||||||
|
.. |INTERPOLATION| replace:: `Interpolation of Values <https://docs.platformio.org/en/latest/projectconf/interpolation.html>`__
|
||||||
|
|
||||||
.. _release_notes_6:
|
.. _release_notes_6:
|
||||||
|
|
||||||
@ -11,6 +12,13 @@ PlatformIO Core 6
|
|||||||
|
|
||||||
**A professional collaborative platform for declarative, safety-critical, and test-driven embedded development.**
|
**A professional collaborative platform for declarative, safety-critical, and test-driven embedded development.**
|
||||||
|
|
||||||
|
6.0.1 (2022-05-17)
|
||||||
|
~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
* Improved support for the renamed configuration options (`issue #4270 <https://github.com/platformio/platformio-core/issues/4270>`_)
|
||||||
|
* Fixed an issue when calling the built-in `pio device monitor <https://docs.platformio.org/en/latest/core/userguide/device/cmd_monitor.html#filters>`__ filters
|
||||||
|
* Fixed an issue when using |INTERPOLATION| and merging str+int options (`issue #4271 <https://github.com/platformio/platformio-core/issues/4271>`_)
|
||||||
|
|
||||||
6.0.0 (2022-05-16)
|
6.0.0 (2022-05-16)
|
||||||
~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
@ -92,7 +100,7 @@ Please check the `Migration guide from 5.x to 6.0 <https://docs.platformio.org/e
|
|||||||
|
|
||||||
* **Project Configuration**
|
* **Project Configuration**
|
||||||
|
|
||||||
- Extended `Interpolation of Values <https://docs.platformio.org/en/latest/projectconf/interpolation.html>`__ with ``${this}`` pattern (`issue #3953 <https://github.com/platformio/platformio-core/issues/3953>`_)
|
- Extended |INTERPOLATION| with ``${this}`` pattern (`issue #3953 <https://github.com/platformio/platformio-core/issues/3953>`_)
|
||||||
- Embed environment name of the current section in the |PIOCONF| using ``${this.__env__}`` pattern
|
- Embed environment name of the current section in the |PIOCONF| using ``${this.__env__}`` pattern
|
||||||
- Renamed the "src_build_flags" project configuration option to the `build_src_flags <https://docs.platformio.org/en/latest/projectconf/section_env_build.html#build-src-flags>`__
|
- Renamed the "src_build_flags" project configuration option to the `build_src_flags <https://docs.platformio.org/en/latest/projectconf/section_env_build.html#build-src-flags>`__
|
||||||
- Renamed the "src_filter" project configuration option to the `build_src_filter <https://docs.platformio.org/en/latest/projectconf/section_env_build.html#build-src-filter>`__
|
- Renamed the "src_filter" project configuration option to the `build_src_filter <https://docs.platformio.org/en/latest/projectconf/section_env_build.html#build-src-filter>`__
|
||||||
|
2
docs
2
docs
Submodule docs updated: 6bbb813494...5bf0037c66
@ -14,7 +14,7 @@
|
|||||||
|
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
VERSION = (6, 0, 0)
|
VERSION = (6, 0, 1)
|
||||||
__version__ = ".".join([str(s) for s in VERSION])
|
__version__ = ".".join([str(s) for s in VERSION])
|
||||||
|
|
||||||
__title__ = "platformio"
|
__title__ = "platformio"
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
from __future__ import absolute_import
|
from __future__ import absolute_import
|
||||||
|
|
||||||
from platformio.compat import MISSING
|
from platformio.compat import MISSING
|
||||||
from platformio.project.config import ProjectConfig, ProjectOptions
|
from platformio.project.config import ProjectConfig
|
||||||
|
|
||||||
|
|
||||||
def GetProjectConfig(env):
|
def GetProjectConfig(env):
|
||||||
@ -31,15 +31,17 @@ def GetProjectOption(env, option, default=MISSING):
|
|||||||
|
|
||||||
|
|
||||||
def LoadProjectOptions(env):
|
def LoadProjectOptions(env):
|
||||||
for option, value in env.GetProjectOptions():
|
config = env.GetProjectConfig()
|
||||||
option_meta = ProjectOptions.get("env." + option)
|
section = "env:" + env["PIOENV"]
|
||||||
|
for option in config.options(section):
|
||||||
|
option_meta = config.find_option_meta(section, option)
|
||||||
if (
|
if (
|
||||||
not option_meta
|
not option_meta
|
||||||
or not option_meta.buildenvvar
|
or not option_meta.buildenvvar
|
||||||
or option_meta.buildenvvar in env
|
or option_meta.buildenvvar in env
|
||||||
):
|
):
|
||||||
continue
|
continue
|
||||||
env[option_meta.buildenvvar] = value
|
env[option_meta.buildenvvar] = config.get(section, option)
|
||||||
|
|
||||||
|
|
||||||
def exists(_):
|
def exists(_):
|
||||||
|
@ -68,6 +68,14 @@ def get_project_global_lib_dir():
|
|||||||
)
|
)
|
||||||
@click.pass_context
|
@click.pass_context
|
||||||
def cli(ctx, **options):
|
def cli(ctx, **options):
|
||||||
|
in_silence = PlatformioCLI.in_silence()
|
||||||
|
if not in_silence:
|
||||||
|
click.secho(
|
||||||
|
"\nWARNING!!! This command is deprecated and will be removed in "
|
||||||
|
"the next releases. \nPlease use `pio pkg` instead.\n",
|
||||||
|
fg="yellow",
|
||||||
|
)
|
||||||
|
|
||||||
storage_cmds = ("install", "uninstall", "update", "list")
|
storage_cmds = ("install", "uninstall", "update", "list")
|
||||||
# skip commands that don't need storage folder
|
# skip commands that don't need storage folder
|
||||||
if ctx.invoked_subcommand not in storage_cmds or (
|
if ctx.invoked_subcommand not in storage_cmds or (
|
||||||
@ -94,7 +102,6 @@ def cli(ctx, **options):
|
|||||||
get_project_dir(), get_project_global_lib_dir(), ctx.invoked_subcommand
|
get_project_dir(), get_project_global_lib_dir(), ctx.invoked_subcommand
|
||||||
)
|
)
|
||||||
|
|
||||||
in_silence = PlatformioCLI.in_silence()
|
|
||||||
ctx.meta[CTX_META_PROJECT_ENVIRONMENTS_KEY] = options["environment"]
|
ctx.meta[CTX_META_PROJECT_ENVIRONMENTS_KEY] = options["environment"]
|
||||||
ctx.meta[CTX_META_INPUT_DIRS_KEY] = storage_dirs
|
ctx.meta[CTX_META_INPUT_DIRS_KEY] = storage_dirs
|
||||||
ctx.meta[CTX_META_STORAGE_DIRS_KEY] = []
|
ctx.meta[CTX_META_STORAGE_DIRS_KEY] = []
|
||||||
|
@ -18,6 +18,7 @@ import os
|
|||||||
|
|
||||||
import click
|
import click
|
||||||
|
|
||||||
|
from platformio.commands import PlatformioCLI
|
||||||
from platformio.commands.boards import print_boards
|
from platformio.commands.boards import print_boards
|
||||||
from platformio.exception import UserSideException
|
from platformio.exception import UserSideException
|
||||||
from platformio.package.exception import UnknownPackageError
|
from platformio.package.exception import UnknownPackageError
|
||||||
@ -30,7 +31,12 @@ from platformio.platform.factory import PlatformFactory
|
|||||||
|
|
||||||
@click.group(short_help="Platform manager", hidden=True)
|
@click.group(short_help="Platform manager", hidden=True)
|
||||||
def cli():
|
def cli():
|
||||||
pass
|
if not PlatformioCLI.in_silence():
|
||||||
|
click.secho(
|
||||||
|
"\nWARNING!!! This command is deprecated and will be removed in "
|
||||||
|
"the next releases. \nPlease use `pio pkg` instead.\n",
|
||||||
|
fg="yellow",
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
@cli.command("search", short_help="Search for development platform")
|
@cli.command("search", short_help="Search for development platform")
|
||||||
|
@ -14,12 +14,6 @@
|
|||||||
|
|
||||||
import click
|
import click
|
||||||
|
|
||||||
from platformio.commands.lib.command import CTX_META_STORAGE_DIRS_KEY
|
|
||||||
from platformio.commands.lib.command import lib_update as cmd_lib_update
|
|
||||||
from platformio.commands.platform import platform_update as cmd_platform_update
|
|
||||||
from platformio.package.manager.core import update_core_packages
|
|
||||||
from platformio.package.manager.library import LibraryPackageManager
|
|
||||||
|
|
||||||
|
|
||||||
@click.command(
|
@click.command(
|
||||||
"update",
|
"update",
|
||||||
@ -36,23 +30,9 @@ from platformio.package.manager.library import LibraryPackageManager
|
|||||||
@click.option(
|
@click.option(
|
||||||
"--dry-run", is_flag=True, help="Do not update, only check for the new versions"
|
"--dry-run", is_flag=True, help="Do not update, only check for the new versions"
|
||||||
)
|
)
|
||||||
@click.pass_context
|
def cli(*_, **__):
|
||||||
def cli(ctx, core_packages, only_check, dry_run):
|
click.secho(
|
||||||
only_check = dry_run or only_check
|
"This command is deprecated and will be removed in the next releases. \n"
|
||||||
|
"Please use `pio pkg update` instead.",
|
||||||
if not only_check:
|
fg="yellow",
|
||||||
update_core_packages()
|
)
|
||||||
|
|
||||||
if core_packages:
|
|
||||||
return
|
|
||||||
|
|
||||||
click.echo()
|
|
||||||
click.echo("Platform Manager")
|
|
||||||
click.echo("================")
|
|
||||||
ctx.invoke(cmd_platform_update, only_check=only_check)
|
|
||||||
|
|
||||||
click.echo()
|
|
||||||
click.echo("Library Manager")
|
|
||||||
click.echo("===============")
|
|
||||||
ctx.meta[CTX_META_STORAGE_DIRS_KEY] = [LibraryPackageManager().package_dir]
|
|
||||||
ctx.invoke(cmd_lib_update, only_check=only_check)
|
|
||||||
|
@ -71,7 +71,7 @@ def register_filters(platform=None, options=None):
|
|||||||
)
|
)
|
||||||
# default filters
|
# default filters
|
||||||
load_monitor_filters(
|
load_monitor_filters(
|
||||||
os.path.join(fs.get_source_dir(), "commands", "device", "filters"),
|
os.path.join(fs.get_source_dir(), "device", "filters"),
|
||||||
options=options,
|
options=options,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -43,6 +43,8 @@ class ProjectConfigBase(object):
|
|||||||
INLINE_COMMENT_RE = re.compile(r"\s+;.*$")
|
INLINE_COMMENT_RE = re.compile(r"\s+;.*$")
|
||||||
VARTPL_RE = re.compile(r"\$\{([^\.\}\()]+)\.([^\}]+)\}")
|
VARTPL_RE = re.compile(r"\$\{([^\.\}\()]+)\.([^\}]+)\}")
|
||||||
|
|
||||||
|
CUSTOM_OPTION_PREFIXES = ("custom_", "board_")
|
||||||
|
|
||||||
expand_interpolations = True
|
expand_interpolations = True
|
||||||
warnings = []
|
warnings = []
|
||||||
|
|
||||||
@ -109,23 +111,6 @@ class ProjectConfigBase(object):
|
|||||||
self.read(item)
|
self.read(item)
|
||||||
|
|
||||||
def _maintain_renaimed_options(self):
|
def _maintain_renaimed_options(self):
|
||||||
# legacy `lib_extra_dirs` in [platformio]
|
|
||||||
if self._parser.has_section("platformio") and self._parser.has_option(
|
|
||||||
"platformio", "lib_extra_dirs"
|
|
||||||
):
|
|
||||||
if not self._parser.has_section("env"):
|
|
||||||
self._parser.add_section("env")
|
|
||||||
self._parser.set(
|
|
||||||
"env",
|
|
||||||
"lib_extra_dirs",
|
|
||||||
self._parser.get("platformio", "lib_extra_dirs"),
|
|
||||||
)
|
|
||||||
self._parser.remove_option("platformio", "lib_extra_dirs")
|
|
||||||
self.warnings.append(
|
|
||||||
"`lib_extra_dirs` configuration option is deprecated in "
|
|
||||||
"section [platformio]! Please move it to global `env` section"
|
|
||||||
)
|
|
||||||
|
|
||||||
renamed_options = {}
|
renamed_options = {}
|
||||||
for option in ProjectOptions.values():
|
for option in ProjectOptions.values():
|
||||||
if option.oldnames:
|
if option.oldnames:
|
||||||
@ -143,19 +128,20 @@ class ProjectConfigBase(object):
|
|||||||
"Please use `%s` instead"
|
"Please use `%s` instead"
|
||||||
% (option, section, renamed_options[option])
|
% (option, section, renamed_options[option])
|
||||||
)
|
)
|
||||||
# rename on-the-fly
|
# # rename on-the-fly
|
||||||
self._parser.set(
|
# self._parser.set(
|
||||||
section,
|
# section,
|
||||||
renamed_options[option],
|
# renamed_options[option],
|
||||||
self._parser.get(section, option),
|
# self._parser.get(section, option),
|
||||||
)
|
# )
|
||||||
self._parser.remove_option(section, option)
|
# self._parser.remove_option(section, option)
|
||||||
continue
|
continue
|
||||||
|
|
||||||
# unknown
|
# unknown
|
||||||
unknown_conditions = [
|
unknown_conditions = [
|
||||||
("%s.%s" % (scope, option)) not in ProjectOptions,
|
("%s.%s" % (scope, option)) not in ProjectOptions,
|
||||||
scope != "env" or not option.startswith(("custom_", "board_")),
|
scope != "env"
|
||||||
|
or not option.startswith(self.CUSTOM_OPTION_PREFIXES),
|
||||||
]
|
]
|
||||||
if all(unknown_conditions):
|
if all(unknown_conditions):
|
||||||
self.warnings.append(
|
self.warnings.append(
|
||||||
@ -237,16 +223,7 @@ class ProjectConfigBase(object):
|
|||||||
value = "\n" + value
|
value = "\n" + value
|
||||||
self._parser.set(section, option, value)
|
self._parser.set(section, option, value)
|
||||||
|
|
||||||
def getraw(self, section, option, default=MISSING):
|
def resolve_renamed_option(self, section, old_name):
|
||||||
try:
|
|
||||||
return self._getraw(section, option, default)
|
|
||||||
except configparser.NoOptionError as exc:
|
|
||||||
renamed_option = self._resolve_renamed_option(section, option)
|
|
||||||
if renamed_option:
|
|
||||||
return self._getraw(section, renamed_option, default)
|
|
||||||
raise exc
|
|
||||||
|
|
||||||
def _resolve_renamed_option(self, section, old_name):
|
|
||||||
scope = self.get_section_scope(section)
|
scope = self.get_section_scope(section)
|
||||||
if scope not in ("platformio", "env"):
|
if scope not in ("platformio", "env"):
|
||||||
return None
|
return None
|
||||||
@ -259,19 +236,39 @@ class ProjectConfigBase(object):
|
|||||||
return option_meta.name
|
return option_meta.name
|
||||||
return None
|
return None
|
||||||
|
|
||||||
def _getraw(self, section, option, default): # pylint: disable=too-many-branches
|
def find_option_meta(self, section, option):
|
||||||
|
scope = self.get_section_scope(section)
|
||||||
|
if scope not in ("platformio", "env"):
|
||||||
|
return None
|
||||||
|
option_meta = ProjectOptions.get("%s.%s" % (scope, option))
|
||||||
|
if option_meta:
|
||||||
|
return option_meta
|
||||||
|
for option_meta in ProjectOptions.values():
|
||||||
|
if option_meta.scope == scope and option in (option_meta.oldnames or []):
|
||||||
|
return option_meta
|
||||||
|
return None
|
||||||
|
|
||||||
|
def _traverse_for_value(self, section, option, option_meta=None):
|
||||||
|
for _section, _option in self.walk_options(section):
|
||||||
|
if _option == option or (
|
||||||
|
option_meta
|
||||||
|
and (
|
||||||
|
option_meta.name == _option
|
||||||
|
or _option in (option_meta.oldnames or [])
|
||||||
|
)
|
||||||
|
):
|
||||||
|
return self._parser.get(_section, _option)
|
||||||
|
return MISSING
|
||||||
|
|
||||||
|
def getraw(
|
||||||
|
self, section, option, default=MISSING
|
||||||
|
): # pylint: disable=too-many-branches
|
||||||
if not self.expand_interpolations:
|
if not self.expand_interpolations:
|
||||||
return self._parser.get(section, option)
|
return self._parser.get(section, option)
|
||||||
|
|
||||||
value = MISSING
|
option_meta = self.find_option_meta(section, option)
|
||||||
for sec, opt in self.walk_options(section):
|
value = self._traverse_for_value(section, option, option_meta)
|
||||||
if opt == option:
|
|
||||||
value = self._parser.get(sec, option)
|
|
||||||
break
|
|
||||||
|
|
||||||
option_meta = ProjectOptions.get(
|
|
||||||
"%s.%s" % (self.get_section_scope(section), option)
|
|
||||||
)
|
|
||||||
if not option_meta:
|
if not option_meta:
|
||||||
if value == MISSING:
|
if value == MISSING:
|
||||||
value = (
|
value = (
|
||||||
@ -333,7 +330,7 @@ class ProjectConfigBase(object):
|
|||||||
)
|
)
|
||||||
if isinstance(value, list):
|
if isinstance(value, list):
|
||||||
return "\n".join(value)
|
return "\n".join(value)
|
||||||
return value
|
return str(value)
|
||||||
|
|
||||||
def get(self, section, option, default=MISSING):
|
def get(self, section, option, default=MISSING):
|
||||||
value = None
|
value = None
|
||||||
@ -342,9 +339,7 @@ class ProjectConfigBase(object):
|
|||||||
except configparser.Error as e:
|
except configparser.Error as e:
|
||||||
raise exception.InvalidProjectConfError(self.path, str(e))
|
raise exception.InvalidProjectConfError(self.path, str(e))
|
||||||
|
|
||||||
option_meta = ProjectOptions.get(
|
option_meta = self.find_option_meta(section, option)
|
||||||
"%s.%s" % (self.get_section_scope(section), option)
|
|
||||||
)
|
|
||||||
if not option_meta:
|
if not option_meta:
|
||||||
return value
|
return value
|
||||||
|
|
||||||
|
@ -346,6 +346,7 @@ def dump_run_environment(options):
|
|||||||
"check_tool",
|
"check_tool",
|
||||||
"debug_tool",
|
"debug_tool",
|
||||||
"monitor_filters",
|
"monitor_filters",
|
||||||
|
"test_framework",
|
||||||
]
|
]
|
||||||
safe_options = {k: v for k, v in options.items() if k in non_sensitive_data}
|
safe_options = {k: v for k, v in options.items() if k in non_sensitive_data}
|
||||||
if is_platformio_project(os.getcwd()):
|
if is_platformio_project(os.getcwd()):
|
||||||
|
4
setup.py
4
setup.py
@ -28,9 +28,9 @@ from platformio import (
|
|||||||
|
|
||||||
minimal_requirements = [
|
minimal_requirements = [
|
||||||
"bottle==0.12.*",
|
"bottle==0.12.*",
|
||||||
"click%s" % (">=8.0.3,<9" if sys.version_info >= (3, 7) else "==8.0.4"),
|
"click%s" % (">=8.0.4,<9" if sys.version_info >= (3, 7) else "==8.0.4"),
|
||||||
"colorama",
|
"colorama",
|
||||||
"marshmallow==3.*",
|
"marshmallow==%s" % ("3.*" if sys.version_info >= (3, 7) else "3.14.1"),
|
||||||
"pyelftools>=0.27,<1",
|
"pyelftools>=0.27,<1",
|
||||||
"pyserial==3.*",
|
"pyserial==3.*",
|
||||||
"requests==2.*",
|
"requests==2.*",
|
||||||
|
@ -85,6 +85,7 @@ build_flags =
|
|||||||
-Wl,--gc-sections
|
-Wl,--gc-sections
|
||||||
${custom.lib_flags}
|
${custom.lib_flags}
|
||||||
${custom.debug_flags}
|
${custom.debug_flags}
|
||||||
|
-D SERIAL_BAUD_RATE=${this.monitor_speed}
|
||||||
lib_install = 574
|
lib_install = 574
|
||||||
|
|
||||||
[env:extra_2]
|
[env:extra_2]
|
||||||
@ -101,9 +102,13 @@ debug_flags = -D DEBUG=1
|
|||||||
debug_server =
|
debug_server =
|
||||||
${platformio.packages_dir}/tool-openocd/openocd
|
${platformio.packages_dir}/tool-openocd/openocd
|
||||||
--help
|
--help
|
||||||
|
src_filter = -<*>
|
||||||
|
+<a>
|
||||||
|
+<b>
|
||||||
|
|
||||||
[env:extra_2]
|
[env:extra_2]
|
||||||
build_flags = -Og
|
build_flags = -Og
|
||||||
|
src_filter = ${custom.src_filter} +<c>
|
||||||
"""
|
"""
|
||||||
|
|
||||||
DEFAULT_CORE_DIR = os.path.join(fs.expanduser("~"), ".platformio")
|
DEFAULT_CORE_DIR = os.path.join(fs.expanduser("~"), ".platformio")
|
||||||
@ -130,7 +135,7 @@ def test_empty_config():
|
|||||||
|
|
||||||
def test_warnings(config):
|
def test_warnings(config):
|
||||||
config.validate(["extra_2", "base"], silent=True)
|
config.validate(["extra_2", "base"], silent=True)
|
||||||
assert len(config.warnings) == 2
|
assert len(config.warnings) == 3
|
||||||
assert "lib_install" in config.warnings[1]
|
assert "lib_install" in config.warnings[1]
|
||||||
|
|
||||||
with pytest.raises(UnknownEnvNamesError):
|
with pytest.raises(UnknownEnvNamesError):
|
||||||
@ -213,8 +218,9 @@ def test_options(config):
|
|||||||
def test_has_option(config):
|
def test_has_option(config):
|
||||||
assert config.has_option("env:base", "monitor_speed")
|
assert config.has_option("env:base", "monitor_speed")
|
||||||
assert not config.has_option("custom", "monitor_speed")
|
assert not config.has_option("custom", "monitor_speed")
|
||||||
assert not config.has_option("env:extra_1", "lib_install")
|
assert config.has_option("env:extra_1", "lib_install")
|
||||||
assert config.has_option("env:test_extends", "lib_compat_mode")
|
assert config.has_option("env:test_extends", "lib_compat_mode")
|
||||||
|
assert config.has_option("env:extra_2", "src_filter")
|
||||||
|
|
||||||
|
|
||||||
def test_sysenv_options(config):
|
def test_sysenv_options(config):
|
||||||
@ -292,9 +298,9 @@ def test_getraw_value(config):
|
|||||||
# known
|
# known
|
||||||
assert config.getraw("env:base", "targets") == ""
|
assert config.getraw("env:base", "targets") == ""
|
||||||
assert config.getraw("env:extra_1", "lib_deps") == "574"
|
assert config.getraw("env:extra_1", "lib_deps") == "574"
|
||||||
assert (
|
assert config.getraw("env:extra_1", "build_flags") == (
|
||||||
config.getraw("env:extra_1", "build_flags")
|
"\n-fdata-sections\n-Wl,--gc-sections\n"
|
||||||
== "\n-fdata-sections\n-Wl,--gc-sections\n-lc -lm\n-D DEBUG=1"
|
"-lc -lm\n-D DEBUG=1\n-D SERIAL_BAUD_RATE=9600"
|
||||||
)
|
)
|
||||||
|
|
||||||
# extended
|
# extended
|
||||||
@ -312,6 +318,8 @@ def test_getraw_value(config):
|
|||||||
assert config.getraw("platformio", "build_dir") == "~/tmp/pio-$PROJECT_HASH"
|
assert config.getraw("platformio", "build_dir") == "~/tmp/pio-$PROJECT_HASH"
|
||||||
|
|
||||||
# renamed option
|
# renamed option
|
||||||
|
assert config.getraw("env:extra_1", "lib_install") == "574"
|
||||||
|
assert config.getraw("env:extra_1", "lib_deps") == "574"
|
||||||
assert config.getraw("env:base", "debug_load_cmd") == ["load"]
|
assert config.getraw("env:base", "debug_load_cmd") == ["load"]
|
||||||
|
|
||||||
|
|
||||||
@ -322,6 +330,7 @@ def test_get_value(config):
|
|||||||
"-Wl,--gc-sections",
|
"-Wl,--gc-sections",
|
||||||
"-lc -lm",
|
"-lc -lm",
|
||||||
"-D DEBUG=1",
|
"-D DEBUG=1",
|
||||||
|
"-D SERIAL_BAUD_RATE=9600",
|
||||||
]
|
]
|
||||||
assert config.get("env:extra_2", "build_flags") == ["-Og"]
|
assert config.get("env:extra_2", "build_flags") == ["-Og"]
|
||||||
assert config.get("env:extra_2", "monitor_speed") == 9600
|
assert config.get("env:extra_2", "monitor_speed") == 9600
|
||||||
@ -349,6 +358,11 @@ def test_get_value(config):
|
|||||||
)
|
)
|
||||||
assert "$PROJECT_HASH" not in config.get("platformio", "build_dir")
|
assert "$PROJECT_HASH" not in config.get("platformio", "build_dir")
|
||||||
|
|
||||||
|
# renamed option
|
||||||
|
assert config.get("env:extra_1", "lib_install") == ["574"]
|
||||||
|
assert config.get("env:extra_1", "lib_deps") == ["574"]
|
||||||
|
assert config.get("env:base", "debug_load_cmd") == ["load"]
|
||||||
|
|
||||||
|
|
||||||
def test_items(config):
|
def test_items(config):
|
||||||
assert config.items("custom") == [
|
assert config.items("custom") == [
|
||||||
@ -363,6 +377,7 @@ def test_items(config):
|
|||||||
"\n%s/tool-openocd/openocd\n--help"
|
"\n%s/tool-openocd/openocd\n--help"
|
||||||
% os.path.join(DEFAULT_CORE_DIR, "packages"),
|
% os.path.join(DEFAULT_CORE_DIR, "packages"),
|
||||||
),
|
),
|
||||||
|
("src_filter", "-<*>\n+<a>\n+<b>"),
|
||||||
]
|
]
|
||||||
assert config.items(env="base") == [
|
assert config.items(env="base") == [
|
||||||
("build_flags", ["-D DEBUG=1"]),
|
("build_flags", ["-D DEBUG=1"]),
|
||||||
@ -377,11 +392,18 @@ def test_items(config):
|
|||||||
assert config.items(env="extra_1") == [
|
assert config.items(env="extra_1") == [
|
||||||
(
|
(
|
||||||
"build_flags",
|
"build_flags",
|
||||||
["-fdata-sections", "-Wl,--gc-sections", "-lc -lm", "-D DEBUG=1"],
|
[
|
||||||
|
"-fdata-sections",
|
||||||
|
"-Wl,--gc-sections",
|
||||||
|
"-lc -lm",
|
||||||
|
"-D DEBUG=1",
|
||||||
|
"-D SERIAL_BAUD_RATE=9600",
|
||||||
|
],
|
||||||
),
|
),
|
||||||
("lib_deps", ["574"]),
|
("lib_install", ["574"]),
|
||||||
("monitor_speed", 9600),
|
("monitor_speed", 9600),
|
||||||
("custom_monitor_speed", "115200"),
|
("custom_monitor_speed", "115200"),
|
||||||
|
("lib_deps", ["574"]),
|
||||||
("lib_ignore", ["LibIgnoreCustom"]),
|
("lib_ignore", ["LibIgnoreCustom"]),
|
||||||
("custom_builtin_option", "release"),
|
("custom_builtin_option", "release"),
|
||||||
]
|
]
|
||||||
@ -396,6 +418,7 @@ def test_items(config):
|
|||||||
"--help",
|
"--help",
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
("src_filter", ["-<*>", "+<a>", "+<b> +<c>"]),
|
||||||
("monitor_speed", 9600),
|
("monitor_speed", 9600),
|
||||||
("custom_monitor_speed", "115200"),
|
("custom_monitor_speed", "115200"),
|
||||||
("lib_deps", ["Lib1", "Lib2"]),
|
("lib_deps", ["Lib1", "Lib2"]),
|
||||||
@ -496,10 +519,10 @@ def test_dump(tmpdir_factory):
|
|||||||
(
|
(
|
||||||
"platformio",
|
"platformio",
|
||||||
[
|
[
|
||||||
|
("env_default", ["base", "extra_2"]),
|
||||||
("src_dir", "${custom.src_dir}"),
|
("src_dir", "${custom.src_dir}"),
|
||||||
("build_dir", "${custom.build_dir}"),
|
("build_dir", "${custom.build_dir}"),
|
||||||
("extra_configs", ["extra_envs.ini", "extra_debug.ini"]),
|
("extra_configs", ["extra_envs.ini", "extra_debug.ini"]),
|
||||||
("default_envs", ["base", "extra_2"]),
|
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
|
Reference in New Issue
Block a user