Testing in U-Boot
=================

U-Boot has a large amount of code. This file describes how this code is
tested and what tests you should write when adding a new feature.


Running tests
-------------

To run most tests on sandbox, type this:

    test/run

in the U-Boot directory. Note that only the pytest suite is run using this
command.


Sandbox
-------
U-Boot can be built as a user-space application (e.g. for Linux). This
allows test to be executed without needing target hardware. The 'sandbox'
target provides this feature and it is widely used in tests.


Pytest Suite
------------

Many tests are available using the pytest suite, in test/py. This can run
either on sandbox or on real hardware. It relies on the U-Boot console to
inject test commands and check the result. It is slower to run than C code,
but provides the ability to unify lots of tests and summarise their results.

You can run the tests on sandbox with:

	./test/py/test.py --bd sandbox --build

This will produce HTML output in build-sandbox/test-log.html

See test/py/README.md for more information about the pytest suite.


tbot
----

Tbot provides a way to execute tests on target hardware. It is intended for
trying out both U-Boot and Linux (and potentially other software) on a
number of boards automatically. It can be used to create a continuous test
environment. See http://www.tbot.tools for more information.


Ad-hoc tests
------------

There are several ad-hoc tests which run outside the pytest environment:

   test/fs	- File system test (shell script)
   test/image	- FIT and legacy image tests (shell script and Python)
   test/stdint	- A test that stdint.h can be used in U-Boot (shell script)
   trace	- Test for the tracing feature (shell script)

TODO: Move these into pytest.


When to write tests
-------------------

If you add code to U-Boot without a test you are taking a risk. Even if you
perform thorough manual testing at the time of submission, it may break when
future changes are made to U-Boot. It may even break when applied to mainline,
if other changes interact with it. A good mindset is that untested code
probably doesn't work and should be deleted.

You can assume that the Pytest suite will be run before patches are accepted
to mainline, so this provides protection against future breakage.

On the other hand there is quite a bit of code that is not covered with tests,
or is covered sparingly. So here are some suggestions:

- If you are adding a new uclass, add a sandbox driver and a test that uses it
- If you are modifying code covered by an existing test, add a new test case
  to cover your changes
- If the code you are modifying has not tests, consider writing one. Even a
  very basic test is useful, and may be picked up and enhanced by others. It
  is much easier to add onto a test - writing a new large test can seem
  daunting to most contributors.


Future work
-----------

Converting existing shell scripts into pytest tests.
