57 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			57 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| ====================
 | |
| 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.)
 |