You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
46 lines
1.6 KiB
46 lines
1.6 KiB
# Copyright (c) 2020 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.
|
|
|
|
"""These are convenience functions that ideally are never run, but in case of
|
|
problems collect additional information about some part of the system (both
|
|
DUT and test-driving host.
|
|
|
|
Given this sporadic nature, this is not wrapped in a class but merely a
|
|
collection of functions that get the necessary inputs at the time when they're
|
|
called and need them.
|
|
|
|
The functions return a (multi-line) string that can be attached to test errors
|
|
and similar places that end up in the logs."""
|
|
|
|
|
|
def collect_usb_state(servo):
|
|
"""Collect status on USB ports and attached devices, USB mass storage in
|
|
particular.
|
|
|
|
_servo is a server.cros.servo object that can call into the DUT and query
|
|
elements.
|
|
|
|
collects the DUT-side output of :
|
|
- `lsusb` and `lsusb -t` output to learn about the topology;
|
|
- `ls -lv /dev/sd*` to learn which storage devices are known to the OS and
|
|
what partition scheme is assumed by the kernel (-v to sort numerically);
|
|
- `fdisk -l` for the partitioning as reported in GPT/MBR
|
|
|
|
Note that the return value begins with a newline.
|
|
"""
|
|
lines = []
|
|
for cmd in [
|
|
'lsusb',
|
|
'lsusb -t',
|
|
'ls -lv /dev/sd*',
|
|
'fdisk -l'
|
|
]:
|
|
output = servo.system_output(cmd, ignore_status=True)
|
|
lines.append('')
|
|
lines.append('%s:' % cmd)
|
|
lines.extend(' %s' % line for line in output.splitlines())
|
|
return '\n'.join(lines)
|
|
|
|
# Add more collect functions here as necessary
|