Added new test case for verifying usb ports
Change-Id: I4e5a2fab7cffecf83a28ca403ef305f0459325e7
Signed-off-by: Joy Onyerikwu <onyekachukwu.joy.onyerikwu@ibm.com>
diff --git a/systest/verify_usb_ports.robot b/systest/verify_usb_ports.robot
new file mode 100644
index 0000000..86581f4
--- /dev/null
+++ b/systest/verify_usb_ports.robot
@@ -0,0 +1,81 @@
+*** Settings ***
+
+Documentation Verify that connected USB device can be detected by the
+... OS and exercised in HTX or written to.
+
+# TEST PARAMETERS:
+# OPENBMC_HOST The BMC host name or IP address.
+# OPENBMC_USERNAME The BMC user name.
+# OPENBMC_PASSWORD The BMC password.
+# OS_HOST The OS host name or IP address.
+# OS_USERNAME The OS user name.
+# OS_PASSWORD The OS Host password.
+# USB_DEVICE_NAME The USB device to be used in test.
+# TIMEOUT Amount of time to wait for the device
+# being exercised to reach 1 cycle.
+
+Resource ../syslib/utils_os.robot
+
+Test Setup Test Setup Execution
+Test Teardown Test Teardown Execution
+
+*** Variables ***
+
+
+*** Test Cases ***
+
+Verify Write To USB Device
+ [Documentation] Verify that the given device can be written to.
+ [Tags] Verify_Write_To_USB_Device
+
+ OS Execute Command mkdir -p /mount-dev/
+ OS Execute Command mount -rw /dev/${USB_DEVICE_NAME} /mount-dev/
+ ${stdout} ${stderr} ${rc}= OS Execute Command
+ ... echo "Write to file" /mount-dev/file.txt ignore_err=1
+ Should Be Empty ${stderr} msg=Could not write to USB device.
+
+
+Exercise USB Device
+ [Documentation] Verify that the given device can be exercised with
+ ... HTX.
+ [Tags] Exercise_USB_Device
+
+ Run MDT Profile
+ # If the htxcmdline -status does not include this device then it is
+ # not a device that can be exercised with HTX, fail.
+ ${stdout} ${stderr} ${rc} OS Execute Command
+ ... htxcmdline -status | grep ${USB_DEVICE_NAME}
+
+ Wait Until Keyword Succeeds
+ ... ${TIMEOUT} 10s Verify Device Cycle Completion
+
+
+*** Keywords ***
+
+Verify Device Cycle Completion
+ [Documentation] Verify that the USB device has completed at least
+ ... one HTX cycle.
+
+ # Grep htxcmdline -status to get the device's cycle count.
+ ${stdout} ${stderr} ${rc}= OS Execute Command
+ ... htxcmdline -status | grep ${USB_DEVICE_NAME} | awk '{print $5}'
+ Should Not Be Empty ${stdout} msg=Device is not running HTX
+ Run Keyword If ${stdout} < 1
+ ... FAIL msg=Device has not completed at least one cycle.
+
+
+Test Setup Execution
+ [Documentation] Do initial test setup task(s).
+
+ OS Execute Command ls /dev/${USB_DEVICE_NAME}
+
+
+Test Teardown Execution
+ [Documentation] Perform post test case tasks.
+
+ # Even if the tests fails, device should be unmounted and HTX idle.
+ Run Keyword If '${TEST_NAME}' == 'Verify Write To USB Device'
+ ... OS Execute Command umount /mount-dev/
+ ... ELSE
+ ... Shutdown HTX Exerciser
+ FFDC On Test Case Fail
\ No newline at end of file