
Hi Stephen,
On Mon, 5 Oct 2020 at 15:35, Stephen Warren swarren@wwwdotorg.org wrote:
On 10/5/20 1:51 PM, Simon Glass wrote:
Hi Stephen,
On Mon, 5 Oct 2020 at 13:39, Stephen Warren swarren@wwwdotorg.org wrote:
On 10/3/20 9:25 AM, Simon Glass wrote:
Add a new test_spl fixture to handle running SPL unit tests.
diff --git a/test/py/conftest.py b/test/py/conftest.py
@@ -317,10 +318,13 @@ def pytest_generate_tests(metafunc): Returns: Nothing. """
- #print('name', metafunc.fixturenames)
Revert that debug change?
Will do.
diff --git a/test/py/tests/test_spl.py b/test/py/tests/test_spl.py
- cons.restart_uboot_with_flags(['-u', ut_spl_subtest])
How is that change reverted when the test runs, so that subsequent tests are run on the main U-Boot rather than this restarted U-Boot?
Well actually at the moment it just continues into U-Boot. It will mostly pass the tests, but probably not all of them.
Looking at existing tests, there are quite a few that do this:
try: test body which might do something nasty to U-Boot finally: u_boot_console.restart_uboot()
... so that might be applicable.
It feels like it'd be better to start a separate top-level test run for this purpose, rather than swap out the U-Boot process in the middle of a test run.
I was hoping that the fixture stuff would take care of that. How would I do a separate top-level test run?
That'd simply be just running test/py/test.py and passing it the relevant U-Boot binary/args rather than the main binary. I assume you'd want to pass relevant -k option to restrict the set of tests run to something relevant, and an appropriate --build-dir option to point at the binary.
I'm fiddling with this a bit. I do already have a separate run of the SPL tests using the mechanism you describe here, in test/run :
# Run tests which require sandbox_spl run_test "sandbox_spl" ./test/py/test.py --bd sandbox_spl --build \ -k 'test_ofplatdata or test_handoff or test_spl'
Also, the test_spl() collection function in this patch is used to read out tests from spl/u-boot-spl and these tests are not present in u-boot since they are only built for SPL (Makefile ensures this).
So yes I can add a try...finally thing, but in fact all that does is make every SPL test be followed by a reboot into U-Boot proper, for no purpose.
Could you please have another look at this?
Regards, Simon