blob: 9887cf8b9472e2a3918f84aafa95129fc2a88563 [file] [log] [blame]
=============
Getting KUnit
=============
If you're working on Linux 5.5+, you have KUnit.
Otherwise, you'll want to backport the patches, which should all begin with ``"kunit: "``.
An option of last resort is to use the deprecated and incompatible
``kunit/alpha/master`` branch.
See :ref:`alpha-master` below for more details.
.. _download-links:
Where are these versions?
=========================
Upstream
--------
KUnit can be found in Linux 5.5 and newer.
- Code: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/
- `Usage <../third_party/kernel/docs/usage.html>`__ - for a more detailed explanation of KUnit features
- `API <../third_party/kernel/docs/api>`__ - for the list of KUnit APIs used for testing
The KUnit code itself is primarily found in the `lib/kunit <https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/lib/kunit>`__
directory.
.. _alpha-master:
Deprecated
----------
This is where KUnit development was done prior to getting upstreamed, but all
development on it has since ceased.
It has a couple of features that haven't made their way in the upstream version
of KUnit yet, namely:
- Class mocking
- Function mocking
- Hardware/platform faking
- Error recovery
.. note::
Tests written against the ``kunit/alpha/master`` branch will *not* be
directly compatible with the upstream version, however. You can set
``CONFIG_KUNIT_USE_UPSTREAM_NAMES=y`` to make it act a bit more like the
upstream version, see `this patch series
<https://kunit-review.googlesource.com/c/linux/+/4029/>`_ for details.
The old, deprecated branch is stored in a Google-hosted gerrit instance.
- Code: https://kunit.googlesource.com/linux/+/kunit/alpha/master.
- `Usage <../third_party/stable_kernel/docs/usage.html>`__ - for a more detailed explanation of KUnit features
- `API <../third_party/stable_kernel/docs/api>`__ - for the list of KUnit APIs used for testing
- kunitconfig file: https://kunit.googlesource.com/kunitconfig/+/refs/heads/kunit/alpha/master/kunitconfig