Serial Port Driver BVT (Compact 7)
3/12/2014
Serial driver API BVT functional test that requires no serial communication with another test device. This test simply tests the serial driver APIs.
Test Prerequisites
Your device must meet the following requirements before you run this test.
Note: This test requires an actual serial port. It will fail when run against an NDIS-based IrDA driver.
The following table shows the hardware requirements for the Serial Port Driver Test.
Requirements | Description |
---|---|
One or more serial ports |
Serial ports can be attached as COM1: through COM9:. The test will automatically search for active serial ports. |
The following table shows the software requirements for the Serial Port Driver Test.
Requirements | Description |
---|---|
SerDrvBVT.dll |
Test .dll file. |
Tux.exe |
Tux Test Harness, which is required for executing the test. |
Kato.dll |
Kato Logging Engine, which is required for logging test data. |
Subtests
The table below lists the subtests included in this test.
SubTest ID | Description |
---|---|
1001 |
Configures the port and writes data to the port at all possible baud rates, data bits, parities, and stop bits. This test fails if it cannot send data on the port with a particular configuration. The output log shows details of a failure. |
1002 |
Tests the SetCommEvent and GetCommEvent functions. This test fails if the driver does not properly support the SetCommEvent or GetCommEvent functions. The output log shows details of a failure. |
1003 |
Tests the EscapeCommFunction function. This test fails if the driver does not support one of the Microsoft Win32 EscapeCommFunction functions. The output log shows details of a failure. |
1004 |
Tests the WaitCommEvent function on the EV_TXEMPTY event. The test creates a thread to send data and waits for the EV_TXEMPTY event to occur when the thread finishes sending data. This test fails if the WaitCommEvent function behaves improperly or if the EV_TXEMPTY event does not signal appropriately. The output log shows details of a failure. |
1005 |
Tests the SetCommBreak and ClearCommBreak functions. This test fails if the driver does not properly support the SetCommBreak or ClearCommBreak functions. The output log shows details of a failure. |
1006 |
Makes the WaitCommEvent function return a value when the handle for the current COM port is cleared. This test fails if the WaitCommEvent function behaves improperly. The output log shows details of a failure. |
1007 |
Makes the WaitCommEvent function return a value when the handle for the current COM port is closed. This test fails if the WaitCommEvent function behaves improperly. The output log shows details of a failure. |
1008 |
Tests the SetCommTimeouts function and verifies that the ReadFile function properly times out when no data is received. This test fails if the COM timeouts do not function correctly. The output log shows details of a failure. |
1009 |
Verifies that previous Device Control Block (DCB) settings are preserved when the SetCommState function call fails with DCB settings that are not valid. This test fails if the serial port driver does not keep previous DCB settings when DCB settings that are not valid are passed to the driver. |
Setting Up the Test
This test has no additional requirements, beyond the standard test environment setup.
Running the Test
The Serial Port Driver Test executes the tux -o -d serdrvbvt command line on default execution. You can modify the test by editing the command line. The following table shows the command line parameters for the Serial Port Driver Test.
Command Line Parameter | Description |
---|---|
-p COMx: |
Specifies a communications (COM) port, where 'x' is the number of the serial port specified. |
-u |
Runs the test against USB Serial Ports. |
Verifying the Test
When the test completes running, verify that "PASS" appears in the test log for all sub-tests.
Troubleshooting the Test
The serial port being tested must be a physical serial port. It cannot be an NDIS-based IrDA driver.
For additional platform specific issues, consult the CTK articles on the TechNet wiki.