test/py: memtest: Fix test for non-trivial parameters

When using non-trivial values for parameters for this test it
will cause a spurious failure as the test passes a decimal value
to the mtest command which will interpret it as hexadecimal and
result in failure as below.

test/py/tests/test_memtest.py:66: in test_memtest_ddr
    assert expected_response in response
E   AssertionError: assert 'Tested 16 iteration(s) with 0 errors.' in 'Refusing to do empty test\r\nmtest - simple RAM read/write test\r\n\r\nUsage:\r\nmtest [start [end [pattern [iterations]]]]'
----------------------------- Captured stdout call -----------------------------
U-Boot> mtest 134217728 0x8001000 90 0x10
Refusing to do empty test
mtest - simple RAM read/write test
Usage:
mtest [start [end [pattern [iterations]]]]

The fix is to ensure that all the parameters to the mtest command are
passed as hexadecimal values.

Fixes: 22efc1cf27 ("test/py: memtest: Add tests for mtest command")
Signed-off-by: Andrew Goodbody <andrew.goodbody@linaro.org>
Reviewed-by: Love Kumar <love.kumar@amd.com>
This commit is contained in:
Andrew Goodbody 2025-03-28 16:30:37 +00:00 committed by Tom Rini
parent 60218f07f3
commit 3c6a3e99b3

View file

@ -29,12 +29,12 @@ def get_memtest_env(ubman):
if not f:
pytest.skip("memtest is not enabled!")
else:
start = f.get("start_addr", 0x0)
size = f.get("size", 0x1000)
pattern = f.get("pattern", 0x0)
start = hex(f.get("start_addr", 0x0))
size = hex(f.get("size", 0x1000))
pattern = hex(f.get("pattern", 0x0))
iteration = f.get("iteration", 2)
timeout = f.get("timeout", 50000)
end = hex(int(start) + int(size))
end = hex(int(start, 16) + int(size, 16))
return start, end, pattern, iteration, timeout
@pytest.mark.buildconfigspec("cmd_memtest")