mirror of
				https://github.com/smaeul/u-boot.git
				synced 2025-11-04 05:50:17 +00:00 
			
		
		
		
	When running unit tests, some may have side effects which cause a subsequent test to break. This can sometimes be seen when using 'ut dm' or similar. Add a new argument which allows a particular (failing) test to be run immediately after a certain number of tests have run. This allows the test causing the failure to be determined. Update the documentation also. Signed-off-by: Simon Glass <sjg@chromium.org>
		
			
				
	
	
		
			118 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
			
		
		
	
	
			118 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
.. SPDX-License-Identifier: GPL-2.0+:
 | 
						|
 | 
						|
ut command
 | 
						|
==========
 | 
						|
 | 
						|
Synopis
 | 
						|
-------
 | 
						|
 | 
						|
::
 | 
						|
 | 
						|
    ut [-r<runs>] [-f] [-I<n>:<one_test>] [<suite> [<test>]]
 | 
						|
 | 
						|
       <runs>      Number of times to run each test
 | 
						|
       -f          Force 'manual' tests to run as well
 | 
						|
       <n>         Run <one test> after <n> other tests have run
 | 
						|
       <one_test>  Name of the 'one' test to run
 | 
						|
       <suite>     Test suite to run, or `all`
 | 
						|
       <test>      Name of single test to run
 | 
						|
 | 
						|
Description
 | 
						|
-----------
 | 
						|
 | 
						|
The ut command runs unit tests written in C.
 | 
						|
 | 
						|
Typically the command is run on :ref:`arch/sandbox/sandbox:sandbox` since it
 | 
						|
includes a near-complete set of emulators, no code-size limits, many CONFIG
 | 
						|
options enabled and runs easily in CI without needing QEMU. It is also possible
 | 
						|
to run some tests on real boards.
 | 
						|
 | 
						|
For a list of available test suites, type `ut` by itself.
 | 
						|
 | 
						|
Each test is normally run once, although those marked with `UT_TESTF_DM` are
 | 
						|
run with livetree and flattree where possible. To run a test more than once,
 | 
						|
use the `-r` flag.
 | 
						|
 | 
						|
Manual tests are normally skipped by this command. Use `-f` to run them. See
 | 
						|
See :ref:`develop/tests_writing:mixing python and c` for more information on
 | 
						|
manual test.
 | 
						|
 | 
						|
When running unit tests, some may have side effects which cause a subsequent
 | 
						|
test to break. This can sometimes be seen when using 'ut dm' or similar. To
 | 
						|
fix this, select the 'one' test which breaks. Then tell the 'ut' command to
 | 
						|
run this one test after a certain number of other tests have run. Using a
 | 
						|
binary search method with `-I` you can quickly figure one which test is causing
 | 
						|
the problem.
 | 
						|
 | 
						|
Generally all tests in the suite are run. To run just a single test from the
 | 
						|
suite, provide the <test> argument.
 | 
						|
 | 
						|
See :ref:`develop/tests_writing:writing c tests` for more information on how to
 | 
						|
write unit tests.
 | 
						|
 | 
						|
Example
 | 
						|
-------
 | 
						|
 | 
						|
List available unit-test suites::
 | 
						|
 | 
						|
    => ut
 | 
						|
    ut - unit tests
 | 
						|
 | 
						|
    Usage:
 | 
						|
    ut [-r] [-f] [<suite>] - run unit tests
 | 
						|
    -r<runs>   Number of times to run each test
 | 
						|
    -f         Force 'manual' tests to run as well
 | 
						|
    <suite>    Test suite to run, or all
 | 
						|
 | 
						|
    Suites:
 | 
						|
    all - execute all enabled tests
 | 
						|
    addrmap - very basic test of addrmap command
 | 
						|
    bloblist - bloblist implementation
 | 
						|
    bootstd - standard boot implementation
 | 
						|
    compression - compressors and bootm decompression
 | 
						|
    dm - driver model
 | 
						|
    env - environment
 | 
						|
    fdt - fdt command
 | 
						|
    loadm - loadm command parameters and loading memory blob
 | 
						|
    lib - library functions
 | 
						|
    log - logging functions
 | 
						|
    mem - memory-related commands
 | 
						|
    overlay - device tree overlays
 | 
						|
    print  - printing things to the console
 | 
						|
    setexpr - setexpr command
 | 
						|
    str - basic test of string functions
 | 
						|
    time - very basic test of time functions
 | 
						|
    unicode - Unicode functions
 | 
						|
 | 
						|
Run one of the suites::
 | 
						|
 | 
						|
    => ut bloblist
 | 
						|
    Running 14 bloblist tests
 | 
						|
    Test: bloblist_test_align: bloblist.c
 | 
						|
    Test: bloblist_test_bad_blob: bloblist.c
 | 
						|
    Test: bloblist_test_blob: bloblist.c
 | 
						|
    Test: bloblist_test_blob_ensure: bloblist.c
 | 
						|
    Test: bloblist_test_blob_maxsize: bloblist.c
 | 
						|
    Test: bloblist_test_checksum: bloblist.c
 | 
						|
    Test: bloblist_test_cmd_info: bloblist.c
 | 
						|
    Test: bloblist_test_cmd_list: bloblist.c
 | 
						|
    Test: bloblist_test_grow: bloblist.c
 | 
						|
    Test: bloblist_test_init: bloblist.c
 | 
						|
    Test: bloblist_test_reloc: bloblist.c
 | 
						|
    Test: bloblist_test_resize_fail: bloblist.c
 | 
						|
    Test: bloblist_test_resize_last: bloblist.c
 | 
						|
    Test: bloblist_test_shrink: bloblist.c
 | 
						|
    Failures: 0
 | 
						|
 | 
						|
Run just a single test in a suite::
 | 
						|
 | 
						|
    => ut bloblist bloblist_test_grow
 | 
						|
    Test: bloblist_test_grow: bloblist.c
 | 
						|
    Failures: 0
 | 
						|
 | 
						|
Show information about tests::
 | 
						|
 | 
						|
    => ut info
 | 
						|
    Test suites: 21
 | 
						|
    Total tests: 642
 |