===========
Using KUnit
===========

.. toctree::
   :maxdepth: 2
   :caption: Contents:

   getting_kunit
   faq

Where is KUnit?
:doc:`getting_kunit`


KUnit is integrated into the Linux kernel, so all you need is a version of the
kernel which contains KUnit, and a config file with which to build it. The
:doc: `getting_kunit` page covers the different versions of KUnit available, and
where to get them.


Running tests
=============

To run KUnit tests, you'll need to provide a 'kunitconfig' file, which contains
the list of test modules to build, and their dependencies.

Once you have the ``kunitconfig`` file, just run:

``$ ./tools/testing/kunit/kunit.py run``

This will build a UML (User Mode Linux) kernel, run the specified tests, and
print the results (nicely formatted) to the screen.


Writing tests
=============

Once you have KUnit working, writing tests is easy. Each test is a function
which accepts a ``struct kunit`` argument, and which calls the various
``KUNIT_EXPECT_*`` macros to verify the state under test.

More details can be found in the `Getting Started <../third_party/kernel/docs/start.html>`_
guide.


Submitting tests upstream
=========================

Ideally, KUnit tests will be submitted upstream alongside the code being tested,
so any user or developer can run the tests and test any changes they make. Once
KUnit itself is upstream, this means that KUnit tests should ideally be treated
as any other change, and submitted via the maintainer of the subsystem being
tested. (Though do feel free to copy in the ``kunit-dev@googlegroups.com`` list
if you want.)

For the time being, though, we recommend submitting patches via the
``linux-kselftest/test`` branch, which contains the version of KUnit likely to
head upstream. To do so, please send your patch via the
``linux-kselftest@vger.kernel.org`` list, and include ``linux-kselftest/test``
in the subject prefix. You should still get a review from the subsystem
maintainer, though.

And, of course, you should follow the general rules and guidelines laid out in
https://www.kernel.org/doc/html/latest/process/submitting-patches.html
