Hi Love, On 2026-05-05T07:40:25, Love Kumar <[email protected]> wrote: > test/py: nand: Add tests for NAND flash device > > Add tests for nand commands to test various NAND flash operations such > as erase, write and read. > > Signed-off-by: Love Kumar <[email protected]> > > doc/develop/pytest/test_nand.rst | 8 ++ > test/py/tests/test_nand.py | 237 > +++++++++++++++++++++++++++++++++++++++ > 2 files changed, 245 insertions(+)
Reviewed-by: Simon Glass <[email protected]> > diff --git a/test/py/tests/test_nand.py b/test/py/tests/test_nand.py > @@ -0,0 +1,237 @@ > + output = ubman.run_command('crc32 %x %x' % (addr + total_size, size)) > + m = re.search('==> (.+?)', output) > + if not m: > + pytest.fail('CRC32 failed') > + expected_crc32 = m.group(1) This regex is missing the $ anchor that test_spi.py uses. With non-greedy .+? and no terminator, group(1) is just the first character after '==> ', so expected_crc32 ends up as a single hex digit. The later 'assert expected_crc32 in output' then matches almost any output and the test never really checks the CRC. Please use '==> (.+?)$' (same fix needed in test_nand_write_twice). > diff --git a/test/py/tests/test_nand.py b/test/py/tests/test_nand.py > @@ -0,0 +1,237 @@ > + output = ubman.run_command('nand bad') > + if not 'bad blocks:' in output: > + pytest.skip('No NAND device available') > + > + count = 0 > + m = re.search(r'bad blocks:([\n\s\s\d\w]*)', output) > + if m: > + print(m.group(1)) > + var = m.group(1).split() > + count = len(var) > + print('bad blocks count= ' + str(count)) Using a 'nand bad' miss as the "no device" signal seems wrong; you already detected the device from 'nand info' above. If 'nand bad' fails to print the header, that's a different problem and should not be silently skipped The bare print() calls look like leftover debug output? > diff --git a/test/py/tests/test_nand.py b/test/py/tests/test_nand.py > @@ -0,0 +1,237 @@ > + expected_erase = '100% complete.' > + with ubman.temporary_timeout(timeout): > + output = ubman.run_command( > + 'nand erase.spread 0 ' + str(hex(total_size)) > + ) > + assert expected_erase in output Please use %x formatting like everywhere else in the file rather than str(hex(...)). We should use f-strings in most cases. > diff --git a/doc/develop/pytest/test_nand.rst > b/doc/develop/pytest/test_nand.rst > @@ -0,0 +1,8 @@ > +test_nand > +========= > + > +.. automodule:: test_nand > + :synopsis: > + :member-order: bysource > + :members: > + :undoc-members: Please add the SPDX-License-Identifier: GPL-2.0+ comment at the top, matching test_fit.rst. Regards, Simon

