====================
Livepatch Self Tests
====================

This is a small set of sanity tests for the kernel livepatching.

The test suite loads and unloads several test kernel modules to verify
livepatch behavior.  Debug information is logged to the kernel's message
buffer and parsed for expected messages.  (Note: the tests will compare
the message buffer for only the duration of each individual test.)


Config
------

Set CONFIG_LIVEPATCH=y option and it's prerequisites.


Building the tests
------------------

To only build the tests without running them, run:

  % make -C tools/testing/selftests/livepatch

The command above will compile all test modules and test programs, making them
ready to be packaged if so desired.

Running the tests
-----------------

Test kernel modules are built before running the livepatch selftests.  The
modules are located under test_modules directory, and are built as out-of-tree
modules.  This is specially useful since the same sources can be built and
tested on systems with different kABI, ensuring they the tests are backwards
compatible.  The modules will be loaded by the test scripts using insmod.

To run the livepatch selftests, from the top of the kernel source tree:

  % make -C tools/testing/selftests TARGETS=livepatch run_tests

or

  % make kselftest TARGETS=livepatch


Adding tests
------------

See the common functions.sh file for the existing collection of utility
functions, most importantly setup_config(), start_test() and
check_result().  The latter function greps the kernel's ring buffer for
"livepatch:" and "test_klp" strings, so tests be sure to include one of
those strings for result comparison.  Other utility functions include
general module loading and livepatch loading helpers (waiting for patch
transitions, sysfs entries, etc.)
