[PATCH v3 9/9] test: Add pytest suite for NVMEM framework

Oleksij Rempel o.rempel at pengutronix.de
Tue Jun 17 01:17:24 PDT 2025


On Tue, Jun 17, 2025 at 10:03:08AM +0200, Sascha Hauer wrote:
> On Thu, Jun 12, 2025 at 08:58:12AM +0200, Oleksij Rempel wrote:
> > Introduce test_nvmem.py, a pytest-based suite for
> > validating Barebox's NVMEM framework and shell commands.
> > It uses pytest-labgrid for target interaction.
> > 
> > Tests cover:
> > 
> > - nvmem command: Listing, dynamic rmem creation (-c, -v), parameter
> >   validation, help.
> > 
> > - CDEV operations (/dev/rmemX): md/mw for read/write with various access
> >   sizes (byte, word, long), byte swapping (-x), string/numerical data,
> >   and wrapped md output.
> > 
> > - Protection: protect/unprotect commands, including writes to
> >   protected/unprotected areas, out-of-bounds protection attempts, and
> > merging of overlapping protected ranges.
> > 
> > Includes helpers for parsing md output and checks command return
> > codes and data integrity. A session-wide fixture skips tests if
> > essential related CONFIGs are disabled.
> > 
> > Signed-off-by: Oleksij Rempel <o.rempel at pengutronix.de>
> > ---
> >  test/py/test_nvmem.py | 1012 +++++++++++++++++++++++++++++++++++++++++
> >  1 file changed, 1012 insertions(+)
> >  create mode 100644 test/py/test_nvmem.py
> > 
> > diff --git a/test/py/test_nvmem.py b/test/py/test_nvmem.py
> > new file mode 100644
> > index 000000000000..fdb3c8eb6022
> > --- /dev/null
> > +++ b/test/py/test_nvmem.py
> > @@ -0,0 +1,1012 @@
> > +import pytest
> > +import re
> > +
> > +# --- Essential Configuration Check ---
> > +
> > +# This list should contain the CONFIG strings for all commands and features
> > +# that are absolutely essential for the NVMEM test suite to run.
> > +ESSENTIAL_CONFIGS = [
> > +    "CONFIG_CMD_NVMEM",       # For the 'nvmem' command itself
> > +    "CONFIG_CMD_MD",          # For the 'md' (memory display) command
> > +    "CONFIG_CMD_MW",          # For the 'mw' (memory write) command
> > +    "CONFIG_CMD_FLASH",       # For 'protect' and 'unprotect' commands
> > +    "CONFIG_NVMEM_RMEM",      # For creating dynamic rmem NVMEM devices
> > +    "CONFIG_FS_DEVFS"         # For /dev/ device character file paths
> > +]
> 
> There doesn't seem to be any config with this combination of options, so
> I assume this test will never be executed.
> 
> Specifically CONFIG_CMD_NVMEM is disabled in all defconfigs. It's a good
> thing for coverage to have at least one config with this option enabled,
> could you add it to multi_v8_defconfig?

Ack, and for sandbox. I was testing it on sandbox.

-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |



More information about the barebox mailing list