public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [PATCH 00/43] test: Improvements to ut command and test-suite running
@ 2025-01-15 13:30 Simon Glass
  2025-01-15 13:30 ` [PATCH 01/43] test: Drop unused suite prototypes Simon Glass
                   ` (44 more replies)
  0 siblings, 45 replies; 48+ messages in thread
From: Simon Glass @ 2025-01-15 13:30 UTC (permalink / raw)
  To: U-Boot Mailing List
  Cc: Simon Glass, Alexander Gendin, Andrew Goodbody, Dan Carpenter,
	Francis Laniel, Guillaume La Roque, Heinrich Schuchardt,
	Ion Agorria, Jens Wiklander, Jerome Forissier, Joe Hershberger,
	Julien Masson, Linus Walleij, Marek Vasut, Marek Vasut,
	Massimiliano Minella, Mattijs Korpershoek, Michael Trimarchi,
	Rasmus Villemoes, Rasmus Villemoes, Ravi Minnikanti, Raymond Mao,
	Richard Weinberger, Stephen Carlson, Stephen Warren,
	Stephen Warren, Sughosh Ganu, Svyatoslav Ryhel, Tim Harvey,
	Tom Rini

The current method of running unit tests relies on subcommands of the
ut command. Only the code in each subcommand knows how to find the tests
related to that subcomand.

This is not ideal and we now have quite a few subcommands which do
nothing but locate the relevant tests in a linker list, then call a
common function to run them.

This series adds a list of test suites, so that these subcommands can be
removed.

An issue with 'ut all' is that it doesn't record how many tests failed
overall, so it is necessary to examine copious amounts of output to look
for failures. This series adds a new 'total' feature allow recording the
total number of failed tests.

To help with 'ut all' a new pytest is created which runs it (as well as
'ut info') and makes sure that all is well. Due to the 'ut all' failures
this does not pass, so the test is disabled for now. It is here because
it provides security against misnaming a test suite and causing it not
to run.

Future work may:
- get 'ut all' passing
- enable test_suite() in CL, to ensure that 'ut all' keeps passing
- record duration of each suite
- allow running the tests in random order to tease out dependencies
- tweak the output to remove common prefixes
- getting rid of bootstd, optee and seame 'ut' subcommands


Simon Glass (43):
  test: Drop unused suite prototypes
  test: Rename test_get_state() to ut_get_state()
  test: Add functions to init and uninit the test state
  test: Pass the test-state into ut_run_list()
  Improve support for linker lists in data structures
  test: Add newlines to hush-test messages
  test: Rename test suites to match their linker-list name
  test: Update ut info to show suites
  test/py: Add a test which runs all unit tests
  test: Drop the _test suffix on linker lists
  test: Introduce a better array of test suites
  test: Drop the function for running bdinfo tests
  test: Drop the function for running cmd tests
  test: Drop the function for running common tests
  test: Drop the function for running dm tests
  test: Drop the function for running env tests
  test: Drop the function for running exit tests
  test: Drop the function for running fdt tests
  test: Drop the function for running font tests
  test: Drop the function for running lib tests
  test: Drop the function for running log tests
  test: Drop the function for running mbr tests
  test: Drop the function for running mem tests
  test: Drop the function for running setexpr tests
  test: Drop the function for running measurement tests
  test: Drop the function for running bloblist tests
  test: Drop the function for running bootm tests
  test: Drop the function for running addrmap tests
  test: Drop the function for running hush tests
  test: Drop the function for running loadm tests
  test: Drop the function for running pci_mps tests
  test: Drop the function for running seama tests
  test: Drop the function for running upl tests
  test: Drop the info test from the list
  test: Drop conditional compilation for suites
  test: Pass the test state to cmd_ut_category()
  test: Move stats into a struct
  test: Keep a track of the numbers of tests run
  test: Move stat-printing into its own function
  test: Record and show the totals for all test runs
  test: Sort the test suites
  test: Disable test_suite
  test: Move help into the suite declaration

 arch/sandbox/cpu/spl.c        |   6 +-
 include/dm/test.h             |   2 +-
 include/linker_lists.h        |  51 +++++
 include/test/cmd.h            |   2 +-
 include/test/common.h         |   2 +-
 include/test/env.h            |   2 +-
 include/test/hush.h           |   2 +-
 include/test/lib.h            |   2 +-
 include/test/log.h            |   4 +-
 include/test/optee.h          |   2 +-
 include/test/overlay.h        |   2 +-
 include/test/suites.h         |  53 ++---
 include/test/test.h           |  23 ++-
 include/test/ut.h             |  45 ++++-
 test/boot/bootm.c             |  11 +-
 test/boot/bootstd_common.c    |   9 +-
 test/boot/bootstd_common.h    |   3 +-
 test/boot/measurement.c       |  12 +-
 test/boot/upl.c               |  11 +-
 test/cmd/Makefile             |   4 +-
 test/cmd/addrmap.c            |  11 +-
 test/cmd/bdinfo.c             |  10 +-
 test/cmd/cmd_ut_cmd.c         |  20 --
 test/cmd/exit.c               |  11 +-
 test/cmd/fdt.c                |  10 +-
 test/cmd/font.c               |  10 +-
 test/cmd/loadm.c              |  11 +-
 test/cmd/mbr.c                |  10 +-
 test/cmd/mem.c                |  19 --
 test/cmd/mem_copy.c           |   2 +-
 test/cmd/mem_search.c         |   2 +-
 test/cmd/pci_mps.c            |  12 +-
 test/cmd/seama.c              |  11 +-
 test/cmd/setexpr.c            |  11 +-
 test/cmd_ut.c                 | 361 +++++++++++++++++++++-------------
 test/common/Makefile          |   1 -
 test/common/bloblist.c        |  12 +-
 test/common/cmd_ut_common.c   |  21 --
 test/dm/Makefile              |   2 -
 test/dm/test-dm.c             |  16 --
 test/dm/test-driver.c         |  10 +-
 test/dm/test-uclass.c         |   8 +-
 test/env/cmd_ut_env.c         |  10 -
 test/hush/Makefile            |   1 -
 test/hush/cmd_ut_hush.c       |  19 --
 test/hush/dollar.c            |   7 +-
 test/hush/loop.c              |   4 +-
 test/lib/Makefile             |   1 -
 test/lib/cmd_ut_lib.c         |  19 --
 test/log/Makefile             |   2 -
 test/log/log_ut.c             |  20 --
 test/optee/cmd_ut_optee.c     |   4 +-
 test/overlay/cmd_ut_overlay.c |  14 +-
 test/py/conftest.py           |   7 +-
 test/py/tests/test_spl.py     |   2 +-
 test/py/tests/test_suite.py   | 182 +++++++++++++++++
 test/py/tests/test_upl.py     |   2 +-
 test/py/tests/test_ut.py      |   2 +-
 test/py/tests/test_vbe.py     |   2 +-
 test/py/tests/test_vpl.py     |   2 +-
 test/test-main.c              | 104 ++++++----
 test/ut.c                     |   4 +-
 62 files changed, 657 insertions(+), 580 deletions(-)
 delete mode 100644 test/cmd/cmd_ut_cmd.c
 delete mode 100644 test/cmd/mem.c
 delete mode 100644 test/common/cmd_ut_common.c
 delete mode 100644 test/dm/test-dm.c
 delete mode 100644 test/hush/cmd_ut_hush.c
 delete mode 100644 test/lib/cmd_ut_lib.c
 delete mode 100644 test/log/log_ut.c
 create mode 100644 test/py/tests/test_suite.py

-- 
2.34.1


^ permalink raw reply	[flat|nested] 48+ messages in thread

end of thread, other threads:[~2025-01-16 15:50 UTC | newest]

Thread overview: 48+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-01-15 13:30 [PATCH 00/43] test: Improvements to ut command and test-suite running Simon Glass
2025-01-15 13:30 ` [PATCH 01/43] test: Drop unused suite prototypes Simon Glass
2025-01-15 13:30 ` [PATCH 02/43] test: Rename test_get_state() to ut_get_state() Simon Glass
2025-01-15 13:30 ` [PATCH 03/43] test: Add functions to init and uninit the test state Simon Glass
2025-01-15 13:30 ` [PATCH 04/43] test: Pass the test-state into ut_run_list() Simon Glass
2025-01-15 13:30 ` [PATCH 05/43] Improve support for linker lists in data structures Simon Glass
2025-01-15 13:30 ` [PATCH 06/43] test: Add newlines to hush-test messages Simon Glass
2025-01-15 13:30 ` [PATCH 07/43] test: Rename test suites to match their linker-list name Simon Glass
2025-01-15 13:30 ` [PATCH 08/43] test: Update ut info to show suites Simon Glass
2025-01-15 13:30 ` [PATCH 09/43] test/py: Add a test which runs all unit tests Simon Glass
2025-01-15 13:30 ` [PATCH 10/43] test: Drop the _test suffix on linker lists Simon Glass
2025-01-15 13:30 ` [PATCH 11/43] test: Introduce a better array of test suites Simon Glass
2025-01-15 13:30 ` [PATCH 12/43] test: Drop the function for running bdinfo tests Simon Glass
2025-01-15 13:30 ` [PATCH 13/43] test: Drop the function for running cmd tests Simon Glass
2025-01-15 13:30 ` [PATCH 14/43] test: Drop the function for running common tests Simon Glass
2025-01-15 13:30 ` [PATCH 15/43] test: Drop the function for running dm tests Simon Glass
2025-01-15 13:30 ` [PATCH 16/43] test: Drop the function for running env tests Simon Glass
2025-01-15 13:30 ` [PATCH 17/43] test: Drop the function for running exit tests Simon Glass
2025-01-15 13:30 ` [PATCH 18/43] test: Drop the function for running fdt tests Simon Glass
2025-01-15 13:30 ` [PATCH 19/43] test: Drop the function for running font tests Simon Glass
2025-01-15 13:30 ` [PATCH 20/43] test: Drop the function for running lib tests Simon Glass
2025-01-15 13:30 ` [PATCH 21/43] test: Drop the function for running log tests Simon Glass
2025-01-15 13:30 ` [PATCH 22/43] test: Drop the function for running mbr tests Simon Glass
2025-01-15 13:30 ` [PATCH 23/43] test: Drop the function for running mem tests Simon Glass
2025-01-15 13:30 ` [PATCH 24/43] test: Drop the function for running setexpr tests Simon Glass
2025-01-15 13:30 ` [PATCH 25/43] test: Drop the function for running measurement tests Simon Glass
2025-01-15 13:30 ` [PATCH 26/43] test: Drop the function for running bloblist tests Simon Glass
2025-01-15 13:30 ` [PATCH 27/43] test: Drop the function for running bootm tests Simon Glass
2025-01-15 13:30 ` [PATCH 28/43] test: Drop the function for running addrmap tests Simon Glass
2025-01-15 13:30 ` [PATCH 29/43] test: Drop the function for running hush tests Simon Glass
2025-01-15 13:31 ` [PATCH 30/43] test: Drop the function for running loadm tests Simon Glass
2025-01-15 13:31 ` [PATCH 31/43] test: Drop the function for running pci_mps tests Simon Glass
2025-01-15 13:31 ` [PATCH 32/43] test: Drop the function for running seama tests Simon Glass
2025-01-15 13:31 ` [PATCH 33/43] test: Drop the function for running upl tests Simon Glass
2025-01-15 13:31 ` [PATCH 34/43] test: Drop the info test from the list Simon Glass
2025-01-15 13:31 ` [PATCH 35/43] test: Drop conditional compilation for suites Simon Glass
2025-01-15 13:31 ` [PATCH 36/43] test: Pass the test state to cmd_ut_category() Simon Glass
2025-01-15 13:31 ` [PATCH 37/43] test: Move stats into a struct Simon Glass
2025-01-15 13:31 ` [PATCH 38/43] test: Keep a track of the numbers of tests run Simon Glass
2025-01-15 13:31 ` [PATCH 39/43] test: Move stat-printing into its own function Simon Glass
2025-01-15 13:31 ` [PATCH 40/43] test: Record and show the totals for all test runs Simon Glass
2025-01-15 13:31 ` [PATCH 41/43] test: Sort the test suites Simon Glass
2025-01-15 13:31 ` [PATCH 42/43] test: Disable test_suite Simon Glass
2025-01-15 13:31 ` [PATCH 43/43] test: Move help into the suite declaration Simon Glass
2025-01-15 15:32 ` [PATCH 00/43] test: Improvements to ut command and test-suite running Heinrich Schuchardt
2025-01-16  1:26   ` Simon Glass
2025-01-16  9:46 ` Mattijs Korpershoek
2025-01-16 15:49   ` Simon Glass

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox