A system and method for testing the conformance of a universal serial bus
(USB) system to a set of predefined USB Specifications. One embodiment of
the system comprises a USB interpreter that can be used to selectively
examine device data, execute USB commands and exercise USB functions
without having to create or compile a test program. The USB interpreter
comprises a test application and a test application driver. The test
application driver interfaces with the USB system software. The USB system
software may include a USB driver, a host controller driver and other host
software. The USB driver interfaces with the test application through the
test application driver. The host controller driver interfaces with the
host controller and thereby interfaces the software on the host system
with the USB interconnect and USB devices. In one embodiment, the USB
interpreter incorporates a command line interpreter through which a user
can enter commands to perform specific operations and tests on the USB
system. The user may execute commands in an operating system (e.g., Unix)
shell without having to interrupt a USB testing or debugging session. The
user may also enter commands and perform USB system testing remotely via a
communications link between the user and the system's host computer.