Recognize .pio_version directive (integer arguments only)
This commit is contained in:
parent
be66c02eb3
commit
a8fa218e45
3 changed files with 25 additions and 1 deletions
|
|
@ -58,6 +58,8 @@ class Program: # pylint: disable=too-few-public-methods
|
|||
wrap = None
|
||||
wrap_target = None
|
||||
offset = -1
|
||||
pio_version = 0
|
||||
|
||||
for i, line in enumerate(text_program.split("\n")):
|
||||
line = line.strip()
|
||||
if not line:
|
||||
|
|
@ -68,6 +70,8 @@ class Program: # pylint: disable=too-few-public-methods
|
|||
if program_name:
|
||||
raise RuntimeError("Multiple programs not supported")
|
||||
program_name = line.split()[1]
|
||||
elif line.startswith(".pio_version"):
|
||||
pio_version = int(line.split()[1], 0)
|
||||
elif line.startswith(".origin"):
|
||||
offset = int(line.split()[1], 0)
|
||||
elif line.startswith(".wrap_target"):
|
||||
|
|
@ -247,6 +251,9 @@ class Program: # pylint: disable=too-few-public-methods
|
|||
if offset != -1:
|
||||
self.pio_kwargs["offset"] = offset
|
||||
|
||||
if pio_version != 0:
|
||||
self.pio_kwargs["pio_version"] = pio_version
|
||||
|
||||
if sideset_count != 0:
|
||||
self.pio_kwargs["sideset_pin_count"] = sideset_count
|
||||
|
||||
|
|
|
|||
|
|
@ -45,4 +45,6 @@ def assert_assembly_fails(
|
|||
|
||||
def assert_pio_kwargs(source: str, **kw: Any) -> None:
|
||||
program = adafruit_pioasm.Program(source)
|
||||
assert kw == program.pio_kwargs
|
||||
assert (
|
||||
kw == program.pio_kwargs
|
||||
), f"Assembling {source!r}: Expected {kw}, got {program.pio_kwargs}"
|
||||
|
|
|
|||
15
tests/test_version.py
Normal file
15
tests/test_version.py
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
# SPDX-FileCopyrightText: 2024 Jeff Epler, written for Adafruit Industries
|
||||
#
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
"""
|
||||
Tests version dependent instructions
|
||||
"""
|
||||
|
||||
from pytest_helpers import assert_pio_kwargs, assert_assembly_fails
|
||||
|
||||
|
||||
def test_version() -> None:
|
||||
assert_pio_kwargs(".pio_version 0", sideset_enable=0)
|
||||
assert_pio_kwargs(".pio_version 1", pio_version=1, sideset_enable=0)
|
||||
assert_assembly_fails(".pio_version muffin", errtype=ValueError)
|
||||
Loading…
Reference in a new issue