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

TOMOYO Linux Cross Reference
Linux/tools/usb/hcd-tests.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.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /tools/usb/hcd-tests.sh (Version linux-6.12-rc7) and /tools/usb/hcd-tests.sh (Version unix-v6-master)


  1 #!/bin/sh                                         
  2 # SPDX-License-Identifier: GPL-2.0                
  3 #                                                 
  4 # test types can be passed on the command line    
  5 #                                                 
  6 # - control: any device can do this               
  7 # - out, in:  out needs 'bulk sink' firmware,     
  8 # - iso-out, iso-in:  out needs 'iso sink' fir    
  9 # - halt: needs bulk sink+src, tests halt set/    
 10 # - unlink: needs bulk sink and/or src, test H    
 11 # - loop: needs firmware that will buffer N tr    
 12 #                                                 
 13 # run it for hours, days, weeks.                  
 14 #                                                 
 15                                                   
 16 #                                                 
 17 # this default provides a steady test load for    
 18 #                                                 
 19 TYPES='control out in'                            
 20 #TYPES='control out in halt'                      
 21                                                   
 22 #                                                 
 23 # to test HCD code                                
 24 #                                                 
 25 #  - include unlink tests                         
 26 #  - add some ${RANDOM}ness                       
 27 #  - connect several devices concurrently (sam    
 28 #  - keep HC's IRQ lines busy with unrelated t    
 29 #  - add other concurrent system loads            
 30 #                                                 
 31                                                   
 32 declare -i COUNT BUFLEN                           
 33                                                   
 34 COUNT=50000                                       
 35 BUFLEN=2048                                       
 36                                                   
 37 # NOTE:  the 'in' and 'out' cases are usually     
 38 # set up to use interrupt transfers by 'usbtes    
 39                                                   
 40                                                   
 41 if [ "$DEVICE" = "" ]; then                       
 42         echo "testing ALL recognized usbtest d    
 43         echo ""                                   
 44         TEST_ARGS="-a"                            
 45 else                                              
 46         TEST_ARGS=""                              
 47 fi                                                
 48                                                   
 49 do_test ()                                        
 50 {                                                 
 51     if ! ./testusb $TEST_ARGS -s $BUFLEN -c $C    
 52     then                                          
 53         echo "FAIL"                               
 54         exit 1                                    
 55     fi                                            
 56 }                                                 
 57                                                   
 58 ARGS="$*"                                         
 59                                                   
 60 if [ "$ARGS" = "" ];                              
 61 then                                              
 62     ARGS="$TYPES"                                 
 63 fi                                                
 64                                                   
 65 # FIXME use /sys/bus/usb/device/$THIS/bConfigu    
 66 # check and change configs                        
 67                                                   
 68 CONFIG=''                                         
 69                                                   
 70 check_config ()                                   
 71 {                                                 
 72     if [ "$CONFIG" = "" ]; then                   
 73         CONFIG=$1                                 
 74         echo "assuming $CONFIG configuration"     
 75         return                                    
 76     fi                                            
 77     if [ "$CONFIG" = $1 ]; then                   
 78         return                                    
 79     fi                                            
 80                                                   
 81     echo "** device must be in $1 config, but     
 82     exit 1                                        
 83 }                                                 
 84                                                   
 85                                                   
 86 echo "TESTING:  $ARGS"                            
 87                                                   
 88 while : true                                      
 89 do                                                
 90     echo $(date)                                  
 91                                                   
 92     for TYPE in $ARGS                             
 93     do                                            
 94         # restore defaults                        
 95         COUNT=5000                                
 96         BUFLEN=2048                               
 97                                                   
 98         # FIXME automatically multiply COUNT b    
 99         # /sys/bus/usb/device/$THIS/speed == "    
100                                                   
101 #       COUNT=50000                               
102                                                   
103         case $TYPE in                             
104         control)                                  
105             # any device, in any configuration    
106             echo '** Control test cases:'         
107                                                   
108             echo "test 9: ch9 postconfig"         
109             do_test -t 9 -c 5000                  
110             echo "test 10: control queueing"      
111             do_test -t 10 -c 5000                 
112                                                   
113             # this relies on some vendor-speci    
114             echo "test 14: control writes"        
115             do_test -t 14 -c 15000 -s 256 -v 1    
116                                                   
117             echo "test 21: control writes, una    
118             do_test -t 21 -c 100 -s 256 -v 1      
119                                                   
120             ;;                                    
121                                                   
122         out)                                      
123             check_config sink-src                 
124             echo '** Host Write (OUT) test cas    
125                                                   
126             echo "test 1: $COUNT transfers, sa    
127             do_test -t 1                          
128             echo "test 3: $COUNT transfers, va    
129             do_test -t 3 -v 421                   
130                                                   
131             COUNT=100                             
132             echo "test 17: $COUNT transfers, u    
133             do_test -t 17                         
134                                                   
135             echo "test 19: $COUNT transfers, u    
136             do_test -t 19                         
137                                                   
138             COUNT=2000                            
139             echo "test 5: $COUNT scatterlists,    
140             do_test -t 5                          
141                                                   
142             # try to trigger short OUT process    
143             echo "test 7a: $COUNT scatterlists    
144             do_test -t 7 -v 579                   
145             BUFLEN=4096                           
146             echo "test 7b: $COUNT scatterlists    
147             do_test -t 7 -v 41                    
148             BUFLEN=64                             
149             echo "test 7c: $COUNT scatterlists    
150             do_test -t 7 -v 63                    
151             ;;                                    
152                                                   
153         iso-out)                                  
154             check_config sink-src                 
155             echo '** Host ISOCHRONOUS Write (O    
156                                                   
157             # at peak iso transfer rates:         
158             # - usb 2.0 high bandwidth, this i    
159             # - usb 1.1, it's twenty-four fram    
160             BUFLEN=24500                          
161                                                   
162             COUNT=1000                            
163                                                   
164 # COUNT=10000                                     
165                                                   
166             echo "test 15: $COUNT transfers, s    
167             # do_test -t 15 -g 3 -v 0             
168             BUFLEN=32768                          
169             do_test -t 15 -g 8 -v 0               
170                                                   
171             # FIXME it'd make sense to have an    
172             # short writes on more packets tha    
173                                                   
174             COUNT=100                             
175             echo "test 22: $COUNT transfers, n    
176             do_test -t 22 -g 8 -v 0               
177                                                   
178             ;;                                    
179                                                   
180         in)                                       
181             check_config sink-src                 
182             echo '** Host Read (IN) test cases    
183                                                   
184             # NOTE:  these "variable size" rea    
185             # of 512 bytes, no EOVERFLOW testi    
186                                                   
187             echo "test 2: $COUNT transfers, sa    
188             do_test -t 2                          
189             echo "test 4: $COUNT transfers, va    
190             do_test -t 4                          
191                                                   
192             COUNT=100                             
193             echo "test 18: $COUNT transfers, u    
194             do_test -t 18                         
195                                                   
196             echo "test 20: $COUNT transfers, u    
197             do_test -t 20                         
198                                                   
199             COUNT=2000                            
200             echo "test 6: $COUNT scatterlists,    
201             do_test -t 6                          
202             echo "test 8: $COUNT scatterlists,    
203             do_test -t 8                          
204             ;;                                    
205                                                   
206         iso-in)                                   
207             check_config sink-src                 
208             echo '** Host ISOCHRONOUS Read (IN    
209                                                   
210             # at peak iso transfer rates:         
211             # - usb 2.0 high bandwidth, this i    
212             # - usb 1.1, it's twenty-four fram    
213             BUFLEN=24500                          
214                                                   
215             COUNT=1000                            
216                                                   
217 # COUNT=10000                                     
218                                                   
219             echo "test 16: $COUNT transfers, s    
220             # do_test -t 16 -g 3 -v 0             
221             BUFLEN=32768                          
222             do_test -t 16 -g 8 -v 0               
223                                                   
224             # FIXME since iso expects faults,     
225             # to have an iso IN test issuing s    
226                                                   
227             COUNT=100                             
228             echo "test 23: $COUNT transfers, u    
229             do_test -t 23 -g 8 -v 0               
230                                                   
231             ;;                                    
232                                                   
233         halt)                                     
234             # NOTE:  sometimes hardware doesn'    
235             # endpoints from the host side.  s    
236             # firmware can halt them from the     
237             # you can't make this test work on    
238             COUNT=2000                            
239             echo "test 13: $COUNT halt set/cle    
240             do_test -t 13                         
241             ;;                                    
242                                                   
243         unlink)                                   
244             COUNT=2000                            
245             echo "test 11: $COUNT read unlinks    
246             do_test -t 11                         
247                                                   
248             echo "test 12: $COUNT write unlink    
249             do_test -t 12                         
250             ;;                                    
251                                                   
252         loop)                                     
253             # defaults need too much buffering    
254             BUFLEN=2048                           
255             COUNT=32                              
256                                                   
257             # modprobe g_zero qlen=$COUNT bufl    
258             check_config loopback                 
259                                                   
260             # FIXME someone needs to write and    
261                                                   
262             echo "write $COUNT buffers of $BUF    
263                                                   
264             echo "write $COUNT variable size b    
265                                                   
266             ;;                                    
267                                                   
268         *)                                        
269             echo "Don't understand test type $    
270             exit 1;                               
271         esac                                      
272         echo ''                                   
273     done                                          
274 done                                              
                                                      

~ [ 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