brintos

brintos / linux-shallow public Read only

0
0
Text · 5.8 KiB · 128f0ab Raw
201 lines · bash
1#!/bin/bash2# SPDX-License-Identifier: GPL-2.03 4# Kselftest framework requirement - SKIP code is 4.5ksft_skip=46 7usage() { echo "usbip_test.sh -b <busid> -p <usbip tools path>"; exit 1; }8 9while getopts "h:b:p:" arg; do10    case "${arg}" in11	h)12	    usage13	    ;;14	b)15	    busid=${OPTARG}16	    ;;17	p)18	    tools_path=${OPTARG}19	    ;;20	*)21	    usage22	    ;;23    esac24done25shift $((OPTIND-1))26 27if [ -z "${busid}" ]; then28	usage29fi30 31echo "Running USB over IP Testing on $busid";32 33test_end_msg="End of USB over IP Testing on $busid"34 35if [ $UID != 0 ]; then36	echo "Please run usbip_test as root [SKIP]"37	echo $test_end_msg38	exit $ksft_skip39fi40 41echo "Load usbip_host module"42if ! /sbin/modprobe -q -n usbip_host; then43	echo "usbip_test: module usbip_host is not found [SKIP]"44	echo $test_end_msg45	exit $ksft_skip46fi47 48if /sbin/modprobe -q usbip_host; then49	echo "usbip_test: module usbip_host is loaded [OK]"50else51	echo "usbip_test: module usbip_host failed to load [FAIL]"52	echo $test_end_msg53	exit 154fi55 56echo "Load vhci_hcd module"57if /sbin/modprobe -q vhci_hcd; then58	echo "usbip_test: module vhci_hcd is loaded [OK]"59else60	echo "usbip_test: module vhci_hcd failed to load [FAIL]"61	echo $test_end_msg62	exit 163fi64echo "=============================================================="65 66cd $tools_path;67 68if [ ! -f src/usbip ]; then69	echo "Please build usbip tools"70	echo $test_end_msg71	exit $ksft_skip72fi73 74echo "Expect to see export-able devices";75src/usbip list -l;76echo "=============================================================="77 78echo "Run lsusb to see all usb devices"79lsusb -t;80echo "=============================================================="81 82src/usbipd -D;83 84echo "Get exported devices from localhost - expect to see none";85src/usbip list -r localhost;86echo "=============================================================="87 88echo "bind devices";89src/usbip bind -b $busid;90echo "=============================================================="91 92echo "Run lsusb - bound devices should be under usbip_host control"93lsusb -t;94echo "=============================================================="95 96echo "bind devices - expect already bound messages"97src/usbip bind -b $busid;98echo "=============================================================="99 100echo "Get exported devices from localhost - expect to see exported devices";101src/usbip list -r localhost;102echo "=============================================================="103 104echo "unbind devices";105src/usbip unbind -b $busid;106echo "=============================================================="107 108echo "Run lsusb - bound devices should be rebound to original drivers"109lsusb -t;110echo "=============================================================="111 112echo "unbind devices - expect no devices bound message";113src/usbip unbind -b $busid;114echo "=============================================================="115 116echo "Get exported devices from localhost - expect to see none";117src/usbip list -r localhost;118echo "=============================================================="119 120echo "List imported devices - expect to see none";121src/usbip port;122echo "=============================================================="123 124echo "Import devices from localhost - should fail with no devices"125src/usbip attach -r localhost -b $busid;126echo "=============================================================="127 128echo "bind devices";129src/usbip bind -b $busid;130echo "=============================================================="131 132echo "List imported devices - expect to see exported devices";133src/usbip list -r localhost;134echo "=============================================================="135 136echo "List imported devices - expect to see none";137src/usbip port;138echo "=============================================================="139 140echo "Import devices from localhost - should work"141src/usbip attach -r localhost -b $busid;142echo "=============================================================="143 144# Wait for sysfs file to be updated. Without this sleep, usbip port145# shows no imported devices.146sleep 3;147 148echo "List imported devices - expect to see imported devices";149src/usbip port;150echo "=============================================================="151 152echo "Import devices from localhost - expect already imported messages"153src/usbip attach -r localhost -b $busid;154echo "=============================================================="155 156echo "Un-import devices";157src/usbip detach -p 00;158src/usbip detach -p 01;159echo "=============================================================="160 161echo "List imported devices - expect to see none";162src/usbip port;163echo "=============================================================="164 165echo "Un-import devices - expect no devices to detach messages";166src/usbip detach -p 00;167src/usbip detach -p 01;168echo "=============================================================="169 170echo "Detach invalid port tests - expect invalid port error message";171src/usbip detach -p 100;172echo "=============================================================="173 174echo "Expect to see export-able devices";175src/usbip list -l;176echo "=============================================================="177 178echo "Remove usbip_host module";179rmmod usbip_host;180 181echo "Run lsusb - bound devices should be rebound to original drivers"182lsusb -t;183echo "=============================================================="184 185echo "Run bind without usbip_host - expect fail"186src/usbip bind -b $busid;187echo "=============================================================="188 189echo "Run lsusb - devices that failed to bind aren't bound to any driver"190lsusb -t;191echo "=============================================================="192 193echo "modprobe usbip_host - does it work?"194/sbin/modprobe usbip_host195echo "Should see -busid- is not in match_busid table... skip! dmesg"196echo "=============================================================="197dmesg | grep "is not in match_busid table"198echo "=============================================================="199 200echo $test_end_msg201