diff mbox series

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

Message ID 20250328163037.24594-1-andrew.goodbody@linaro.org
State New
Headers show
Series test/py: memtest: Fix test for non-trivial parameters | expand

Commit Message

Andrew Goodbody March 28, 2025, 4:30 p.m. UTC
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: 22efc1cf276c ("test/py: memtest: Add tests for mtest command")
Signed-off-by: Andrew Goodbody <andrew.goodbody@linaro.org>

---

 test/py/tests/test_memtest.py | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

Comments

Love Kumar March 30, 2025, 10:40 a.m. UTC | #1
On 28/03/25 10:00 pm, Andrew Goodbody wrote:
> 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: 22efc1cf276c ("test/py: memtest: Add tests for mtest command")
> Signed-off-by: Andrew Goodbody <andrew.goodbody@linaro.org>
> 
> ---
> 
>   test/py/tests/test_memtest.py | 8 ++++----
>   1 file changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/test/py/tests/test_memtest.py b/test/py/tests/test_memtest.py
> index 0618d96f1be..f03e23db2e4 100644
> --- a/test/py/tests/test_memtest.py
> +++ b/test/py/tests/test_memtest.py
> @@ -29,12 +29,12 @@ def get_memtest_env(u_boot_console):
>       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")

Reviewed-by: Love Kumar <love.kumar@amd.com>
diff mbox series

Patch

diff --git a/test/py/tests/test_memtest.py b/test/py/tests/test_memtest.py
index 0618d96f1be..f03e23db2e4 100644
--- a/test/py/tests/test_memtest.py
+++ b/test/py/tests/test_memtest.py
@@ -29,12 +29,12 @@  def get_memtest_env(u_boot_console):
     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")