1 ==================== 1 ==================== 2 Livepatch Self Tests 2 Livepatch Self Tests 3 ==================== 3 ==================== 4 4 5 This is a small set of sanity tests for the ke 5 This is a small set of sanity tests for the kernel livepatching. 6 6 7 The test suite loads and unloads several test 7 The test suite loads and unloads several test kernel modules to verify 8 livepatch behavior. Debug information is logg 8 livepatch behavior. Debug information is logged to the kernel's message 9 buffer and parsed for expected messages. (Not !! 9 buffer and parsed for expected messages. (Note: the tests will clear 10 the message buffer for only the duration of ea !! 10 the message buffer between individual tests.) 11 11 12 12 13 Config 13 Config 14 ------ 14 ------ 15 15 16 Set CONFIG_LIVEPATCH=y option and it's prerequ !! 16 Set these config options and their prerequisites: 17 17 >> 18 CONFIG_LIVEPATCH=y >> 19 CONFIG_TEST_LIVEPATCH=m 18 20 19 Building the tests << 20 ------------------ << 21 << 22 To only build the tests without running them, << 23 << 24 % make -C tools/testing/selftests/livepatch << 25 << 26 The command above will compile all test module << 27 ready to be packaged if so desired. << 28 21 29 Running the tests 22 Running the tests 30 ----------------- 23 ----------------- 31 24 32 Test kernel modules are built before running t !! 25 Test kernel modules are built as part of lib/ (make modules) and need to 33 modules are located under test_modules directo !! 26 be installed (make modules_install) as the test scripts will modprobe 34 modules. This is specially useful since the s !! 27 them. 35 tested on systems with different kABI, ensurin << 36 compatible. The modules will be loaded by the << 37 28 38 To run the livepatch selftests, from the top o 29 To run the livepatch selftests, from the top of the kernel source tree: 39 30 40 % make -C tools/testing/selftests TARGETS=li 31 % make -C tools/testing/selftests TARGETS=livepatch run_tests 41 32 42 or << 43 << 44 % make kselftest TARGETS=livepatch << 45 << 46 33 47 Adding tests 34 Adding tests 48 ------------ 35 ------------ 49 36 50 See the common functions.sh file for the exist 37 See the common functions.sh file for the existing collection of utility 51 functions, most importantly setup_config(), st !! 38 functions, most importantly set_dynamic_debug() and check_result(). The 52 check_result(). The latter function greps the !! 39 latter function greps the kernel's ring buffer for "livepatch:" and 53 "livepatch:" and "test_klp" strings, so tests !! 40 "test_klp" strings, so tests be sure to include one of those strings for 54 those strings for result comparison. Other ut !! 41 result comparison. Other utility functions include general module 55 general module loading and livepatch loading h !! 42 loading and livepatch loading helpers (waiting for patch transitions, 56 transitions, sysfs entries, etc.) !! 43 sysfs entries, etc.)
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.