pinctrl: Add pinctrl tests
This add pinctrl script tests to validate auto generated files and add GH workflow which will perform CI tests. Signed-off-by: Gerson Fernando Budke <nandojve@gmail.com>
This commit is contained in:
parent
9597144ca1
commit
527de70432
|
@ -0,0 +1,35 @@
|
|||
name: Test
|
||||
|
||||
on: [push, pull_request]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
python-version:
|
||||
- "3.7"
|
||||
- "3.8"
|
||||
- "3.9"
|
||||
- "3.10"
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
- name: Set up Python
|
||||
uses: actions/setup-python@v1
|
||||
with:
|
||||
python-version: ${{ matrix.python-version }}
|
||||
- name: install dependencies
|
||||
run: |
|
||||
pip3 install -r scripts/requirements.txt
|
||||
pip3 install -r scripts/requirements-test.txt
|
||||
pip3 install -r scripts/requirements-dev.txt
|
||||
- name: lint scripts
|
||||
run: flake8 --config scripts/.flake8 scripts
|
||||
- name: run script tests
|
||||
run: |
|
||||
pytest scripts/tests \
|
||||
--cov=scripts \
|
||||
--cov-config scripts/.coveragerc \
|
||||
--cov-report term \
|
||||
-vv
|
|
@ -0,0 +1,8 @@
|
|||
# editors
|
||||
.vscode
|
||||
|
||||
# python
|
||||
.venv
|
||||
venv
|
||||
__pycache__
|
||||
.coverage
|
|
@ -0,0 +1,8 @@
|
|||
[run]
|
||||
omit =
|
||||
*/tests/*
|
||||
|
||||
[report]
|
||||
exclude_lines =
|
||||
pragma: no cover
|
||||
if __name__ == .__main__.:
|
|
@ -0,0 +1,2 @@
|
|||
[flake8]
|
||||
max-line-length = 88
|
|
@ -20,3 +20,18 @@ Such development tools can be installed using:
|
|||
```
|
||||
pip install -r scripts/requirements-dev.txt
|
||||
```
|
||||
|
||||
# Tests
|
||||
|
||||
Before running tests make sure to have testing dependencies installed. They
|
||||
can be installed by running:
|
||||
|
||||
```
|
||||
pip install -r scripts/requirements-test.txt
|
||||
```
|
||||
|
||||
Tests can be executed by running:
|
||||
|
||||
```
|
||||
pytest
|
||||
```
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
pytest
|
||||
pytest-cov
|
|
@ -0,0 +1,18 @@
|
|||
# Copyright (c) 2021 Teslabs Engineering S.L.
|
||||
# Copyright (c) 2022 Gerson Fernando Budke
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
from pathlib import Path
|
||||
import sys
|
||||
|
||||
import pytest
|
||||
|
||||
|
||||
_SCRIPT_DIR = Path(__file__).absolute().parent
|
||||
sys.path.insert(0, str(_SCRIPT_DIR.parents[1]))
|
||||
|
||||
|
||||
@pytest.fixture()
|
||||
def data():
|
||||
"""Pytest fixture to load test data files"""
|
||||
return _SCRIPT_DIR / "data"
|
|
@ -0,0 +1,65 @@
|
|||
# Copyright (c) 2022 Gerson Fernando Budke
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
model: atmel,sam
|
||||
|
||||
family: sam
|
||||
|
||||
map: ATMEL_SAM_XXX
|
||||
|
||||
series: [a, b, c]
|
||||
|
||||
variants:
|
||||
- pincode: d
|
||||
series: [a]
|
||||
- pincode: e
|
||||
series: [a, b]
|
||||
exception: y
|
||||
- pincode: f
|
||||
series: [a, b, c]
|
||||
|
||||
pins:
|
||||
pa00:
|
||||
pincodes: [d, e, f]
|
||||
periph:
|
||||
- [a, per0, sig0, [a]]
|
||||
- [b, per1, sig0, [b]]
|
||||
- [c, per2, sig0, [c]]
|
||||
pb0:
|
||||
pincodes: [d, e, f]
|
||||
periph:
|
||||
- [d, per3, sig1, [a, c]]
|
||||
- [e, per4, sig1]
|
||||
- [f, per5, sig1, [e]]
|
||||
pc0:
|
||||
pincodes: [d, e]
|
||||
periph:
|
||||
- [g, per6, sig2, [d, e]]
|
||||
- [h, per7, sig2, [d]]
|
||||
- [i, per8, sig2, [e, b]]
|
||||
pd31:
|
||||
pincodes: [d]
|
||||
periph:
|
||||
- [a, per9, sig3]
|
||||
- [b, per10, sig3, [d]]
|
||||
- [c, per11, sig3]
|
||||
pe15:
|
||||
pincodes: [f]
|
||||
periph:
|
||||
- [d, per12, sig4]
|
||||
- [e, per13, sig4, [a, b]]
|
||||
- [f, per14, sig4]
|
||||
pa01:
|
||||
pincodes: [d, e, f]
|
||||
pa02:
|
||||
pincodes: [d, f]
|
||||
extra:
|
||||
- [x, extra_per, sig_extra]
|
||||
system:
|
||||
- [s, jtag, tck]
|
||||
pa03:
|
||||
pincodes: [e]
|
||||
lpm:
|
||||
- [lpm, lpm_per, sig_lpm]
|
||||
pa04:
|
||||
pincodes: [d, e, f]
|
|
@ -0,0 +1,71 @@
|
|||
/*
|
||||
* Autogenerated file
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
#include <dt-bindings/pinctrl/atmel_sam_pinctrl.h>
|
||||
|
||||
/* pa0_gpio */
|
||||
#define PA0_GPIO \
|
||||
ATMEL_SAM_XXX(a, 0, gpio, gpio)
|
||||
|
||||
/* pa0b_per1_sig0 */
|
||||
#define PA0B_PER1_SIG0 \
|
||||
ATMEL_SAM_XXX(a, 0, b, periph)
|
||||
|
||||
/* pa0c_per2_sig0 */
|
||||
#define PA0C_PER2_SIG0 \
|
||||
ATMEL_SAM_XXX(a, 0, c, periph)
|
||||
|
||||
/* pa1_gpio */
|
||||
#define PA1_GPIO \
|
||||
ATMEL_SAM_XXX(a, 1, gpio, gpio)
|
||||
|
||||
/* pa2_gpio */
|
||||
#define PA2_GPIO \
|
||||
ATMEL_SAM_XXX(a, 2, gpio, gpio)
|
||||
|
||||
/* pa2x_extra_per_sig_extra */
|
||||
#define PA2X_EXTRA_PER_SIG_EXTRA \
|
||||
ATMEL_SAM_XXX(a, 2, x, extra)
|
||||
|
||||
/* pa2s_jtag_tck */
|
||||
#define PA2S_JTAG_TCK \
|
||||
ATMEL_SAM_XXX(a, 2, s, system)
|
||||
|
||||
/* pa4_gpio */
|
||||
#define PA4_GPIO \
|
||||
ATMEL_SAM_XXX(a, 4, gpio, gpio)
|
||||
|
||||
/* pb0_gpio */
|
||||
#define PB0_GPIO \
|
||||
ATMEL_SAM_XXX(b, 0, gpio, gpio)
|
||||
|
||||
/* pb0e_per4_sig1 */
|
||||
#define PB0E_PER4_SIG1 \
|
||||
ATMEL_SAM_XXX(b, 0, e, periph)
|
||||
|
||||
/* pb0f_per5_sig1 */
|
||||
#define PB0F_PER5_SIG1 \
|
||||
ATMEL_SAM_XXX(b, 0, f, periph)
|
||||
|
||||
/* pc0_gpio */
|
||||
#define PC0_GPIO \
|
||||
ATMEL_SAM_XXX(c, 0, gpio, gpio)
|
||||
|
||||
/* pc0i_per8_sig2 */
|
||||
#define PC0I_PER8_SIG2 \
|
||||
ATMEL_SAM_XXX(c, 0, i, periph)
|
||||
|
||||
/* pd31_gpio */
|
||||
#define PD31_GPIO \
|
||||
ATMEL_SAM_XXX(d, 31, gpio, gpio)
|
||||
|
||||
/* pd31a_per9_sig3 */
|
||||
#define PD31A_PER9_SIG3 \
|
||||
ATMEL_SAM_XXX(d, 31, a, periph)
|
||||
|
||||
/* pd31c_per11_sig3 */
|
||||
#define PD31C_PER11_SIG3 \
|
||||
ATMEL_SAM_XXX(d, 31, c, periph)
|
|
@ -0,0 +1,58 @@
|
|||
/*
|
||||
* Autogenerated file
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
#include <dt-bindings/pinctrl/atmel_sam_pinctrl.h>
|
||||
|
||||
/*
|
||||
* WARNING: this variant has package exception.
|
||||
*
|
||||
* Read datasheet topics related to I/O Multiplexing and Considerations or
|
||||
* Peripheral Signal Multiplexing on I/O Lines for more information.
|
||||
*/
|
||||
|
||||
/* pa0_gpio */
|
||||
#define PA0_GPIO \
|
||||
ATMEL_SAM_XXX(a, 0, gpio, gpio)
|
||||
|
||||
/* pa0b_per1_sig0 */
|
||||
#define PA0B_PER1_SIG0 \
|
||||
ATMEL_SAM_XXX(a, 0, b, periph)
|
||||
|
||||
/* pa0c_per2_sig0 */
|
||||
#define PA0C_PER2_SIG0 \
|
||||
ATMEL_SAM_XXX(a, 0, c, periph)
|
||||
|
||||
/* pa1_gpio */
|
||||
#define PA1_GPIO \
|
||||
ATMEL_SAM_XXX(a, 1, gpio, gpio)
|
||||
|
||||
/* pa3_gpio */
|
||||
#define PA3_GPIO \
|
||||
ATMEL_SAM_XXX(a, 3, gpio, gpio)
|
||||
|
||||
/* pa3_lpm */
|
||||
#define PA3_LPM \
|
||||
ATMEL_SAM_XXX(a, 3, lpm, lpm)
|
||||
|
||||
/* pa4_gpio */
|
||||
#define PA4_GPIO \
|
||||
ATMEL_SAM_XXX(a, 4, gpio, gpio)
|
||||
|
||||
/* pb0_gpio */
|
||||
#define PB0_GPIO \
|
||||
ATMEL_SAM_XXX(b, 0, gpio, gpio)
|
||||
|
||||
/* pb0e_per4_sig1 */
|
||||
#define PB0E_PER4_SIG1 \
|
||||
ATMEL_SAM_XXX(b, 0, e, periph)
|
||||
|
||||
/* pc0_gpio */
|
||||
#define PC0_GPIO \
|
||||
ATMEL_SAM_XXX(c, 0, gpio, gpio)
|
||||
|
||||
/* pc0h_per7_sig2 */
|
||||
#define PC0H_PER7_SIG2 \
|
||||
ATMEL_SAM_XXX(c, 0, h, periph)
|
|
@ -0,0 +1,63 @@
|
|||
/*
|
||||
* Autogenerated file
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
#include <dt-bindings/pinctrl/atmel_sam_pinctrl.h>
|
||||
|
||||
/* pa0_gpio */
|
||||
#define PA0_GPIO \
|
||||
ATMEL_SAM_XXX(a, 0, gpio, gpio)
|
||||
|
||||
/* pa0b_per1_sig0 */
|
||||
#define PA0B_PER1_SIG0 \
|
||||
ATMEL_SAM_XXX(a, 0, b, periph)
|
||||
|
||||
/* pa0c_per2_sig0 */
|
||||
#define PA0C_PER2_SIG0 \
|
||||
ATMEL_SAM_XXX(a, 0, c, periph)
|
||||
|
||||
/* pa1_gpio */
|
||||
#define PA1_GPIO \
|
||||
ATMEL_SAM_XXX(a, 1, gpio, gpio)
|
||||
|
||||
/* pa2_gpio */
|
||||
#define PA2_GPIO \
|
||||
ATMEL_SAM_XXX(a, 2, gpio, gpio)
|
||||
|
||||
/* pa2x_extra_per_sig_extra */
|
||||
#define PA2X_EXTRA_PER_SIG_EXTRA \
|
||||
ATMEL_SAM_XXX(a, 2, x, extra)
|
||||
|
||||
/* pa2s_jtag_tck */
|
||||
#define PA2S_JTAG_TCK \
|
||||
ATMEL_SAM_XXX(a, 2, s, system)
|
||||
|
||||
/* pa4_gpio */
|
||||
#define PA4_GPIO \
|
||||
ATMEL_SAM_XXX(a, 4, gpio, gpio)
|
||||
|
||||
/* pb0_gpio */
|
||||
#define PB0_GPIO \
|
||||
ATMEL_SAM_XXX(b, 0, gpio, gpio)
|
||||
|
||||
/* pb0e_per4_sig1 */
|
||||
#define PB0E_PER4_SIG1 \
|
||||
ATMEL_SAM_XXX(b, 0, e, periph)
|
||||
|
||||
/* pb0f_per5_sig1 */
|
||||
#define PB0F_PER5_SIG1 \
|
||||
ATMEL_SAM_XXX(b, 0, f, periph)
|
||||
|
||||
/* pe15_gpio */
|
||||
#define PE15_GPIO \
|
||||
ATMEL_SAM_XXX(e, 15, gpio, gpio)
|
||||
|
||||
/* pe15d_per12_sig4 */
|
||||
#define PE15D_PER12_SIG4 \
|
||||
ATMEL_SAM_XXX(e, 15, d, periph)
|
||||
|
||||
/* pe15f_per14_sig4 */
|
||||
#define PE15F_PER14_SIG4 \
|
||||
ATMEL_SAM_XXX(e, 15, f, periph)
|
|
@ -0,0 +1,62 @@
|
|||
/*
|
||||
* Autogenerated file
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
#include <dt-bindings/pinctrl/atmel_sam_pinctrl.h>
|
||||
|
||||
/*
|
||||
* WARNING: this variant has package exception.
|
||||
*
|
||||
* Read datasheet topics related to I/O Multiplexing and Considerations or
|
||||
* Peripheral Signal Multiplexing on I/O Lines for more information.
|
||||
*/
|
||||
|
||||
/* pa0_gpio */
|
||||
#define PA0_GPIO \
|
||||
ATMEL_SAM_XXX(a, 0, gpio, gpio)
|
||||
|
||||
/* pa0a_per0_sig0 */
|
||||
#define PA0A_PER0_SIG0 \
|
||||
ATMEL_SAM_XXX(a, 0, a, periph)
|
||||
|
||||
/* pa0c_per2_sig0 */
|
||||
#define PA0C_PER2_SIG0 \
|
||||
ATMEL_SAM_XXX(a, 0, c, periph)
|
||||
|
||||
/* pa1_gpio */
|
||||
#define PA1_GPIO \
|
||||
ATMEL_SAM_XXX(a, 1, gpio, gpio)
|
||||
|
||||
/* pa3_gpio */
|
||||
#define PA3_GPIO \
|
||||
ATMEL_SAM_XXX(a, 3, gpio, gpio)
|
||||
|
||||
/* pa3_lpm */
|
||||
#define PA3_LPM \
|
||||
ATMEL_SAM_XXX(a, 3, lpm, lpm)
|
||||
|
||||
/* pa4_gpio */
|
||||
#define PA4_GPIO \
|
||||
ATMEL_SAM_XXX(a, 4, gpio, gpio)
|
||||
|
||||
/* pb0_gpio */
|
||||
#define PB0_GPIO \
|
||||
ATMEL_SAM_XXX(b, 0, gpio, gpio)
|
||||
|
||||
/* pb0d_per3_sig1 */
|
||||
#define PB0D_PER3_SIG1 \
|
||||
ATMEL_SAM_XXX(b, 0, d, periph)
|
||||
|
||||
/* pb0e_per4_sig1 */
|
||||
#define PB0E_PER4_SIG1 \
|
||||
ATMEL_SAM_XXX(b, 0, e, periph)
|
||||
|
||||
/* pc0_gpio */
|
||||
#define PC0_GPIO \
|
||||
ATMEL_SAM_XXX(c, 0, gpio, gpio)
|
||||
|
||||
/* pc0h_per7_sig2 */
|
||||
#define PC0H_PER7_SIG2 \
|
||||
ATMEL_SAM_XXX(c, 0, h, periph)
|
|
@ -0,0 +1,67 @@
|
|||
/*
|
||||
* Autogenerated file
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
#include <dt-bindings/pinctrl/atmel_sam_pinctrl.h>
|
||||
|
||||
/* pa0_gpio */
|
||||
#define PA0_GPIO \
|
||||
ATMEL_SAM_XXX(a, 0, gpio, gpio)
|
||||
|
||||
/* pa0a_per0_sig0 */
|
||||
#define PA0A_PER0_SIG0 \
|
||||
ATMEL_SAM_XXX(a, 0, a, periph)
|
||||
|
||||
/* pa0c_per2_sig0 */
|
||||
#define PA0C_PER2_SIG0 \
|
||||
ATMEL_SAM_XXX(a, 0, c, periph)
|
||||
|
||||
/* pa1_gpio */
|
||||
#define PA1_GPIO \
|
||||
ATMEL_SAM_XXX(a, 1, gpio, gpio)
|
||||
|
||||
/* pa2_gpio */
|
||||
#define PA2_GPIO \
|
||||
ATMEL_SAM_XXX(a, 2, gpio, gpio)
|
||||
|
||||
/* pa2x_extra_per_sig_extra */
|
||||
#define PA2X_EXTRA_PER_SIG_EXTRA \
|
||||
ATMEL_SAM_XXX(a, 2, x, extra)
|
||||
|
||||
/* pa2s_jtag_tck */
|
||||
#define PA2S_JTAG_TCK \
|
||||
ATMEL_SAM_XXX(a, 2, s, system)
|
||||
|
||||
/* pa4_gpio */
|
||||
#define PA4_GPIO \
|
||||
ATMEL_SAM_XXX(a, 4, gpio, gpio)
|
||||
|
||||
/* pb0_gpio */
|
||||
#define PB0_GPIO \
|
||||
ATMEL_SAM_XXX(b, 0, gpio, gpio)
|
||||
|
||||
/* pb0d_per3_sig1 */
|
||||
#define PB0D_PER3_SIG1 \
|
||||
ATMEL_SAM_XXX(b, 0, d, periph)
|
||||
|
||||
/* pb0e_per4_sig1 */
|
||||
#define PB0E_PER4_SIG1 \
|
||||
ATMEL_SAM_XXX(b, 0, e, periph)
|
||||
|
||||
/* pb0f_per5_sig1 */
|
||||
#define PB0F_PER5_SIG1 \
|
||||
ATMEL_SAM_XXX(b, 0, f, periph)
|
||||
|
||||
/* pe15_gpio */
|
||||
#define PE15_GPIO \
|
||||
ATMEL_SAM_XXX(e, 15, gpio, gpio)
|
||||
|
||||
/* pe15d_per12_sig4 */
|
||||
#define PE15D_PER12_SIG4 \
|
||||
ATMEL_SAM_XXX(e, 15, d, periph)
|
||||
|
||||
/* pe15f_per14_sig4 */
|
||||
#define PE15F_PER14_SIG4 \
|
||||
ATMEL_SAM_XXX(e, 15, f, periph)
|
|
@ -0,0 +1,67 @@
|
|||
/*
|
||||
* Autogenerated file
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
#include <dt-bindings/pinctrl/atmel_sam_pinctrl.h>
|
||||
|
||||
/* pa0_gpio */
|
||||
#define PA0_GPIO \
|
||||
ATMEL_SAM_XXX(a, 0, gpio, gpio)
|
||||
|
||||
/* pa0a_per0_sig0 */
|
||||
#define PA0A_PER0_SIG0 \
|
||||
ATMEL_SAM_XXX(a, 0, a, periph)
|
||||
|
||||
/* pa0b_per1_sig0 */
|
||||
#define PA0B_PER1_SIG0 \
|
||||
ATMEL_SAM_XXX(a, 0, b, periph)
|
||||
|
||||
/* pa1_gpio */
|
||||
#define PA1_GPIO \
|
||||
ATMEL_SAM_XXX(a, 1, gpio, gpio)
|
||||
|
||||
/* pa2_gpio */
|
||||
#define PA2_GPIO \
|
||||
ATMEL_SAM_XXX(a, 2, gpio, gpio)
|
||||
|
||||
/* pa2x_extra_per_sig_extra */
|
||||
#define PA2X_EXTRA_PER_SIG_EXTRA \
|
||||
ATMEL_SAM_XXX(a, 2, x, extra)
|
||||
|
||||
/* pa2s_jtag_tck */
|
||||
#define PA2S_JTAG_TCK \
|
||||
ATMEL_SAM_XXX(a, 2, s, system)
|
||||
|
||||
/* pa4_gpio */
|
||||
#define PA4_GPIO \
|
||||
ATMEL_SAM_XXX(a, 4, gpio, gpio)
|
||||
|
||||
/* pb0_gpio */
|
||||
#define PB0_GPIO \
|
||||
ATMEL_SAM_XXX(b, 0, gpio, gpio)
|
||||
|
||||
/* pb0e_per4_sig1 */
|
||||
#define PB0E_PER4_SIG1 \
|
||||
ATMEL_SAM_XXX(b, 0, e, periph)
|
||||
|
||||
/* pb0f_per5_sig1 */
|
||||
#define PB0F_PER5_SIG1 \
|
||||
ATMEL_SAM_XXX(b, 0, f, periph)
|
||||
|
||||
/* pe15_gpio */
|
||||
#define PE15_GPIO \
|
||||
ATMEL_SAM_XXX(e, 15, gpio, gpio)
|
||||
|
||||
/* pe15d_per12_sig4 */
|
||||
#define PE15D_PER12_SIG4 \
|
||||
ATMEL_SAM_XXX(e, 15, d, periph)
|
||||
|
||||
/* pe15e_per13_sig4 */
|
||||
#define PE15E_PER13_SIG4 \
|
||||
ATMEL_SAM_XXX(e, 15, e, periph)
|
||||
|
||||
/* pe15f_per14_sig4 */
|
||||
#define PE15F_PER14_SIG4 \
|
||||
ATMEL_SAM_XXX(e, 15, f, periph)
|
|
@ -0,0 +1,29 @@
|
|||
# Copyright (c) 2021 Teslabs Engineering S.L.
|
||||
# Copyright (c) 2022 Gerson Fernando Budke
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
from sampinctrl import main
|
||||
|
||||
|
||||
def test_main(data, tmp_path):
|
||||
"""Test that pinctrl headers are generated correctly."""
|
||||
|
||||
main(data, tmp_path)
|
||||
|
||||
FILES = (
|
||||
"samad-pinctrl.h",
|
||||
"samae-pinctrl.h",
|
||||
"samaf-pinctrl.h",
|
||||
"sambe-pinctrl.h",
|
||||
"sambf-pinctrl.h",
|
||||
"samcf-pinctrl.h",
|
||||
)
|
||||
|
||||
for file in FILES:
|
||||
ref_file = data / file
|
||||
gen_file = tmp_path / file
|
||||
|
||||
assert gen_file.exists()
|
||||
|
||||
with open(ref_file) as ref, open(gen_file) as gen:
|
||||
assert ref.read() == gen.read()
|
Loading…
Reference in New Issue