===============
Getting Started
===============

In order to use KUnit, you must first determine which branch you would like to
use. What do we mean by that? We are in the process of upstreaming KUnit into
the Linux kernel, so that means we have code under development that is not in
the upstream repository or otherwise doesn't match what is currently upstream.

For more information on why there are multiple versions of KUnit, see
:ref:`why-multiple-versions`.

For information on deciding which version you should use see
:ref:`which-version`.

.. _why-multiple-versions:

Why are there multiple versions?
================================

Ideally, upstreaming code to the Linux kernel would be fast, we would be able to
develope features entirely on LKML, no one would use code that had not yet been
accepted upstream, and everything would have been done this way from the start.
Unfortunately, we do not live in a perfect world, and consequently none of these
are true.

In short, we wrote a bunch of stuff to experiment with before we started sending
things upstream, people started using that stuff, and upstream diverged. We made
the decision that it is better to have 2 versions of KUnit rather than ``n``
versions where ``n > 2``, so we decided to maintain a non-upstream branch called
*stable* which has all the features not yet upstreamed, and would be maintained
under the assumption that people are actually using it (hence, we don't make API
breaking changes, or anything like that); this is why it's called *stable*. Our
other branch is just upstream Linux.

But wait, I see more than two branches!
---------------------------------------

For the upstream version, just use torvalds/master. Our *stable* branch is
hosted at https://kunit.googlesource.com/linux/+/kunit/alpha/master.

Nevertheless, you may notice that there are other branches hosted at
https://kunit.googlesource.com/linux. All these branches are either based on
upstream (and should not be used since they are not upstream yet), or are based
on stable.

.. _which-version:

Which version should I use?
===========================

As for which branch you should use, upstream should be generally preferred (just
as upstreaming your own code should be generally preferred); nevertheless, there
are a lot of features that are not upstream yet, and will not be upstream for
some time (possibly more than a year), if you need these features for your tests
then you have no choice other than to use the stable branch.

What features are available upstream?
-------------------------------------

- Basic test structure for defining test cases and test suites
- Basic expectations and assertions
- KUnit managed resources
- Error reporting

What features are not upstream yet?
-----------------------------------

- Class mocking
- Function mocking
- Hardware/platform faking
- Error recovery

Where to go
===========

Hopefully you now have a good idea whether you want to use the stable version,
or the upstream version. As for where to go, see the following sections:

Upstream Getting Started
------------------------

- Code: https://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest.git/log/?h=next
- Documentation: :doc:`../third_party/kernel/index`

Stable Getting Started
----------------------

- Code: https://kunit.googlesource.com/linux/+/kunit/alpha/master
- Documentation: :doc:`../third_party/stable_kernel/index`
