linux-stable/tools/testing/selftests/livepatch
Yannick Cote 76efe6da89 selftests/livepatch: more verification in test-klp-shadow-vars
This change makes the test feel more familiar with narrowing to a
typical usage by operating on a number of identical structure instances
and populating the same two new shadow variables symmetrically while
keeping the same testing and verification criteria for the extra
variables.

Signed-off-by: Yannick Cote <ycote@redhat.com>
Reviewed-by: Kamalesh Babulal <kamalesh@linux.vnet.ibm.com>
Reviewed-by: Petr Mladek <pmladek@suse.com>
Acked-by: Miroslav Benes <mbenes@suse.cz>
Acked-by: Joe Lawrence <joe.lawrence@redhat.com>
Signed-off-by: Petr Mladek <pmladek@suse.com>
Link: https://lore.kernel.org/r/20200603182058.109470-4-ycote@redhat.com
2020-06-08 10:54:29 +02:00
..
config selftests: livepatch: add missing fragments to config 2019-09-23 08:33:16 -06:00
functions.sh selftests/livepatch: Remove unused local variable in set_ftrace_enabled() 2020-01-16 13:05:49 -07:00
Makefile selftests: Install settings files to fix TIMEOUT failures 2020-02-20 08:56:42 -07:00
README selftests/livepatch: Replace set_dynamic_debug() with setup_config() in README 2020-01-16 13:03:22 -07:00
settings selftests/livepatch: Disable the timeout 2019-10-25 19:59:12 +02:00
test-callbacks.sh selftests/livepatch: simplify test-klp-callbacks busy target tests 2020-06-08 10:36:10 +02:00
test-ftrace.sh selftests/livepatch: Test interaction with ftrace_enabled 2019-11-04 09:33:16 -05:00
test-livepatch.sh selftests/livepatch: Make dynamic debug setup and restore generic 2019-11-04 09:33:15 -05:00
test-shadow-vars.sh selftests/livepatch: more verification in test-klp-shadow-vars 2020-06-08 10:54:29 +02:00
test-state.sh selftests: livepatch: Fix it to do root uid check and skip 2019-12-23 10:52:40 -07:00

====================
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 clear
the message buffer between individual tests.)


Config
------

Set these config options and their prerequisites:

CONFIG_LIVEPATCH=y
CONFIG_TEST_LIVEPATCH=m


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

Test kernel modules are built as part of lib/ (make modules) and need to
be installed (make modules_install) as the test scripts will modprobe
them.

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

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


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

See the common functions.sh file for the existing collection of utility
functions, most importantly setup_config() 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.)