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 compare 10 the message buffer for only the duration of ea 10 the message buffer for only the duration of each individual test.) 11 11 12 12 13 Config 13 Config 14 ------ 14 ------ 15 15 16 Set CONFIG_LIVEPATCH=y option and it's prerequ 16 Set CONFIG_LIVEPATCH=y option and it's prerequisites. 17 17 18 18 19 Building the tests 19 Building the tests 20 ------------------ 20 ------------------ 21 21 22 To only build the tests without running them, 22 To only build the tests without running them, run: 23 23 24 % make -C tools/testing/selftests/livepatch 24 % make -C tools/testing/selftests/livepatch 25 25 26 The command above will compile all test module 26 The command above will compile all test modules and test programs, making them 27 ready to be packaged if so desired. 27 ready to be packaged if so desired. 28 28 29 Running the tests 29 Running the tests 30 ----------------- 30 ----------------- 31 31 32 Test kernel modules are built before running t 32 Test kernel modules are built before running the livepatch selftests. The 33 modules are located under test_modules directo 33 modules are located under test_modules directory, and are built as out-of-tree 34 modules. This is specially useful since the s 34 modules. This is specially useful since the same sources can be built and 35 tested on systems with different kABI, ensurin 35 tested on systems with different kABI, ensuring they the tests are backwards 36 compatible. The modules will be loaded by the 36 compatible. The modules will be loaded by the test scripts using insmod. 37 37 38 To run the livepatch selftests, from the top o 38 To run the livepatch selftests, from the top of the kernel source tree: 39 39 40 % make -C tools/testing/selftests TARGETS=li 40 % make -C tools/testing/selftests TARGETS=livepatch run_tests 41 41 42 or 42 or 43 43 44 % make kselftest TARGETS=livepatch 44 % make kselftest TARGETS=livepatch 45 45 46 46 47 Adding tests 47 Adding tests 48 ------------ 48 ------------ 49 49 50 See the common functions.sh file for the exist 50 See the common functions.sh file for the existing collection of utility 51 functions, most importantly setup_config(), st 51 functions, most importantly setup_config(), start_test() and 52 check_result(). The latter function greps the 52 check_result(). The latter function greps the kernel's ring buffer for 53 "livepatch:" and "test_klp" strings, so tests 53 "livepatch:" and "test_klp" strings, so tests be sure to include one of 54 those strings for result comparison. Other ut 54 those strings for result comparison. Other utility functions include 55 general module loading and livepatch loading h 55 general module loading and livepatch loading helpers (waiting for patch 56 transitions, sysfs entries, etc.) 56 transitions, 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.