[PATCH 0/3] test: Try to deal with some co-dependent tests

Heinrich Schuchardt xypron.glpk at gmx.de
Mon Feb 8 08:25:33 CET 2021


On 2/8/21 5:05 AM, Simon Glass wrote:
> Tests are supposed to be independent. With driver model tests, the
> environment is reset before each test, which ensures that.
>
> With Python tests there is no reset of the board between tests, since we
> want to run all the tests as quickly as possible and without needing the
> external scripts running constantly.
>
> In principle the Python tests can be independent if they each put the
> world back the way they found it, but it turns out that some are not.
> This means that some tests cannot be run unless another test is run
> first. It also means that tests cannot be run in parallel, e.g. on
> sandbox.
>
> This series fixes some of them. Those that remain:
>
>     test_gpt_swap_partitions - not sure?
>     test_pinmux_status - not sure?
>     test_sqfs_load - cannot be run more than once!
>     test_bind_unbind_with_uclass - relies on previous test
>
> The last one would be much better done as a C test, so it doesn't have
> to deal with the changing driver tree. There isn't a lot of value in
> running the test on a real board, since sandbox should find any bugs
> in driver model or the 'bind' command.
>
> If the above can be resolved we can enable parallel tests. On my test
> machine (32 threads) it reduces the time from 38 seconds to 7.5s
>
> To use this feature:
>     pip3 install pytest-xdist
>
>     test/py/test.py -B sandbox --build-dir /tmp/xx -q -k 'not slow' -n32

Thanks for looking into parallelization.

What I am missing in this series is a patch for
doc/develop/py_testing.rst describing how parallelization of Python
tests is controlled.

I have seen that test/py/tests/test_fs/test_basic.py test_fs1() is
always failing on my machine because the test file 2.5GB.file is
truncated. It is not truncated if I add some waiting time.

Could this be caused by parallelization?

Package 'python3-pytest-xdist' is not installed on my system.

Best regards

Heinrich

>
>
> Simon Glass (3):
>    test: Allow vboot tests to run in parallel
>    test: Allow hush tests to run in parallel
>    test: Allow tpm2 tests to run in parallel
>
>   test/py/tests/test_hush_if_test.py | 20 ++++--------
>   test/py/tests/test_tpm2.py         | 52 ++++++++++++++++++++++++++----
>   test/py/tests/test_vboot.py        | 30 +++++++++--------
>   3 files changed, 69 insertions(+), 33 deletions(-)
>



More information about the U-Boot mailing list