diff options
Diffstat (limited to 'ANDROID_3.4.5/tools/usb/hcd-tests.sh')
-rw-r--r-- | ANDROID_3.4.5/tools/usb/hcd-tests.sh | 275 |
1 files changed, 0 insertions, 275 deletions
diff --git a/ANDROID_3.4.5/tools/usb/hcd-tests.sh b/ANDROID_3.4.5/tools/usb/hcd-tests.sh deleted file mode 100644 index b30b3dc4..00000000 --- a/ANDROID_3.4.5/tools/usb/hcd-tests.sh +++ /dev/null @@ -1,275 +0,0 @@ -#!/bin/sh -# -# test types can be passed on the command line: -# -# - control: any device can do this -# - out, in: out needs 'bulk sink' firmware, in needs 'bulk src' -# - iso-out, iso-in: out needs 'iso sink' firmware, in needs 'iso src' -# - halt: needs bulk sink+src, tests halt set/clear from host -# - unlink: needs bulk sink and/or src, test HCD unlink processing -# - loop: needs firmware that will buffer N transfers -# -# run it for hours, days, weeks. -# - -# -# this default provides a steady test load for a bulk device -# -TYPES='control out in' -#TYPES='control out in halt' - -# -# to test HCD code -# -# - include unlink tests -# - add some ${RANDOM}ness -# - connect several devices concurrently (same HC) -# - keep HC's IRQ lines busy with unrelated traffic (IDE, net, ...) -# - add other concurrent system loads -# - -declare -i COUNT BUFLEN - -COUNT=50000 -BUFLEN=2048 - -# NOTE: the 'in' and 'out' cases are usually bulk, but can be -# set up to use interrupt transfers by 'usbtest' module options - - -if [ "$DEVICE" = "" ]; then - echo "testing ALL recognized usbtest devices" - echo "" - TEST_ARGS="-a" -else - TEST_ARGS="" -fi - -do_test () -{ - if ! ./testusb $TEST_ARGS -s $BUFLEN -c $COUNT $* 2>/dev/null - then - echo "FAIL" - exit 1 - fi -} - -ARGS="$*" - -if [ "$ARGS" = "" ]; -then - ARGS="$TYPES" -fi - -# FIXME use /sys/bus/usb/device/$THIS/bConfigurationValue to -# check and change configs - -CONFIG='' - -check_config () -{ - if [ "$CONFIG" = "" ]; then - CONFIG=$1 - echo "assuming $CONFIG configuration" - return - fi - if [ "$CONFIG" = $1 ]; then - return - fi - - echo "** device must be in $1 config, but it's $CONFIG instead" - exit 1 -} - - -echo "TESTING: $ARGS" - -while : true -do - echo $(date) - - for TYPE in $ARGS - do - # restore defaults - COUNT=5000 - BUFLEN=2048 - - # FIXME automatically multiply COUNT by 10 when - # /sys/bus/usb/device/$THIS/speed == "480" - -# COUNT=50000 - - case $TYPE in - control) - # any device, in any configuration, can use this. - echo '** Control test cases:' - - echo "test 9: ch9 postconfig" - do_test -t 9 -c 5000 - echo "test 10: control queueing" - do_test -t 10 -c 5000 - - # this relies on some vendor-specific commands - echo "test 14: control writes" - do_test -t 14 -c 15000 -s 256 -v 1 - - echo "test 21: control writes, unaligned" - do_test -t 21 -c 100 -s 256 -v 1 - - ;; - - out) - check_config sink-src - echo '** Host Write (OUT) test cases:' - - echo "test 1: $COUNT transfers, same size" - do_test -t 1 - echo "test 3: $COUNT transfers, variable/short size" - do_test -t 3 -v 421 - - COUNT=100 - echo "test 17: $COUNT transfers, unaligned DMA map by core" - do_test -t 17 - - echo "test 19: $COUNT transfers, unaligned DMA map by usb_alloc_coherent" - do_test -t 19 - - COUNT=2000 - echo "test 5: $COUNT scatterlists, same size entries" - do_test -t 5 - - # try to trigger short OUT processing bugs - echo "test 7a: $COUNT scatterlists, variable size/short entries" - do_test -t 7 -v 579 - BUFLEN=4096 - echo "test 7b: $COUNT scatterlists, variable size/bigger entries" - do_test -t 7 -v 41 - BUFLEN=64 - echo "test 7c: $COUNT scatterlists, variable size/micro entries" - do_test -t 7 -v 63 - ;; - - iso-out) - check_config sink-src - echo '** Host ISOCHRONOUS Write (OUT) test cases:' - - # at peak iso transfer rates: - # - usb 2.0 high bandwidth, this is one frame. - # - usb 1.1, it's twenty-four frames. - BUFLEN=24500 - - COUNT=1000 - -# COUNT=10000 - - echo "test 15: $COUNT transfers, same size" - # do_test -t 15 -g 3 -v 0 - BUFLEN=32768 - do_test -t 15 -g 8 -v 0 - - # FIXME it'd make sense to have an iso OUT test issuing - # short writes on more packets than the last one - - COUNT=100 - echo "test 22: $COUNT transfers, non aligned" - do_test -t 22 -g 8 -v 0 - - ;; - - in) - check_config sink-src - echo '** Host Read (IN) test cases:' - - # NOTE: these "variable size" reads are just multiples - # of 512 bytes, no EOVERFLOW testing is done yet - - echo "test 2: $COUNT transfers, same size" - do_test -t 2 - echo "test 4: $COUNT transfers, variable size" - do_test -t 4 - - COUNT=100 - echo "test 18: $COUNT transfers, unaligned DMA map by core" - do_test -t 18 - - echo "test 20: $COUNT transfers, unaligned DMA map by usb_alloc_coherent" - do_test -t 20 - - COUNT=2000 - echo "test 6: $COUNT scatterlists, same size entries" - do_test -t 6 - echo "test 8: $COUNT scatterlists, variable size entries" - do_test -t 8 - ;; - - iso-in) - check_config sink-src - echo '** Host ISOCHRONOUS Read (IN) test cases:' - - # at peak iso transfer rates: - # - usb 2.0 high bandwidth, this is one frame. - # - usb 1.1, it's twenty-four frames. - BUFLEN=24500 - - COUNT=1000 - -# COUNT=10000 - - echo "test 16: $COUNT transfers, same size" - # do_test -t 16 -g 3 -v 0 - BUFLEN=32768 - do_test -t 16 -g 8 -v 0 - - # FIXME since iso expects faults, it'd make sense - # to have an iso IN test issuing short reads ... - - COUNT=100 - echo "test 23: $COUNT transfers, unaligned" - do_test -t 23 -g 8 -v 0 - - ;; - - halt) - # NOTE: sometimes hardware doesn't cooperate well with halting - # endpoints from the host side. so long as mass-storage class - # firmware can halt them from the device, don't worry much if - # you can't make this test work on your device. - COUNT=2000 - echo "test 13: $COUNT halt set/clear" - do_test -t 13 - ;; - - unlink) - COUNT=2000 - echo "test 11: $COUNT read unlinks" - do_test -t 11 - - echo "test 12: $COUNT write unlinks" - do_test -t 12 - ;; - - loop) - # defaults need too much buffering for ez-usb devices - BUFLEN=2048 - COUNT=32 - - # modprobe g_zero qlen=$COUNT buflen=$BUFLEN loopdefault - check_config loopback - - # FIXME someone needs to write and merge a version of this - - echo "write $COUNT buffers of $BUFLEN bytes, read them back" - - echo "write $COUNT variable size buffers, read them back" - - ;; - - *) - echo "Don't understand test type $TYPE" - exit 1; - esac - echo '' - done -done - -# vim: sw=4 |