mirror of
https://github.com/platformio/platformio-core.git
synced 2025-07-30 01:57:13 +02:00
Fix wrong line number for INO file when `#warning
` directive is used // Resolve #742
This commit is contained in:
@ -78,8 +78,12 @@ PlatformIO 3.0
|
|||||||
(`issue #522 <https://github.com/platformio/platformio/issues/522>`_)
|
(`issue #522 <https://github.com/platformio/platformio/issues/522>`_)
|
||||||
* Warn about unknown options in project configuration file ``platformio.ini``
|
* Warn about unknown options in project configuration file ``platformio.ini``
|
||||||
(`issue #740 <https://github.com/platformio/platformio/issues/740>`_)
|
(`issue #740 <https://github.com/platformio/platformio/issues/740>`_)
|
||||||
|
* Fixed wrong line number for INO file when ``#warning`` directive is used
|
||||||
|
(`issue #742 <https://github.com/platformio/platformio/issues/742>`_)
|
||||||
* Stopped supporting Python 2.6
|
* Stopped supporting Python 2.6
|
||||||
|
|
||||||
|
------
|
||||||
|
|
||||||
* Development platform `Atmel SAM <https://github.com/platformio/platform-atmelsam>`__
|
* Development platform `Atmel SAM <https://github.com/platformio/platform-atmelsam>`__
|
||||||
|
|
||||||
+ Fixed missing analog ports for Adafruit Feather M0 Bluefruit
|
+ Fixed missing analog ports for Adafruit Feather M0 Bluefruit
|
||||||
|
@ -18,7 +18,7 @@ from platformio.commands.boards import cli as cmd_boards
|
|||||||
from platformio.commands.platform import platform_search as cmd_platform_search
|
from platformio.commands.platform import platform_search as cmd_platform_search
|
||||||
|
|
||||||
|
|
||||||
def test_board_json_output(platformio_setup, clirunner, validate_cliresult):
|
def test_board_json_output(clirunner, validate_cliresult):
|
||||||
result = clirunner.invoke(cmd_boards, ["mbed", "--json-output"])
|
result = clirunner.invoke(cmd_boards, ["mbed", "--json-output"])
|
||||||
validate_cliresult(result)
|
validate_cliresult(result)
|
||||||
boards = json.loads(result.output)
|
boards = json.loads(result.output)
|
||||||
@ -26,13 +26,13 @@ def test_board_json_output(platformio_setup, clirunner, validate_cliresult):
|
|||||||
assert any(["mbed" in b['frameworks'] for b in boards])
|
assert any(["mbed" in b['frameworks'] for b in boards])
|
||||||
|
|
||||||
|
|
||||||
def test_board_raw_output(platformio_setup, clirunner, validate_cliresult):
|
def test_board_raw_output(clirunner, validate_cliresult):
|
||||||
result = clirunner.invoke(cmd_boards, ["energia"])
|
result = clirunner.invoke(cmd_boards, ["energia"])
|
||||||
validate_cliresult(result)
|
validate_cliresult(result)
|
||||||
assert "titiva" in result.output
|
assert "titiva" in result.output
|
||||||
|
|
||||||
|
|
||||||
def test_board_options(platformio_setup, clirunner, validate_cliresult):
|
def test_board_options(clirunner, validate_cliresult):
|
||||||
required_opts = set(
|
required_opts = set(
|
||||||
["fcpu", "frameworks", "id", "mcu", "name", "platform"])
|
["fcpu", "frameworks", "id", "mcu", "name", "platform"])
|
||||||
|
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
from platformio.commands.update import cli as cmd_update
|
from platformio.commands.update import cli as cmd_update
|
||||||
|
|
||||||
|
|
||||||
def test_update(platformio_setup, clirunner, validate_cliresult):
|
def test_update(clirunner, validate_cliresult):
|
||||||
matches = (
|
matches = (
|
||||||
"Platform Manager",
|
"Platform Manager",
|
||||||
"Up-to-date",
|
"Up-to-date",
|
||||||
|
@ -21,21 +21,6 @@ from click.testing import CliRunner
|
|||||||
requests.packages.urllib3.disable_warnings()
|
requests.packages.urllib3.disable_warnings()
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture(scope="session")
|
|
||||||
def platformio_setup(request):
|
|
||||||
pioenvvars = ("ENABLE_TELEMETRY", )
|
|
||||||
for v in pioenvvars:
|
|
||||||
os.environ["PLATFORMIO_SETTING_%s" % v] = "No"
|
|
||||||
|
|
||||||
def platformio_teardown():
|
|
||||||
for v in pioenvvars:
|
|
||||||
_name = "PLATFORMIO_SETTING_%s" % v
|
|
||||||
if _name in os.environ:
|
|
||||||
del os.environ[_name]
|
|
||||||
|
|
||||||
request.addfinalizer(platformio_teardown)
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture(scope="module")
|
@pytest.fixture(scope="module")
|
||||||
def clirunner():
|
def clirunner():
|
||||||
return CliRunner()
|
return CliRunner()
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
struct MyItem {
|
struct MyItem {
|
||||||
byte foo[50];
|
byte foo[50];
|
||||||
int bar;
|
int bar;
|
||||||
@ -7,8 +6,12 @@ struct MyItem {
|
|||||||
void setup() {
|
void setup() {
|
||||||
struct MyItem item1;
|
struct MyItem item1;
|
||||||
myFunction(&item1);
|
myFunction(&item1);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#warning "Line number is 13"
|
||||||
|
|
||||||
void loop() {
|
void loop() {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
void setup() {
|
void setup() {
|
||||||
barFunc();
|
barFunc();
|
||||||
fooFunc();
|
fooFunc();
|
||||||
|
@ -19,6 +19,7 @@ from os.path import dirname, getsize, isdir, isfile, join, normpath
|
|||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from platformio import util
|
from platformio import util
|
||||||
|
from platformio.commands.run import cli as cmd_run
|
||||||
|
|
||||||
|
|
||||||
def pytest_generate_tests(metafunc):
|
def pytest_generate_tests(metafunc):
|
||||||
@ -34,16 +35,12 @@ def pytest_generate_tests(metafunc):
|
|||||||
metafunc.parametrize("pioproject_dir", project_dirs)
|
metafunc.parametrize("pioproject_dir", project_dirs)
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.examples
|
def test_run(clirunner, validate_cliresult, pioproject_dir):
|
||||||
def test_run(platformio_setup, pioproject_dir):
|
|
||||||
if isdir(join(pioproject_dir, ".pioenvs")):
|
if isdir(join(pioproject_dir, ".pioenvs")):
|
||||||
util.rmtree_(join(pioproject_dir, ".pioenvs"))
|
util.rmtree_(join(pioproject_dir, ".pioenvs"))
|
||||||
|
|
||||||
result = util.exec_command(
|
result = clirunner.invoke(cmd_run, ["-d", pioproject_dir])
|
||||||
["platformio", "--force", "run", "--project-dir", pioproject_dir]
|
validate_cliresult(result)
|
||||||
)
|
|
||||||
if result['returncode'] != 0:
|
|
||||||
pytest.fail(result)
|
|
||||||
|
|
||||||
# check .elf file
|
# check .elf file
|
||||||
pioenvs_dir = join(pioproject_dir, ".pioenvs")
|
pioenvs_dir = join(pioproject_dir, ".pioenvs")
|
||||||
|
@ -15,27 +15,30 @@
|
|||||||
from os import listdir
|
from os import listdir
|
||||||
from os.path import dirname, isdir, join, normpath
|
from os.path import dirname, isdir, join, normpath
|
||||||
|
|
||||||
import pytest
|
from platformio.commands.ci import cli as cmd_ci
|
||||||
|
|
||||||
from platformio import util
|
INOTEST_DIR = normpath(join(dirname(__file__), "ino2cpp"))
|
||||||
|
|
||||||
|
|
||||||
def pytest_generate_tests(metafunc):
|
def pytest_generate_tests(metafunc):
|
||||||
if "piotest_dir" not in metafunc.fixturenames:
|
if "piotest_dir" not in metafunc.fixturenames:
|
||||||
return
|
return
|
||||||
test_dir = normpath(join(dirname(__file__), "ino2cpp"))
|
|
||||||
test_dirs = []
|
test_dirs = []
|
||||||
for name in listdir(test_dir):
|
for name in listdir(INOTEST_DIR):
|
||||||
if isdir(join(test_dir, name)):
|
if isdir(join(INOTEST_DIR, name)):
|
||||||
test_dirs.append(join(test_dir, name))
|
test_dirs.append(join(INOTEST_DIR, name))
|
||||||
test_dirs.sort()
|
test_dirs.sort()
|
||||||
metafunc.parametrize("piotest_dir", test_dirs)
|
metafunc.parametrize("piotest_dir", test_dirs)
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.examples
|
def test_example(clirunner, validate_cliresult, piotest_dir):
|
||||||
def test_ci(platformio_setup, piotest_dir):
|
result = clirunner.invoke(cmd_ci, [piotest_dir, "-b", "uno"])
|
||||||
result = util.exec_command(
|
validate_cliresult(result)
|
||||||
["platformio", "--force", "ci", piotest_dir, "-b", "uno"]
|
|
||||||
)
|
|
||||||
if result['returncode'] != 0:
|
def test_warning_line(clirunner, validate_cliresult):
|
||||||
pytest.fail(result)
|
result = clirunner.invoke(cmd_ci,
|
||||||
|
[join(INOTEST_DIR, "basic"), "-b", "uno"])
|
||||||
|
validate_cliresult(result)
|
||||||
|
assert ('basic.ino:13:2: warning: #warning "Line number is 13"' in
|
||||||
|
result.output)
|
||||||
|
Reference in New Issue
Block a user