blob: 9be6de608d7802c81efd0fd07aaaa4ec8da6bfde [file] [log] [blame]
Copyright (c) 2010 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.
This document describes the steps to go through in order to run Chrome OS
hardware qualification on a device under test.
- $: command line prompt
- $HOME: home directory of current user.
- AC: alternating current, implies device is not powered by battery.
- DUT: device under test
- Semi-Automated Test: test that runs with automation but requires manual
Test Setup
- Setup a Linux machine to serve as the Autotest server. The Autotest
server requires Python, Wireless access to the DUT and basic Linux
shell utilities. The setup has been tested on Ubuntu 9.10 available
for download at
- Create an installation directory on the Autotest server for the
Chrome OS hardware qualification package. The rest of the
instructions assume that you're installing the package in the
current user home directory ($HOME/).
- Contact your Google technical support person and download the Chrome
OS hardware qualification package chromeos-hwqual-TAG.tar.bz2 for
your device in $HOME/.
- Install the package on the server:
$ cd $HOME/ && tar xjf chromeos-hwqual-TAG.tar.bz2
- Install the Chrome OS test image on the DUT. The USB test image is
available in:
Here are sample steps to install the test image.
- Plug a USB storage device into the Autotest server. Note that all
data on your USB stick will be destroyed.
- Unmount any mounts on the USB device.
- Copy the USB image to a USB storage device by executing:
$ sudo dd if=$HOME/chromeos-hwqual-TAG/chromeos-hwqual-usb.img \
- where /dev/sdX is your USB device.
- Plug the USB device into the DUT and boot from it.
- Log in to Chrome OS. Start the Chrome OS shell by pressing Ctrl-Alt-T.
Install Chrome OS on the DUT:
crosh> install
- Cold boot the DUT -- turn the DUT off and then back on. This ensures
a consistent starting point for the qualification tests and allows
the system to collect cold boot performance metrics. Make sure you
don't boot from USB.
- Connect the DUT to the network and note its IP address <DUT_IP>. The
IP address is displayed at the bottom of the network selection
menu. Unless specified explicitly, the test setup works correctly
through either wireless or wired network connections.
- Add the DUT root private key to ssh-agent on the Autotest server:
$ ssh-add $HOME/chromeos-hwqual-TAG/testing_rsa
- If ssh-add fails saying that it cannot connect to your authentication agent,
retry the command after running:
$ eval `ssh-agent -s`
- These commands allow the Autotest server to connect and login as root on the
- Make sure you can ssh as root to the DUT from the Autotest
server. The command below should print 0.
$ ssh root@<DUT_IP> true; echo $?
Automated and Semi-Automated Test Runs
- Unless otherwise noted, all tests can be performed on an AC-powered DUT.
- Go to the Autotest server directory and clean up previous test results.
$ cd $HOME/chromeos-hwqual-TAG/autotest/
$ rm -rf results.*
- Run the fully automated client-side tests:
$ ./server/autoserv -r -m <DUT_IP> \
-c client/site_tests/suite_HWQual/
- Plug high-speed high-capacity storage devices in all USB and SD Card
slots and run the external storage test:
$ ./server/autoserv -r results.external_devices -m <DUT_IP> \
-c client/site_tests/suite_HWQual/control.external_drives
- Run the system suspend/resume stability test:
$ ./server/autoserv -r results.suspend_resume -m <DUT_IP> \
-c client/site_tests/suite_HWQual/control.suspend_resume
- If the DUT has video out ports, run the Video Out semi-automated
test by following the instructions specified in the control file
(control.video_out) and then executing:
$ ./server/autoserv -r results.video_out.${PORT} -m <DUT_IP> \
-c client/site_tests/suite_HWQual/control.video_out
- Where PORT is the name of each video port you are testing. For
example, if the DUT has one HDMI and one VGA out port, run:
$ ./server/autoserv -r results.video_out.hdmi1 -m <DUT_IP> \
-c client/site_tests/suite_HWQual/control.video_out
$ ./server/autoserv -r results.video_out.vga1 -m <DUT_IP> \
-c client/site_tests/suite_HWQual/control.video_out
- Run the graphics tearing test:
$ ./server/autoserv -r results.teartest -m <DUT_IP> \
-c client/site_tests/suite_HWQual/control.teartest
- Run audio test, with built-in speakers and microphone
$ ./server/autoserv -r -m <DUT_IP> \
-c client/site_tests/suite_HWQual/
- Plug-in headphone and microphone, run audio test again
$ ./server/autoserv -r results.audio_ext -m <DUT_IP> \
-c client/site_tests/suite_HWQual/
- Run the Keyboard test :
(Wait several seconds after running the test. Then strike the "Search" key,
e.g. the key above Left Shift and below Tab)
$ ./server/autoserv -r result.keyboard -m <DUT_IP> \
-c client/site_tests/suite_HWQual/control.keyboard
- Run the DUT on AC. Probe the AC driver:
$ ./server/autoserv -r result.probe_ac -m <DUT_IP> \
-c client/site_tests/suite_HWQual/control.probe_ac
- Run the DUT on battery. Probe the battery driver:
(If you just unplugged AC, please wait for a second before running
the test for kernel updating power status.)
$ ./server/autoserv -r result.probe_bat -m <DUT_IP> \
-c client/site_tests/suite_HWQual/control.probe_bat
- Run the DUT on AC. Plug a power draw USB dongle in each USB port.
Run the max power draw test:
$ ./server/autoserv -r -m <DUT_IP> \
-c client/site_tests/suite_HWQual/control.max_power_draw
- Run the DUT on battery. Plug a power draw USB dongle in each USB
port. Run the max power draw test:
$ ./server/autoserv -r results.max_power_draw.batt -m <DUT_IP> \
-c client/site_tests/suite_HWQual/control.max_power_draw
- Run the DUT on AC. Run the power settings test:
$ ./server/autoserv -r -m <DUT_IP> \
-c client/site_tests/suite_HWQual/control.power_x86_settings
- Run the DUT on battery. Run the power settings test:
$ ./server/autoserv -r results.power_x86_setting.batt -m <DUT_IP> \
-c client/site_tests/suite_HWQual/control.power_x86_settings
- Make sure the remaining battery charge is less than 5%. Note that the test
will check and fail quickly if the initial battery charge is more than 5%.
Run the DUT on AC. Run the battery charge test:
$ ./server/autoserv -r results.battery_charge_time -m <DUT_IP> \
-c client/site_tests/suite_HWQual/control.battery_charge_time
- Make sure that the battery is fully charged. Note that the test will not
check if the battery is fully charged before running. Run the DUT on
battery. Run the battery load test by first following the manual
instructions specified in the control file (control.battery_load)
and then executing:
$ ./server/autoserv -r results.battery_load -m <DUT_IP> \
-c client/site_tests/suite_HWQual/control.battery_load
Reviewing Automated and Semi-Automated Test Results
- Autotest logs progress and performance data in results.* directories
specified through the '-r' autoserv option. The easy way to see a summary
of your test results is to use the 'generate_test_report'
script installed under $HOME/chromeos-hwqual-TAG/:
$ ../generate_test_report results.*
This will display a table with test status and perfomance data for
all result directories.
- If deeper investigation into a failure is required, you can review
the debug information stored in results:
$ ls */*/debug/.
Manual Test Runs
- Perform the manual tests specified in
- Please note that some tests cannot be tested as they rely on
features not yet implemented. They are being included as a preview for
manual tests that will be required. Such tests will have
"NotImplemented" in their "LABELS" column.
- Update this spreadsheet with a column of pass/fail results with any notes
which may be useful.
Reporting Results
- Upon completing automatic, semi-automatic, and manual test runs, you should
report your results to a Google technical support contact to verify the
tests were run correctly and to help diagnose failures. Verify you have
updated your manual test spreadsheet as described above and copy it into
your autotest output directory:
$ cd $HOME/chromeos-hwqual-TAG/autotest/
$ cp ../manual/testcases.csv .
- Package all results into a tar file:
$ tar cjf chromeos-hwqual-results-TAG-DATE.tar.bz2 results.* testcases.csv
- Send the resulting chromeos-hwqual-results file to your technical support