aboutsummaryrefslogtreecommitdiff
path: root/server/site_tests/platform_ExternalUSBBootStress/platform_ExternalUSBBootStress.py
diff options
context:
space:
mode:
Diffstat (limited to 'server/site_tests/platform_ExternalUSBBootStress/platform_ExternalUSBBootStress.py')
-rw-r--r--server/site_tests/platform_ExternalUSBBootStress/platform_ExternalUSBBootStress.py118
1 files changed, 0 insertions, 118 deletions
diff --git a/server/site_tests/platform_ExternalUSBBootStress/platform_ExternalUSBBootStress.py b/server/site_tests/platform_ExternalUSBBootStress/platform_ExternalUSBBootStress.py
deleted file mode 100644
index 420a5e8dd2..0000000000
--- a/server/site_tests/platform_ExternalUSBBootStress/platform_ExternalUSBBootStress.py
+++ /dev/null
@@ -1,118 +0,0 @@
-# Copyright (c) 2012 The Chromium OS Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-import logging, re, time
-
-from autotest_lib.server import test
-from autotest_lib.server.cros import stress
-from autotest_lib.server.cros.servo import servo
-from autotest_lib.client.common_lib import error
-
-_WAIT_DELAY = 5
-
-class platform_ExternalUSBBootStress(test.test):
- """Uses servo to repeatedly connect/remove USB devices during boot."""
- version = 1
-
- def run_once(self, host, reboots):
- reboots = int(reboots)
- self.client = host
- # The servo hubs come up as diffs in connected components. These
- # should be ignored for this test. It is a list so when servo next
- # is available it may have a differnet hub which can be appended.
- servo_hardware_list = ['Standard Microsystems Corp.']
-
-
- def strip_lsusb_output(lsusb_output):
- items = lsusb_output.split('\n')
- named_list = []
- unnamed_device_count = 0
- for item in items:
- columns = item.split(' ')
- if len(columns) == 6 or len(' '.join(columns[6:]).strip()) == 0:
- logging.info('Unnamed device located, adding generic name.')
- name = 'Unnamed device %d' % unnamed_device_count
- unnamed_device_count += 1
- else:
- name = ' '.join(columns[6:]).strip()
- if name not in servo_hardware_list:
- named_list.append(name)
- return named_list
-
-
- def set_hub_power(on=True, check_host_detection=False):
- reset = 'off'
- if not on:
- reset = 'on'
- host.servo.set('dut_hub1_rst1', reset)
- if check_host_detection:
- time.sleep(_WAIT_DELAY)
- return strip_lsusb_output(host.run('lsusb').stdout.strip())
-
-
- def stress_hotplug():
- # Devices need some time to come up and to be recognized. However
- # this is a stress test so we want to move reasonably fast.
- time.sleep(2)
- removed = set_hub_power(False)
- time.sleep(1)
- connected = set_hub_power()
-
-
- host.servo.switch_usbkey('dut')
- host.servo.set('usb_mux_sel3', 'dut_sees_usbkey')
-
- # There are some mice that need the data and power connection to both
- # be removed, otherwise they won't come back up. This means that the
- # external devices should only use the usb connections labeled:
- # USB_KEY and DUT_HUB1_USB.
- connected = set_hub_power(check_host_detection=True)
- off_list = set_hub_power(on=False, check_host_detection=True)
- diff_list = set(connected).difference(set(off_list))
- if len(diff_list) == 0:
- raise error.TestError('No connected devices were detected. Make '
- 'sure the devices are connected to USB_KEY '
- 'and DUT_HUB1_USB on the servo board.')
- logging.info('Connected devices list: %s' % diff_list)
- set_hub_power(True)
-
- lsb_release = host.run('cat /etc/lsb-release').stdout.split('\n')
- unsupported_gbb_boards = ['x86-mario', 'x86-alex', 'x86-zgb']
- skip_gbb = False
- for line in lsb_release:
- m = re.match(r'^CHROMEOS_RELEASE_BOARD=(.+)$', line)
- if m and m.group(1) in unsupported_gbb_boards:
- skip_gbb = True
- break
-
- logging.info('Rebooting the device %d time(s)' % reboots)
- for i in xrange(reboots):
- # We want fast boot past the dev screen
- if not skip_gbb:
- host.run('/usr/share/vboot/bin/set_gbb_flags.sh 0x01')
- stressor = stress.ControlledStressor(stress_hotplug)
- logging.info('Reboot iteration %d of %d' % (i + 1, reboots))
- if skip_gbb:
- # For devices that do not support gbb we have servo
- # accelerate booting through dev mode.
- host.reset_via_servo()
- host.servo.power_short_press()
- time.sleep(servo.Servo.BOOT_DELAY)
- host.servo.ctrl_d()
- stressor.start()
- host.wait_up(timeout=120)
- else:
- stressor.start()
- self.client.reboot()
- logging.info('Reboot complete, shutting down stressor.')
- stressor.stop()
- connected_now = set_hub_power(check_host_detection=True)
- diff_now = set(connected_now).difference(set(off_list))
- if diff_list != diff_now:
- raise error.TestFail('The list of connected items does not '
- 'match the master list.\nMaster: %s\n'
- 'Current: %s' %
- (diff_list, diff_now))
- logging.info('Connected devices for iteration %d: %s' %
- (i, diff_now))