~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/tools/testing/selftests/livepatch/test-livepatch.sh

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /tools/testing/selftests/livepatch/test-livepatch.sh (Version linux-6.12-rc7) and /tools/testing/selftests/livepatch/test-livepatch.sh (Version ccs-tools-1.8.9)


  1 #!/bin/bash                                       
  2 # SPDX-License-Identifier: GPL-2.0                
  3 # Copyright (C) 2018 Joe Lawrence <joe.lawrence    
  4                                                   
  5 . $(dirname $0)/functions.sh                      
  6                                                   
  7 MOD_LIVEPATCH1=test_klp_livepatch                 
  8 MOD_LIVEPATCH2=test_klp_syscall                   
  9 MOD_LIVEPATCH3=test_klp_callbacks_demo            
 10 MOD_REPLACE=test_klp_atomic_replace               
 11                                                   
 12 setup_config                                      
 13                                                   
 14                                                   
 15 # - load a livepatch that modifies the output     
 16 #   verify correct behavior                       
 17 # - unload the livepatch and make sure the pat    
 18                                                   
 19 start_test "basic function patching"              
 20                                                   
 21 load_lp $MOD_LIVEPATCH1                           
 22                                                   
 23 if [[ "$(cat /proc/cmdline)" != "$MOD_LIVEPATC    
 24         echo -e "FAIL\n\n"                        
 25         die "livepatch kselftest(s) failed"       
 26 fi                                                
 27                                                   
 28 disable_lp $MOD_LIVEPATCH1                        
 29 unload_lp $MOD_LIVEPATCH1                         
 30                                                   
 31 if [[ "$(cat /proc/cmdline)" == "$MOD_LIVEPATC    
 32         echo -e "FAIL\n\n"                        
 33         die "livepatch kselftest(s) failed"       
 34 fi                                                
 35                                                   
 36 check_result "% insmod test_modules/$MOD_LIVEP    
 37 livepatch: enabling patch '$MOD_LIVEPATCH1'       
 38 livepatch: '$MOD_LIVEPATCH1': initializing pat    
 39 livepatch: '$MOD_LIVEPATCH1': starting patchin    
 40 livepatch: '$MOD_LIVEPATCH1': completing patch    
 41 livepatch: '$MOD_LIVEPATCH1': patching complet    
 42 % echo 0 > /sys/kernel/livepatch/$MOD_LIVEPATC    
 43 livepatch: '$MOD_LIVEPATCH1': initializing unp    
 44 livepatch: '$MOD_LIVEPATCH1': starting unpatch    
 45 livepatch: '$MOD_LIVEPATCH1': completing unpat    
 46 livepatch: '$MOD_LIVEPATCH1': unpatching compl    
 47 % rmmod $MOD_LIVEPATCH1"                          
 48                                                   
 49                                                   
 50 # - load a livepatch that modifies the output     
 51 #   verify correct behavior                       
 52 # - load another livepatch and verify that bot    
 53 # - unload the second livepatch and verify tha    
 54 # - unload the first livepatch and verify none    
 55                                                   
 56 start_test "multiple livepatches"                 
 57                                                   
 58 load_lp $MOD_LIVEPATCH1                           
 59                                                   
 60 grep 'live patched' /proc/cmdline > /dev/kmsg     
 61 grep 'live patched' /proc/meminfo > /dev/kmsg     
 62                                                   
 63 load_lp $MOD_REPLACE replace=0                    
 64                                                   
 65 grep 'live patched' /proc/cmdline > /dev/kmsg     
 66 grep 'live patched' /proc/meminfo > /dev/kmsg     
 67                                                   
 68 disable_lp $MOD_REPLACE                           
 69 unload_lp $MOD_REPLACE                            
 70                                                   
 71 grep 'live patched' /proc/cmdline > /dev/kmsg     
 72 grep 'live patched' /proc/meminfo > /dev/kmsg     
 73                                                   
 74 disable_lp $MOD_LIVEPATCH1                        
 75 unload_lp $MOD_LIVEPATCH1                         
 76                                                   
 77 grep 'live patched' /proc/cmdline > /dev/kmsg     
 78 grep 'live patched' /proc/meminfo > /dev/kmsg     
 79                                                   
 80 check_result "% insmod test_modules/$MOD_LIVEP    
 81 livepatch: enabling patch '$MOD_LIVEPATCH1'       
 82 livepatch: '$MOD_LIVEPATCH1': initializing pat    
 83 livepatch: '$MOD_LIVEPATCH1': starting patchin    
 84 livepatch: '$MOD_LIVEPATCH1': completing patch    
 85 livepatch: '$MOD_LIVEPATCH1': patching complet    
 86 $MOD_LIVEPATCH1: this has been live patched       
 87 % insmod test_modules/$MOD_REPLACE.ko replace=    
 88 livepatch: enabling patch '$MOD_REPLACE'          
 89 livepatch: '$MOD_REPLACE': initializing patchi    
 90 livepatch: '$MOD_REPLACE': starting patching t    
 91 livepatch: '$MOD_REPLACE': completing patching    
 92 livepatch: '$MOD_REPLACE': patching complete      
 93 $MOD_LIVEPATCH1: this has been live patched       
 94 $MOD_REPLACE: this has been live patched          
 95 % echo 0 > /sys/kernel/livepatch/$MOD_REPLACE/    
 96 livepatch: '$MOD_REPLACE': initializing unpatc    
 97 livepatch: '$MOD_REPLACE': starting unpatching    
 98 livepatch: '$MOD_REPLACE': completing unpatchi    
 99 livepatch: '$MOD_REPLACE': unpatching complete    
100 % rmmod $MOD_REPLACE                              
101 $MOD_LIVEPATCH1: this has been live patched       
102 % echo 0 > /sys/kernel/livepatch/$MOD_LIVEPATC    
103 livepatch: '$MOD_LIVEPATCH1': initializing unp    
104 livepatch: '$MOD_LIVEPATCH1': starting unpatch    
105 livepatch: '$MOD_LIVEPATCH1': completing unpat    
106 livepatch: '$MOD_LIVEPATCH1': unpatching compl    
107 % rmmod $MOD_LIVEPATCH1"                          
108                                                   
109                                                   
110 # - load a livepatch that modifies the output     
111 #   verify correct behavior                       
112 # - load two additional livepatches and check     
113 #   applied                                       
114 # - load an atomic replace livepatch and check    
115 #   disabled                                      
116 # - remove all livepatches besides the atomic     
117 #   atomic replace livepatch is still active      
118 # - remove the atomic replace livepatch and ve    
119                                                   
120 start_test "atomic replace livepatch"             
121                                                   
122 load_lp $MOD_LIVEPATCH1                           
123                                                   
124 grep 'live patched' /proc/cmdline > /dev/kmsg     
125 grep 'live patched' /proc/meminfo > /dev/kmsg     
126                                                   
127 for mod in $MOD_LIVEPATCH2 $MOD_LIVEPATCH3; do    
128         load_lp "$mod"                            
129 done                                              
130                                                   
131 mods=(/sys/kernel/livepatch/*)                    
132 nmods=${#mods[@]}                                 
133 if [ "$nmods" -ne 3 ]; then                       
134         die "Expecting three modules listed, f    
135 fi                                                
136                                                   
137 load_lp $MOD_REPLACE replace=1                    
138                                                   
139 grep 'live patched' /proc/cmdline > /dev/kmsg     
140 grep 'live patched' /proc/meminfo > /dev/kmsg     
141                                                   
142 loop_until 'mods=(/sys/kernel/livepatch/*); nm    
143         die "Expecting only one moduled listed    
144                                                   
145 # These modules were disabled by the atomic re    
146 for mod in $MOD_LIVEPATCH3 $MOD_LIVEPATCH2 $MO    
147         unload_lp "$mod"                          
148 done                                              
149                                                   
150 grep 'live patched' /proc/cmdline > /dev/kmsg     
151 grep 'live patched' /proc/meminfo > /dev/kmsg     
152                                                   
153 disable_lp $MOD_REPLACE                           
154 unload_lp $MOD_REPLACE                            
155                                                   
156 grep 'live patched' /proc/cmdline > /dev/kmsg     
157 grep 'live patched' /proc/meminfo > /dev/kmsg     
158                                                   
159 check_result "% insmod test_modules/$MOD_LIVEP    
160 livepatch: enabling patch '$MOD_LIVEPATCH1'       
161 livepatch: '$MOD_LIVEPATCH1': initializing pat    
162 livepatch: '$MOD_LIVEPATCH1': starting patchin    
163 livepatch: '$MOD_LIVEPATCH1': completing patch    
164 livepatch: '$MOD_LIVEPATCH1': patching complet    
165 $MOD_LIVEPATCH1: this has been live patched       
166 % insmod test_modules/$MOD_LIVEPATCH2.ko          
167 livepatch: enabling patch '$MOD_LIVEPATCH2'       
168 livepatch: '$MOD_LIVEPATCH2': initializing pat    
169 livepatch: '$MOD_LIVEPATCH2': starting patchin    
170 livepatch: '$MOD_LIVEPATCH2': completing patch    
171 livepatch: '$MOD_LIVEPATCH2': patching complet    
172 % insmod test_modules/$MOD_LIVEPATCH3.ko          
173 livepatch: enabling patch '$MOD_LIVEPATCH3'       
174 livepatch: '$MOD_LIVEPATCH3': initializing pat    
175 $MOD_LIVEPATCH3: pre_patch_callback: vmlinux      
176 livepatch: '$MOD_LIVEPATCH3': starting patchin    
177 livepatch: '$MOD_LIVEPATCH3': completing patch    
178 $MOD_LIVEPATCH3: post_patch_callback: vmlinux     
179 livepatch: '$MOD_LIVEPATCH3': patching complet    
180 % insmod test_modules/$MOD_REPLACE.ko replace=    
181 livepatch: enabling patch '$MOD_REPLACE'          
182 livepatch: '$MOD_REPLACE': initializing patchi    
183 livepatch: '$MOD_REPLACE': starting patching t    
184 livepatch: '$MOD_REPLACE': completing patching    
185 livepatch: '$MOD_REPLACE': patching complete      
186 $MOD_REPLACE: this has been live patched          
187 % rmmod $MOD_LIVEPATCH3                           
188 % rmmod $MOD_LIVEPATCH2                           
189 % rmmod $MOD_LIVEPATCH1                           
190 $MOD_REPLACE: this has been live patched          
191 % echo 0 > /sys/kernel/livepatch/$MOD_REPLACE/    
192 livepatch: '$MOD_REPLACE': initializing unpatc    
193 livepatch: '$MOD_REPLACE': starting unpatching    
194 livepatch: '$MOD_REPLACE': completing unpatchi    
195 livepatch: '$MOD_REPLACE': unpatching complete    
196 % rmmod $MOD_REPLACE"                             
197                                                   
198                                                   
199 exit 0                                            
                                                      

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php