57 lines · plain
1====================2Livepatch Self Tests3====================4 5This is a small set of sanity tests for the kernel livepatching.6 7The test suite loads and unloads several test kernel modules to verify8livepatch behavior. Debug information is logged to the kernel's message9buffer and parsed for expected messages. (Note: the tests will compare10the message buffer for only the duration of each individual test.)11 12 13Config14------15 16Set CONFIG_LIVEPATCH=y option and it's prerequisites.17 18 19Building the tests20------------------21 22To only build the tests without running them, run:23 24 % make -C tools/testing/selftests/livepatch25 26The command above will compile all test modules and test programs, making them27ready to be packaged if so desired.28 29Running the tests30-----------------31 32Test kernel modules are built before running the livepatch selftests. The33modules are located under test_modules directory, and are built as out-of-tree34modules. This is specially useful since the same sources can be built and35tested on systems with different kABI, ensuring they the tests are backwards36compatible. The modules will be loaded by the test scripts using insmod.37 38To run the livepatch selftests, from the top of the kernel source tree:39 40 % make -C tools/testing/selftests TARGETS=livepatch run_tests41 42or43 44 % make kselftest TARGETS=livepatch45 46 47Adding tests48------------49 50See the common functions.sh file for the existing collection of utility51functions, most importantly setup_config(), start_test() and52check_result(). The latter function greps the kernel's ring buffer for53"livepatch:" and "test_klp" strings, so tests be sure to include one of54those strings for result comparison. Other utility functions include55general module loading and livepatch loading helpers (waiting for patch56transitions, sysfs entries, etc.)57