• Home
  • History
  • Annotate
  • only in /external/autotest/client/common_lib/
History log of /external/autotest/client/common_lib/
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
a4b55dd2b1387e41544c64c4793992b906272234 28-Feb-2018 Keith Haddow <haddowk@chromium.org> [moblab] Change the persistent id for moblab from mac to serial.

As next gen moblab have two nics we can no longer use thei
ethernet device type to find a consistent mac address.

Use the device serial number in place of the mac address.

CQ-DEPEND=CL:944613
BUG=chromium:814891
TEST=build and tested on moblab

Change-Id: I76284984c287054146a336a8972e206f4fe6b224
Reviewed-on: https://chromium-review.googlesource.com/944807
Commit-Ready: Keith Haddow <haddowk@chromium.org>
Tested-by: Keith Haddow <haddowk@chromium.org>
Reviewed-by: Keith Haddow <haddowk@chromium.org>
tils.py
tils_unittest.py
c00f6032e3770919a50ab7ba3a6b71c7108e4399 22-Feb-2018 Xixuan Wu <xixuan@chromium.org> autotest: Refuse to set/delete static attribute.

This CL also verifies that class tko_test won't be broken by any new
changes about static attributes.

BUG=chromium:792309
TEST=Ran unittest.

Change-Id: Ie4bf605b162af20a2714667b75661547e70b616a
Reviewed-on: https://chromium-review.googlesource.com/933735
Commit-Ready: Xixuan Wu <xixuan@chromium.org>
Tested-by: Xixuan Wu <xixuan@chromium.org>
Reviewed-by: Shuqian Zhao <shuqianz@chromium.org>
rror.py
40520921e6ee98ba5c4ab76facb55d2c05d88967 27-Feb-2018 Jon Mann <jonmann@chromium.org> Add argument to avoid deleting cryptohome when launching Chromedriver.

BUG=808305
TEST=Manually Verified

Change-Id: Icbb6d8df16f2e2c6e8b7bc2a68c3856679fa6bc2
Reviewed-on: https://chromium-review.googlesource.com/939044
Commit-Ready: Jon Mann <jonmann@chromium.org>
Tested-by: Jon Mann <jonmann@chromium.org>
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
Reviewed-by: Dan Shi <dshi@google.com>
ros/chromedriver.py
175bce0f4cd2b328baf17163d25329e6f269575f 23-Feb-2018 Po-Hsien Wang <pwang@chromium.org> adb_keepalive: refactor to support adb global option.

If there are more than 1 DUT adb connected, adb would fail.
Adding -s option to adb so that we can specify which DUT to keep_alive.
Also adding option to specify which socket should ADB listen to.

BUG=b:73177200
TEST=python adb_keepalive.py localhost:9224 --socket tcp:localhost:10101

Change-Id: I17975e26c460e516dc33873d5472c713c18b33a6
Reviewed-on: https://chromium-review.googlesource.com/933285
Commit-Ready: Po-Hsien Wang <pwang@chromium.org>
Tested-by: Po-Hsien Wang <pwang@chromium.org>
Reviewed-by: Po-Hsien Wang <pwang@chromium.org>
Reviewed-by: Ilja H. Friedel <ihf@chromium.org>
ros/adb_keepalive.py
aafceeea0fcfc4d4841ade440ce9e607d0cdba96 22-Feb-2018 Brian Norris <briannorris@chromium.org> network/interface: factor out 'is_link_operational' helper

We want this for other tests.

BUG=chromium:814442
TEST=none

Change-Id: I803026c11cd8377edae42b5019e935d845a2f8f0
Signed-off-by: Brian Norris <briannorris@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/933286
Reviewed-by: Ben Chan <benchan@chromium.org>
ros/network/interface.py
a55d47e5958abad662ea844e592a4153b11f2d09 15-Feb-2018 Ricardo Quesada <ricardoq@google.com> arc: add set_device_mode() function

Add function to set the DUT either to tablet or clamshell mode.

BUG=b:73135869
TEST=manually tested and with test_that DUT cheets_WindowManager

Change-Id: Iff62df72665328458c585fb555fdc0e9863a385f
Reviewed-on: https://chromium-review.googlesource.com/922910
Commit-Ready: Ricardo Quesada <ricardoq@chromium.org>
Tested-by: Ricardo Quesada <ricardoq@chromium.org>
Reviewed-by: Lloyd Pique <lpique@chromium.org>
ros/arc.py
6a09fb55e3f6a62915ae80e6da16d12f23668bc5 22-Feb-2018 Ben Chan <benchan@chromium.org> Update virtual_ethernet_pair.py to use 'ip' instead of 'ifconfig'

virtual_ethernet_pair.py has a mix use of 'ifconfig' and 'ip'. This CL
updates it to consistently use 'ip'.

BUG=chromium:410601
TEST=Run network_VPNConnect.openvpn_user_pass, which uses virtual_ethernet_pair.py.

Change-Id: I5c5d26e70ea0c266d3dad7eca709efa14b498962
Reviewed-on: https://chromium-review.googlesource.com/930576
Commit-Ready: Ben Chan <benchan@chromium.org>
Tested-by: Ben Chan <benchan@chromium.org>
Reviewed-by: Eric Caruso <ejcaruso@chromium.org>
Reviewed-by: Brian Norris <briannorris@chromium.org>
ros/virtual_ethernet_pair.py
7ab173e6eb5ff05bf1c14e14d663e1a74a056f07 22-Feb-2018 Kristoffer Erlandsson <kerl@google.com> Convert reboot tests to one ConfigurableCfmTest.

Convert the platform_CFM_USBPeripheralStress reboot stress tests to
a ConfigurableCfmTest. We add only one test for all peripherals
to avoid adding more verbose control files when the tests are
identical apart from the enumeration checks.

BUG=chromium:811218
TEST=Local DUT

pre-cq-configs: bluestreak-pre-cq
Change-Id: Ibc2d83885e7c9451cb2fa911f0facde14a66d987
Reviewed-on: https://chromium-review.googlesource.com/931551
Commit-Ready: Kristoffer Erlandsson <kerl@google.com>
Tested-by: Kristoffer Erlandsson <kerl@google.com>
Reviewed-by: Claes Malmnäs <malmnas@google.com>
Reviewed-by: Denis Tosic <dtosic@chromium.org>
ros/cfm/usb/usb_device_spec.py
11648c73a383b0f8ce5c34073cbcb0acdd98b3f7 21-Feb-2018 Kristoffer Erlandsson <kerl@google.com> Convert Huddly hotplug test to ConfigurableCfmTest

Also added USB port+bus -> GPIO mapping for USB 3 since Huddly connects
to the USB 3 bus.

Also removed the old atrus hotplug control file since that test was
ported long ago.

BUG=chromium:811218
TEST=Crit lab device

Change-Id: Ic5bdfc02c56c0cd08fa32ef7bc068188eedbf552
Reviewed-on: https://chromium-review.googlesource.com/928657
Commit-Ready: Kristoffer Erlandsson <kerl@google.com>
Commit-Ready: Claes Malmnäs <malmnas@google.com>
Tested-by: Kristoffer Erlandsson <kerl@google.com>
Tested-by: Claes Malmnäs <malmnas@google.com>
Reviewed-by: Kristoffer Erlandsson <kerl@google.com>
Reviewed-by: Claes Malmnäs <malmnas@google.com>
ros/cfm/usb/usb_port_manager.py
f400aae829cefeb1b5b3dddec0374ecf0b621715 16-Feb-2018 Mary Ruthven <mruthven@chromium.org> cr50_test: adjust to run if .prepvt doesn't exist

Some images may not have cr50.bin.prepvt. Adjust cr50_utils and
cr50_test to run even if it doesn't exist.

BUG=none
BRANCH=none
TEST=run firmware_Cr50GetName and firmware_Cr50Update on reef with
version R66-10402.0.0

Change-Id: Iebe04bfbf7288ca7c5447017f76fa16deb653035
Signed-off-by: Mary Ruthven <mruthven@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/924621
Reviewed-by: Wai-Hong Tam <waihong@google.com>
ros/cr50_utils.py
763a910a3b9a9aa89cd704575e685861be72f16b 14-Feb-2018 Brian Norris <briannorris@chromium.org> power_LoadTest: use common network.interface library

The Interface library already implements several helpers for querying
network interfaces. We can refactor the 'is_up()' method to replace the
custom _is_network_iface_running(); get_devices() avoids open-coding
the traversal of /sys/class/net/; and is_wifi_device() can replace the
weird (and probably not 100% accurate) check for a /phy80211
subdirectory.

Bonus points: we've weaned one more test away from using 'ifconfig'.

BUG=chromium:410601
TEST=power_LoadTest

Change-Id: I0ca69e8b46ee0550b2f66d1cccad790b063db50d
Signed-off-by: Brian Norris <briannorris@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/919703
Reviewed-by: Kirtika Ruchandani <kirtika@chromium.org>
Reviewed-by: Todd Broch <tbroch@chromium.org>
ros/network/interface.py
ba471753f9b5009144145b1f619b31705843dccc 10-Feb-2018 Min Zhuo <mzhuo@google.com> Add new MiMO pid.

Add a DISPLAY LINK device with the new pid.

BUG=chromium:809993

TEST=Ran unit tests
Change-Id: Ia5ec66204e5553b59eb24f3b5c3c119641ca26c6
Reviewed-on: https://chromium-review.googlesource.com/911623
Commit-Ready: Min Zhuo <mzhuo@chromium.org>
Tested-by: Min Zhuo <mzhuo@chromium.org>
Reviewed-by: Kristoffer Erlandsson <kerl@google.com>
Reviewed-by: Min Zhuo <mzhuo@chromium.org>
ros/manual/get_usb_devices.py
13036ce3355081c62855783fb20cd79192be01cb 14-Feb-2018 Brian Norris <briannorris@chromium.org> network_WlanDriver: ask the system directly for interfaces, not shill

It's possible for shill to ignore certain network interfaces (e.g., with
moblab, we find that moblab-network-bridge-init is blacklisting wlan0,
among others), causing this test to fail, when in fact, the Wifi driver
is working just fine.

I couldn't find a way to query shill to determine whether a device is
"blacklisted" -- the best I could come up with was to look for a Device
type of "unknown", except this required figuring out the device name
without shill's help (shill doesn't enumerate blacklisted devices for us).

Instead, I figured that because we're really looking for just kernel
support in this test (and not really testing for shill behaviors), I
think it makes sense to just query the kernel directly.

So, let's directly list out /sys/class/net/ and look for Wifi devices.

BUG=chromium:812064
TEST=network_WlanDriver, on guado_moblab, kevin, etc.

Change-Id: I726d74f67e41c19f2bcb4d87737fce7cdabf5fc2
Signed-off-by: Brian Norris <briannorris@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/919701
Reviewed-by: Kevin Cernekee <cernekee@chromium.org>
Reviewed-by: Eric Caruso <ejcaruso@chromium.org>
ros/network/interface.py
5ee995c852d7120d7cbdf95c205bf6346eba1c6e 08-Feb-2018 David Riley <davidriley@chromium.org> autotest: Remove old provision metrics.

New provision and auto update metrics are being generated so remove the
old ones.

BUG=chromium:779870
TEST=none

Change-Id: I31fc869b6baff6d07cc4f86a0d19cf23b62df666
Reviewed-on: https://chromium-review.googlesource.com/909710
Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com>
Tested-by: David Riley <davidriley@chromium.org>
Reviewed-by: Paul Hobbs <phobbs@google.com>
ros/dev_server.py
0f709a6baf883726cd64e80687766eefedac8d18 17-Feb-2018 Kevin Cernekee <cernekee@chromium.org> network_VPNConnect: Run `ping` as the correct UID

Now that VPN uses per-device routing tables, UID 1000 (chronos/Chrome)
can send traffic over the VPN but UID 0 (root) cannot. Change the
autotest so that `ping` runs as chronos.

This fixes:

network_VPNConnect.l2tpipsec_cert
network_VPNConnect.l2tpipsec_xauth
network_VPNConnect.openvpn_user_pass
network_VPNConnect.openvpn

network_VPNConnect.l2tpipsec_psk appears to be broken for other reasons
(charon logs a 'wrong_user' error during connection setup so it is
unrelated to the ping UID).

Note that this changes ping() to invoke `su -c ...` rather than plumbing
the user logic through run() and BgJob. We may want to reconsider this
approach if other tests need similar functionality, but for now, this
was the most straightforward approach.

BUG=chromium:804524
TEST=test_that

Change-Id: I0bd229837d02673768dab853e212cd621b67032b
Reviewed-on: https://chromium-review.googlesource.com/924632
Commit-Ready: Kevin Cernekee <cernekee@chromium.org>
Tested-by: Kevin Cernekee <cernekee@chromium.org>
Reviewed-by: Kirtika Ruchandani <kirtika@chromium.org>
tils.py
1fe3eaa4618dbb753f754680d3d4c26e3f6f02cc 19-Feb-2018 Kristoffer Erlandsson <kerl@google.com> Add skip_enrollment for ConfigurableCfmTests.

For low level peripheral tests we do not want to bother with enrollment
but we still want to do cleanup after the test.

Also piggypack some additional logging on this change.

BUG=chromium:811218
TEST=local DUT and lab DUT

Change-Id: I6d8100fca252cd23970c45f6d4f95b627cd1266f
Reviewed-on: https://chromium-review.googlesource.com/925270
Commit-Ready: Kristoffer Erlandsson <kerl@google.com>
Tested-by: Kristoffer Erlandsson <kerl@google.com>
Reviewed-by: Claes Malmnäs <malmnas@google.com>
Reviewed-by: Denis Tosic <dtosic@chromium.org>
ros/cfm/usb/usb_port_manager.py
bc82b5d9717e09a55620f9a56105bdc1e45df0cc 16-Feb-2018 Mary Ruthven <mruthven@chromium.org> cr50_utils: remove GetBinVersion hack

The usb_updater -b issue was fixed long ago. Remove the hack we put to
work around the issue.

BUG=b:37958867
BRANCH=none
TEST=run firmware_Cr50BID

Change-Id: I11cfbf0cc841cca1a65325404483e31ede1f0b5b
Signed-off-by: Mary Ruthven <mruthven@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/923105
Reviewed-by: Wai-Hong Tam <waihong@google.com>
ros/cr50_utils.py
e7756f78cfeffb677a68a5441d4b4e3854e5f7f5 08-Feb-2018 Bogineni Kasaiah <kasaiahx.bogineni@intel.com> [Autotest]files_CopyFileToGoogleDriveUI: Add test to copy file to Google drive

Script performs the following steps
1. Open Files application
2. Create a file in local storage
3. Copy the file from local storage to Google drive
4. Validate whether the file is copied and synced successfully

We need to use real user and password (Not default autotest) as we used
gaia_login=True. This parameter is useful to sync the data to google
drive

BUG=None
BRANCH=None
TEST= Execute below command
test_that -b <board> <ip> files_CopyFileToGoogleDriveUI

Change-Id: Ia8416f0af25cf929d5684b9252c002626b526100
Signed-off-by: Bogineni Kasaiah <kasaiahx.bogineni@intel.com>
Reviewed-on: https://chromium-review.googlesource.com/908468
Reviewed-by: Dan Shi <dshi@google.com>
ros/chromedriver.py
29d1791901a74c5dba0b374c635996c0c8b26892 14-Feb-2018 Kristoffer Erlandsson <kerl@google.com> Replace USBPeripheralStress.hotplug_stress_mimo.

With a ConfigurableCfmTest. Had to change some things in the process:

1) Supporting multiple UsbDeviceSpecs in actions to support the
different vid:pid flavors of Mimos.
2) Build a parent-hierarchy of UsbDevices so that the device to power
cycle can be located when devices are connected through a Hub.
3) Updated unit tests and added some new ones.

TEST=Local Guado with Mimo
BUG=chromium:811218

pre-cq-configs: bluestreak-pre-cq
Change-Id: Idd3aa2d265652cc44df1037fd138ce305f11fc26
Reviewed-on: https://chromium-review.googlesource.com/919489
Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com>
Tested-by: Claes Malmnäs <malmnas@google.com>
Reviewed-by: Kristoffer Erlandsson <kerl@google.com>
Reviewed-by: Claes Malmnäs <malmnas@google.com>
ros/cfm/usb/usb_device.py
ros/cfm/usb/usb_device_collector.py
ros/cfm/usb/usb_device_collector_unittest.py
ros/cfm/usb/usb_device_unittest.py
66abb661a5737e8757afa37ea6de5b5ef94c76d5 13-Feb-2018 Congbin Guo <guocb@chromium.org> Race condition in SSH connection pool

The ConnectionPool.get was not thread safe, which resulted in some
processes leaking. Additionally, this change call `close` method when
destruct the MasterSsh object in case it isn't done by callers.

BTW, this change also fixed a confusing logging line.

BUG=chromium:803682
TEST=Ran unit test

Change-Id: I785245b77f9af14305fcc9768cdc498e6f1d026b
Reviewed-on: https://chromium-review.googlesource.com/915196
Commit-Ready: Congbin Guo <guocb@chromium.org>
Tested-by: Congbin Guo <guocb@chromium.org>
Reviewed-by: Richard Barnette <jrbarnette@google.com>
utotemp.py
19510e7add4775b8bc0007f3578c43e6ac843609 10-Feb-2018 yusukes <yusukes@google.com> arc.py: Remove is_run_oci_build()

The function is no longer necessary because both containers use
run_oci now.

BUG=b:69266495
TEST=test_that DUT cheets_ContainerMount
CQ-DEPEND=CL:*567458

Change-Id: Ieaef6e3d27f82265041fb1bd3f3b258f88ef9a33
Reviewed-on: https://chromium-review.googlesource.com/912762
Commit-Ready: Yusuke Sato <yusukes@chromium.org>
Tested-by: Yusuke Sato <yusukes@chromium.org>
Reviewed-by: Luis Hector Chavez <lhchavez@chromium.org>
ros/arc.py
804808feb24b89fee0f3254f5bac54cc1f9e2745 08-Feb-2018 Prashant Malani <pmalani@google.com> packager: Delete old file before copying new tarball

Speculative change. In the buildbots, the autotest/packages
directory seems to have stale versions of the files.

This implies that either the compare_checksum() is failing,
or the older files present in autotest/packages aren't getting
overwritten.

So, delete the old version of the file if it exists before
copying the new one.

BUG=chromium:782034
TEST= Ran a local trybot with a dummy autotest CL : http://shortn/_G6zTNPaItE

Change-Id: I4913092cd95000f66a0b14a9cc08347e36e465f2
Reviewed-on: https://chromium-review.googlesource.com/909332
Commit-Ready: Prashant Malani <pmalani@google.com>
Tested-by: Prashant Malani <pmalani@google.com>
Reviewed-by: Mike Frysinger <vapier@chromium.org>
ackages.py
c2fb94ef330e91588cd548d71b0ed6f4229e7eb6 26-Jan-2018 Prathmesh Prabhu <pprabhu@chromium.org> autotest: Allow staging artifacts from local path on devserver.

When staging from local path, the client library sets
delete_source=True. The only reason a test would request staging from a
local path on the devserver is if the payloads were earlier copied in
expressly for that purpose. delete_source greatly speeds up staging,
especially for devsever running in a moblab VM.

BUG=chromium:799724
TEST=moblab-generic-vm-paladin-tryjob

Change-Id: I3374b15bbc9f9600baafc9b49824d5f2765c9571
Reviewed-on: https://chromium-review.googlesource.com/889993
Commit-Ready: Prathmesh Prabhu <pprabhu@chromium.org>
Tested-by: Prathmesh Prabhu <pprabhu@chromium.org>
Reviewed-by: Prathmesh Prabhu <pprabhu@chromium.org>
Reviewed-by: Xixuan Wu <xixuan@chromium.org>
ros/dev_server.py
1c29a57d309d37ffb986389e314bf91af78721d8 12-Feb-2018 Kristoffer Erlandsson <kerl@google.com> Add support for querying for multiple USB devices.

Actualy PID of USB devices differ with firmware version which
in turn differs by Chrome OS version. Hence we need to support
several PIDs at the same time for the same type of device.

This change adds the new MIMO PID to cfm_usb_devices as a new device. We
add support for getting devices matching a list of specs.

Fix the mimo sanity test to use these new features.

Also changed the attributes of the mimo sanity test; we do not have
Mimo+jabbra+huddly as a setup in the labs. Use the standard bluestreak
setup instead.

BUG=chromium:809993
TEST=local setup (without huddly, commented out huddly)

pre-cq-configs: bluestreak-pre-cq

Change-Id: I61770ee69581a995b25e51a2aaa9084be24b3bed
Reviewed-on: https://chromium-review.googlesource.com/912950
Commit-Ready: Kristoffer Erlandsson <kerl@google.com>
Tested-by: Claes Malmnäs <malmnas@google.com>
Reviewed-by: Kristoffer Erlandsson <kerl@google.com>
Reviewed-by: Claes Malmnäs <malmnas@google.com>
ros/cfm/usb/cfm_usb_devices.py
ros/cfm/usb/usb_device_collector.py
ros/cfm/usb/usb_device_collector_unittest.py
c28601f45092b3405cfd156be5e7c03d06cebf0b 13-Feb-2018 Mary Ruthven <mruthven@chromium.org> cr50_utils: add function to get the path used by cr50-update

BUG=none
BRANCH=none
TEST=none

Change-Id: I00ce26e4e3fdfba99086dfb69a25bcbed19932fa
Signed-off-by: Mary Ruthven <mruthven@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/916718
Reviewed-by: Wai-Hong Tam <waihong@google.com>
ros/cr50_utils.py
5cfe512901221c5e47354cc79350f79ea91dd5e0 12-Feb-2018 Mary Ruthven <mruthven@chromium.org> cr50_utils: change CR50_FILE to CR50_PROD

There are now two cr50 update images. Change the variable name to
CR50_PROD so it is more precise.

BUG=none
BRANCH=none
TEST=none

Change-Id: I90712e4cd1f5e77d5bfd92887d69382ee30dffed
Signed-off-by: Mary Ruthven <mruthven@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/916717
Reviewed-by: Wai-Hong Tam <waihong@google.com>
ros/cr50_utils.py
bddf615e75c56d700f2066bd421088c98a396bac 09-Feb-2018 Mary Ruthven <mruthven@chromium.org> cr50_utils: use "-a" to run gsctool commands

gsctool will figure out what device to use, if the -a option is used.
Use -a so we dont need to stop trunksd. Replace all uses of -s with -a.

BUG=none
BRANCH=none
TEST=none

Change-Id: I1922c807eebfbaa26ce5c3c59cfb41177735137b
Signed-off-by: Mary Ruthven <mruthven@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/916715
Reviewed-by: Wai-Hong Tam <waihong@google.com>
ros/cr50_utils.py
b9f3580ea0c8a766d8fcf42d00abbf51558f49b0 23-Jan-2018 Don Garrett <dgarrett@google.com> [autotest] Adjust DUT version labels verification.

Compare lsbrelease's CHROMEOS_RELEASE_BUILD_PATH againt the version
label to see if the correct version is installed, instead of
CHROMEOS_RELEASE_VERSION. A simple string compare makes the lab
slightly more robust against changes to the format of that string.

This does NOT affect the provision flow and verifications done there.

BUG=chromium:800562
TEST=None

Change-Id: Ia98c62744d1cbbacc22cb10500ae0e31b6e61755
Reviewed-on: https://chromium-review.googlesource.com/907326
Reviewed-by: Don Garrett <dgarrett@chromium.org>
Tested-by: Don Garrett <dgarrett@chromium.org>
sbrelease_utils.py
sbrelease_utils_unittest.py
14ff7c9e908054158189e12d95c3e2988776f642 07-Feb-2018 Pavol Marko <pmarko@chromium.org> Expect working enterprise policy in policy tests

Pass the |expect_policy_fetch|=True argument when launching chrome for
enterprise policy tests, so chrome won't get the
--allow-failed-policy-fetches-for-test command-line flag.

This is necessary now because chrome doesn't block fresh profile
initialization on policy initialization when the flag is present since
CL:719838.

BUG=chromium:809222
TEST=test_that --board=${BOARD} ${IP} policy_ProxySettings.directproxy_usenoproxy

Change-Id: I49514fffc54cb6f5f69e25e8d04fdb8ddae8b6d1
Reviewed-on: https://chromium-review.googlesource.com/906549
Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com>
Tested-by: Pavol Marko <pmarko@chromium.org>
Reviewed-by: Achuith Bhandarkar <achuith@chromium.org>
ros/chrome.py
1012e8c0c05b87aa489a00ff394762dd92cbf98b 31-Jan-2018 Keith Haddow <haddowk@chromium.org> [autotest] Move packages off wget to curl

wget is no longer installed, use curl as a replacement

BUG=chromium:807692
TEST=Will run trybot
Change-Id: Ibbfe695018ff6bbd92f4b79844f233da57bae68d
Reviewed-on: https://chromium-review.googlesource.com/895962
Commit-Ready: Keith Haddow <haddowk@chromium.org>
Tested-by: Keith Haddow <haddowk@chromium.org>
Reviewed-by: Xixuan Wu <xixuan@chromium.org>
ackages.py
9fbc9647e8c45833dac629889e5c72876f66e83c 06-Feb-2018 Jon Mann <jonmann@chromium.org> Add argument to allow using a real GAIA to the Chromedriver wrapper.

BUG=b:70730318
TEST=Manually Verified

Change-Id: I68b3dea14f4db4c8b73a5f4324244c6334038fb1
Reviewed-on: https://chromium-review.googlesource.com/903070
Commit-Ready: Jon Mann <jonmann@chromium.org>
Tested-by: Jon Mann <jonmann@chromium.org>
Reviewed-by: Dan Shi <dshi@google.com>
ros/chromedriver.py
dcb1a82fc2672c8fa21a2dc2d5b92867ca5a173d 24-Jan-2018 Congbin Guo <guocb@chromium.org> dev_server: handle RootfsUpdateError from DUT separately

Calling auto_update may fail due to many reasons. Only use
DevServerException makes it hard to distinguish them higher in stack. In
this change, I created a new type of exception, i.e. BadBuildExcpeion,
which will be raised when DUT fails to boot up and rolls back.

BUG=chromium:477407
TEST=1: a)deployed the change to my local devserver
b) created a provision_AutoUpdate test job in my local AFE and wait
c) The job created failed with message: Unhandled
BadBuildException: CrOS auto-update failed for host
100.115.25.63: 0) RootfsUpdateError: Build guocb-123 failed to
boot on guocb-dut; system rolled back to previous , ....
2: Ran unit test

Change-Id: I75e960b547f6a15e858299305f4af4addbf95e12
Reviewed-on: https://chromium-review.googlesource.com/884461
Commit-Ready: Congbin Guo <guocb@chromium.org>
Tested-by: Congbin Guo <guocb@chromium.org>
Reviewed-by: Prathmesh Prabhu <pprabhu@chromium.org>
Reviewed-by: Xixuan Wu <xixuan@chromium.org>
ros/dev_server.py
ros/dev_server_unittest.py
ccf3be7ca2eea2413ebee0973643b813c1b03443 10-Jan-2018 yusukes <yusukes@google.com> arc.py: Change the path get_container_root() returns for run_oci

When run_oci is in use, the container's pivot root is not in
/run/containers/<ver>-run_oci but in /opt/google/container/android.
The former is only for the container.pid file and a few others.

BUG=b:71709605
BUG=b:69266495
TEST=test_that NYC_DUT cheets_ContainerMount
TEST=test_that NYC_DUT_with_run_oci cheets_ContainerMount

Change-Id: I761f618095dae0a746c037b92a2ffa27814105c3
Reviewed-on: https://chromium-review.googlesource.com/857812
Commit-Ready: Yusuke Sato <yusukes@chromium.org>
Tested-by: Yusuke Sato <yusukes@chromium.org>
Reviewed-by: Luis Hector Chavez <lhchavez@chromium.org>
ros/arc.py
905457479db1ad458985d0d6430de9c486d23213 05-Feb-2018 Mary Ruthven <mruthven@chromium.org> cr50_utils: handle GetRLZ errors

If the rlz_brand_code doesn't exist, return '' instead of raising an
error. Some boards don't have the rlz brand code in vpd. SetRLZ treats
'' as a deleted RLZ so return '' to signify a deleted RLZ.

BUG=none
BRANCH=none
TEST=run on bob

Change-Id: Iacba1e5db050edaf75815e0cd0da0c4bb99cb9a7
Signed-off-by: Mary Ruthven <mruthven@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/902200
Reviewed-by: Wai-Hong Tam <waihong@google.com>
ros/cr50_utils.py
066c89ecdc92118d94e869579b65f1c85015a9c6 02-Feb-2018 Luis Hector Chavez <lhchavez@google.com> arc: Use pgrep to see if an Android process is running

This change stops using `ps` to list the processes within the container
since its behavior changed between N and P, from listing all processes
to only listing the processes matching the effective user id. Instead,
it uses `pgrep -c -f ${process_name}`, which is supported by both
Android N and P.

BUG=b:72745016
TEST=$ pgrep -c -f org.chromium.arc.intent_helper
1
# On both N and P.

Change-Id: I9278fe656412cd27a7ef6b9077b58d30480448aa
Reviewed-on: https://chromium-review.googlesource.com/900066
Commit-Ready: Luis Hector Chavez <lhchavez@chromium.org>
Tested-by: Luis Hector Chavez <lhchavez@chromium.org>
Reviewed-by: Yusuke Sato <yusukes@chromium.org>
ros/arc.py
f31eacc415bfca32489988ffbb4e52720f93d59a 12-Dec-2017 Min Zhuo <mzhuo@google.com> Reland "Refactor script to add more functions."

This is a reland of 68d9689387d8542f49e69792a6419c21752aa24c.

Original change's description:
> Refactor script to add more functions.
>
> 1. Option to reboot CfM before test start.
> 2. Option to restart chrome as workaround for telemetry api failure.
> 3. 2 more verifications: check_cfm_reboot and check_chrome_restart.
>
> BUG=chromium:794220
> TEST=Tested against local setup.
>
> Change-Id: Ib60d57c993b421554763706313a77161134d37d8
> Reviewed-on: https://chromium-review.googlesource.com/821670
> Reviewed-by: Min Zhuo <mzhuo@chromium.org>
> Reviewed-by: Denis Tosic <dtosic@chromium.org>
> Tested-by: Min Zhuo <mzhuo@chromium.org>

Bug: chromium:794220
Change-Id: I2c69e09bf1196a781a796551c48feb1ca2a1141a
Reviewed-on: https://chromium-review.googlesource.com/895191
Commit-Ready: Min Zhuo <mzhuo@chromium.org>
Tested-by: Min Zhuo <mzhuo@chromium.org>
Reviewed-by: Min Zhuo <mzhuo@chromium.org>
Reviewed-by: Zhongze Hu <frankhu@google.com>
ros/manual/audio_helper.py
ros/manual/cfm_helper.py
ros/manual/meet_helper.py
ros/manual/video_helper.py
281d780391f83d8f4acc238ab873b67a529413f3 31-Jan-2018 Mike Frysinger <vapier@chromium.org> Revert "Refactor script to add more functions."

This reverts commit 68d9689387d8542f49e69792a6419c21752aa24c.

Reason for revert: breaks autotest unittests:
ControlVariableException: Failed parsing .../server/site_tests/enterprise_CFM_Test/control.demo
Error parsing data because invalid syntax (line 99)

BUG=chromium:794220

Change-Id: Ife289d5a9df7f24e6949c2c2a35b83d9edd800e3
Reviewed-on: https://chromium-review.googlesource.com/894544
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Tested-by: Mike Frysinger <vapier@chromium.org>
ros/manual/audio_helper.py
ros/manual/cfm_helper.py
ros/manual/meet_helper.py
ros/manual/video_helper.py
4df0c19683f40fd0554edebf9db70d56bb2015b5 29-Jan-2018 Xiaochu Liu <xiaochu@chromium.org> platform_AddPrinter: fix dbus_send and use it

dbus_send module assumes output of dbus-send command has a non-empty
return value list. However, we do have an API that returns empty list in
Chrome on success. This CL fixes dbus_send module to return None instead
of crash-and-fail on empty list return value.

Alternate solution is to change chrome API to return a fake boolean to
get around this limitation but that fake return value causes more
confusion that benefit. This fix does not alternate any behavior of
autotests that call dbus_send (call with empty return output already
crashes).

BUG=chromium:804485
TEST=test_that -b ${BOARD} 100.127.0.229 platform_AddPrinter.epson

Change-Id: I1756303b23c122cf2d47fdde1d8f429c88704d66
Reviewed-on: https://chromium-review.googlesource.com/891665
Commit-Ready: Xiaochu Liu <xiaochu@chromium.org>
Tested-by: Xiaochu Liu <xiaochu@chromium.org>
Reviewed-by: Sean Kau <skau@chromium.org>
ros/dbus_send.py
68d9689387d8542f49e69792a6419c21752aa24c 12-Dec-2017 Min Zhuo <mzhuo@google.com> Refactor script to add more functions.

1. Option to reboot CfM before test start.
2. Option to restart chrome as workaround for telemetry api failure.
3. 2 more verifications: check_cfm_reboot and check_chrome_restart.

BUG=chromium:794220
TEST=Tested against local setup.

Change-Id: Ib60d57c993b421554763706313a77161134d37d8
Reviewed-on: https://chromium-review.googlesource.com/821670
Reviewed-by: Min Zhuo <mzhuo@chromium.org>
Reviewed-by: Denis Tosic <dtosic@chromium.org>
Tested-by: Min Zhuo <mzhuo@chromium.org>
ros/manual/audio_helper.py
ros/manual/cfm_helper.py
ros/manual/meet_helper.py
ros/manual/video_helper.py
85536da7a10e46927c725aaebdf780e428309eb5 23-Jan-2018 Mary Ruthven <mruthven@chromium.org> cr50_utils: add utitlity to stop trunksd

BUG=none
BRANCH=none
TEST=none

Change-Id: I845fb2133cf8d8e2760732a0f0a106a60a30a8fb
Signed-off-by: Mary Ruthven <mruthven@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/882382
ros/cr50_utils.py
5a12e4d3bfb30a47009afc7fdcf6d3c6fcd698c2 23-Jan-2018 Achuith Bhandarkar <achuith@chromium.org> [chrome]: Migrate browser.Create to new api

BUG=chromium:804292
TEST=vm_sanity.py, bots

Change-Id: If34a42ec90d469d07bcd34e015abf8699c8f8c7d
Reviewed-on: https://chromium-review.googlesource.com/881308
Commit-Ready: Achuith Bhandarkar <achuith@chromium.org>
Tested-by: Achuith Bhandarkar <achuith@chromium.org>
Reviewed-by: Achuith Bhandarkar <achuith@chromium.org>
Reviewed-by: Juan Antonio Navarro Pérez <perezju@chromium.org>
ros/chrome.py
fed7f8aba8cfcc2b75b1ab86cad46b5476bb551d 22-Jan-2018 Ben Lin <linben@chromium.org> Revert "Add check for Chrome PID if exception occurs for startAndroid.stress."

This reverts commit 9a225c02d1f78511f44bc9abdeea07fb9bfe011b.

Reason for revert: See original CL's comments - test is no longer failing properly.

Original change's description:
> Add check for Chrome PID if exception occurs for startAndroid.stress.
>
> startAndroid.stress test has been hitting exceptions regarding timeout
> when trying to enable play store. We don't know whether Chrome is still
> alive or not at this point, so logging this.
>
> BUG=chromium:783832
> BUG=chromium:799958
> TEST=ran cheets_StartAndroid test locally.
>
> Change-Id: Ifbe1bc73fa75a29df01410a9ef4cd77d5b4c7f80
> Reviewed-on: https://chromium-review.googlesource.com/865100
> Commit-Ready: Ben Lin <linben@chromium.org>
> Tested-by: Ben Lin <linben@chromium.org>
> Reviewed-by: Yusuke Sato <yusukes@chromium.org>

Bug: chromium:783832, chromium:799958
Change-Id: I788e204682bb62093ad7284e78817c60f3ddb39f
Reviewed-on: https://chromium-review.googlesource.com/879241
Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com>
Tested-by: Ben Lin <linben@chromium.org>
Reviewed-by: Yusuke Sato <yusukes@chromium.org>
Reviewed-by: Kazuhiro Inaba <kinaba@chromium.org>
ros/chrome.py
436e86e87391dec64d0c482ddc8a349873ffeb83 17-Jan-2018 David Riley <davidriley@chromium.org> autotest: Add new provision metrics.

Add new provision metrics which better handle durations and allow more
complete searching via fields.

BUG=chromium:779870
TEST=none

Change-Id: I16c4d264baf05f04dc8d05f7a844a8d80cc9909f
Reviewed-on: https://chromium-review.googlesource.com/871518
Commit-Ready: David Riley <davidriley@chromium.org>
Tested-by: David Riley <davidriley@chromium.org>
Reviewed-by: Paul Hobbs <phobbs@google.com>
ros/dev_server.py
16656d9521f78c473024e9c9ae73415550846696 05-Jan-2018 Dominik Laskowski <domlaskowski@google.com> autotest: Add arc.get_android_data_root()

BUG=b:68217080
TEST=None

Change-Id: Ib55410535f6201218eec2e9172bd62617172e6ec
Reviewed-on: https://chromium-review.googlesource.com/851476
Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com>
Tested-by: Dominik Laskowski <domlaskowski@chromium.org>
Reviewed-by: Luis Hector Chavez <lhchavez@chromium.org>
ros/arc.py
9a225c02d1f78511f44bc9abdeea07fb9bfe011b 12-Jan-2018 Ben Lin <linben@google.com> Add check for Chrome PID if exception occurs for startAndroid.stress.

startAndroid.stress test has been hitting exceptions regarding timeout
when trying to enable play store. We don't know whether Chrome is still
alive or not at this point, so logging this.

BUG=chromium:783832
BUG=chromium:799958
TEST=ran cheets_StartAndroid test locally.

Change-Id: Ifbe1bc73fa75a29df01410a9ef4cd77d5b4c7f80
Reviewed-on: https://chromium-review.googlesource.com/865100
Commit-Ready: Ben Lin <linben@chromium.org>
Tested-by: Ben Lin <linben@chromium.org>
Reviewed-by: Yusuke Sato <yusukes@chromium.org>
ros/chrome.py
a150dfa5edc1905be067b7f1ac642ac9c184dffa 11-Jan-2018 Kirtika Ruchandani <kirtika@chromium.org> network/interface: Remove obsolete TODO

We now know that having mutiple (2-3) rev IDs per chip is common/expected.
Intel has indicated that its an internal SKU difference that should not
affect us i.e StP2 is an existing chip with 2 rev IDs in network/interface.py

BUG=None
TEST=None

Change-Id: I9c50058935d21f6788694fc45960e0899ee981fb
Reviewed-on: https://chromium-review.googlesource.com/860167
Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com>
Tested-by: Kirtika Ruchandani <kirtika@chromium.org>
Reviewed-by: Brian Norris <briannorris@chromium.org>
ros/network/interface.py
03d4a5eb6ffe024a3f5f039ecaaeae41c9e08855 11-Jan-2018 Kirtika Ruchandani <kirtika@chromium.org> network_WlanDriver: Update support for Intel chips

Add IDs for JP2 and ThP2 (upcoming chips), and update StP2 since it
may also be featured in 4.14.

Intel 9000 = JP2
Intel 9260 = ThP2

BUG=b:68779410, b:71724314
TEST=This is a test. Ran on board having JP2 and checked that it passes.

Change-Id: I1ae5afb0d62a52497f7ee501578d27e860870101
Reviewed-on: https://chromium-review.googlesource.com/861330
Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com>
Tested-by: Kirtika Ruchandani <kirtika@chromium.org>
Reviewed-by: Benson Leung <bleung@google.com>
Reviewed-by: Brian Norris <briannorris@chromium.org>
ros/network/interface.py
747ea82f3b1a06e5e82964f42e909b217b2b6042 10-Jan-2018 Hirokazu Honda <hiroh@chromium.org> Not pass unicode error message to logging in arc_util.py

An error message can contain unicode string in arc_util.py.
If such sting is passed to logging, an exception happens.
It must be encoded to ascii string with 'encode' function.

BUG=None
TEST=None

Change-Id: Ieb4ec70721d14397382ee8cf6ce896116af77ee9
Reviewed-on: https://chromium-review.googlesource.com/861364
Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com>
Tested-by: Hirokazu Honda <hiroh@chromium.org>
Reviewed-by: Kuang-che Wu <kcwu@chromium.org>
ros/arc_util.py
8587d1f292abd1291f4657cd8f86634a997957dc 09-Jan-2018 Prathmesh Prabhu <pprabhu@chromium.org> Add some context in control parsing error.

We get this cryptic error every once in a while in dynamic_suite:
Error parsing data because invalid syntax (line 1)
But, it doesn't tell us what the control file was anywhere. So, tell us.

BUG=chromium:800102
TEST=unittests

Change-Id: Ice1471d3d72907d02df9969c617fa185c9fa9320
Reviewed-on: https://chromium-review.googlesource.com/855586
Commit-Ready: Prathmesh Prabhu <pprabhu@chromium.org>
Tested-by: Prathmesh Prabhu <pprabhu@chromium.org>
Reviewed-by: Xixuan Wu <xixuan@chromium.org>
ontrol_data.py
2cdff1919ab4867b79410f1e2c6d92a2af3fcbf3 10-Jan-2018 Hidehiko Abe <hidehiko@chromium.org> Extract get_{username,password} into a module.

To share it with another tests.

BUG=b:69421557
TEST=Ran power_LoadTest.fast.

Change-Id: Ia65f157393ed6d5e34f5ae987008a192391147f0
Reviewed-on: https://chromium-review.googlesource.com/860597
Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com>
Tested-by: Hidehiko Abe <hidehiko@chromium.org>
Reviewed-by: Todd Broch <tbroch@chromium.org>
ros/power_load_util.py
76cd05821a91c15e76dac6a6609d0516539e7c42 21-Dec-2017 Xixuan Wu <xixuan@chromium.org> autotest: Don't delete static labels in afe_labels.

BUG=chromium:792309
TEST=1. Ran unittest.
2. Calls RPC locally.

Change-Id: I1e96f9628da8888ad0d14ff5d6446a0a9f6d12da
Reviewed-on: https://chromium-review.googlesource.com/841102
Commit-Ready: Xixuan Wu <xixuan@chromium.org>
Tested-by: Xixuan Wu <xixuan@chromium.org>
Reviewed-by: Prathmesh Prabhu <pprabhu@chromium.org>
rror.py
e114031cd8cb9f0988fec91259ba58ab043a6c02 09-Jan-2018 yusukes <yusukes@google.com> arc.py: Split get_container_root() into two

Currently, the path get_container_root() returns is used for
two different purposes:

1. To get the path the container's pivot root exists.
2. To get the path the container's PID file exists.

On the current NYC container, 1 and 2 share the same path, but
once run_oci is introduced, they will be different. This CL
splits the function so that arc.py can support run_oci later
(see CL:857812).

BUG=b:71709605
BUG=b:69266495
TEST=test_that NYC_DUT_with_and_without_run_oci cheets_ContainerMount

Change-Id: I53a43085fca5465d5edd12008e400bb2ffb0fed7
Reviewed-on: https://chromium-review.googlesource.com/860425
Commit-Ready: Yusuke Sato <yusukes@chromium.org>
Tested-by: Yusuke Sato <yusukes@chromium.org>
Reviewed-by: Luis Hector Chavez <lhchavez@chromium.org>
ros/arc.py
3300f6ebc44d5621275dd9e8cec69e5098d83a43 10-Jan-2018 Daniel Erat <derat@chromium.org> autotest: Update utils.run() for stdout/stderr log levels.

Update the utils.run() function to take stdout_level and
stderr_level arguments that can be used to specify logging
levels to use when stdout_tee or stderr_err are TEE_TO_LOGS.

BUG=chromium:782515
TEST=added unit tests; also used it to set stdout logging
level for a server test

Change-Id: Ib2a8de68d6a96bbd3fb89a938dab075ca5e3f4bf
Reviewed-on: https://chromium-review.googlesource.com/857844
Commit-Ready: Dan Erat <derat@chromium.org>
Tested-by: Dan Erat <derat@chromium.org>
Reviewed-by: Ilja H. Friedel <ihf@chromium.org>
Reviewed-by: Hidehiko Abe <hidehiko@chromium.org>
tils.py
tils_unittest.py
245411bf95adad85f1444ccd95e7605e4f849fe0 05-Jan-2018 Achuith Bhandarkar <achuith@chromium.org> [chrome]: Use new api Open instead of InitializeIfNeeded()

BUG=chromium:786413
TEST=trybots

Change-Id: I3798c03d07e0f7a238f2a906393bd070fd206f18
Reviewed-on: https://chromium-review.googlesource.com/852355
Commit-Ready: Achuith Bhandarkar <achuith@chromium.org>
Tested-by: Achuith Bhandarkar <achuith@chromium.org>
Reviewed-by: Achuith Bhandarkar <achuith@chromium.org>
Reviewed-by: Juan Antonio Navarro Pérez <perezju@chromium.org>
ros/chrome.py
eee955a6d5587459a4d5c67508f375ef7e173a69 08-Jan-2018 yusukes <yusukes@google.com> arc.py: Support run_oci

The original glob no longer works because run_oci uses
/run/containers/android-<container_name>/container.pid (- instead
of _). This CL changes the pattern to the one used in android-sh.

BUG=b:69266495
BUG=b:71709605
TEST=test_that DUT cheets_*

Change-Id: I93e8b737b7a7e8fade20d2d423efa9a576c3d233
Reviewed-on: https://chromium-review.googlesource.com/854766
Commit-Ready: Yusuke Sato <yusukes@chromium.org>
Tested-by: Yusuke Sato <yusukes@chromium.org>
Reviewed-by: Luis Hector Chavez <lhchavez@chromium.org>
ros/arc.py
a6732d70bc8686ff7a626a92587e343970710723 08-Jan-2018 Mary Ruthven <mruthven@chromium.org> tpm_utils: 'GetTpmStatus success' after clearing tpm owner

attestation=True should not be set until the user clicks through OOBE.
We don't really care about the status. We just care that cryptohome is
replying. This changes the status check to just verify there was a reply
not for any particular attribute.

BUG=none
BRANCH=none
TEST=run firmware_Cr50Update after flashing a new chromeos image onto
the device.

Change-Id: I17b8530d125ba40d58d6a71ffda23e598400f3be
Signed-off-by: Mary Ruthven <mruthven@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/854759
Reviewed-by: Andrey Pronin <apronin@chromium.org>
ros/tpm_utils.py
b93d2ec066e8086d3f98ea9ebf4405587ccce3bc 18-Dec-2017 Kristoffer Erlandsson <kerl@google.com> Remove logic for parsing webrtc_media_stats log.

Not used anymore since we use the ExportMediaInfo mod for Meet media
stats.

Also, fixed framerate_received metric which was incorrectly named.

BUG=chromium:788703
TEST=Unit tests and enterprise_CFM_Perf.meet_app locally

Change-Id: I8ab5552ae5bd51c0a6797d10385b05f1a4c970ab
Reviewed-on: https://chromium-review.googlesource.com/831512
Commit-Ready: Kristoffer Erlandsson <kerl@google.com>
Tested-by: Kristoffer Erlandsson <kerl@google.com>
Reviewed-by: Denis Tosic <dtosic@chromium.org>
ros/cfm/metrics/media_metrics_collector.py
76a4c8880c98f991d2c631083adb018120d74bf0 14-Dec-2017 David Haddock <dhaddock@chromium.org> [autotest] Allow autoupdater.py to handle non interactive updates.

BUG=chromium:794260
TEST=autoupdate_Rollback still passes

Change-Id: Ibe2714d97468089590ae19ca6beda63b8383344a
Reviewed-on: https://chromium-review.googlesource.com/826171
Commit-Ready: David Haddock <dhaddock@chromium.org>
Tested-by: David Haddock <dhaddock@chromium.org>
Reviewed-by: Amin Hassani <ahassani@chromium.org>
ros/autoupdater.py
92a542abbebf5cb2ba318cb761861bc715d86092 07-Dec-2017 Mike Frysinger <vapier@chromium.org> stop collecting files from /dev/pstore

Since devices use /sys/fs/pstore everywhere now, stop looking in
/dev/pstore.

BUG=chromium:781536
TEST=precq passes

Change-Id: I0f91de3ee8de47d8591a185fd640cf6127c02d62
Reviewed-on: https://chromium-review.googlesource.com/815555
Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com>
Tested-by: Mike Frysinger <vapier@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>
ogs_to_collect
7d574e00bfab2485103fc30aa0a0f299909d52fd 07-Dec-2017 Lutz Justen <ljusten@chromium.org> Use protobuf arguments for AuthPolicy D-Bus wrapper

Changes the AuthPolicy D-Bus Python wrapper class to use protobuf args
that have been introduced to simplify API changes. Additionally,
- adds machine_ou and machine_domain parameters to domain join,
- raises the timeout since the default timeout can be too short for some
Samba calls,
- addresses linter warnings and
- runs yapf --style=google on the file.

CQ-DEPEND=CL:*523798

BUG=chromium:785956
TEST=test_that -b ${BOARD} ${DUT_IP} enterprise_AuthPolicyDaemonServer

Change-Id: I0957f87040bbeadb144c017e5b4dc68488d66426
Reviewed-on: https://chromium-review.googlesource.com/814555
Commit-Ready: Lutz Justen <ljusten@chromium.org>
Tested-by: Lutz Justen <ljusten@chromium.org>
Reviewed-by: Lutz Justen <ljusten@chromium.org>
ros/authpolicy.py
e9119c660bae966b6e6e8a909eaa7d7cdbbc6bd3 06-Dec-2017 Wai-Hong Tam <waihong@google.com> faft: Support modifying EC FWID on BIOS and flashing it back

This is for testing EC software sync for EC EFS (Early Firmware
Selection). It creates a slightly different EC RW image (a
different EC fwid) in AP firmware, in order to trigger EC software
sync on the next boot (a different hash with the original EC RW).

The steps:
* Modify the EC fwid by appending a '~', like from
'fizz_v1.1.7374-147f1bd64' to 'fizz_v1.1.7374-147f1bd64~'.
* Resign the EC image.
* Store the modififed EC RW image to CBFS component 'ecrw' of the
AP firmware's FW_MAIN_A and FW_MAIN_B, and also the new hash.
* Resign the AP image.
* Flash the modified AP image back to the system.

BUG=b:69921268
TEST=With the CLs following, run firwmare_ECUpdateId test.

Change-Id: I724cb2c34ab3219191107efa2af0eccaf4fcb2b1
Reviewed-on: https://chromium-review.googlesource.com/817543
Commit-Ready: Wai-Hong Tam <waihong@google.com>
Tested-by: Wai-Hong Tam <waihong@google.com>
Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org>
ros/chip_utils.py
f3f8a7c4ea692b4ea5d03365d0d797fe325e0fc8 12-Dec-2017 David Riley <davidriley@chromium.org> Revert "autotest: stage quick_provision payloads"

This reverts commit 1e916724238baf58a8df0587a9886f35be794262.

Reason for revert: <INSERT REASONING HERE>

Original change's description:
> autotest: stage quick_provision payloads
>
> BUG=chromium:779870
> TEST=none
>
> Change-Id: Idc60d76803991e99ff823cba4311c01877b8a296
> Reviewed-on: https://chromium-review.googlesource.com/810021
> Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com>
> Tested-by: David Riley <davidriley@chromium.org>
> Reviewed-by: Xixuan Wu <xixuan@chromium.org>

Bug: chromium:779870
Change-Id: I677f7a9b57b809d609bcbfce10cdeb3fed47c5bb
Reviewed-on: https://chromium-review.googlesource.com/822180
Reviewed-by: Don Garrett <dgarrett@chromium.org>
Tested-by: David Riley <davidriley@chromium.org>
Trybot-Ready: David Riley <davidriley@chromium.org>
ros/dev_server.py
5670fa3e8228c1830fda231e9f82a9748335b123 08-Dec-2017 Kristoffer Erlandsson <kerl@google.com> Use the ExportMediaInfo mod to for media metrics.

Instead of parsing JavaScript logs.

As a first step this is enabled by checking the is_meeting flag in
enterprise_CFM_Perf. The intention is to separate the meet test
to an own test as a next step.

the media_info_metrics_extractor and much of media_metrics_collector is
copied from Google3 and adopted to suite the Autotest style.

TEST=Local DUT
BUG=chromium:788703
pre-cq-configs: bluestreak-pre-cq
Change-Id: I98a80c0280a26074e98304b1510a6c198c6157d8
Reviewed-on: https://chromium-review.googlesource.com/817557
Commit-Ready: Kristoffer Erlandsson <kerl@google.com>
Tested-by: Kristoffer Erlandsson <kerl@google.com>
Reviewed-by: Claes Malmnäs <malmnas@google.com>
Reviewed-by: Denis Tosic <dtosic@chromium.org>
ros/cfm/metrics/__init__.py
ros/cfm/metrics/media_info_metrics_extractor.py
ros/cfm/metrics/media_info_metrics_extractor_unittest.py
ros/cfm/metrics/media_metrics_collector.py
ros/cfm/metrics/media_metrics_collector_test.py
93e646cbcab150b4ae11945592ff969e464ad31a 08-Dec-2017 Xixuan Wu <xixuan@chromium.org> autotest: remove dependencies of suite_scheduler.

BUG=chromium:793179
TEST=Ran unittest.

Change-Id: I633a1ec2ccc352abd4da20c8b7667b0eb6d3305e
Reviewed-on: https://chromium-review.googlesource.com/816080
Commit-Ready: Xixuan Wu <xixuan@chromium.org>
Tested-by: Xixuan Wu <xixuan@chromium.org>
Reviewed-by: Dan Shi <dshi@google.com>
osts/repair_unittest.py
9c5a05d3e57a12e4af4671e0b9600fc84c0efcaf 21-Nov-2017 Min Zhuo <mzhuo@google.com> Test peripheral devices for CfM.

Executes the following tests on CFM devices:
1. Join and leave meeting.
2. During meeting mute/unmute camera/microphone, and
change volume for speakers.
3. Reboot Guado.
4. Shutting and restoring power to USB ports
as specified.
Verify the following functionalities: usb enumeration, video streaming,
audio streaming, video/audio interface and etc.

BUG=b:68004251, b:68213767, b:69970888, b:64194947, b:69261543,
b:66237153, b:68345296, b:68171716, b:65261524, b:62488030, b:65557515,
chromium:737374
TEST=Tested against local setup.

Change-Id: I13a946c6010fb5c38228502bf5c896a085cb9049
Reviewed-on: https://chromium-review.googlesource.com/780763
Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com>
Tested-by: Min Zhuo <mzhuo@chromium.org>
Reviewed-by: Min Zhuo <mzhuo@chromium.org>
Reviewed-by: Denis Tosic <dtosic@chromium.org>
ros/manual/__init__.py
ros/manual/audio_helper.py
ros/manual/cfm_helper.py
ros/manual/get_usb_devices.py
ros/manual/meet_helper.py
ros/manual/video_helper.py
1e916724238baf58a8df0587a9886f35be794262 06-Dec-2017 David Riley <davidriley@chromium.org> autotest: stage quick_provision payloads

BUG=chromium:779870
TEST=none

Change-Id: Idc60d76803991e99ff823cba4311c01877b8a296
Reviewed-on: https://chromium-review.googlesource.com/810021
Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com>
Tested-by: David Riley <davidriley@chromium.org>
Reviewed-by: Xixuan Wu <xixuan@chromium.org>
ros/dev_server.py
b7becb18c2c1105616fd0459fb5e94d935a5b658 23-Nov-2017 David Riley <davidriley@chromium.org> autotest: Allow quick provision and non-blocking check of in-progress provision.

BUG=chromium:779870
TEST=contrib/loadtest.py $DS config.json --simultaneous 100 --total 2000

Change-Id: I2d5403cdf62355247ae41e1696166ee593674248
Reviewed-on: https://chromium-review.googlesource.com/804603
Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com>
Tested-by: David Riley <davidriley@chromium.org>
Reviewed-by: Xixuan Wu <xixuan@chromium.org>
ros/dev_server.py
0f9cdc93abbdd020e9436a2caa089716ef013594 01-Dec-2017 Mary Ruthven <mruthven@chromium.org> tpm_utils: wait for attestation after clearing tpm owner

Wait for both the attestation and tpm to be ready after clearing the tpm
owner if wait_for_ready is requested. After the tpm is ready, prepare
for enrollment is run. This takes a long time, and occupies cryptohome
for a while. If you try to remove rootfs verification or use crypohome
during this, it will fail. Wait for attestation to be prepared before
returning, so we know prepare for enrollment is done and cryptohome can
be used.

BUG=none
BRANCH=none
TEST=run firmware_Cr50Update a bunch

Change-Id: I26671b70c98d39f0dcdc0302336f61a9fa3d1490
Signed-off-by: Mary Ruthven <mruthven@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/802398
Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
ros/tpm_utils.py
6a0cc28d3fc2a71de8e47eb6876cdc56673ca86d 28-Nov-2017 Dennis Wu <denniswu@google.com> [autotest][cfm] Add Logitech PTZ Pro 2 camera to cfm.usb list

Add Logitech PTZ Pro 2 camera to the existing CfM USB peripheral list

BUG=chromium:788164
TEST=on local setup

Change-Id: I00be06097e45050752da32febc57c20d4ffe2cfb
Reviewed-on: https://chromium-review.googlesource.com/794847
Commit-Ready: Dennis Wu <denniswu@google.com>
Tested-by: Dennis Wu <denniswu@google.com>
Reviewed-by: Kristoffer Erlandsson <kerl@google.com>
Reviewed-by: Ege Mihmanli <egemih@google.com>
Reviewed-by: Claes Malmnäs <malmnas@google.com>
Reviewed-by: Denis Tosic <dtosic@chromium.org>
ros/cfm/usb/cfm_usb_devices.py
31e7daa9cfb1e98c33ca20991d4e8611feccb536 28-Nov-2017 Kristoffer Erlandsson <kerl@google.com> Add action for powercycling USB ports.

Added usb_port_manager for doing this. It currently duplicates
parts of power_cycle_usb_util but is much simpler since it
uses the bus and port info from a UsbDevice instance.

Also added actions for sleeping and for retrying assertion actions.

BUG=chromium:785271
TEST=Unit tests and sanity tests on local DUT with atrus.

pre-cq-configs: bluestreak-pre-cq
Change-Id: I2e63d3c41b3f54839338af573742fc834fa98ea2
Reviewed-on: https://chromium-review.googlesource.com/793250
Commit-Ready: Kristoffer Erlandsson <kerl@google.com>
Tested-by: Kristoffer Erlandsson <kerl@google.com>
Reviewed-by: Denis Tosic <dtosic@chromium.org>
ros/cfm/usb/usb_port_manager.py
ros/cfm/usb/usb_port_manager_unittest.py
657a6883efd0120f92b20c0c0ccee9c48c952eb0 29-Nov-2017 Denis Tosic <dtosic@chromium.org> [autotest][cfm] Fix unit tests after https://crrev.com/c/795890

Forgot to update these.

TEST=ran all unit tests under server/ and client/
BUG=chromium:780423, chromium:785271

Change-Id: If4f03a7a9b608bd7b65f3c41a8017c1b15f0cef6
Reviewed-on: https://chromium-review.googlesource.com/796030
Reviewed-by: Kristoffer Erlandsson <kerl@google.com>
Commit-Queue: Denis Tosic <dtosic@chromium.org>
Tested-by: Denis Tosic <dtosic@chromium.org>
Trybot-Ready: Denis Tosic <dtosic@chromium.org>
ros/cfm/usb/usb_device_unittest.py
708660068e6d301744aa626d37d49dc6535dd78f 29-Nov-2017 Denis Tosic <dtosic@chromium.org> [autotest][cfm] Store the bus and port number for USB devices

This is so we can perforem gpio resets in our tests easier.

TEST=unit tests extended
BUG=chromium:780423, chromium:785271

Change-Id: Iba331001775d9aaa23673b02c30fa12d1868c22d
Reviewed-on: https://chromium-review.googlesource.com/795890
Reviewed-by: Denis Tosic <dtosic@chromium.org>
Commit-Queue: Denis Tosic <dtosic@chromium.org>
Tested-by: Denis Tosic <dtosic@chromium.org>
Trybot-Ready: Denis Tosic <dtosic@chromium.org>
ros/cfm/usb/usb_device.py
ros/cfm/usb/usb_device_collector.py
ros/cfm/usb/usb_device_collector_unittest.py
a034cb459295d1af4ac3e91456895f159800140d 26-Oct-2017 Dennis Wu <denniswu@google.com> Expose camera PTZ commands to autotest

This CL adds wrapper functions to cfm api to allow autotest scripts to
control camera pan-tilt-zoom(PTZ)

BUG=chromium:780285
TEST=Tested with cl/173892780 and WAI

Change-Id: I6ad1125a1e2e7f6dc074796520832f8ea93d1beb
Reviewed-on: https://chromium-review.googlesource.com/747889
Commit-Ready: Dennis Wu <denniswu@google.com>
Tested-by: Dennis Wu <denniswu@google.com>
Reviewed-by: Ege Mihmanli <egemih@google.com>
Reviewed-by: Dennis Wu <denniswu@google.com>
ros/cfm_meetings_api.py
3ff91bd0eb1f981f96b250de09609407dddab548 28-Nov-2017 Claes Malmnas <malmnas@google.com> [CfM autotest] Removed unused code.

Deleted unused method. Code for checking if a UsbDevice has the expected
set of interfaces can be found in the UsbDevice class.

Updated the unit test at the same time.

TEST=unit tests
BUG=chromium:784396

Change-Id: I5808518945fd7707abc59b96c1329ae85b21cb3a
Reviewed-on: https://chromium-review.googlesource.com/793032
Reviewed-by: Kristoffer Erlandsson <kerl@google.com>
Reviewed-by: Claes Malmnäs <malmnas@google.com>
Commit-Queue: Claes Malmnäs <malmnas@google.com>
Tested-by: Claes Malmnäs <malmnas@google.com>
Trybot-Ready: Claes Malmnäs <malmnas@google.com>
ros/cfm/usb/usb_device_collector.py
ros/cfm/usb/usb_device_collector_unittest.py
262d965e3808bfd9f33ae486d246a6161fac3b40 23-Nov-2017 Denis Tosic <dtosic@chromium.org> [autotest][cfm] Use cfm_usb_devices instead of magic numbers and strings

Also refactors the tests to make it more readable. The test now also runs
properly when multiple peripherals that expose the same type
(e.g. Microphone or Video) are connected.

TEST=on lab device and local setup
BUG=chromium:788164

Change-Id: I702ac6fb0291bbc2e2f185b302fd8aaa5e36c1aa
Reviewed-on: https://chromium-review.googlesource.com/787714
Trybot-Ready: Denis Tosic <dtosic@chromium.org>
Reviewed-by: Kristoffer Erlandsson <kerl@google.com>
Reviewed-by: Claes Malmnäs <malmnas@google.com>
Tested-by: Denis Tosic <dtosic@chromium.org>
ros/cfm/usb/cfm_usb_devices.py
8926c4c1113859e66e4729c36ad93b7ace25318b 24-Nov-2017 Claes Malmnas <malmnas@google.com> [CfM autotest] update the DualSpeaker test to use CrasNodeCollector.

BUG=chromium:788129
TEST=local setup
pre-cq-configs: bluestreak-pre-cq

Change-Id: I106101e0bb851f74b130afe4914660348a40d0b8
Reviewed-on: https://chromium-review.googlesource.com/789036
Commit-Queue: Claes Malmnäs <malmnas@google.com>
Tested-by: Claes Malmnäs <malmnas@google.com>
Trybot-Ready: Claes Malmnäs <malmnas@google.com>
Reviewed-by: Denis Tosic <dtosic@chromium.org>
Reviewed-by: Claes Malmnäs <malmnas@google.com>
ros/cfm/cras_input_node.py
ros/cfm/cras_node_collector.py
ros/cfm/cras_node_collector_unittest.py
ros/cfm/cras_output_node.py
4750f0dc956001cc2e181256583d57146b5aa22e 24-Nov-2017 Claes Malmnas <malmnas@google.com> [CfM autotest] move interface check to UsbDevice.

Move code for checking interface against spec from UsbDeviceCollector to UsbDevice. The collector should only collect usb devices.

BUG=chromium:784396
TEST=locally

Change-Id: I7c581ecd1e86178495bcbe4f15410f574ee8e1fb
Reviewed-on: https://chromium-review.googlesource.com/788854
Reviewed-by: Denis Tosic <dtosic@chromium.org>
Reviewed-by: Claes Malmnäs <malmnas@google.com>
Commit-Queue: Claes Malmnäs <malmnas@google.com>
Tested-by: Claes Malmnäs <malmnas@google.com>
Trybot-Ready: Claes Malmnäs <malmnas@google.com>
ros/cfm/usb/usb_device.py
ros/cfm/usb/usb_device_collector_unittest.py
ros/cfm/usb/usb_device_unittest.py
e818664c094a19a1b6fdff80109e80ce3f6012f4 24-Nov-2017 Claes Malmnas <malmnas@google.com> [CfM autotest] Simplify the UsbDeviecCollector API.

Removed the redundant class UsbDataCollector; it only adds confusion.

BUG=chromium:784396
TEST=unit tests,local setup

Change-Id: Ibd941a9b6e440031c67b7ee41746580e196c9fce
Reviewed-on: https://chromium-review.googlesource.com/788950
Reviewed-by: Denis Tosic <dtosic@chromium.org>
Reviewed-by: Claes Malmnäs <malmnas@google.com>
Commit-Queue: Claes Malmnäs <malmnas@google.com>
Tested-by: Claes Malmnäs <malmnas@google.com>
Trybot-Ready: Claes Malmnäs <malmnas@google.com>
ros/cfm/usb/usb_device_collector.py
ros/cfm/usb/usb_device_collector_unittest.py
83c0fe09032d25971a1c0fe555fc4c278c2c72ab 24-Nov-2017 Denis Tosic <dtosic@chromium.org> [autotest][cfm] Move usb related classes into their own /usb directory

BUG=chromium:784396
TEST=local setup

Change-Id: Iaa05f4b1d8b25ee4f5b52a87deadbec50c123f90
Reviewed-on: https://chromium-review.googlesource.com/788386
Trybot-Ready: Denis Tosic <dtosic@chromium.org>
Reviewed-by: Kristoffer Erlandsson <kerl@google.com>
Tested-by: Denis Tosic <dtosic@chromium.org>
ros/cfm/cfm_usb_devices.py
ros/cfm/cfm_usb_devices_unittest.py
ros/cfm/usb/__init__.py
ros/cfm/usb/cfm_usb_devices.py
ros/cfm/usb/cfm_usb_devices_unittest.py
ros/cfm/usb/usb_device.py
ros/cfm/usb/usb_device_collector.py
ros/cfm/usb/usb_device_collector_unittest.py
ros/cfm/usb/usb_device_spec.py
ros/cfm/usb/usb_device_spec_unittest.py
ros/cfm/usb/usb_device_unittest.py
ros/cfm/usb_device.py
ros/cfm/usb_device_collector.py
ros/cfm/usb_device_collector_unittest.py
ros/cfm/usb_device_spec.py
ros/cfm/usb_device_spec_unittest.py
ros/cfm/usb_device_unittest.py
062283bf0863ee129a5b5ade587384eace343af1 23-Nov-2017 Claes Malmnas <malmnas@google.com> [CfM autotest] rename the class UsbDevices UsbDeviceCollector.

* Moved the class to the cfm subdirectory
* Renamed the class to avoid confusion

BUG=chromium:784396
TEST=local setup, unit test

Change-Id: Id07252a449d5b4f404d8f6427e6bb30ddd428207
Reviewed-on: https://chromium-review.googlesource.com/787892
Reviewed-by: Denis Tosic <dtosic@chromium.org>
Tested-by: Denis Tosic <dtosic@chromium.org>
ros/cfm/usb_device_collector.py
ros/cfm/usb_device_collector_unittest.py
ros/usb_devices.py
ros/usb_devices_unittest.py
d009e10ef914403091d23f5665557caed502b3a8 23-Nov-2017 Claes Malmnas <malmnas@google.com> [CfM autotest] introduce utility classes for cras data.

* cras_node_collector has utility methods for retrieving data
* cras_input_node represents an input node
* cras_output_node represents an output node

BUG=chromium:788129
TEST=unit tests

Change-Id: I8d5836076f4c9afc530de4ecff794a7404be5fe5
Reviewed-on: https://chromium-review.googlesource.com/787475
Reviewed-by: Denis Tosic <dtosic@chromium.org>
Reviewed-by: Claes Malmnäs <malmnas@google.com>
Tested-by: Claes Malmnäs <malmnas@google.com>
Commit-Queue: Claes Malmnäs <malmnas@google.com>
ros/cfm/cras_input_node.py
ros/cfm/cras_node_collector.py
ros/cfm/cras_node_collector_unittest.py
ros/cfm/cras_output_node.py
b978c3d2d137b5f056e6ae5034bd97f9a06dd671 22-Nov-2017 Denis Tosic <dtosic@chromium.org> [autotest][cfm] Improve naming for the MIMO USB devices

We finally know what they stand for :)

Also deleted a couple of unused getter methods, we have
constants that should be used instead.

TEST=local setup
BUG=chromium:785225

Change-Id: Id81a60fe51e8a634288f0b4633bbb497bace89dc
Reviewed-on: https://chromium-review.googlesource.com/785932
Tested-by: Denis Tosic <dtosic@chromium.org>
Tested-by: Claes Malmnäs <malmnas@google.com>
Trybot-Ready: Denis Tosic <dtosic@chromium.org>
Trybot-Ready: Claes Malmnäs <malmnas@google.com>
Reviewed-by: Claes Malmnäs <malmnas@google.com>
Reviewed-by: Denis Tosic <dtosic@chromium.org>
Commit-Queue: Claes Malmnäs <malmnas@google.com>
ros/cfm/cfm_usb_devices.py
ros/cfm/cfm_usb_devices_unittest.py
c3ecf13f848a4cc40cda55b7acdb02cca24a8280 22-Nov-2017 Claes Malmnas <malmnas@google.com> [autotest] Delete the unused file get_usb_devices.py

Tests have been updated to use the new UsbDevices class instead.

BUG=chromium:784396
TEST=locally

Change-Id: I2c208181ee5bc6a468e9677c75f6d30c25498416
Reviewed-on: https://chromium-review.googlesource.com/784891
Commit-Ready: Claes Malmnäs <malmnas@google.com>
Tested-by: Claes Malmnäs <malmnas@google.com>
Reviewed-by: Kristoffer Erlandsson <kerl@google.com>
Reviewed-by: Claes Malmnäs <malmnas@google.com>
ros/get_usb_devices.py
ros/get_usb_devices_unittest.py
c36453e84461fe5e760e5c305a1a944652ef4818 22-Nov-2017 Claes Malmnas <malmnas@google.com> [autoteset] Fix bug RuntimeError argument list.

BUG=chromium:785225
TEST=unit tests

Change-Id: I19e1002a437c777433ad4aa7655720eae2a6d93c
Reviewed-on: https://chromium-review.googlesource.com/784931
Reviewed-by: Kristoffer Erlandsson <kerl@google.com>
Reviewed-by: Claes Malmnäs <malmnas@google.com>
Commit-Queue: Claes Malmnäs <malmnas@google.com>
Tested-by: Claes Malmnäs <malmnas@google.com>
Trybot-Ready: Claes Malmnäs <malmnas@google.com>
ros/usb_devices.py
c87ddde1a16433626df33479923fab1045525f76 21-Nov-2017 Claes Malmnas <malmnas@google.com> [autotest] Update the test to use the UsbDevices utility class.

The test now also has explicit checks for the USB devices that are expected to b
e connected.

Improved a log statement in usb_devices.py at the same time.

BUG=chromium:785225
TEST=local setup

Change-Id: Ibbd76cca5fc8f81c9efdd3fa61f4ff8c5334e780
Reviewed-on: https://chromium-review.googlesource.com/781721
Reviewed-by: Denis Tosic <dtosic@chromium.org>
Reviewed-by: Claes Malmnäs <malmnas@google.com>
Commit-Queue: Claes Malmnäs <malmnas@google.com>
Tested-by: Claes Malmnäs <malmnas@google.com>
Trybot-Ready: Claes Malmnäs <malmnas@google.com>
ros/usb_devices.py
70612434b7faf8fb74cb524d781ad204f5afee49 21-Nov-2017 Claes Malmnas <malmnas@google.com> [autotest] Update usb_devices to not use get_usb_devices.

BUG=chromium:784396
TEST=locally

Change-Id: I471042dfea722abd2e0882a6bafd212def796ae0
Reviewed-on: https://chromium-review.googlesource.com/781719
Commit-Ready: Claes Malmnäs <malmnas@google.com>
Tested-by: Claes Malmnäs <malmnas@google.com>
Reviewed-by: Claes Malmnäs <malmnas@google.com>
Reviewed-by: Denis Tosic <dtosic@chromium.org>
ros/usb_devices.py
bfcd65b40990816d02586e05ff747293da44d45d 14-Nov-2017 Xixuan Wu <xixuan@chromium.org> autotest: parse fast attribute for client job.

BUG=chromium:782501
TEST=Ran tryjob & Ran unittest.

Change-Id: I15f6c3114736a58dbb27158d773019b586efe181
Reviewed-on: https://chromium-review.googlesource.com/768318
Commit-Ready: Xixuan Wu <xixuan@chromium.org>
Tested-by: Xixuan Wu <xixuan@chromium.org>
Reviewed-by: Xixuan Wu <xixuan@chromium.org>
ontrol_data.py
982d68b60ee23f3283ee2ce33e4ba204f212dce3 17-Nov-2017 Claes Malmnas <malmnas@google.com> [autotest] Update UsbDevices to operate on objects instead of strings.

Updated the class to use the UsbDevice class instead of vid:pid strings.

BUG=chromium:785225
TEST=locally

Change-Id: I23b908d21e57ecd2b1447bedd6d20ed897133c57
Reviewed-on: https://chromium-review.googlesource.com/776833
Commit-Ready: Claes Malmnäs <malmnas@google.com>
Tested-by: Claes Malmnäs <malmnas@google.com>
Reviewed-by: Kristoffer Erlandsson <kerl@google.com>
Reviewed-by: Claes Malmnäs <malmnas@google.com>
ros/cfm/cfm_usb_devices.py
ros/cfm/cfm_usb_devices_unittest.py
ros/cfm/usb_device.py
ros/cfm/usb_device_spec.py
ros/cfm/usb_device_spec_unittest.py
ros/cfm/usb_device_unittest.py
ros/get_usb_devices.py
ros/usb_devices.py
ros/usb_devices_unittest.py
7d1a6ab7fb0c9e388c91fe77ef50fe70bbebe1a7 16-Nov-2017 Lloyd Pique <lpique@chromium.org> Alter how ARC disables a UI prompt on APK install

See the bug for context.

Doing this matches what is done in server/cros/tradefed_test.py for
installing and running CTS tests.

TEST='test_that cheets_Notification' passes
BUG=chromium:715005

Change-Id: If292839d68d15cfae110ab684d1afb6a274c7529
Reviewed-on: https://chromium-review.googlesource.com/773584
Commit-Ready: Lloyd Pique <lpique@chromium.org>
Tested-by: Lloyd Pique <lpique@chromium.org>
Reviewed-by: Tomasz Mikolajewski <mtomasz@chromium.org>
ros/arc.py
d0e6c9442800fec993b880936fcf0fba376c3315 16-Nov-2017 Xixuan Wu <xixuan@chromium.org> autotest: remove line breaks in provision error messages.

BUG=chromium:785552
TEST=Ran unittest.

Change-Id: Ic747f0d412fef5e5b9bc8b1f0768e939576424c0
Reviewed-on: https://chromium-review.googlesource.com/773181
Commit-Ready: Ben Chan <benchan@chromium.org>
Tested-by: Xixuan Wu <xixuan@chromium.org>
Reviewed-by: Ben Chan <benchan@chromium.org>
ros/dev_server.py
114710bea18a94d0b95d90a288b71d12a9dddd49 17-Nov-2017 Claes Malmnas <malmnas@google.com> [autotest] Fix bug in _verify_usb_device_ok.

A UsbDevice has a list of interfaces. Since the values are not unique, we can't use set operations to check if a UsbDevice matches the spec.

BUG=chromium:784396
TEST=unit test

Change-Id: I05671795178101bed53a58c9e3bbd0886f25196c
Reviewed-on: https://chromium-review.googlesource.com/775956
Reviewed-by: Denis Tosic <dtosic@chromium.org>
Reviewed-by: Claes Malmnäs <malmnas@google.com>
Commit-Queue: Claes Malmnäs <malmnas@google.com>
Tested-by: Claes Malmnäs <malmnas@google.com>
Trybot-Ready: Claes Malmnäs <malmnas@google.com>
ros/get_usb_devices.py
ros/get_usb_devices_unittest.py
2081ad55d90ed4a068011ef399364dd82ee5139a 16-Nov-2017 Claes Malmnas <malmnas@google.com> [autotest] Code refactoring.

Simplify the code a bit and add some comments to make it easier to understand what it is that is actually checked.

BUG=chromium:784396
TEST=unit tests

Change-Id: Ie3b851339824d02f4fc22a118e7fa4768026ac38
Reviewed-on: https://chromium-review.googlesource.com/774881
Reviewed-by: Kristoffer Erlandsson <kerl@google.com>
Reviewed-by: Claes Malmnäs <malmnas@google.com>
Tested-by: Claes Malmnäs <malmnas@google.com>
Commit-Queue: Claes Malmnäs <malmnas@google.com>
ros/get_usb_devices.py
6e292455e1b1ef24576413b7b2a3583f72cbef43 16-Nov-2017 Claes Malmnas <malmnas@google.com> [autotest] Introduce a UsbDeviceSpec class.

The class is introduces since we need to be able to distinguish between:
*) actual UsbDevices found (by running usb-device) and their properties
*) the specs of the set of known CfM USB peripherals.

The utility class usb_devices.py will be updated to operate on UsbDevice instances in a follow up CL.

BUG=chromium:784396
TEST=locally

Change-Id: I7688bc06beec76c2984bc3c27fb7f815ff5b716a
Reviewed-on: https://chromium-review.googlesource.com/774267
Commit-Ready: Claes Malmnäs <malmnas@google.com>
Tested-by: Kristoffer Erlandsson <kerl@google.com>
Reviewed-by: Kristoffer Erlandsson <kerl@google.com>
ros/cfm/cfm_usb_devices.py
ros/cfm/usb_device.py
ros/cfm/usb_device_spec.py
ros/cfm/usb_device_spec_unittest.py
ros/cfm/usb_device_unittest.py
aa013fadbffb3d551661519fb693e5524bdd54ca 09-Nov-2017 Pradeep Sawlani <sawlani@google.com> autotest: add GceHost for autotest setup.

GceHost was missing from list of host during autotest setup.
This resulted in lakitu(GCE) using CrosHost for doing autotest
installation.
This CL also changes location for temporary directory to
"/usr/local/tmp" since "/tmp" is non executable on lakitu.

BUG=b:68198638
TEST=Tested with server test cloud_CloudConfigServer on lakitu.

Change-Id: I34d059e6632423de7f8a68ca3764f1e4f7f5e1fa
Signed-off-by: Pradeep Sawlani <sawlani@google.com>
Reviewed-on: https://chromium-review.googlesource.com/760497
Reviewed-by: Daniel Wang <wonderfly@google.com>
Reviewed-by: Dan Shi <dshi@google.com>
sbrelease_utils.py
9e2adb61c37f7ce1705b36e5443334b30ec7a1a1 13-Nov-2017 Allen Li <ayatane@chromium.org> [autotest] Move HQE state assertion

BUG=chromium:748234
TEST=None

Change-Id: I9f68b335c9093726d63a7839bb1f17beb7e408a8
Reviewed-on: https://chromium-review.googlesource.com/767064
Commit-Ready: Allen Li <ayatane@chromium.org>
Tested-by: Allen Li <ayatane@chromium.org>
Reviewed-by: Paul Hobbs <phobbs@google.com>
ost_queue_entry_states.py
147cdf4d0fc92918e03bd6597f3a59a9e931b609 14-Nov-2017 Mary Ruthven <mruthven@chromium.org> tpm_utils: wait for TPM ready after clearing the TPM owner

Add an option to wait for the TPM to show that it is ready after
clearing the TPM owner.

There are some tests that use cryptohome after clearing the TPM owner.
There was a change that prevented cryptohome from starting for a while
after the TPM owner was cleared. Those tests started failing because
cryptohome was not running right after reboot. For those tests not
verifying cryptohome, they can use wait_for_ready=True to make sure that
they wont fail because of issues like this.

BUG=b:69056272
BRANCH=none
TEST=run firmware_FWMPDisableCCD on R63-10032.27.0.

Change-Id: I0cbac86d0f3bd3bfdb265ab29956389ef5091c39
Signed-off-by: Mary Ruthven <mruthven@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/769427
Reviewed-by: Kevin Shelton <kmshelton@chromium.org>
ros/tpm_utils.py
36586d71f7cdea63f49b6f9aed9935aabb352f27 15-Nov-2017 Denis Tosic <dtosic@chromium.org> [autotest][cfm] Fix dict key bug

Due to a bad merge the key in some dicts was set
due a UsbDevice object instead of the vid:pid.

This fixes it.

TEST=local
BUG=None

Change-Id: I89866ca62bb128312ccb5715f5dbf92f40550734
Reviewed-on: https://chromium-review.googlesource.com/771211
Reviewed-by: Claes Malmnäs <malmnas@google.com>
Reviewed-by: Denis Tosic <dtosic@chromium.org>
Commit-Queue: Claes Malmnäs <malmnas@google.com>
Tested-by: Claes Malmnäs <malmnas@google.com>
Trybot-Ready: Claes Malmnäs <malmnas@google.com>
ros/get_usb_devices.py
f4fb11b73a916ba9a73013e47dc188f5c39286b1 14-Nov-2017 Xixuan Wu <xixuan@chromium.org> autotest: skip iteration hooks if fast is enabled for jobs.

BUG=chromium:782501
TEST=Ran passed & failed server job on local autotest.
Ran unittest.

Change-Id: I6f0f4c304f4bb4cec98fb82402c4720a11a3eb5c
Reviewed-on: https://chromium-review.googlesource.com/768317
Commit-Ready: Xixuan Wu <xixuan@chromium.org>
Tested-by: Xixuan Wu <xixuan@chromium.org>
Reviewed-by: Xixuan Wu <xixuan@chromium.org>
est.py
est_unittest.py
5019d69a182f2a7b8616d9cbcab54ffeaf3efe66 11-Nov-2017 Xixuan Wu <xixuan@chromium.org> autotest: skip before & after hooks for jobs in fast mode.

If jobs in fast mode fail, after_hook is still called.

BUG=chromium:782501
TEST=Ran (failed) dummy_PassServer on local autotest.
Ran (failed) dummy suite on local autotest.
Ran unittest.

Change-Id: Iddb4b36af2dc32f128bedf8fa2475b8b0c4e3a76
Reviewed-on: https://chromium-review.googlesource.com/764875
Commit-Ready: Xixuan Wu <xixuan@chromium.org>
Tested-by: Xixuan Wu <xixuan@chromium.org>
Reviewed-by: Xixuan Wu <xixuan@chromium.org>
est.py
dd8f59ae1d84d17269f32bdd7f7ce7974eab4632 14-Nov-2017 Claes Malmnas <malmnas@google.com> Code refactoring.

Simplified the code in get_usb_devices.py a bit.

BUG=chromium:780423
TEST=unit tests

Change-Id: I20ac58d889e565fe3c8939b9f61be19e772072a4
Reviewed-on: https://chromium-review.googlesource.com/768742
Reviewed-by: Denis Tosic <dtosic@chromium.org>
Reviewed-by: Claes Malmnäs <malmnas@google.com>
Commit-Queue: Claes Malmnäs <malmnas@google.com>
Tested-by: Claes Malmnäs <malmnas@google.com>
Trybot-Ready: Claes Malmnäs <malmnas@google.com>
ros/get_usb_devices.py
90b7a8a9e1a37f89564e139bbeaaf493a059e471 14-Nov-2017 Denis Tosic <dtosic@chromium.org> [autotest] Use vid:pid as keys in returned dicts

The code was faulty, this is just a simple fix.
The edited calls now match other functions in this file.

TEST=local setup
BUG=chromium:784396
pre-cq-configs: bluestreak-pre-cq

Change-Id: Ic5826e2980fc793cff96f5c46847cc875015c90d
Reviewed-on: https://chromium-review.googlesource.com/768716
Tested-by: Denis Tosic <dtosic@chromium.org>
Trybot-Ready: Denis Tosic <dtosic@chromium.org>
Reviewed-by: Claes Malmnäs <malmnas@google.com>
Reviewed-by: Denis Tosic <dtosic@chromium.org>
ros/get_usb_devices.py
58210a38f80f03f1a8631d4d64a87325fc85c24f 14-Nov-2017 Claes Malmnas <malmnas@google.com> Code refactoring.

Update UsbDevices to not use get_usb_devices in the method get_dual_speakers.

Delete the now unused code in get_usb_devices.py

BUG=chromium:784396
TEST=locally

Change-Id: I76a0bd9870363332603e8623017d599def3a33e2
Reviewed-on: https://chromium-review.googlesource.com/768419
Reviewed-by: Denis Tosic <dtosic@chromium.org>
Commit-Queue: Claes Malmnäs <malmnas@google.com>
Tested-by: Claes Malmnäs <malmnas@google.com>
ros/get_usb_devices.py
ros/usb_devices.py
ros/usb_devices_unittest.py
02418a68a32035244e3ba7858250e04088aafb63 14-Nov-2017 Claes Malmnas <malmnas@google.com> Code refactoring.

Update the enterprise_CFM_DualSpeaker test to use the utility class UsbDevices.

At the same time UsbDevicesat a bit to match its usage in the test.

BUG=chromium:784396
TEST=locally

Change-Id: I2438979929e97c0a015f6e1124a96db2d021abc4
Reviewed-on: https://chromium-review.googlesource.com/768736
Reviewed-by: Denis Tosic <dtosic@chromium.org>
Reviewed-by: Claes Malmnäs <malmnas@google.com>
Commit-Queue: Claes Malmnäs <malmnas@google.com>
Tested-by: Claes Malmnäs <malmnas@google.com>
Trybot-Ready: Claes Malmnäs <malmnas@google.com>
ros/usb_devices.py
f444234190b9b2c06d0079cb1583545723104738 13-Nov-2017 Kristoffer Erlandsson <kerl@google.com> Dump useful system data in webrtc perf tests.

Dump info from top, iostat, and netstat.

Initial version to verify the approach works. The dump logic
should probably be in a separate util so that it can be reused by our
CfM perf tests as well.

TEST=Local DUT and checked generated files.
BUG=chromium:784365

pre-cq-configs: bluestreak-pre-cq
Change-Id: I49dc0105f907f71b583ae3b5492d6932df6415fc
Reviewed-on: https://chromium-review.googlesource.com/767387
Commit-Ready: Kristoffer Erlandsson <kerl@google.com>
Tested-by: Kristoffer Erlandsson <kerl@google.com>
Reviewed-by: Kristoffer Erlandsson <kerl@google.com>
Reviewed-by: Claes Malmnäs <malmnas@google.com>
ros/test_webrtc_peer_connection.py
f0fa4bb12dc9b577e18ecfbad0dffddb23326122 10-Nov-2017 Drew Davenport <ddavenport@chromium.org> autotest: Don't use list as default value

Since default arguments in python are mutable, this means that
the default value of extension_paths gets modified.

BUG=none
TEST=trybots

Change-Id: Ia354f4197e6079305f14789fe7c2be1161cdd158
Reviewed-on: https://chromium-review.googlesource.com/763573
Commit-Ready: Drew Davenport <ddavenport@chromium.org>
Tested-by: Drew Davenport <ddavenport@chromium.org>
Reviewed-by: Achuith Bhandarkar <achuith@chromium.org>
ros/chrome.py
f9273633cafc90f0bf0ac2518e89ec33c85d2af3 13-Nov-2017 Claes Malmnas <malmnas@google.com> Introduce a utility class for getting UsbDevice data in CfM autotests.

BUG=chromium:784396
TEST=locally

Change-Id: I1d5dff3cf64703f1a4636fc56c2982f9e61e28bb
Reviewed-on: https://chromium-review.googlesource.com/765830
Reviewed-by: Denis Tosic <dtosic@chromium.org>
Reviewed-by: Kristoffer Erlandsson <kerl@google.com>
Reviewed-by: Claes Malmnäs <malmnas@google.com>
Commit-Queue: Claes Malmnäs <malmnas@google.com>
Tested-by: Claes Malmnäs <malmnas@google.com>
Trybot-Ready: Claes Malmnäs <malmnas@google.com>
ros/usb_devices.py
ros/usb_devices_unittest.py
e8ce6542fee3a701b72267766ffb03011847a65c 08-Nov-2017 Xixuan Wu <xixuan@chromium.org> autotest: add metrics for functions called by disable_sysinfo.

BUG=chromium:782501
TEST=Ran dummy_Pass & dummy_PassServer on local autotest.

Change-Id: I90cc3e182a4f02922da7c9d91419d876f08d1d06
Reviewed-on: https://chromium-review.googlesource.com/757779
Commit-Ready: Xixuan Wu <xixuan@chromium.org>
Tested-by: Xixuan Wu <xixuan@chromium.org>
Reviewed-by: Xixuan Wu <xixuan@chromium.org>
est.py
est_unittest.py
cd36ae0a377f228c69f58d7c5c854ee1a7abf94b 10-Nov-2017 Xixuan Wu <xixuan@chromium.org> autotest: Enable passing in parameters from create job page.

BUG=chromium:782501
TEST=Ran client job & suite job on local autotest. Verify that fast is
injected into control file.
Ran unittest.

Change-Id: I061694392fb3b789a5135ad2af241f2b0886123a
Reviewed-on: https://chromium-review.googlesource.com/764431
Commit-Ready: Xixuan Wu <xixuan@chromium.org>
Tested-by: Xixuan Wu <xixuan@chromium.org>
Reviewed-by: Dan Shi <dshi@google.com>
ase_job.py
ase_job_unittest.py
ontrol_data.py
74e108cd4bbbb53ceb97aaf5388934b9b6af0f07 10-Nov-2017 Claes Malmnas <malmnas@google.com> Update get_usb_device to only use constants defined in cfm_usb_devices.

BUG=chromium:780840
TEST=unit tests

Change-Id: I6fdc07786d3da544d27c633977962664ef250b36
Reviewed-on: https://chromium-review.googlesource.com/763452
Reviewed-by: Denis Tosic <dtosic@chromium.org>
Reviewed-by: Claes Malmnäs <malmnas@google.com>
Commit-Queue: Claes Malmnäs <malmnas@google.com>
Tested-by: Claes Malmnäs <malmnas@google.com>
Trybot-Ready: Claes Malmnäs <malmnas@google.com>
ros/cfm/cfm_usb_devices.py
ros/cfm/cfm_usb_devices_unittest.py
ros/cfm/usb_device.py
ros/cfm/usb_device_unittest.py
ros/get_usb_devices.py
7a293f8ff61f66b3883281dde7f4010824ca3cf3 10-Nov-2017 Kristoffer Erlandsson <kerl@google.com> Temperature collection in system_metrics_collector

This changes how enterprise_CFM_Perf gets its temperature
data. Previously it got temperature from ectool if available, otherwise
from `mosys -k sensor print thermal temp0`. Now we get the max
from all sensors we know of in /proc using the already existing
utils.get_current_temperature_max().

This implicitly adds temperature collection to webrtc perf tests.

BUG=chromium:783085
TEST=enterprise_CFM_Perf on local DUT

pre-cq-configs: bluestreak-pre-cq
Change-Id: I02b6100d35304a9813eabfb726eafd1d1146a827
Reviewed-on: https://chromium-review.googlesource.com/763509
Commit-Ready: Kristoffer Erlandsson <kerl@google.com>
Tested-by: Kristoffer Erlandsson <kerl@google.com>
Reviewed-by: Harpreet Grewal <harpreet@chromium.org>
Reviewed-by: Claes Malmnäs <malmnas@google.com>
ros/system_metrics_collector.py
ros/system_metrics_collector_unittest.py
13455229e5cecf4a921ffe39e142ca6f2d373fc5 10-Nov-2017 Kristoffer Erlandsson <kerl@google.com> enterprise_CFM_Perf uses system_metrics_collector.

Added PeakMetric to the collector to support collecting the peak usages
to keep that functionality.

Refactoring of the system_metrics_collector to support the PeakMetric
and make it easier to add custom metrics such as the
ParticipantCountMetric.

BUG=chromium:783085
TEST=enterprise_CFM_Perf on local DUT and verified results-chart.json

pre-cq-configs: bluestreak-pre-cq
Change-Id: I2f5f4f63bd2d5e1838d3a44368e8ec13dec4ec86
Reviewed-on: https://chromium-review.googlesource.com/763547
Commit-Ready: Kristoffer Erlandsson <kerl@google.com>
Tested-by: Kristoffer Erlandsson <kerl@google.com>
Reviewed-by: Kristoffer Erlandsson <kerl@google.com>
Reviewed-by: Claes Malmnäs <malmnas@google.com>
ros/system_metrics_collector.py
ros/system_metrics_collector_unittest.py
2f9ebf7df88745695d6eb52a853aefd99d404469 08-Nov-2017 Claes Malmnas <malmnas@google.com> Simplified the code in is_usb_device_ok a bit and added a unit test.

BUG=chromium:780423
TEST=locally, unit tests (the modified autotest is not run anywhere)

Change-Id: If4c25db1e38514a8e3a82de170609f76ea2e98fd
Reviewed-on: https://chromium-review.googlesource.com/758258
Reviewed-by: Kristoffer Erlandsson <kerl@google.com>
Reviewed-by: Claes Malmnäs <malmnas@google.com>
Commit-Queue: Claes Malmnäs <malmnas@google.com>
Tested-by: Claes Malmnäs <malmnas@google.com>
ros/get_usb_devices.py
ros/get_usb_devices_unittest.py
eb8f75ab091dc65c910131aaee6604d6c43bed2c 09-Nov-2017 Kazuhiro Inaba <kinaba@chromium.org> cheets_GTS: Add timestamp to the adb_keepalive log.

This background job's log output did not include the timestamp info
so it was hard to debug. By setting up the autotest logging_config,
it'll use the same format as the main test process.

Before:
[stderr] BgJob "adb_keepalive" DEBUG:root:Running 'adb get-state'
[stderr] BgJob "adb_keepalive" DEBUG:root:adb get-state: device

After:
[stdout] BgJob "adb_keepalive" 21:00:16 DEBUG| Running 'adb get-state'
[stdout] BgJob "adb_keepalive" 21:00:16 DEBUG| adb get-state: device

Note that directly calling logging.basicConfig(format=...) does not
work, because the indirectly imported logging_config is already
installing the default-format handler while imported.

BUG=b:69126124
TEST=cheets_GTS.5.0_r2.GtsBackupHostTestCases

Change-Id: Idf0431cbace5c350d6af9253f736d1e913a12927
Reviewed-on: https://chromium-review.googlesource.com/762849
Commit-Ready: Kazuhiro Inaba <kinaba@chromium.org>
Tested-by: Kazuhiro Inaba <kinaba@chromium.org>
Reviewed-by: Ilja H. Friedel <ihf@chromium.org>
ros/adb_keepalive.py
fdc9ee7d1248f3eba20a370e8be926c8a00da9d8 09-Nov-2017 Claes Malmnas <malmnas@google.com> Re-use methods and constants from cfm_usb_devices to avoid code duplication.

BUG=chromium:780840
TEST=locally

Change-Id: I2f0099696e54843d6727e8d8650c506cacc50f71
Reviewed-on: https://chromium-review.googlesource.com/758847
Reviewed-by: Denis Tosic <dtosic@chromium.org>
Reviewed-by: Kristoffer Erlandsson <kerl@google.com>
Reviewed-by: Claes Malmnäs <malmnas@google.com>
Commit-Queue: Claes Malmnäs <malmnas@google.com>
Tested-by: Claes Malmnäs <malmnas@google.com>
ros/get_usb_devices.py
ros/get_usb_devices_unittest.py
134949883f1f2a9c786a27b9de696ef816cee0ae 09-Nov-2017 Claes Malmnas <malmnas@google.com> Introduce a method for filtering usb data to reduce code duplication.

BUG=chromium:780423
TEST=locally

Change-Id: I8e792066bae484a7e4261a5978ea450cb0ce015c
Reviewed-on: https://chromium-review.googlesource.com/760417
Reviewed-by: Kristoffer Erlandsson <kerl@google.com>
Commit-Queue: Claes Malmnäs <malmnas@google.com>
Tested-by: Claes Malmnäs <malmnas@google.com>
ros/get_usb_devices.py
a69288546513f3166bd22d7aacebea410e44501a 09-Nov-2017 Kristoffer Erlandsson <kerl@google.com> system_metrics_collector now uses system_facade.

Preparation to re-use this in server perf tests.
Added unit tests for system_metrics_collector.

Also removed assert_is_close from utils_unittest since I discovered
there is a built-in method for that.

BUG=chromium:783085
TEST=Unit tests and webrtc perf test on local DUT.

pre-cq-configs: bluestreak-pre-cq
Change-Id: Ie1c6785646db063a4f3fe7efd4c1012279d2e2a0
Reviewed-on: https://chromium-review.googlesource.com/758766
Commit-Ready: Kristoffer Erlandsson <kerl@google.com>
Tested-by: Kristoffer Erlandsson <kerl@google.com>
Reviewed-by: Kristoffer Erlandsson <kerl@google.com>
Reviewed-by: Claes Malmnäs <malmnas@google.com>
ros/system_metrics_collector.py
ros/system_metrics_collector_unittest.py
ros/test_webrtc_peer_connection.py
fa4a021ecd5a10f8dadb0fc5685b2325bfb13d53 07-Nov-2017 Claes Malmnas <malmnas@google.com> Add utility methods for receiving CfM cameras and speakers.

BUG=chromium:780840
TEST=locally

Change-Id: Ib331e990186bf5cc702d70f52ca33d337958d47c
Reviewed-on: https://chromium-review.googlesource.com/756836
Reviewed-by: Denis Tosic <dtosic@chromium.org>
Reviewed-by: Claes Malmnäs <malmnas@google.com>
Commit-Queue: Claes Malmnäs <malmnas@google.com>
Tested-by: Claes Malmnäs <malmnas@google.com>
Trybot-Ready: Claes Malmnäs <malmnas@google.com>
ros/cfm/cfm_usb_devices.py
ros/cfm/cfm_usb_devices_unittest.py
987bb4256348adc75930dac5543ad83829bc2430 07-Nov-2017 Kristoffer Erlandsson <kerl@google.com> Exclude buffers/cached from mem usage calculatiion

For enterprise_CFM_Perf and webrtc perf tests.

TEST=local DUT and verified results-chart.json and perf output.
BUG=chromium:779071

pre-cq-configs: bluestreak-pre-cq
Change-Id: I76d9194e71b58a5735eefec3698ce8e703257a6f
Reviewed-on: https://chromium-review.googlesource.com/756706
Commit-Ready: Kristoffer Erlandsson <kerl@google.com>
Tested-by: Kristoffer Erlandsson <kerl@google.com>
Reviewed-by: Kristoffer Erlandsson <kerl@google.com>
Reviewed-by: Claes Malmnäs <malmnas@google.com>
ros/system_metrics_collector.py
aaebbd1dcc72ceb2c5d0af5cdc2ed4f8efadd0ed 06-Nov-2017 Claes Malmnas <malmnas@google.com> Update get_usb_devices to use CfM USB device constants.

Fixed some indentation inconsistencies at the same time.

BUG=chromium:780840
TEST=locally

Change-Id: I2cc7becb4b036aa3d6164e45c3e2cf6997746679
Reviewed-on: https://chromium-review.googlesource.com/753372
Commit-Ready: Claes Malmnäs <malmnas@google.com>
Tested-by: Denis Tosic <dtosic@chromium.org>
Reviewed-by: Denis Tosic <dtosic@chromium.org>
ros/get_usb_devices.py
ros/get_usb_devices_unittest.py
58776682f8d5bf8d0cf0a87d18b70fb09a43e8b7 06-Nov-2017 Kristoffer Erlandsson <kerl@google.com> Support for tracking allocated file handles.

Tracking these metrics in the webrtc perf tests as a first step.

BUG=chromium:781628
TEST=Local DUT, verified stats written to results-chart.json.

pre-cq-config: bluestreak-pre-cq
Change-Id: Ib9d4cbf3df36acba9c7d7df7ca0d50be478fac7a
Reviewed-on: https://chromium-review.googlesource.com/754814
Commit-Ready: Kristoffer Erlandsson <kerl@google.com>
Tested-by: Kristoffer Erlandsson <kerl@google.com>
Reviewed-by: Kristoffer Erlandsson <kerl@google.com>
Reviewed-by: Claes Malmnäs <malmnas@google.com>
ros/system_metrics_collector.py
74a56111af9eccd95ab8dafd1d114a6c04e247ec 03-Nov-2017 Paul Hobbs <phobbs@google.com> Revert "[autotest] Fix constraints in hqe_by_insert_time"

This reverts commit e1207af9ea77dfe241c14639a773449f6d07ecf5.

Reason for revert: Speculative fix for crbug.com/781302

Original change's description:
> [autotest] Fix constraints in hqe_by_insert_time
>
> get_host_queue_entries_by_insert_time was showing some strange behavior because
> it was making a wrong assumptions about the gap between insert-time and
> start-time being small.
>
> - Renamed to "get_host_queue_entries_by_start_time"
> - Changed the API to be based on started_on constraints.
> - Changed the function to infer only correct insert-time constraints. This
> means we cannot assume any lower bound on the insert-time, because the gap
> between insert and start times may be arbitrarily large.
> - Added more unit test coverage.
>
> BUG=chromium:748209
> TEST=unit tests pass.
>
> Change-Id: I60133e7a5f6431f35349c17f0644bc04e04cfcbd
> Reviewed-on: https://chromium-review.googlesource.com/685735
> Commit-Ready: Paul Hobbs <phobbs@google.com>
> Tested-by: Paul Hobbs <phobbs@google.com>
> Reviewed-by: Paul Hobbs <phobbs@google.com>

Bug: chromium:748209
Change-Id: I6a4e3c030527aafdd43f1218f514fbd3bbe6bbc6
Reviewed-on: https://chromium-review.googlesource.com/753998
Commit-Ready: Paul Hobbs <phobbs@google.com>
Tested-by: Paul Hobbs <phobbs@google.com>
Reviewed-by: Allen Li <ayatane@chromium.org>
ime_utils.py
a4284af727b461f285c92385160eaddc8f64ae49 06-Nov-2017 Claes Malmnas <malmnas@google.com> Extract code for extracting vid and pid to utility method.

Reduce code duplicaton.

Fixed formatting of @param and @returns at the same time.

BUG=chromium:780423
TEST=locally

Change-Id: Ib2aab3f2cdd572c82b474d1620ebc97fd6aa1f37
Reviewed-on: https://chromium-review.googlesource.com/754685
Commit-Ready: Claes Malmnäs <malmnas@google.com>
Tested-by: Claes Malmnäs <malmnas@google.com>
Reviewed-by: Kristoffer Erlandsson <kerl@google.com>
ros/get_usb_devices.py
ros/get_usb_devices_unittest.py
60d175b792cdc11dc9393699d11ebafd53512e76 06-Nov-2017 Claes Malmnas <malmnas@google.com> Address comments from kerl@.

Context: https://chromium-review.googlesource.com/c/chromiumos/third_party/autotest/+/751264/3

BUG=chromium:780840
TEST=locally

Change-Id: I9444eb69ea2e204244e87b9ae945d45a4418febb
Reviewed-on: https://chromium-review.googlesource.com/754813
Reviewed-by: Kristoffer Erlandsson <kerl@google.com>
Commit-Queue: Claes Malmnäs <malmnas@google.com>
Tested-by: Claes Malmnäs <malmnas@google.com>
ros/cfm/usb_device.py
428fc1d88d398a5e3e4483bce1e1bc876607a4b5 02-Nov-2017 Claes Malmnas <malmnas@google.com> Add constants for CfM USB devices.

These constants can be used by all CfM client tests. They are introduced
to reduce code duplication and to make sure that we have good representation
for USB devices in our tests.

BUG=chromium:780840
TEST=locally

Change-Id: I6c61c1736c09d25f368da194a36a427cff90012d
Reviewed-on: https://chromium-review.googlesource.com/751264
Reviewed-by: Denis Tosic <dtosic@chromium.org>
Commit-Queue: Claes Malmnäs <malmnas@google.com>
Tested-by: Claes Malmnäs <malmnas@google.com>
Trybot-Ready: Claes Malmnäs <malmnas@google.com>
ros/cfm/__init__.py
ros/cfm/cfm_usb_devices.py
ros/cfm/usb_device.py
ros/cfm/usb_device_unittest.py
0e01eb06167e11a5e2854e6e28885e7fce0da195 02-Nov-2017 Claes Malmnas <malmnas@google.com> Code cleanup.

* Removed the redundant CAMERA_LIST and SPEAKER_LIST. The data in these lists
are duplicating the keys in the corresponding CAMERA_MAP and SPEAKER_LIST.
* Simplified the logic in some functions
* Added a unit test for _get_device_prod

BUG=chromium:780423
TEST=locally, unit tests

Change-Id: I1f25b5070594e62e2c63eb6c3743cf343fe14ba7
Reviewed-on: https://chromium-review.googlesource.com/750086
Reviewed-by: Denis Tosic <dtosic@chromium.org>
Commit-Queue: Claes Malmnäs <malmnas@google.com>
Tested-by: Claes Malmnäs <malmnas@google.com>
Trybot-Ready: Claes Malmnäs <malmnas@google.com>
ros/get_usb_devices.py
ros/get_usb_devices_unittest.py
bbbefad465270a25fb2f2eb24d71c241717c9e7f 01-Nov-2017 Claes Malmnas <malmnas@google.com> Add first unit tests for get_usb_devices.

Fixed bug in _extract_usb_data at the same time.

Removed unused import statements to get rid of warnings.

BUG=chromium:780423
TEST=ran test locally

Change-Id: I64cad040d2432b1b86ea513904b9a2347f5518c1
Reviewed-on: https://chromium-review.googlesource.com/749182
Tested-by: Claes Malmnäs <malmnas@google.com>
Reviewed-by: Denis Tosic <dtosic@chromium.org>
Reviewed-by: Claes Malmnäs <malmnas@google.com>
Reviewed-by: Kristoffer Erlandsson <kerl@google.com>
ros/get_usb_devices.py
ros/get_usb_devices_unittest.py
80e63f325dd02ff62a66a819492bef2ba84faee2 26-Oct-2017 Prathmesh Prabhu <pprabhu@chromium.org> Set reasonable timeout for APK install.

In some cases, 'adb install' can hang, leading the test to wait for the
install to finish until abort. We set a reasonable timeout on the
install so that the test will fail instead.

BUG=chromium:715005
TEST=arc board trybot.

Change-Id: I0ff060638a6bcf9092fc8cdc6cf3ccc381f19670
Reviewed-on: https://chromium-review.googlesource.com/738917
Commit-Ready: Prathmesh Prabhu <pprabhu@chromium.org>
Tested-by: Prathmesh Prabhu <pprabhu@chromium.org>
Reviewed-by: Prathmesh Prabhu <pprabhu@chromium.org>
ros/arc.py
e1207af9ea77dfe241c14639a773449f6d07ecf5 07-Sep-2017 Paul Hobbs <phobbs@google.com> [autotest] Fix constraints in hqe_by_insert_time

get_host_queue_entries_by_insert_time was showing some strange behavior because
it was making a wrong assumptions about the gap between insert-time and
start-time being small.

- Renamed to "get_host_queue_entries_by_start_time"
- Changed the API to be based on started_on constraints.
- Changed the function to infer only correct insert-time constraints. This
means we cannot assume any lower bound on the insert-time, because the gap
between insert and start times may be arbitrarily large.
- Added more unit test coverage.

BUG=chromium:748209
TEST=unit tests pass.

Change-Id: I60133e7a5f6431f35349c17f0644bc04e04cfcbd
Reviewed-on: https://chromium-review.googlesource.com/685735
Commit-Ready: Paul Hobbs <phobbs@google.com>
Tested-by: Paul Hobbs <phobbs@google.com>
Reviewed-by: Paul Hobbs <phobbs@google.com>
ime_utils.py
42b8689330ad90d055e52259ac72e67187345ca6 25-Oct-2017 Ben Cheng <bccheng@google.com> Refactor arc_setup to support multi dep_packages.

With this change it allows multiple apks from more than one dep package
to be installed in a single arc_setup call.

The three parameters passed to arc_setup: dep_packages, apks, and
full_pkg_names, will be used as tuples. They are expected to have equal
lengths and if the nested array level is not
enough from legacy benchmarks, it will be adjusted automatically to
reduce unnecessary code churns.

BUG=chromium:777787
TEST=cheets_LinpackTest and cheets_AuthPerf

Change-Id: Icaf60cbcb0590bb71d490be04da1cfec5667b432
Reviewed-on: https://chromium-review.googlesource.com/738069
Commit-Ready: Ben Cheng <bccheng@chromium.org>
Tested-by: Ben Cheng <bccheng@chromium.org>
Reviewed-by: Chung-yih Wang <cywang@google.com>
ros/arc.py
06b436550b909b5e27ce090dcaa2ff13178b2244 26-Oct-2017 Denis Tosic <dtosic@chromium.org> [autotest][cfm] Report participants_count as part of the cfm_perf test

The test so far reported only the amount of active video streams
which made it hard to tell whether the test setup (large meetings)
was valid during a run or not. By adding the participant_count perf
metric we can now easily verify that.

Also removes the reporting of avg_{cpu, memory_usage, temp} since these
values are already reported in the perf dashboard.

BUG=chromium:741644
TEST=local setup (both hangouts and meet app)
pre-cq-configs: bluestreak-pre-cq

Change-Id: Id807a31c03c1f4ef1d02686ee7a5d012641f5361
Reviewed-on: https://chromium-review.googlesource.com/739121
Commit-Ready: Denis Tosic <dtosic@chromium.org>
Tested-by: Denis Tosic <dtosic@chromium.org>
Reviewed-by: Kristoffer Erlandsson <kerl@google.com>
ros/cfm_hangouts_api.py
ros/cfm_meetings_api.py
4618adfa60b4fbbf2e1442fc1b6e0ee1896ccd75 10-Oct-2017 Po-Hsien Wang <pwang@chromium.org> cheets_CTS_N: modify max_retry logic

1) Change the max_retry logic to use the minimum retry values.
2) Fix get_channel to get the correct channel from DUT.

BUG=chromium:750374
TEST=test locally
test_that dut cheets_CTS_N.all

Change-Id: I9a301c5596dbf6da15dc2a495e59c59a5d630d7c
Reviewed-on: https://chromium-review.googlesource.com/710615
Commit-Ready: Ilja H. Friedel <ihf@chromium.org>
Tested-by: Ilja H. Friedel <ihf@chromium.org>
Reviewed-by: Ilja H. Friedel <ihf@chromium.org>
sbrelease_utils.py
1cc22ea2a84653ddd9e4b8923480d8bd169e835c 19-Oct-2017 Richard Barnette <jrbarnette@chromium.org> [autotest] Add metrics for repair.

This adds metrics to track the outcomes of repair actions.

BUG=chromium:776505
TEST=unit tests

Change-Id: If5a92a67671d4d36a6ae0fa4224930a3df3eaf39
Reviewed-on: https://chromium-review.googlesource.com/729211
Commit-Ready: Richard Barnette <jrbarnette@google.com>
Tested-by: Richard Barnette <jrbarnette@chromium.org>
Reviewed-by: Richard Barnette <jrbarnette@google.com>
osts/repair.py
osts/repair_unittest.py
9f74667b1d33d67c6c454b155bc0b50cc4bedf92 21-Oct-2017 Xixuan Wu <xixuan@chromium.org> autotest: Add provision duration metrics.

BUG=chromium:772066
TEST=Ran unittest.

Change-Id: Ibc58c30bf4d298543ebbd825db412fa0f3882ec0
Reviewed-on: https://chromium-review.googlesource.com/731647
Commit-Ready: Xixuan Wu <xixuan@chromium.org>
Tested-by: Xixuan Wu <xixuan@chromium.org>
Reviewed-by: David Haddock <dhaddock@chromium.org>
ros/dev_server.py
cc7f40b3fd0a0c371d7a38502a7bc575a93e5bf7 24-Oct-2017 Zhongze Hu <frankhu@google.com> Fix issue in autotest power_cycle_utils

The power_cycle_gpio function will check whether /sys/class/gpio/gpioxxx
exits before toggling its value. There is the bug in the code that the
check is done on the host machine instead of the DUT. So when the file
does exit, the test will fail. The CL is meant to fix this.

BUG=chromium:776141
TEST=run the autotest locally and verify it passes with the gpioxxx file
exit

Change-Id: I29363f799ec119b4b13a7f37d755add4f0731a54
Reviewed-on: https://chromium-review.googlesource.com/734187
Commit-Ready: Zhongze Hu <frankhu@google.com>
Tested-by: Zhongze Hu <frankhu@google.com>
Reviewed-by: Harpreet Grewal <harpreet@chromium.org>
ros/power_cycle_usb_util.py
647599fa577d0adef3fb53e7f81e1203671a301e 20-Oct-2017 Lloyd Pique <lpique@chromium.org> Get more ARC Android build properties

This is a simple change that allows the Android API level and product
strings to be retrieved.

TEST=A new test can use these to verify the build properties
BUG=b:64448956

Functions to get ARC Android API Level and Product

Change-Id: I92c1b65a1cb4aed8ece063ef44d33f4dc2e298c7
Reviewed-on: https://chromium-review.googlesource.com/729326
Commit-Ready: Lloyd Pique <lpique@chromium.org>
Tested-by: Lloyd Pique <lpique@chromium.org>
Reviewed-by: Victor Hsieh <victorhsieh@chromium.org>
ros/arc.py
d78c249fc2d74a09751f5707ca07ef4cccf526e2 19-Oct-2017 David Haddock <dhaddock@chromium.org> [autotest] Replace existing devserver metrics.

In a previous CL I added additional metrics. Now I will replace the
original ones with these. This two step process was done to avoid adding
a new field to an existing metric.

BUG=chromium:769399
TEST=autoupdate_EndToEndTest and provision_AutoUpdate pass

Change-Id: I027125ac5c5661e566a86c16aa3e7bdff288cc07
Reviewed-on: https://chromium-review.googlesource.com/727539
Commit-Ready: David Haddock <dhaddock@chromium.org>
Tested-by: David Haddock <dhaddock@chromium.org>
Reviewed-by: Xixuan Wu <xixuan@chromium.org>
ros/dev_server.py
07f8604638e50ada79bbf6fba3470f6e1e8e194e 19-Oct-2017 Richard Barnette <jrbarnette@chromium.org> [autotest] Simplify log recording in repair/verify.

This creates shared methods for handling log status recording in
repair and verify.

BUG=None
TEST=unit tests

Change-Id: I40f11b43f6aed1de51d87c778afb800da6ed7634
Reviewed-on: https://chromium-review.googlesource.com/729210
Commit-Ready: Richard Barnette <jrbarnette@chromium.org>
Tested-by: Richard Barnette <jrbarnette@chromium.org>
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
osts/repair.py
osts/repair_unittest.py
35faea362c6441d1c7d13de7cad87d0a1bb203c3 14-Oct-2017 Caveh Jalali <caveh@google.com> FAFT: pep8 style fixes in ChipFwUpdate.

nothing to see here... just reflowing the code to make pep8 happy.

BUG=b:66926351
TEST=format checked with pep8 utility

Change-Id: I0cb9578afcaed713f7ce7deb860c7998968f6281
Signed-off-by: Caveh Jalali <caveh@google.com>
Reviewed-on: https://chromium-review.googlesource.com/722023
Reviewed-by: Wai-Hong Tam <waihong@google.com>
ros/chip_utils.py
a7dce787522674a6a36a929f924cea410f36cb29 10-Oct-2017 David Haddock <dhaddock@chromium.org> [autotest] Add replacement metrics for provisions.

These new metrics will replace the exisitng metrics.
The end goal is to get an additional field in the existing metrics which
we cannot do currently.

BUG=chromium:769399
TEST=au_e2etest and autoupdate_provision pass

Change-Id: I7a395f830de58317fce0f18e960253dd1b1a511a
Reviewed-on: https://chromium-review.googlesource.com/687956
Commit-Ready: David Haddock <dhaddock@chromium.org>
Tested-by: David Haddock <dhaddock@chromium.org>
Reviewed-by: Xixuan Wu <xixuan@chromium.org>
ros/dev_server.py
485f4b035c23113d5d33d7a00825c8b8c485204d 10-Oct-2017 Caveh Jalali <caveh@google.com> FAFT: TCPC firmware update test

this is a new test that can exercise the ps8751 TCPC firmware update.

it extracts bios.bin from the DUT system image shellball, splices in
the specified TCPC firmware blob, re-signs it, flashes it, and reboots
the DUT.

TEST=tested TCPC firmware update with
test_that --autotest_dir /home/caveh/trunk/src/third_party/autotest/files/
--board=reef 169.254.0.20 'f:.*firmware_ChipFwUpdate/control'
--args 'bios=/build/reef/firmware/image.serial.bin
ps8751=/tmp/ps8751_a3_0x37.bin'

BUG=b:66926351

Change-Id: Id6e7a56109b394521e31e062e2a6243aaa86f035
Signed-off-by: Caveh Jalali <caveh@google.com>
Reviewed-on: https://chromium-review.googlesource.com/707749
Reviewed-by: Wai-Hong Tam <waihong@google.com>
ros/chip_utils.py
2a302690171eaa237a430ffce59106bcdb7b8a1d 05-Oct-2017 Min Zhuo <mzhuo@google.com> This script checks Mimo is present including both Displaylink and
SiS controller.

Before starting test script checks whether Mimo is present, also checks
CfM has at least one Speaker/Microphone and Camera. If any of them is
not detected test is aborted.

Script reboots CfM n times, which, by default, is set to 10.
After CfM comes up script checks Mimo state.
Script powers cycle Mimo n times, and checks Mimo state afterwards.

textfsm.py is saved under /common_lib/cros which is Python module for
parsing semi-structured text into python tables. testfsm.py is
downloaded
from https://github.com/google/textfsm. usb_devices.textfsm is template
file for parsing the output of "usb-devices" on CfM. get_usb_devices.py
is parser which uses textfsm.py to polpulate usb data structure based on
template usb_devices.textfsm.

BUG=b/63100573
TEST=Tested against local setup.

Change-Id: I3a0401898dcd9524a0fa87d5a17fcea433c64050
Reviewed-on: https://chromium-review.googlesource.com/701667
Commit-Queue: Harpreet Grewal <harpreet@chromium.org>
Tested-by: Harpreet Grewal <harpreet@chromium.org>
Trybot-Ready: Harpreet Grewal <harpreet@chromium.org>
Reviewed-by: Min Zhuo <mzhuo@chromium.org>
Reviewed-by: Harpreet Grewal <harpreet@chromium.org>
ros/get_usb_devices.py
ros/textfsm.py
ros/usb_devices.textfsm
b9858e9133a75ba60fa3c13081afe4c0d7a3f300 04-Oct-2017 Xixuan Wu <xixuan@chromium.org> autotest: Don't retry empty string in devserver call.

BUG=chromium:771236
TEST=Ran unittest.

Change-Id: I7b62f6613ca0dedd044ea5dfa2697394805854f1
Reviewed-on: https://chromium-review.googlesource.com/700758
Commit-Ready: Xixuan Wu <xixuan@chromium.org>
Tested-by: Xixuan Wu <xixuan@chromium.org>
Reviewed-by: Paul Hobbs <phobbs@google.com>
Reviewed-by: Dan Shi <dshi@google.com>
ros/dev_server.py
259770817ae9561cad7f299ea4a6eb03bd84a7d2 22-Sep-2017 Xixuan Wu <xixuan@chromium.org> autotest: Combine provision errors together.

This CL also separate the metrics for different tries of provisions.

BUG=chromium:760698
TEST=Ran unittest.

Change-Id: If18b7d2fd4ceba63786d6a4f802af73c1df1a363
Reviewed-on: https://chromium-review.googlesource.com/677879
Commit-Ready: Xixuan Wu <xixuan@chromium.org>
Tested-by: Xixuan Wu <xixuan@chromium.org>
Reviewed-by: David Haddock <dhaddock@chromium.org>
ros/dev_server.py
400de5761b703d21a15503c5b9c27d2f3c3be8e4 07-Sep-2017 Achuith Bhandarkar <achuith@chromium.org> autotest: Support for fake enrollment

* Enterprise_FakeEnrollment is a test that enrolls with a fake dmserver and logs
in.
* enrollment.EnterpriseFakeEnrollment calls oobe.NavigateFakeLogin.
* EnterprisePolicyTest._launch_chrome_browser now handles enrolling.

BUG=chromium:651249
TEST=enterprise_FakeEnrollment

Change-Id: I0fcf01be4824e8c17cc6af3d977f41df41019b0b
Reviewed-on: https://chromium-review.googlesource.com/696430
Commit-Ready: Achuith Bhandarkar <achuith@chromium.org>
Tested-by: Achuith Bhandarkar <achuith@chromium.org>
Reviewed-by: Katherine Threlkeld <kathrelkeld@chromium.org>
ros/enrollment.py
7d41122ee9eaf8d598a10a9bb8638e3c7a81142e 03-Oct-2017 Edward Hill <ecgh@chromium.org> site_linux_router: Check router fragmentation threshold after setting it.

ath10k firmware (on whirlwind routers) doesn't support setting
fragmentation threshold so check and return TestNAError if the
setting was ignored.

BUG=chromium:753177
TEST=network_WiFi_RxFrag (on panther, stumpy, whirlwind)

Change-Id: I71494c7382e225fed5b5bf339fb7e93cd1f86705
Reviewed-on: https://chromium-review.googlesource.com/696133
Commit-Ready: Edward Hill <ecgh@chromium.org>
Tested-by: Edward Hill <ecgh@chromium.org>
Reviewed-by: Brian Norris <briannorris@chromium.org>
ros/network/iw_runner.py
ros/network/iw_runner_unittest.py
782e2a81bb3640063be943bcb4b0777891aeacb7 27-Sep-2017 Keith Haddow <haddowk@chromium.org> [autotest] Add the ability for a test to specify increased priority.

When you run a suite all tests are treated equally, when running
CTS tests on moblab some tests take much longer than others.

By scheduling the long running tests first it is possible to
optimize the DUT usage and reduce the time partners are able to
provide results to Google, making it easier to keep releases on
schedule.

BUG=chromium:769086
TEST=ran on moblab, also ran unittests

Change-Id: Ic679dac36b920330130d75d5d396296ec4fbc909
Reviewed-on: https://chromium-review.googlesource.com/685831
Commit-Ready: Keith Haddow <haddowk@chromium.org>
Tested-by: Keith Haddow <haddowk@chromium.org>
Reviewed-by: Dan Shi <dshi@google.com>
ontrol_data.py
894f66426521ad2e3d10c51f299e847c452bd000 02-Oct-2017 Keith Haddow <haddowk@chromium.org> Revert "This script checks Mimo is present including both Displaylink and SiS controller."

Reverted because of build error crbug.com/770761

This reverts commit 667961c4c02ada07dae20583bdf0469b45aca2f1.

Change-Id: Ib64d32e32c51cf4e93d1d1d0e35357444530d4af
Reviewed-on: https://chromium-review.googlesource.com/695862
Commit-Queue: Keith Haddow <haddowk@chromium.org>
Tested-by: Keith Haddow <haddowk@chromium.org>
Trybot-Ready: Keith Haddow <haddowk@chromium.org>
Reviewed-by: Paul Hobbs <phobbs@google.com>
ros/get_usb_devices.py
ros/textfsm.py
ros/usb_devices.textfsm
3bc919c4197f6cca269e2fb3ad0004615921ad54 11-Jul-2017 Min Zhuo <mzhuo@google.com> Tests Hotrod App and CfM are in sync for mute, unmute and changing
volume when there are dual speakers.

1. The state of mute/umute should be sync between CfM and speakers.
2. The volume of two speakers should be sync to volume set by CfM.
3. When doing mute/unmute speakers from CfM, (1) remains valid.
4. When changing volume from CfM, (2) remains valid.
5. After disconnect/re-connect any speaker, the above 4 remain valid.

BUG=chromium:717332, 708884, 660188
TEST=Tested against local setup.

pre-cq-configs: bluestreak-pre-cq

Change-Id: Ie0b659d9a7e5611d7cf19235d4b7d45477868e88
Reviewed-on: https://chromium-review.googlesource.com/566293
Commit-Ready: Min Zhuo <mzhuo@chromium.org>
Tested-by: Min Zhuo <mzhuo@chromium.org>
Reviewed-by: Harpreet Grewal <harpreet@chromium.org>
Reviewed-by: Min Zhuo <mzhuo@chromium.org>
ros/power_cycle_usb_util.py
ee8a2b98cece0fe46a561e0b88e59cf57115a7e1 28-Sep-2017 Lloyd Pique <lpique@chromium.org> Split out gtest_parser into client/common_lib

This allows client tests to use the parser.

The two existing users of it have been fixed up to import from the new
location.

BUG=None
TEST=None

Change-Id: I63b75c41f81b029723741f2cc47b71ed961f6862
Reviewed-on: https://chromium-review.googlesource.com/688641
Commit-Ready: Lloyd Pique <lpique@chromium.org>
Tested-by: Lloyd Pique <lpique@chromium.org>
Reviewed-by: Dan Shi <dshi@google.com>
test_parser.py
667961c4c02ada07dae20583bdf0469b45aca2f1 07-Jul-2017 Min Zhuo <mzhuo@google.com> This script checks Mimo is present including both Displaylink and
SiS controller.

Before starting test script checks whether Mimo is present, also checks
CfM has at least one Speaker/Microphone and Camera. If any of them is
not detected test is aborted.

Script reboots CfM n times, which, by default, is set to 10.
After CfM comes up script checks Mimo state.
Script powers cycle Mimo n times, and checks Mimo state afterwards.

textfsm.py is saved under /common_lib/cros which is Python module for
parsing semi-structured text into python tables. testfsm.py is downloaded
from https://github.com/google/textfsm. usb_devices.textfsm is template
file for parsing the output of "usb-devices" on CfM. get_usb_devices.py
is parser which uses textfsm.py to polpulate usb data structure based on
template usb_devices.textfsm.

BUG=b/63100573
TEST=Tested against local setup.

pre-cq-configs: bluestreak-pre-cq

Change-Id: Ie1795ee8c138bb2469fc83e9dfbb21d201d9f493
Reviewed-on: https://chromium-review.googlesource.com/563609
Reviewed-by: Min Zhuo <mzhuo@chromium.org>
Reviewed-by: Harpreet Grewal <harpreet@chromium.org>
Tested-by: Min Zhuo <mzhuo@chromium.org>
ros/get_usb_devices.py
ros/textfsm.py
ros/usb_devices.textfsm
088441fce033187fada981e59ee0b8834c1e6147 27-Sep-2017 Aviv Keshet <akeshet@chromium.org> Revert "[autotest] Save metrics for cros_au triggered from autoupdate_EndToEndTest."

This reverts commit 400d294f9b73ff018eba5edf0b5aeb0d400261fd.

Reason for revert: risk of inconsistent field set

Original change's description:
> [autotest] Save metrics for cros_au triggered from autoupdate_EndToEndTest.
>
> autoupdate_EndToEndTest uses dev_server.auto_update() to trigger cros_au
> and start an update. When it does this, the devserver tries to parse a
> build_name in the format samus-release/RXX-0000.0.0.
>
> But the test is run with two google storage uris from the
> gs://chromeos-releases bucket that don't have a build_name in this
> format. So it outputs a message that metrics cannot be parsed and it
> will continue anyway.
>
> This test runs a lot so we should save metrics from it. The metrics want
> the board, release type, and milestone. The only thing I couldn't get
> from the URI was the milestone so I'm getting this from the
> instructions.json file stored with the bucket.
>
> BUG=chromium:709710
> TEST=autoupdate_EndToEndTest and provision_AutoUpdate pass
>
> Change-Id: I99f00d3ff0cf20487e9fa8ae786674c65ddd9409
> Reviewed-on: https://chromium-review.googlesource.com/671218
> Commit-Ready: David Haddock <dhaddock@chromium.org>
> Tested-by: David Haddock <dhaddock@chromium.org>
> Reviewed-by: Xixuan Wu <xixuan@chromium.org>

Bug: chromium:709710
Change-Id: I65e1c30d10493ced16e865b34f697c93b85735e3
Reviewed-on: https://chromium-review.googlesource.com/687955
Tested-by: Aviv Keshet <akeshet@chromium.org>
Reviewed-by: Xixuan Wu <xixuan@chromium.org>
Commit-Queue: Aviv Keshet <akeshet@chromium.org>
ros/dev_server.py
e2000a906fb636de130ca955e74f155b26f35605 28-Sep-2017 Kristoffer Erlandsson <kerl@google.com> Fix incorrect directory for screenshots.

TEST=No test, minor fix
BUG=None

pre-cq-configs: bluestreak-pre-cq
Change-Id: I8dab0d987c1847e4dab25dae30c5e4b2a7a702c1
Reviewed-on: https://chromium-review.googlesource.com/689516
Commit-Ready: Kristoffer Erlandsson <kerl@google.com>
Tested-by: Kristoffer Erlandsson <kerl@google.com>
Reviewed-by: Denis Tosic <dtosic@chromium.org>
ros/test_webrtc_peer_connection.py
2ff7edce3d89ed4d4bdca7046225f8ad9f3fc126 13-Sep-2017 Kristoffer Erlandsson <kerl@google.com> Disable googCpuOveruseDetection for perf tests.

To ensure there is no CPU adaption that disrupts the performance stats
we want to disable CPU overuse detection.

BUG=chromium:764229
TEST=Ran effected tests against local DUT. Verified cpu overuse flag was
picked up for performance tests on chrome://webrtc-internals.

pre-cq-configs: bluestreak-pre-cq

Change-Id: I2b87484592b693bdef3a0973ea3a7c035d2de717
Reviewed-on: https://chromium-review.googlesource.com/678874
Commit-Ready: Kristoffer Erlandsson <kerl@google.com>
Tested-by: Kristoffer Erlandsson <kerl@google.com>
Reviewed-by: Denis Tosic <dtosic@chromium.org>
ros/test_webrtc_peer_connection.py
ros/webrtc_scripts/loopback-peerconnection.js
e3dfe00d35c5d1b4ac48a23b05539fc3347e82b3 26-Sep-2017 Xixuan Wu <xixuan@chromium.org> autotest: Add retry if devserver call fails due to down service.

It's possible that when devserver service is restarting, it temporarily
doesn't work for a very short time window, but may cause HWTest errors.
This CL adds retry for this case. If after a given time period (60s) the
service is still down, we will declare that this devserver is not serving
and won't retry.

BUG=chromium:766342
TEST=Ran unittest.

Change-Id: I66ed4f138ee89909797b889458ddb490dd5aa304
Reviewed-on: https://chromium-review.googlesource.com/685260
Commit-Ready: Xixuan Wu <xixuan@chromium.org>
Tested-by: Xixuan Wu <xixuan@chromium.org>
Reviewed-by: Dan Shi <dshi@google.com>
ros/dev_server.py
ros/dev_server_unittest.py
tils.py
400d294f9b73ff018eba5edf0b5aeb0d400261fd 19-Sep-2017 David Haddock <dhaddock@chromium.org> [autotest] Save metrics for cros_au triggered from autoupdate_EndToEndTest.

autoupdate_EndToEndTest uses dev_server.auto_update() to trigger cros_au
and start an update. When it does this, the devserver tries to parse a
build_name in the format samus-release/RXX-0000.0.0.

But the test is run with two google storage uris from the
gs://chromeos-releases bucket that don't have a build_name in this
format. So it outputs a message that metrics cannot be parsed and it
will continue anyway.

This test runs a lot so we should save metrics from it. The metrics want
the board, release type, and milestone. The only thing I couldn't get
from the URI was the milestone so I'm getting this from the
instructions.json file stored with the bucket.

BUG=chromium:709710
TEST=autoupdate_EndToEndTest and provision_AutoUpdate pass

Change-Id: I99f00d3ff0cf20487e9fa8ae786674c65ddd9409
Reviewed-on: https://chromium-review.googlesource.com/671218
Commit-Ready: David Haddock <dhaddock@chromium.org>
Tested-by: David Haddock <dhaddock@chromium.org>
Reviewed-by: Xixuan Wu <xixuan@chromium.org>
ros/dev_server.py
ea58552c531e829e816c4693c390e9bd60d864a3 20-Sep-2017 Victor Hsieh <victorhsieh@chromium.org> Add arc.get_zygote_type()

TEST=cheets_LoginScreen caroline
BUG=b:62703685

Change-Id: Id05189595bf402afedf0965f255b70a586ae0427
Reviewed-on: https://chromium-review.googlesource.com/675866
Commit-Ready: Yusuke Sato <yusukes@chromium.org>
Tested-by: Victor Hsieh <victorhsieh@chromium.org>
Reviewed-by: Yusuke Sato <yusukes@chromium.org>
ros/arc.py
a2cd7fc631121df38d2b362c9bce62ddac51501a 18-Sep-2017 Kristoffer Erlandsson <kerl@google.com> Store screenshots in debugdir.

Resultsdir as was previously used does not seem to be persisted in
google cloud in case a test fails. The debugdir is persisted in google
cloud.

BUG=chromium:760676
TEST=Existing tests against local DUT, verifed screenshots in debugdir
both on success and failure

Change-Id: I41ae873e4d6f8c4d043aa7f92009863fde402754
Reviewed-on: https://chromium-review.googlesource.com/671368
Commit-Ready: Kristoffer Erlandsson <kerl@google.com>
Tested-by: Kristoffer Erlandsson <kerl@google.com>
Reviewed-by: Kristoffer Erlandsson <kerl@google.com>
ros/test_webrtc_peer_connection.py
f35c065c2901dc00a5760fcb580e684a722b0077 20-Sep-2017 Achuith Bhandarkar <achuith@chromium.org> autotest: Enable background networking for autotests.

We fail a check in ExtensionDownloader::StartUpdateCheck without
background networking.

BUG=chromium:766777
TEST=enterprise_RemoraRequistion

Change-Id: I7e53cdf389db4a3f456d1b6b7107957fdcd811c9
Reviewed-on: https://chromium-review.googlesource.com/673713
Commit-Ready: Achuith Bhandarkar <achuith@chromium.org>
Tested-by: Achuith Bhandarkar <achuith@chromium.org>
Reviewed-by: Harpreet Grewal <harpreet@chromium.org>
ros/chrome.py
4656ea82f9a5fcc4a6beaa55ddae4410fdb95cd7 19-Sep-2017 Ted Lai <tedlai@google.com> Log extra debug info whenever an ArcTest fails.

Specifically, log the recent activities whenever a test fails, and if
the test fails because a UI element is not found, also log the device window
dump.

BUG=none
TEST=manual

Change-Id: Ifc270dd9d6ef0dc39b3bc478df3b816ddc58d821
Reviewed-on: https://chromium-review.googlesource.com/672181
Commit-Ready: Ted Lai <tedlai@chromium.org>
Tested-by: Ted Lai <tedlai@chromium.org>
Reviewed-by: Chung-yih Wang <cywang@google.com>
ros/arc.py
caef7f9de426c2c78e71d44562241e4d56e26efd 19-Sep-2017 Kristoffer Erlandsson <kerl@google.com> Ensure the status check always returns something.

This should fix tests failing with Unhandled EvaluateException:
UncaughtReferenceError, although it is hard to verify since it is not
consistenly reproducable.

We seem to have a race condition where the startCall (which initializes
the testRunner) has not fully completed before the first
testRunner.getStatus() call. This leads to testRunner being undefined
when the status check is made which leads to test failure. See for
example
https://wmatrix.googleplex.com/testrun/unfiltered?test_ids=557813387.

BUG=chromium:766769
TEST=Affected tests against local DUT
pre-cq-configs: bluestreak-pre-cq

Change-Id: I2b321bbdfe204b1f3f8a7e815e2d6e0475af6f4c
Reviewed-on: https://chromium-review.googlesource.com/673445
Commit-Ready: Kristoffer Erlandsson <kerl@google.com>
Tested-by: Kristoffer Erlandsson <kerl@google.com>
Reviewed-by: Kristoffer Erlandsson <kerl@google.com>
Reviewed-by: Claes Malmnäs <malmnas@google.com>
ros/test_webrtc_peer_connection.py
348be63c534709884183aa098d465e32f9563741 18-Sep-2017 Kristoffer Erlandsson <kerl@google.com> Catch wider range of exceptions on screenshot.

The graphics utils screenshot funcionality seems really flaky. In
https://wmatrix.googleplex.com/testrun/unfiltered?test_ids=556844689 we
got a ValueError. Hence, catch a wider range of exceptions to avoid
screenshot errors shadowing real failurs or failing tests.

BUG=chromium:760676
TEST=Ran tests using the screenshots against local DUT.

Change-Id: Ib426296e8f4c26349cac4abee0e64cc58634099e
Reviewed-on: https://chromium-review.googlesource.com/670264
Commit-Ready: Kristoffer Erlandsson <kerl@google.com>
Tested-by: Kristoffer Erlandsson <kerl@google.com>
Reviewed-by: Denis Tosic <dtosic@chromium.org>
ros/test_webrtc_peer_connection.py
162cbf052c311daf90d0facc5c19f46fc7edcd10 13-Sep-2017 Chung-yih Wang <cywang@google.com> platform_LogoutPerf: Add signoff performance test

BUG=chromium:761180
TEST=test_that DUT_IP paltform_LogoutPerf

Change-Id: I24ad5ca0e8211069dfe658a73ab539f3fbdbcc21
Signed-off-by: Chung-yih Wang <cywang@google.com>
Reviewed-on: https://chromium-review.googlesource.com/670804
Reviewed-by: Ben Cheng <bccheng@chromium.org>
ros/arc_util.py
464d00794fe192245c87877515d642244a182111 11-Sep-2017 Kristoffer Erlandsson <kerl@google.com> Add performance versions of WebRTC Autotests.

These versions run the same code as the functional tests but collect
system metrics during the run. Currently only memory and cpu usage is
collected but we intend to add more.

BUG=chromium:764229
TEST=Ran all affected test against local DUT

pre-cq-configs: bluestreak-pre-cq
Change-Id: Ibdfbe05205c071c573a29cdea8d6fe23c6f27dca
Reviewed-on: https://chromium-review.googlesource.com/663157
Commit-Ready: Kristoffer Erlandsson <kerl@google.com>
Tested-by: Kristoffer Erlandsson <kerl@google.com>
Reviewed-by: Denis Tosic <dtosic@chromium.org>
ros/system_metrics_collector.py
ros/test_webrtc_peer_connection.py
cd8f017ddcea589351b81d75271b1c16336fe535 05-Sep-2017 Lutz Justen <ljusten@chromium.org> Add AuthPolicy daemon autotest library

Adds a Python autotest library to run the basic authpolicy commands
domain join, user authentication and policy fetch, as well as helper
methods to print logs and detect seccomp failures. The test that uses
this library is going to be in a private repo.

See also CL:*447072,CL:*447073.

BUG=chromium:687177
TEST=test_that -b chell $DUT_IP enterprise_AuthPolicyDaemon

Change-Id: I7b75ffd1ee0ae931b79afc062a864e43c20e8e08
Reviewed-on: https://chromium-review.googlesource.com/600408
Commit-Ready: Lutz Justen <ljusten@chromium.org>
Tested-by: Lutz Justen <ljusten@chromium.org>
Reviewed-by: Lutz Justen <ljusten@chromium.org>
ros/authpolicy.py
e865e1c93741f4d250808fc9b512ffb97fe00a29 12-Sep-2017 Kristoffer Erlandsson <kerl@google.com> Handle screenshot exceptions.

Handle screenshot exceptions so that errors from screenshots do not hide
the actual test error.

Decreased the timeout of the screenshot to 10 seconds (default was 60).

BUG=chromium:760676
TEST=Ran both crashing test and working test on local DUT

pre-cq-configs: bluestreak-pre-cq
Change-Id: Iab70e25965637a5f902e6987459c91e5f12f6bf4
Reviewed-on: https://chromium-review.googlesource.com/663364
Commit-Ready: Kristoffer Erlandsson <kerl@google.com>
Tested-by: Kristoffer Erlandsson <kerl@google.com>
Reviewed-by: Harpreet Grewal <harpreet@chromium.org>
Reviewed-by: Claes Malmnäs <malmnas@google.com>
ros/test_webrtc_peer_connection.py
4534b786aae6a14992eac83278a7900ab730c8f0 08-Sep-2017 Kristoffer Erlandsson <kerl@google.com> Add screenshot support in WebRTC loopback tests.

Takes screenshots at the end of each test, regardless off pass/fail
status.

Attempts to take a screenshot using graphics_utils as well as
telemetry's tab.Screenshot().

Also fixed some docstrings to match the style guide.

BUG=chromium:760676
TEST=Ran affected tests on local DUT and lab DUT

pre-cq-configs: bluestreak-pre-cq
Change-Id: I81dac674d502f53cc8c8d96af869346179e91c78
Reviewed-on: https://chromium-review.googlesource.com/657180
Commit-Ready: Kristoffer Erlandsson <kerl@google.com>
Tested-by: Kristoffer Erlandsson <kerl@google.com>
Reviewed-by: Claes Malmnäs <malmnas@google.com>
Reviewed-by: Denis Tosic <dtosic@chromium.org>
ros/test_webrtc_peer_connection.py
ec2430454d35e1f57db3359ad853471cfcbfab8d 10-Sep-2017 Kristoffer Erlandsson <kerl@google.com> Allow a delta of 1px in resolution verification.

We have seen tests failing since the actual resolution is one pixel off
from the requested resolution. Hence we add support for allowing a delta
between the expected and the actual.

TEST=Ran affected tests against local DUT
BUG=chromium:763726

pre-cq-configs: bluestreak-pre-cq
Change-Id: I5451d3c668366d3069a8d1a52f754ceec8a017a5
Reviewed-on: https://chromium-review.googlesource.com/659357
Commit-Ready: Kristoffer Erlandsson <kerl@google.com>
Tested-by: Kristoffer Erlandsson <kerl@google.com>
Reviewed-by: Claes Malmnäs <malmnas@google.com>
Reviewed-by: Denis Tosic <dtosic@chromium.org>
ros/webrtc_scripts/loopback-peerconnection.js
9f6691d60e30df004fe0c3b6099913372fd4be90 25-Aug-2017 Mary Ruthven <mruthven@chromium.org> cr50_utils: rename BoardIdInfo utilities

The image board id info and the chip board id info have the same format.
The same utilities can be used to convert one format to another. This
change removes 'Image' from the board id info utility names.

BUG=none
BRANCH=none
TEST=firmware_Cr50Update

Change-Id: I0f6c32d7b84159132fd70163d80d560f84975dca
Signed-off-by: Mary Ruthven <mruthven@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/648629
Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
ros/cr50_utils.py
7002a78182ff25a4fa9c0e4967a98e0c92c58b5f 04-Sep-2017 Kristoffer Erlandsson <kerl@google.com> Refactoring and minor fixes for more code-reuse.

Made the PausePlay and ResolutionSwitching tests use the
test_webrtc_peer_connection module to avoid repeating test boilerplate.

Added a verification method to loopback-peerconnection.js and use that
method to verify the streams are OK instead of custom logic per test.
This method accepts some bad video resolution reports, since the
SwitchResolution test incorrectly fails now in the lab since
occasionally resolutions are reported as 0x0.

Minor fixes in ResolutionSwitching and PausePlay javascripts to fix
issues brought up in reviews of the MainFeedSwitching test.

Removed the FeedTable from the pauseplay tests. There is no reason to
arrenge the feeds in a table, it just adds complexity.

Other minor changes.

BUG=chromium:760676
TEST=Ran all affected tests against local DUT

Change-Id: I2f05c527bd99f9dfa47861c1d2690b0cc4132819
Reviewed-on: https://chromium-review.googlesource.com/653957
Commit-Ready: Kristoffer Erlandsson <kerl@google.com>
Tested-by: Kristoffer Erlandsson <kerl@google.com>
Reviewed-by: Denis Tosic <dtosic@chromium.org>
ros/test_webrtc_peer_connection.py
ros/webrtc_scripts/loopback-peerconnection.js
e1fd6391b76826fe98fd9a704a3a5bcae0288ead 06-Sep-2017 Xixuan Wu <xixuan@chromium.org> autotest: fix the case that metrics key is None.

BUG=chromium:762237
TEST=Ran unittest.

Change-Id: I33f73f19d93be3ad5a104825c71a47ad9e7016a8
Reviewed-on: https://chromium-review.googlesource.com/653245
Commit-Ready: Xixuan Wu <xixuan@chromium.org>
Tested-by: Xixuan Wu <xixuan@chromium.org>
Reviewed-by: Shuqian Zhao <shuqianz@chromium.org>
ros/dev_server.py
652ff6a2b182a89194520b59e65bc38714d86008 31-Aug-2017 Kristoffer Erlandsson <kerl@google.com> Add WebRTC stress test for video source switching

This test starts 5 high resolution loopback peer connections. Four of
the video elements are styled to be small, thumbnail sized and one is in
its native size. This is intended to simulate a video conference with
one main feed and several smaller feeds.

The test then frequently swaps the sourceObject of the main feed with a
randomly chosen smaller feed.

Extracted much of the Python test support code to a common location to
be shared with the other WebRTC peer connection tests.

The intention is to later add some more verifications than only checking
if Chrome crashes.

BUG=chromium:760983
TEST=Tested against local DUT
Change-Id: Ia9661d0f65ad0c7d5c22b7e29b37995cce01223f
Reviewed-on: https://chromium-review.googlesource.com/647455
Commit-Ready: Kristoffer Erlandsson <kerl@google.com>
Tested-by: Kristoffer Erlandsson <kerl@google.com>
Reviewed-by: Kristoffer Erlandsson <kerl@google.com>
Reviewed-by: Denis Tosic <dtosic@chromium.org>
ros/test_webrtc_peer_connection.py
df0a3a3a2b3ce70cd9aea93fac3448efd176e646 30-Jun-2017 Rohit Makasana <rohitbm@chromium.org> Enabling provisioning for ARC TH CQ tests.

This CL:
- adds provisioning config for ARC TH.
- adds CrOS provisioning into cheets update test.
- adds a suite config for arc-presubmit.

BUG=b:26895109
TEST=Tested on Moblab by running a suite.

site_utils/run_suite.py
-b veyron_minnie
-i 'veyron_minnie-release/R61-9765.43.0'
--cheets_build 'git_nyc-mr1-arc-m61/cheets_arm-usr/4295536'
-p suites
-s dummy_server
--max_runtime_mins 20

Test scenarios:

--> No CrOS update, update cheets image
--> Update CrOS image, no cheets update
--> Update CrOS image, update cheets image
--> Update CrOS image, update cheets image (but CrOS image comes with the
test cheets image, so action
needed)
--> No CrOS update, no cheets update
--> Update a DUT with -cheetsth label to a normal cros-version: label
using non-cheets provisioning.
--> Update a DUT with a normal cros-version: label to -cheetsth using
--cheets_build provisioning.

Change-Id: I99a8586dc651fde08b8c9e1bef5d3459f8fa2d19
Reviewed-on: https://chromium-review.googlesource.com/557934
Commit-Ready: Rohit Makasana <rohitbm@chromium.org>
Tested-by: Rohit Makasana <rohitbm@chromium.org>
Reviewed-by: Simran Basi <sbasi@chromium.org>
Reviewed-by: Dan Shi <dshi@google.com>
tils.py
tils_unittest.py
cdd654e37d8dd4502f91a9974bbe9c0f0fbc0698 29-Aug-2017 Chung-yih Wang <cywang@google.com> chrome.py: Add option login_delay

BUG=b:63273057
TEST=test_that DUT_IP cheets_PerfBootServer with the modified browser
option 'login_delay=6'

Change-Id: Id35a9dbc3a8aa8590b519f83586264f6e9fe6812
Signed-off-by: Chung-yih Wang <cywang@google.com>
Reviewed-on: https://chromium-review.googlesource.com/640650
Commit-Ready: Yusuke Sato <yusukes@chromium.org>
Reviewed-by: Ben Cheng <bccheng@chromium.org>
ros/chrome.py
de93c93ddc789da1c6cd145043e2ab3feb256e35 04-Sep-2017 Ted Lai <tedlai@google.com> Add an option to disable the Play Store in arc_setup().

This option may be used to prevent GMS Core from updating as it may
cause some apps to crash.

BUG=chromium:738293
TEST=test_that <DUT_IP> cheets_NOVALegacy
(It shows this change does not break currently functioning tests.)

Change-Id: Ic3aea66549d2877e0bee20d6d695fc5917a8fbb9
Reviewed-on: https://chromium-review.googlesource.com/650169
Commit-Ready: Ted Lai <tedlai@chromium.org>
Tested-by: Ted Lai <tedlai@chromium.org>
Reviewed-by: Chung-yih Wang <cywang@google.com>
ros/arc.py
fa226068f33dcdbb154c57118b28168db493ae46 01-Sep-2017 Kristoffer Erlandsson <kerl@google.com> Refactor PeerConnection into a separate file.

This allows us to reuse this class in other tests. The HTML file is now
generated instead of included in the test dir to allow injecting
arbitrary JavaScript files into it.

Created a utility module in common_lib/cros/webrtc_utils.py for
generating the HTML file and working with the shared JavaScript files.

Some of the boilerplate in the run_once method can hopefully be shared
later as well.

TEST=Local DUT
BUG=chromium:758120
pre-cq-configs: bluestreak-pre-cq
Change-Id: I2939fbc03a96007181138c99de88cd00962a17cb
Reviewed-on: https://chromium-review.googlesource.com/647287
Commit-Ready: Kristoffer Erlandsson <kerl@google.com>
Tested-by: Kristoffer Erlandsson <kerl@google.com>
Reviewed-by: Denis Tosic <dtosic@chromium.org>
ros/webrtc_scripts/loopback-peerconnection.js
ros/webrtc_utils.py
05fe230e4d13d027842ee0f71fb4143dc282f420 01-Sep-2017 Ted Lai <tedlai@google.com> Remove the defunct arguments email_id and password in arc_setup().

Also, expose the arguments username and password in initialize() for
clarity.

Verified that the defunct arguments are not used anywhere by this
command:
$ grep -rnw
'/usr/local/google/home/tedlai/chromiumos/src/third_party/' -e
'email_id='

BUG=chromium:740423
TEST=test_that <DUT_IP> cheets_AuthPerf, cheets_MailBench,
cheets_PlayStoreOptIn, cheets_PlayStoreTest.

Change-Id: I785ba21020b86acd94e2f4c9194608c6195ba3fe
Reviewed-on: https://chromium-review.googlesource.com/646809
Commit-Ready: Ted Lai <tedlai@chromium.org>
Tested-by: Ted Lai <tedlai@chromium.org>
Reviewed-by: Chung-yih Wang <cywang@google.com>
ros/arc.py
0ee498c6add946ae18c354aff5723d0e65c71656 25-Aug-2017 Ting-Yuan Huang <laszio@chromium.org> barrier: catch socket.error with errno = ETIMEDOUT

socket.error with ETIMEDOUT may be thrown instead of socket.timeout.

BUG=chromium:757604
TEST=chell-chrome-pfq

Change-Id: I31ef543d0cd7c99b47c8a8ebf20edc6370d4abb6
Reviewed-on: https://chromium-review.googlesource.com/641891
Commit-Ready: Ting-Yuan Huang <laszio@chromium.org>
Tested-by: Ting-Yuan Huang <laszio@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>
arrier.py
f947a87db38e2e32ca66c3444d02d2c253658986 23-Aug-2017 Ted Lai <tedlai@google.com> Change the default ARC++ test account to the new one.

The new test account is a Gaia AMS owned test account, which should help
us avoid the verification issue in crbug.com/757377 in the future. For
more information, please see go/get-test-accounts.

BUG=chromium:757377
TEST=cheets_PlayStoreOptIn, cheets_NOVALegacy, cheets_AuthPerf,
cheets_ScreenRotation, and cheets_PlayStoreTest passed. cheets_MailBench
failed due to the lack of emails but was able to log in successfully.

Change-Id: Id476d80cc3bda0523ec8e31727f975b18a331a6b
Reviewed-on: https://chromium-review.googlesource.com/627944
Commit-Ready: Ted Lai <tedlai@chromium.org>
Tested-by: Ted Lai <tedlai@chromium.org>
Reviewed-by: Ben Cheng <bccheng@chromium.org>
ros/arc_util.py
db4ecbfa232679797e44eba464e8a61bac80938a 26-Aug-2017 Xixuan Wu <xixuan@chromium.org> autotest: Add logging about invalid json response from devserver.

BUG=chromium:751286
TEST=Ran unittest.

Change-Id: Iaab2fb42f65eeeb6b0a8c4737fe89a025beaf4db
Reviewed-on: https://chromium-review.googlesource.com/636751
Commit-Ready: Xixuan Wu <xixuan@chromium.org>
Tested-by: Xixuan Wu <xixuan@chromium.org>
Reviewed-by: Allen Li <ayatane@chromium.org>
ros/dev_server.py
61559447ab742fadcddde64d64e93ae4067641e5 23-Aug-2017 Roopesh Rai <roopeshr@google.com> autotest: Fix ping6 result parsing on Mac OS

Mac OS prints ping6 result statistic in following format:
round-trip min/avg/max/std-dev = 1.600/43.272/118.928/41.132 ms.
Modified code to support both 'stddev' and 'std-dev'.

BUG=none
TEST=Ran autotest script between jetstream AP and Mac client.

pre-cq-configs: mixed-wificell-pre-cq

Change-Id: Ib0c1436011a9aecc659ef1c069219c6ac042e11a
Reviewed-on: https://chromium-review.googlesource.com/629160
Commit-Ready: Brian Norris <briannorris@chromium.org>
Tested-by: Brian Norris <briannorris@chromium.org>
Reviewed-by: Brian Norris <briannorris@chromium.org>
Reviewed-by: Dane Pollock <danepollock@google.com>
ros/network/ping_runner.py
7ae8cae4399f3a87a4057bea757c9fbde4a53374 24-Aug-2017 Achuith Bhandarkar <achuith@chromium.org> autotest: Use browser.WaitForBrowserToComeUp

After browser restarts, we need to connect to devtools again.
WaitForBrowserToComeUp does this.

Depends on this catapult CL:
https://codereview.chromium.org/3005543002/

BUG=chromium:755621
TEST=enterprise_RemoraRequisition

Change-Id: If11ef284ad92e76546542ffd4300a0f1ed6891c2
Reviewed-on: https://chromium-review.googlesource.com/634208
Commit-Ready: Harpreet Grewal <harpreet@chromium.org>
Tested-by: Achuith Bhandarkar <achuith@chromium.org>
Tested-by: Harpreet Grewal <harpreet@chromium.org>
Reviewed-by: Achuith Bhandarkar <achuith@chromium.org>
Reviewed-by: Harpreet Grewal <harpreet@chromium.org>
Reviewed-by: Katherine Threlkeld <kathrelkeld@chromium.org>
ros/chrome.py
ros/enrollment.py
2ee011ca40f182acd7c85f3776138064678c67ed 23-Aug-2017 Denis Tosic <dtosic@chromium.org> Pick webviews based on the 'screen' url param

cfm_facade_native is a simple API wrapper that issues commands
to a webview. The webview picking logic is not working properly
if there are multiple webviews available (e.g. MIMO + main screen)
and any one of them could be returned.

This change adds the screen param to the constructor to be able
to create cfm facades for specific webviews. It also updates the
necessary logic in kiosk_utils.py, points the _cfm_proxy (in
cfm_facade_adapter) to use the main screen and exposes a new mimo
facade in the xmlproxy that will be used in future changes/tests.

This change should not affect existing tests as all tests that use
the cfm_facade_adapator.cfm since commands are now always sent to
the main window.

TEST=local setup
BUG=chromium:756166

Change-Id: Idb8b7f490ed17c09dc6e01f0ff79a4bf17edff6c
Reviewed-on: https://chromium-review.googlesource.com/628540
Commit-Ready: Claes Malmnäs <malmnas@google.com>
Commit-Ready: Denis Tosic <dtosic@chromium.org>
Tested-by: Claes Malmnäs <malmnas@google.com>
Tested-by: Denis Tosic <dtosic@chromium.org>
Reviewed-by: Claes Malmnäs <malmnas@google.com>
Reviewed-by: Denis Tosic <dtosic@chromium.org>
ros/kiosk_utils.py
069aac925f2664c069475a3d310640c56729118d 23-Aug-2017 Kalin Stoyanov <kalin@chromium.org> Check for unique (for each test step) crash files

- crash detection modified to use CrashDetector
- changed the unplug/plug mechanism not to disconnect
the whole servo, but just mux_3 port
- added the crash checks
test to the usb_detect suite.

BUG=None
TEST=Tested against lab devices

Change-Id: Ia3c2996b9582e7eb889229e4ff49a6bcebf1b25a
Reviewed-on: https://chromium-review.googlesource.com/629656
Commit-Ready: Kalin Stoyanov <kalin@chromium.org>
Tested-by: Kalin Stoyanov <kalin@chromium.org>
Reviewed-by: Harpreet Grewal <harpreet@chromium.org>
ros/crash_detector.py
0f714f84a761288d5559d541bf84b87bab943a83 23-Aug-2017 Xixuan Wu <xixuan@chromium.org> autotest: add metric to record 'all devservers in subnet X are down'.

BUG=chromium:756671
TEST=Ran unittest. Ran resolve locally to check subnet.

Change-Id: I5c6d480aaba8c2543bade5c61eb3e34b21019143
Reviewed-on: https://chromium-review.googlesource.com/630096
Commit-Ready: Xixuan Wu <xixuan@chromium.org>
Tested-by: Xixuan Wu <xixuan@chromium.org>
Reviewed-by: Xixuan Wu <xixuan@chromium.org>
ros/dev_server.py
898bd550e04f770a321eb7daf8ab70732d06c3d7 11-Apr-2017 Mike Frysinger <vapier@chromium.org> migrate to /run and /run/lock

Since /var/run is a symlink to /run, and we want to avoid going
through the stateful /var whenever possible, use the direct path.
Same goes for /var/lock.

BUG=chromium:699880
TEST=precq passes

Change-Id: I9c79d3bc8f1b3d9b0bed3127bdca3e3f7255f4ae
Reviewed-on: https://chromium-review.googlesource.com/473968
Commit-Ready: Mike Frysinger <vapier@chromium.org>
Tested-by: Mike Frysinger <vapier@chromium.org>
Reviewed-by: Ben Chan <benchan@chromium.org>
Reviewed-by: Brian Norris <briannorris@chromium.org>
ros/arc.py
ros/arc_util.py
ros/autoupdater.py
d2c7d3833152e2edadbccd6276e7d516e7571fc2 20-Aug-2017 Mary Ruthven <mruthven@chromium.org> cr50_utils: return None if the board id is empty

Not all cr50 images support getting the board id. Most non board id
locked images don't. This changes GetVersion to return None if it sees
that the board id is '00000000:00000000:00000000'

BUG=none
BRANCH=none
TEST=none

Change-Id: I3d963c28d1cabdcea7ed02adc2d802b2ab4f8eee
Signed-off-by: Mary Ruthven <mruthven@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/624472
Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
ros/cr50_utils.py
35e9191ebbe6766908718c608a7fc9c28c452635 18-Aug-2017 Mary Ruthven <mruthven@chromium.org> cr50_utils: add utilities for image board id

A lot of things use the image board id. There are two main formats for
this information the string format
(symbolic_board_id|board_id_hex):mask:flags or a list [board id str,
mask int, flag int]. Add cr50 utility to convert one format to the other
and start referring to the first as the image board id string and the
second as image board id info.

BUG=none
BRANCH=none
TEST=run firmware_Cr50BID and firmware_Cr50SetBoardIdScript

Change-Id: Ida6154ece12bca7b5636d83223d1472f7aee602b
Signed-off-by: Mary Ruthven <mruthven@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/621599
Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
ros/cr50_utils.py
4416ff5127e1af348f05fcf05a39f0b70133b356 18-Aug-2017 Mary Ruthven <mruthven@chromium.org> cr50_utils: rename GetExpectedBoardId to GetIntBoardId

This is converting the given board id to a board id int. Rename to
GetIntBoardId.

BUG=none
BRANCH=none
TEST=firmware_Cr50SetBoardId

Change-Id: I613b4c13b4c111d4ebe909884f6bcf4d1d05d2c7
Signed-off-by: Mary Ruthven <mruthven@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/621598
Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
ros/cr50_utils.py
483c3b979746d2f5ef508a1d66ca225ca22abe48 18-Aug-2017 Mary Ruthven <mruthven@chromium.org> cr50_utils: rename GetBoardId to GetChipBoardId

There are two different types of board id with different formats. There
is the chip board id stored in the infomap with the format
board_id:board_id_inv:flags. There is also the image board id that has
the format board_id:mask:flags. I am renaming stuff to make it easier to
tell the difference.

BUG=none
BRANCH=none
TEST=none

Change-Id: I0beba4dfdf788724bd440a1d15471f2319e0086e
Signed-off-by: Mary Ruthven <mruthven@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/621597
Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
ros/cr50_utils.py
3525950d28ff8ea429fbbf1aa2f9db4d25cfa782 14-Jul-2017 Dinesh Kumar Sunkara <dsunkara@chromium.org> [autotest] Refactored the code to modularize functions.

Updated enterprise_CFM_USBPeripheralHotplugDetect.py to upload
crashes even if the crash count is zero which I missed in my
previous CL.

BUG=chromium:709134, chromium:717367
TEST=Tested on Panther.

new file: ../client/common_lib/cros/crash_detector.py
modified: server/site_tests/enterprise_CFM_USBPeripheralHotplugDetect/enterprise_CFM_USBPeripheralHotplugDetect.py
deleted: ../client/common_lib/cros/crash_utils.py

Change-Id: Ife037f87b1216dfc25cd7f05252b64a753d46fc4
Reviewed-on: https://chromium-review.googlesource.com/571921
Commit-Ready: Dinesh Kumar Sunkara <dsunkara@chromium.org>
Tested-by: Dinesh Kumar Sunkara <dsunkara@chromium.org>
Reviewed-by: Harpreet Grewal <harpreet@chromium.org>
ros/crash_detector.py
e5ae86aa06e2b5d3e16f118aca878f2617c2cdd7 15-Aug-2017 Mike Frysinger <vapier@chromium.org> logs_to_collect: grab all pstore files

The exact file name here has changed in newer kernel versions, but
we can simplify this code by grabbing all possible entries. We want
to do that anyways as there might be interesting content in them.

BUG=chromium:755343
TEST=precq passes

Change-Id: I5f191079deecc42069686b31d35b9ea54bd2f7fc
Reviewed-on: https://chromium-review.googlesource.com/615545
Commit-Ready: Mike Frysinger <vapier@chromium.org>
Tested-by: Mike Frysinger <vapier@chromium.org>
Reviewed-by: Dan Shi <dshi@google.com>
ogs_to_collect
1343a1f16bdfc9c4207beef5c314e3cd4a0313cb 11-Aug-2017 Mary Ruthven <mruthven@chromium.org> cr50_utils: return board id with version information

BUG=none
BRANCH=none
TEST=run firmware_Cr50Update and firmware_Cr50BID

Change-Id: Iec11430b5629575b50272651960c7aa5ebd797d5
Signed-off-by: Mary Ruthven <mruthven@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/611971
Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
ros/cr50_utils.py
6061a929220234b1076b472bdf1e27a165f71dcc 12-Apr-2017 Brian Norris <briannorris@chromium.org> network/interface: break out device_path property

I'm going to use this for some additional functions, so let's make it a
separate method.

We can also reduce the repetition of remote 'path exists' logic by using
the existing host base libraries. We just need to ensure the 'host=None'
case gets a default LocalHost() host.

BUG=none
TEST=network_WlanDriver; wifi_matfunc_noservo

Change-Id: Ic1bbf2dd8f6182728b1fb342ca6b73944f81ad17
Signed-off-by: Brian Norris <briannorris@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/475071
ros/network/interface.py
b869fb6bd9223cc4a9490dc01b00372add83f96a 09-Aug-2017 xixuan <xixuan@chromium.org> autotest: successfully kick off synchronous provision.

This CL skips all following processes like logs collection and cleanup,
to make sure autotest can successfully kick off synchronous provision.

BUG=chromium:753874
TEST=Run ds.auto_update() with async=True and async=False.

Change-Id: I68e6c0fd20559c1a7321234a9e6743d412a00961
Reviewed-on: https://chromium-review.googlesource.com/609310
Commit-Ready: Xixuan Wu <xixuan@chromium.org>
Tested-by: Xixuan Wu <xixuan@chromium.org>
Reviewed-by: David Haddock <dhaddock@chromium.org>
ros/dev_server.py
2be995369f80f929e8406a47906bd595234a7032 08-Aug-2017 Mary Ruthven <mruthven@chromium.org> cr50_utils: Add utilities to get and set the RLZ code

During the board id tests we need to be able to get and set the RLZ
code. This change reads/modifies the vpd to for the RLZ information.

BUG=b:62876435
BRANCH=none
TEST=get/set the RLZ brand code

Change-Id: Ie759d005b723041a69d85784e1d948ccd6e836b3
Signed-off-by: Mary Ruthven <mruthven@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/607235
Reviewed-by: Vadim Bendebury <vbendeb@chromium.org>
ros/cr50_utils.py
73b3ac39d4fa60934b834544f47c72091d5255c4 07-Aug-2017 Mary Ruthven <mruthven@chromium.org> cr50_utils: GetBoardId return board_id_inv

Without knowing board_id_inv, we can't tell if the board id has been
erased or it is set to 0xffffffff. This change returns the second field
of the board id info, so the tests have enough information.

BUG=b:62876435
BRANCH=none
TEST=none

Change-Id: Ia71886df2691f238e6a00502be20f67437ad63f3
Signed-off-by: Mary Ruthven <mruthven@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/607234
Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
ros/cr50_utils.py
e4052c8d15695f41a3b3794cce48be52c22e4ada 08-Aug-2017 Mary Ruthven <mruthven@chromium.org> cr50_utils: remove board id info from GetBinVersion

We may want to look at the board id info eventually, but none of the
tests currently use it, and it breaks the tests.

BUG=b:64449350
BRANCH=none
TEST=run firmware_Cr50Update

Change-Id: I96d4c044dedba980d2083eddaeca0158b154cdf1
Signed-off-by: Mary Ruthven <mruthven@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/605009
ros/cr50_utils.py
f8adf94a8ebf79cba3505823749ba5a00b8ea69f 07-Aug-2017 Mary Ruthven <mruthven@chromium.org> cr50_utils: run UsbUpdate commands with -s

Only use /dev/tpm0/ to run usb_update commands. We are removing the cr50
to AP usb connection.

BUG=none
BRANCH=none
TEST=none

Change-Id: I328f3dda15bd8607fd9eb6807e8762036f50faa6
Signed-off-by: Mary Ruthven <mruthven@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/605008
Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
ros/cr50_utils.py
f1fb93c7207d36503a4b7a13fc5405079c904681 07-Aug-2017 Mary Ruthven <mruthven@chromium.org> cr50_utils: make use of ' and " consistent

BUG=none
TEST=none
BRANCH=none

Change-Id: I0ca790afe68c1674384e3df0e0ebca253941e3be
Signed-off-by: Mary Ruthven <mruthven@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/604946
Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
ros/cr50_utils.py
224fd07a5376422a57c24e0c7f41ac8eec8a06fc 08-Aug-2017 Mary Ruthven <mruthven@chromium.org> cr50_utils: fix lint errors

BUG=none
BRANCH=none
TEST=none

Change-Id: I7b52c3c52800b7fc2497aff81404c08daf318da0
Signed-off-by: Mary Ruthven <mruthven@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/604945
Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
ros/cr50_utils.py
b45c84267bc5fbbb4cec0aad025cf3a52f387a57 07-Aug-2017 Prathmesh Prabhu <pprabhu@chromium.org> [autotest] Fix check_diskspace path existence check

CL:601414 incorrectly used os.path.exists to check for path existence.
All os level calls must go via the |run| method on hosts classes. FixIt.

BUG=chromium:751895
BUG=chromium:753015
TEST=(new) unittests; test-push passes.

Change-Id: I7781411e3f5b8edafe4fa38ce3ae4b574826308e
Reviewed-on: https://chromium-review.googlesource.com/604207
Commit-Ready: Prathmesh Prabhu <pprabhu@chromium.org>
Tested-by: Prathmesh Prabhu <pprabhu@chromium.org>
Reviewed-by: Keith Haddow <haddowk@chromium.org>
osts/base_classes.py
osts/base_classes_unittest.py
07f1d3e95c260b4958fbc122da02e200f95f5f8b 04-Aug-2017 Keith Haddow <haddowk@chromium.org> [autotest] Make the diskspace check more robust.

Check to see the path provided to check the diskspace exists and
catch some exceptions that may happen if the du command fails

BUG=chromium:751895
TEST= test_that, trybot job

Change-Id: I132ecbb4c92a61d496a08b22f841d55b00bef8ee
Reviewed-on: https://chromium-review.googlesource.com/601414
Commit-Ready: Keith Haddow <haddowk@chromium.org>
Tested-by: Keith Haddow <haddowk@chromium.org>
Reviewed-by: Keith Haddow <haddowk@chromium.org>
rror.py
osts/base_classes.py
osts/base_classes_unittest.py
0248035d3d970e9d32334610aeba11f853390858 17-Jul-2017 Allen Li <ayatane@chromium.org> [autotest] Remove puppylab code

grep returns no results

BUG=None
TEST=Run local dummy test

Change-Id: I5fc78f750e0eaaedd5a06ddb1d730c587520b25f
Reviewed-on: https://chromium-review.googlesource.com/576875
Commit-Ready: Allen Li <ayatane@chromium.org>
Tested-by: Allen Li <ayatane@chromium.org>
Reviewed-by: Prathmesh Prabhu <pprabhu@chromium.org>
tils.py
tils_unittest.py
62c5248b2f0213ccf035e0018c712be007dbd364 02-Aug-2017 Edward Hill <ecgh@chromium.org> Fix network_WlanDriver for pyro

Add additional vendor/product 0x8086/0x095b for Intel 7265, as seen
on pyro.
Add driver 'wireless/iwl7000/iwlwifi/iwlwifi.ko' for Intel 7265 on
4.4 kernel, as seen on pyro.

BUG=chromium:702007
TEST=network_WlanDriver

Change-Id: I24a53d656dcc6c4f084b4a64da74bf0f1399279f
Reviewed-on: https://chromium-review.googlesource.com/599032
Commit-Ready: Kirtika Ruchandani <kirtika@chromium.org>
Tested-by: Edward Hill <ecgh@chromium.org>
Tested-by: Kirtika Ruchandani <kirtika@chromium.org>
Reviewed-by: Luca Coelho <luciano.coelho@intel.com>
Reviewed-by: Kirtika Ruchandani <kirtika@chromium.org>
Reviewed-by: Brian Norris <briannorris@chromium.org>
ros/network/interface.py
1984650b228d4bb0d2f8fc9210d32ec1b270d1e6 03-Aug-2017 Hidehiko Abe <hidehiko@chromium.org> Do not call cleanup in initialize on error.

cleanup will be called in testing framework (common_lib/test.py)
regardless of test status.
Calling it twice causes double-close, so do not it.

BUG=chromium:751771
TEST=Ran try.

Change-Id: I927b91d58efbeeef3ebecba82b66315511ea64bf
Reviewed-on: https://chromium-review.googlesource.com/598663
Commit-Ready: Hidehiko Abe <hidehiko@chromium.org>
Tested-by: Hidehiko Abe <hidehiko@chromium.org>
Reviewed-by: Kazuhiro Inaba <kinaba@chromium.org>
ros/arc.py
91e31e194e522b3ad34a480733226d2014baeac3 09-Jun-2016 Eric Caruso <ejcaruso@chromium.org> Add Network_WiFi_RandomMACAddress

This test will watch for probe requests from a DUT that
has enabled MAC address randomization and make sure they
do not contain the hardware MAC address.

CQ-DEPEND=CL:475104,CL:585490,CL:585491
BUG=chromium:579598
TEST=test_that on samus, elm, kevin; check that it works
on boards that support it and raises TestNAError on ones
that don't

Change-Id: I6fe5c39b90a8a9dcaf6c21f8c396516865bfa9c4
Reviewed-on: https://chromium-review.googlesource.com/351510
Commit-Ready: Eric Caruso <ejcaruso@chromium.org>
Tested-by: Eric Caruso <ejcaruso@chromium.org>
Reviewed-by: Brian Norris <briannorris@chromium.org>
ros/network/tcpdump_analyzer.py
9f92aa6fe471d7e5b49e8b951b39e293481db8bc 28-Jul-2017 Dan Shi <dshi@google.com> [autotest] Add a ping check to avoid ssh timeout

Collecting logs from dut requires ssh connection. When the dut is offline, the
ssh connection takes 1 minute to time out. crash collection makes multiple
log collections, and the timeouts add unnecessary overhead.

This change adds a cached ping status in ssh host object. The cache expires in
5 minutes by default. Log collection can be skipped if the cached status is
False.

BUG=None
TEST=local run repair

Change-Id: I23f84172f4ab3ea8a0e63c53afaf9ba139eb8455
Reviewed-on: https://chromium-review.googlesource.com/590484
Commit-Ready: Dan Shi <dshi@google.com>
Tested-by: Dan Shi <dshi@google.com>
Reviewed-by: Paul Hobbs <phobbs@google.com>
osts/base_classes.py
422c8d0fa7f7f8b879b989795fe8f6bbdc71b517 20-Jul-2017 Justin TerAvest <teravest@chromium.org> Remove unused "network_destablizing" field.

Nothing sets this to true, so the supporting logic here is a
distraction.

BUG=None
TEST=None

Change-Id: Ia19610ecc71013d8c55c3bfd21aa783309096c29
Reviewed-on: https://chromium-review.googlesource.com/589781
Commit-Ready: Justin TerAvest <teravest@chromium.org>
Tested-by: Justin TerAvest <teravest@chromium.org>
Reviewed-by: Dan Erat <derat@chromium.org>
est.py
92c34c9d38647903943c066d07ae3d096baf5860 15-Jul-2017 Dan Shi <dshi@google.com> [autotest] Support excludes argument in send_file method

This argument allows caller to skip certain files when sending files to dut.
One use case is for result throttling to deploy scripts on the dut.
When send_file uses commands that do not support --exclude, for example, copy
file locally or using scp, send_file method will fail.

BUG=chromium:716218
TEST=local run test, check files on the dut.

Change-Id: I9efa44a15b8a04fa6a3d10601253b3e2aceba66c
Reviewed-on: https://chromium-review.googlesource.com/572143
Commit-Ready: Dan Shi <dshi@google.com>
Tested-by: Dan Shi <dshi@google.com>
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
osts/base_classes.py
dd53f71d6392d957eb88838cb16b288538c6f400 11-Jul-2017 Prathmesh Prabhu <pprabhu@chromium.org> Simplify local_host.run

+ Also preserves the original stack trace from utils.run for better
error reporting.

BUG=chromium:684311
TEST=unittests

Change-Id: If8b386fe261e03a55e7419921a9368506c25173c
Reviewed-on: https://chromium-review.googlesource.com/567758
Commit-Ready: Prathmesh Prabhu <pprabhu@chromium.org>
Tested-by: Prathmesh Prabhu <pprabhu@chromium.org>
Reviewed-by: Prathmesh Prabhu <pprabhu@chromium.org>
Reviewed-by: Xixuan Wu <xixuan@chromium.org>
rror.py
92ae3ca1173534791c4488c9e9985f323ba33356 19-Jul-2017 Aviv Keshet <akeshet@chromium.org> autotest: delete graphite

BUG=chromium:738508
TEST=grep graphite -> no hits

Change-Id: Ib362a61a875d5aa0ef6a94952d4b67fead90e5f0
Reviewed-on: https://chromium-review.googlesource.com/575579
Commit-Ready: Aviv Keshet <akeshet@chromium.org>
Tested-by: Aviv Keshet <akeshet@chromium.org>
Reviewed-by: Dan Shi <dshi@google.com>
ros/graphite/__init__.py
ros/graphite/autotest_es.py
ros/graphite/common.py
ros/graphite/elasticsearch_mock.py
ros/graphite/es_test_utils.py
ros/graphite/es_utils.py
ros/graphite/stats.py
ros/graphite/stats_es_functionaltest.py
98b179e1fbe09a35f7567ba34fc9810e0f55d785 19-Jul-2017 Aviv Keshet <akeshet@chromium.org> autotest: move metrics mock out of graphite lib

This piece of code will remain in use, as the generalized mock class for
metrics calls.

BUG=chromium:738508
TEST=None

Change-Id: I2c690fa52eba6266ea3a8464cb94f0d15b6ef320
Reviewed-on: https://chromium-review.googlesource.com/575578
Commit-Ready: Aviv Keshet <akeshet@chromium.org>
Tested-by: Aviv Keshet <akeshet@chromium.org>
Reviewed-by: Dan Shi <dshi@google.com>
ros/graphite/stats_es_mock.py
etrics_mock_class.py
tils.py
17ee256b76c0a6ceab1292798e9771cff614b810 14-Jul-2017 khmel <khmel@google.com> arc: Extend ARC autotest to allow opt-out.

This allows opt out ARC

BUG=b:62540008
TEST=Manually together with other CLs

Change-Id: Ibdb9d4a9d82a70d54fba33927f6ac7b3eed7ee2e
Reviewed-on: https://chromium-review.googlesource.com/571950
Commit-Ready: Yury Khmel <khmel@chromium.org>
Tested-by: Yury Khmel <khmel@google.com>
Reviewed-by: Luis Hector Chavez <lhchavez@chromium.org>
ros/arc_util.py
ros/chrome.py
54905418c66f0e6bdad0b7ae14c50d47927e8481 12-Jul-2017 Prathmesh Prabhu <pprabhu@chromium.org> Add __eq__ to error.CmdError and utils.CmdResult

BUG=chromium:684311
TEST=None

Change-Id: I9a17e7294b9ee19419c7e11bf7534e19d5d4205c
Reviewed-on: https://chromium-review.googlesource.com/567760
Commit-Ready: Prathmesh Prabhu <pprabhu@chromium.org>
Tested-by: Prathmesh Prabhu <pprabhu@chromium.org>
Reviewed-by: Prathmesh Prabhu <pprabhu@chromium.org>
Reviewed-by: Xixuan Wu <xixuan@chromium.org>
rror.py
tils.py
e70fed89bd1af4919550525abbeb62ff420b0a31 14-Jul-2017 Aviv Keshet <akeshet@chromium.org> autotest: expunge all references to statsd

BUG=chromium:667171
TEST=grep for statsd, Statsd, STATSD all return no results

Change-Id: I2796819e6fe5536a817f90ee8e8fa8f731595f46
Reviewed-on: https://chromium-review.googlesource.com/571408
Commit-Ready: Aviv Keshet <akeshet@chromium.org>
Tested-by: Aviv Keshet <akeshet@chromium.org>
Reviewed-by: Allen Li <ayatane@chromium.org>
ros/graphite/autotest_stats.py
ros/graphite/elasticsearch_mock_unittest.py
ros/graphite/es_test_utils.py
ros/graphite/stats.py
ros/graphite/stats_es_mock.py
ros/graphite/statsd_mock.py
ros/graphite/statsd_mock_unittest.py
557946d18d625f8c14e0a1bf6a23d91b17d70f1d 16-Jun-2017 Joe Kniss <djmk@google.com> Implement python screenshots using GBM library.

... so that untiling is no longer handled in python code.

BUG=chromium:653283, b:38152101
TEST=Ran tests that use screenshot.py or crtcScreenShot()

Change-Id: Idb4d4933015d70c35a404a6ef0cbc3fbb664f65c
Reviewed-on: https://chromium-review.googlesource.com/550737
Commit-Ready: Joe Kniss <djmk@google.com>
Tested-by: Joe Kniss <djmk@google.com>
Reviewed-by: Joe Kniss <djmk@google.com>
ros/arc.py
ce8ebd68a9dfbc41cead33e9dc594a2b40f0c6d0 11-Jul-2017 Ilja H. Friedel <ihf@chromium.org> arc.py: Handle screenshot failure.

There is no guarantee that the screenshot succeeds. Handle exception to
preserve original failure.

BUG=chromium:740751
TEST=None.

Change-Id: I39aa3f2ff5e39a5c914fa2c15d03cc2f6852500c
Reviewed-on: https://chromium-review.googlesource.com/567526
Reviewed-by: Joe Kniss <djmk@google.com>
Tested-by: Ilja H. Friedel <ihf@chromium.org>
ros/arc.py
5f0442d3daab45adf7d0dafd14075f8b3ac1ef41 07-Jul-2017 Mary Ruthven <mruthven@chromium.org> cr50_utils: change UsbUpdate to UsbUpdater

the cr50 utility is usb_updater. This changes the cr50_utils utility
from UsbUpdate to UsbUpdater to match the name of the cr50 updater.

BUG=none
BRANCH=none
TEST=none

Change-Id: Ia39b4087162aa0890c5ce8991adc1d89be5bb562
Signed-off-by: Mary Ruthven <mruthven@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/563510
Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
ros/cr50_utils.py
993cb39a1fbbf342d4e29bc9da360152c42857e2 07-Jul-2017 Mary Ruthven <mruthven@chromium.org> cr50_utils: cleanup docstrings

This change mostly adds the client param to all of the docstrings. It
also fixes some spacing issues.

BUG=none
BRANCh=none
TEST=none

Change-Id: I27b3ee95e002fab383f2e69885f1881fb60304cb
Signed-off-by: Mary Ruthven <mruthven@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/563509
Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
ros/cr50_utils.py
7a980af681b52067da0f125c0fc8c38c83f1ad54 22-Jun-2017 Mary Ruthven <mruthven@chromium.org> cr50_utils: add board_id utilities

Add utilities to get and set the cr50 board id.

BUG=none
BRANCH=none
TEST=none

Change-Id: I466c240f61b75f13ffc495e5a95fa73a74a5e863
Signed-off-by: Mary Ruthven <mruthven@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/558648
Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
ros/cr50_utils.py
3d4fb0200296564b18a8f398a938bb7ffa5fc732 29-Jun-2017 Mary Ruthven <mruthven@chromium.org> cr50_utils: Add more informative error message

In check VerifyUpdate add the unexpected error codes to the TestFail
message.

BUG=none
BRANCH=none
TEST=none

Change-Id: I4e7f8d664919894a2a61503e0f6b77db50c7dbf1
Signed-off-by: Mary Ruthven <mruthven@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/558649
Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
ros/cr50_utils.py
55a8100078f89aa2f9b74e2808b402398c29547e 07-Jul-2017 Yusuke Sato <yusukes@google.com> arc.py: Make get_container_root() more robust

get_container_root() fails when /run/containers has stale (empty)
android_XXXXXX/ directories for whatever reasons. This CL improves
get_container_root() so that the function can find the right
directory even if such a stale directory exists.

Note that for production, such a directory does not cause a fatal
error. It's just ignored and automatically removed on reboot since
/run is always a tmpfs.

BUG=b:63376749
TEST=Run cheets_KeyboardTest 10 times on minnie with the login
screen feature enabled

Change-Id: If0ed07f88c7addce3530ac2931399447166966dd
Reviewed-on: https://chromium-review.googlesource.com/563150
Commit-Ready: Yusuke Sato <yusukes@chromium.org>
Tested-by: Yusuke Sato <yusukes@chromium.org>
Reviewed-by: Victor Hsieh <victorhsieh@chromium.org>
ros/arc.py
da5be4f3c754e97df58442f5f50f38b204ff3d6b 27-Jun-2017 Mary Ruthven <mruthven@chromium.org> cr50_utils: use /dev/tpm0 to get binver and fwver

We can't rely on the cr50 usb to ap connection. This changes fwver and
binver args to use /dev/tpm0

BUG=none
BRANCH=none
TEST=firmware_Cr50Update

Change-Id: I77902bc2c0334c29c106f9340458a8fd8be9aac7
Signed-off-by: Mary Ruthven <mruthven@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/558645
Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
ros/cr50_utils.py
2d41a7f7df193d77374e66a13cf7f34c13f960ff 27-Jun-2017 Mary Ruthven <mruthven@chromium.org> cr50_utils: use UsbUpdate to get binver and fwver

There is a UsbUpdate command in cr50_utils. Use that instead of running
usb_update manually

BUG=none
BRANCH=none
TEST=run firmware_Cr50Update

Change-Id: I973a5124b1157de89f243aa0a1f8f59e4afa3a74
Signed-off-by: Mary Ruthven <mruthven@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/558644
Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
ros/cr50_utils.py
47a23a15177839c59bea17a347c4a9d0f35e1d52 30-Jun-2017 harpreet <harpreet@google.com> Adding support for Meet app along with basic sanity test

Added support for meet app to cfm facades which include instantiating
the appropriate cfm api object. Also added a basic sanity test to
exercise the meetings apis. This is a very basic barebones test which
could be expanded later as needed.

BUG=chromium:731094
TEST=Tested on a local setup.

Change-Id: I31a1c0d72a679e18bbae03b6a468a62dc31041b4
Reviewed-on: https://chromium-review.googlesource.com/557449
Commit-Ready: Harpreet Grewal <harpreet@chromium.org>
Commit-Ready: Denis Tosic <dtosic@chromium.org>
Tested-by: Harpreet Grewal <harpreet@chromium.org>
Tested-by: Denis Tosic <dtosic@chromium.org>
Reviewed-by: Katie Roberts-Hoffman <katierh@chromium.org>
Reviewed-by: Harpreet Grewal <harpreet@chromium.org>
Reviewed-by: Claes Malmnäs <malmnas@google.com>
Reviewed-by: Denis Tosic <dtosic@chromium.org>
ros/cfm_hangouts_api.py
ros/cfm_meetings_api.py
5ff098676ba20c730e469608cd57fc52631844f5 03-Jul-2017 Denis Tosic <dtosic@chromium.org> Improve landing/in-call page evaluation

The previous implementation was prone to a race condition (which resulted in a
null pointer) when navigating between pages.

TEST=manually
BUG=chromium:731094

Change-Id: I04778d4e9e533837a7b56e9dd25177ba0fd67453
Reviewed-on: https://chromium-review.googlesource.com/558907
Commit-Ready: Harpreet Grewal <harpreet@chromium.org>
Commit-Ready: Denis Tosic <dtosic@chromium.org>
Tested-by: Harpreet Grewal <harpreet@chromium.org>
Reviewed-by: Harpreet Grewal <harpreet@chromium.org>
ros/cfm_meetings_api.py
57761dd68c881dc2ea2a5a82d7ec6cf8f4a82363 03-Jul-2017 Chung-yih Wang <cywang@google.com> Revert "arc.py: Add adb_cmd timeout"

This reverts commit 942526e79c935e2469cc9972c136a27e0a40d7db.

Change-Id: I320946defe0ce10617be92cccd43fc8625b18ca3
Reviewed-on: https://chromium-review.googlesource.com/558569
Commit-Ready: Chung-yih Wang <cywang@google.com>
Tested-by: Chung-yih Wang <cywang@google.com>
Reviewed-by: Chung-yih Wang <cywang@google.com>
ros/arc.py
c58c7ab39145fc526b2b580ad6626e9096ae7344 30-Jun-2017 Chung-yih Wang <cywang@google.com> arc.py: Fix unblock_outbound()

The rule for rejecting all outbound traffic was
removed in unblock_outbound() which caused
autotest cheets_BlockOutboundNetworkTest stale.

BUG=chromium:738302
TEST=test_that DUT_IP cheets_BlockOutboundNetworkTest

Change-Id: I6fb2bdd3f3a5bebb049c938c8be1e0a04550f752
Signed-off-by: Chung-yih Wang <cywang@google.com>
Reviewed-on: https://chromium-review.googlesource.com/557762
Reviewed-by: Ben Cheng <bccheng@chromium.org>
ros/arc.py
b5420a7d676be0c152ca6aa91cafbadb145d5bcd 20-Jun-2017 Allen Li <ayatane@chromium.org> [autotest] Extract _get_metric_fields()

BUG=chromium:732588
TEST=None

Change-Id: Ifd78cc0c44bccf2f2a0d811005821030f8b335bf
Reviewed-on: https://chromium-review.googlesource.com/549088
Commit-Ready: Allen Li <ayatane@chromium.org>
Tested-by: Allen Li <ayatane@chromium.org>
Reviewed-by: Allen Li <ayatane@chromium.org>
ros/autoupdater.py
1a5cc0a2acf66ed9a93fd270ca1e34c005107fde 20-Jun-2017 Allen Li <ayatane@chromium.org> [autotest] Get rid of to_raise exception storing

BUG=chromium:732588
TEST=None

Change-Id: Ie0dbaa1692e1d3fd4d57978e4ad8d24da3d70045
Reviewed-on: https://chromium-review.googlesource.com/549087
Commit-Ready: Allen Li <ayatane@chromium.org>
Tested-by: Allen Li <ayatane@chromium.org>
Reviewed-by: Allen Li <ayatane@chromium.org>
ros/autoupdater.py
fadbfdfc6473770ede87e76ed8530accbb341697 30-Jun-2017 David Haddock <dhaddock@chromium.org> [autotest] Pass clobber_stateful to cros_au.

This will tell the updater if we want to clobber stateful.
This is currently set to True by default anyway but a coming CL for
autoupdate_EndToEndTest will require it to be false in certain
conditions.

BUG=chromium:709710
TEST=test_that <IP> provision_AutoUpdate

Change-Id: I5dae2724d166b243003a0e40ac1e5ffa4458bd14
Reviewed-on: https://chromium-review.googlesource.com/557299
Commit-Ready: David Haddock <dhaddock@chromium.org>
Tested-by: David Haddock <dhaddock@chromium.org>
Reviewed-by: Xixuan Wu <xixuan@chromium.org>
ros/dev_server.py
ed3f149995d231fa2e7e26b039ea701447341757 23-Jun-2017 Allen Li <ayatane@chromium.org> [autotest] Mock out retry waiting in tests

This is an example of how to save 20 seconds in unit tests with
minimal effort.

BUG=chromium:691696
TEST=None

Change-Id: I281f2fc06de2e393639ff8afe545ea2553321fcc
Reviewed-on: https://chromium-review.googlesource.com/545113
Commit-Ready: Allen Li <ayatane@chromium.org>
Tested-by: Allen Li <ayatane@chromium.org>
Reviewed-by: Allen Li <ayatane@chromium.org>
ros/dev_server_unittest.py
ros/retry_unittest.py
4d981891fb255953a068cb1b528c622d2d7beb17 30-Jun-2017 harpreet <harpreet@google.com> Additional refactoring of cfm hangouts api class

Follow up refactoring CL after crrev.com/c/546890

BUG=chromium:731094
TEST=Tested on a local setup

Change-Id: I501830ffb3d8b6007adb3142cd0c0b13285491a5
Reviewed-on: https://chromium-review.googlesource.com/557282
Tested-by: Harpreet Grewal <harpreet@chromium.org>
Trybot-Ready: Harpreet Grewal <harpreet@chromium.org>
Reviewed-by: Kalin Stoyanov <kalin@chromium.org>
Commit-Queue: Harpreet Grewal <harpreet@chromium.org>
ros/cfm_hangouts_api.py
66ffb0a193efe5954e783f529c7b2948f284ee0e 24-Jun-2017 harpreet <harpreet@google.com> Renaming cfm_util and refactoring code as needed.

Move common kiosk methods from cfm_util to kiosk_utils and rename
cfm_util to cfm_hangouts_api. This will purely be a JS API wrapper for
gcomm api's similar to cfm_meetings_api which is a JS API wrapper for
hotlane.

BUG=chromium:731094
TEST=Tested on a local setup

Change-Id: Ic233ffe76b884fe2e49ae10104a1bbd700b5d04f
Reviewed-on: https://chromium-review.googlesource.com/546890
Commit-Ready: Harpreet Grewal <harpreet@chromium.org>
Tested-by: Harpreet Grewal <harpreet@chromium.org>
Reviewed-by: Krishna Gavini <krishnargv@chromium.org>
Reviewed-by: Kristoffer Erlandsson <kerl@google.com>
Reviewed-by: Harpreet Grewal <harpreet@chromium.org>
Reviewed-by: Kalin Stoyanov <kalin@chromium.org>
Reviewed-by: Denis Tosic <dtosic@chromium.org>
ros/cfm_hangouts_api.py
ros/cfm_util.py
ros/kiosk_utils.py
942526e79c935e2469cc9972c136a27e0a40d7db 26-Jun-2017 Chung-yih Wang <cywang@google.com> arc.py: Add adb_cmd timeout

BUG=chromium:737030
TEST=On DUT, use test_that with a adb_cmd('logcat') which lasts longer than
the timeout value and it fails eventually.

Change-Id: Ida5e17cf0d50c421300ebdf1cbd3f9c2641d3fd9
Signed-off-by: Chung-yih Wang <cywang@google.com>
Reviewed-on: https://chromium-review.googlesource.com/549741
Reviewed-by: Shuo-Peng Liao <deanliao@chromium.org>
ros/arc.py
ad719c19df78d5e28ebb760d87ff1ac08cb0e45d 28-Jun-2017 Allen Li <ayatane@chromium.org> Revert "Rename SSHHost.run to SSHHost.run_very_slowly"

This reverts commit 672fb5f8806694d9476f016c0f1094da29120f31.

Reason for revert: Broke android tests: crbug.com/737316

Original change's description:
> Rename SSHHost.run to SSHHost.run_very_slowly
>
> This CL renames several places that calls SSHHost.run directly to SSHHost.run_very_slowly.
> In addition, it warns the caller with a more verbose server stack message now.
>
> BUG=chromium:735653
> TEST=test_that dut graphics_Sanity
> ./utils/unittest_suite.py --debug
> CQ-DEPEND=I2a434782b9b7ed7a3d31289d9925f3c8502a6d9f
>
> Change-Id: Icd22fe9bcc4b5a47320478932194a8b535f4a936
> Reviewed-on: https://chromium-review.googlesource.com/545116
> Commit-Ready: Po-Hsien Wang <pwang@chromium.org>
> Tested-by: Po-Hsien Wang <pwang@chromium.org>
> Reviewed-by: Ilja H. Friedel <ihf@chromium.org>

Bug: chromium:735653
Change-Id: If57cd6103d73bc1f0335866d8c130953754df0d9
Reviewed-on: https://chromium-review.googlesource.com/550970
Reviewed-by: Allen Li <ayatane@chromium.org>
Tested-by: Allen Li <ayatane@chromium.org>
Trybot-Ready: Allen Li <ayatane@chromium.org>
ros/path_utils.py
osts/base_classes.py
8cd06cea704d27bac99e18290bc7097611cfafb7 25-Apr-2017 Daniel Wang <wonderfly@google.com> [autotest]dbus_send: Drop the compat regex in the output parsing logic

Now that dbus is upgraded to 1.10.12, we can drop the compat logic.

BUG=chromium:704365
TEST=python client/common_lib/cros/dbus_send_unittest.py
TEST=test_that -b amd64-generic-goofy ... peerd_DiscoverServices peerd_AdvertiseServices
TEST=trybot for amd64-generic-goofy-release

Change-Id: I2294d78b32c49e9ab44f1bdef6d10432dabba416
Reviewed-on: https://chromium-review.googlesource.com/487263
Commit-Ready: Daniel Wang <wonderfly@google.com>
Tested-by: Daniel Wang <wonderfly@google.com>
Reviewed-by: Mike Frysinger <vapier@chromium.org>
ros/dbus_send.py
ros/dbus_send_unittest.py
672fb5f8806694d9476f016c0f1094da29120f31 22-Jun-2017 Po-Hsien Wang <pwang@chromium.org> Rename SSHHost.run to SSHHost.run_very_slowly

This CL renames several places that calls SSHHost.run directly to SSHHost.run_very_slowly.
In addition, it warns the caller with a more verbose server stack message now.

BUG=chromium:735653
TEST=test_that dut graphics_Sanity
./utils/unittest_suite.py --debug
CQ-DEPEND=I2a434782b9b7ed7a3d31289d9925f3c8502a6d9f

Change-Id: Icd22fe9bcc4b5a47320478932194a8b535f4a936
Reviewed-on: https://chromium-review.googlesource.com/545116
Commit-Ready: Po-Hsien Wang <pwang@chromium.org>
Tested-by: Po-Hsien Wang <pwang@chromium.org>
Reviewed-by: Ilja H. Friedel <ihf@chromium.org>
ros/path_utils.py
osts/base_classes.py
3ce538e93371a56c6ff2d1f7c1b9bd4e7c6873fa 22-Jun-2017 David Haddock <dhaddock@chromium.org> [autotest] Return the PID of the successful autoupdate run.

dev_server.auto_update should return the pid of the succesful update run
so that autoupdate_EndToEndTest can use it to parse the correct logs
about the update.

The dev_server.auto_update() can rerun a few times so we want to know
only the successful pid.

BUG=chromium:709710
TEST=test_that <ip> provision_AutoUpdate

Change-Id: I49a035c20ac30ae3ad50a2e84310150938e76520
Reviewed-on: https://chromium-review.googlesource.com/544914
Commit-Ready: David Haddock <dhaddock@chromium.org>
Tested-by: David Haddock <dhaddock@chromium.org>
Reviewed-by: Xixuan Wu <xixuan@chromium.org>
ros/dev_server.py
4ed69e0c716645ea9217db90bb7a2617d51d5655 20-Jun-2017 Victor Hsieh <victorhsieh@chromium.org> Make wait_for_adb_ready wait for data mounted

Since adbd is started initially before /data is mounted,
we need to wait until /data is mounted before setting up
the authentication key.

TEST=try bvt-cq
BUG=b:62704065

Change-Id: Ic70f5228df1c8475a178209bcd42d8559b1c0969
Reviewed-on: https://chromium-review.googlesource.com/541735
Commit-Ready: Victor Hsieh <victorhsieh@chromium.org>
Tested-by: Victor Hsieh <victorhsieh@chromium.org>
Reviewed-by: Luis Hector Chavez <lhchavez@chromium.org>
ros/arc.py
9f45534bd6403e362f5889cc9583b52b741b7b4d 09-Jun-2017 xixuan <xixuan@chromium.org> autotest: don't allow retry in retrying provision to raise error correctly.

This CL raise a retryableException in auto_update() for callers to
decide whether they want to retry provision.

BUG=chromium:731274
TEST=Ran unittest.

Change-Id: I0a97aee70c97718708e7b8a103ac3e4e364d31a3
Reviewed-on: https://chromium-review.googlesource.com/528430
Commit-Ready: Xixuan Wu <xixuan@chromium.org>
Tested-by: Xixuan Wu <xixuan@chromium.org>
Reviewed-by: Don Garrett <dgarrett@chromium.org>
ros/dev_server.py
b41527d6f865688299dc5250f8d58baca9432777 23-Jun-2017 Allen Li <ayatane@chromium.org> [autotest] gs_offloader refactor

BUG=None
TEST=None

This commit is the combination of multiple commits. Their commit
messages are as follows:

commit 4f934510a2f28c5c838c514f8b7dcab6fa81fa66
Author: Allen Li <ayatane@chromium.org>
Date: Fri May 5 12:13:58 2017 -0700

[autotest] Move get_sanitized_name()

Doing some housekeeping

BUG=chromium:715435
TEST=None

Change-Id: I14a1a9886018cfe0eb6c3a1a77b45836d8476a21

commit c6f7fb299886b67c5eaeb133a59db3b80ef86d1c
Author: Allen Li <ayatane@chromium.org>
Date: Fri May 5 12:22:53 2017 -0700

[autotest] Add escape() tests

BUG=chromium:715435
TEST=None

Change-Id: Ibeee38113043e7d16605b1fe5efa8b31350b8629

commit ce42ca80d166330d15113169f6542b839ac417e8
Author: Allen Li <ayatane@chromium.org>
Date: Fri May 5 12:28:47 2017 -0700

[autotest] Clean up escape()

BUG=chromium:715435
TEST=None

Change-Id: I99edb6bf2bd6a9ffebf92893d1b834d815f797b8

commit 87353b0b7efb4ffc55946d40c34ae83410cf0314
Author: Allen Li <ayatane@chromium.org>
Date: Fri May 5 12:33:38 2017 -0700

[autotest] Extract _setup_logging()

BUG=chromium:715435
TEST=None

Change-Id: Iab967852f043238730d2c502dc030bdced156b60

commit 0ac380ec9e267efe317d43f1e303f426f6f1a3f4
Author: Allen Li <ayatane@chromium.org>
Date: Fri May 5 12:35:15 2017 -0700

[autotest] Extract _get_log_filename()

BUG=chromium:715435
TEST=None

Change-Id: I7cbdd4523a76a3d0d06b810b9b8d07208c951861

commit 387b946ca761076bd67934554b4f67af8dc02f3a
Author: Allen Li <ayatane@chromium.org>
Date: Fri May 5 12:50:14 2017 -0700

[autotest] Move enqueue_offload()

This is only used by gs_offloader, yet its a public method on a
general purpose class.

(Hypothesis: this is why the generic function paradigm is better than
methods. The set of functions that want to dispatch on the class is a
superset of the functions that want to be methods on the class.)

BUG=chromium:715435
TEST=None

Change-Id: I8bad5c2f8fea7b922769bc7a9e9121003b1aab60

commit f920fae06b621f6bc6ae429abbf508d191c62ac2
Author: Allen Li <ayatane@chromium.org>
Date: Fri May 5 12:58:32 2017 -0700

[autotest] Move logging constants next to logging setup

BUG=chromium:715435
TEST=None

Change-Id: I9904322ee39cfc07edabe0a1294ecab94201f40c

commit 5cf63fcf06e939d7f00dc4ecf6a0f3ecd71e0c32
Author: Allen Li <ayatane@chromium.org>
Date: Fri May 5 13:07:25 2017 -0700

[autotest] Extract _sanitize_symlinks()

BUG=chromium:715435
TEST=None

Change-Id: Ie5f523b0f4472d2a55f1472b6c68199c97fbb3a8

commit d108e7ba6aca44a13b8b0732f2bd7680a50c74f1
Author: Allen Li <ayatane@chromium.org>
Date: Fri May 5 13:13:13 2017 -0700

[autotest] Extract _sanitize_fifos()

BUG=chromium:715435
TEST=None

Change-Id: I7d3392fcb27cb629ede2547f865c8f26b432acc3

commit 1e73efdf7ada7c450f78882523b42f56c3c0b942
Author: Allen Li <ayatane@chromium.org>
Date: Fri May 5 14:18:00 2017 -0700

[autotest] Extract _escape_rename()

BUG=chromium:715435
TEST=None

Change-Id: I2f665ffd00552e2bfb62050f0242727cea34a286

commit 96d47cff7634c203b809a98483999dfbe38de5cc
Author: Allen Li <ayatane@chromium.org>
Date: Fri May 5 14:41:02 2017 -0700

[autotest] Inline get_directory_size_kibibytes_cmd_list()

This isnt actually mocked out or referenced anywhere. There are
better ways to mock this out anyway.

BUG=chromium:715435
TEST=None

Change-Id: If1fc3f72fbb32371b087143efaca6bb2406678c0

commit 104ef14998ef31a9eafe214463a96f66b75bdd6d
Author: Allen Li <ayatane@chromium.org>
Date: Fri May 5 14:42:23 2017 -0700

[autotest] Clean up sanitize_dir()

BUG=chromium:715435
TEST=None

Change-Id: Ib0cc1a5842616e1d333328e7f9e95cf973afee88

commit c34f213c482233807bf06929fce3534a93977804
Author: Allen Li <ayatane@chromium.org>
Date: Fri May 5 14:44:36 2017 -0700

[autotest] Move MAX_FILE_COUNT to where its used

BUG=chromium:715435
TEST=None

Change-Id: I728ffafeead8d4e4cfa97e023a6a817420edc2a2

commit 4b85648f8978e75c42e0c7ff007bc0e802dc6979
Author: Allen Li <ayatane@chromium.org>
Date: Fri May 5 14:52:43 2017 -0700

[autotest] Extract _make_into_tarball()

BUG=chromium:715435
TEST=None

Change-Id: I2869bbc2ee15ab97c0850b7421e3a946609901a6

commit d6be13aa211abae6c320fc5525097c62afc7258b
Author: Allen Li <ayatane@chromium.org>
Date: Fri May 5 15:00:03 2017 -0700

[autotest] Use tarfile for _make_into_tarball()

BUG=chromium:715435
TEST=None

Change-Id: Id0937d15957ce1227b2a29fbd4f388f11eb0179c

commit b746a4eb7e06405b4bbd4c35f4c68fbdc8ee44ae
Author: Allen Li <ayatane@chromium.org>
Date: Fri May 5 15:05:43 2017 -0700

[autotest] Extract _count_files()

BUG=chromium:715435
TEST=None

Change-Id: I454573879911e70bae0d0b50ad57bad5899daeac

commit fb0a007caaab379d2544f292b73f0a3efcc969bf
Author: Allen Li <ayatane@chromium.org>
Date: Fri May 5 15:08:00 2017 -0700

[autotest] Simplify _count_files()

BUG=chromium:715435
TEST=None

Change-Id: Ibdead3268a5051416bf6fff095e542a87d2d525a

commit e58932671a693dacc6b74e5bebc5b106aa95ddaa
Author: Allen Li <ayatane@chromium.org>
Date: Fri May 5 15:19:19 2017 -0700

[autotest] Move notification constants

BUG=chromium:715435
TEST=None

Change-Id: Iad2a2f7f869d66d230a0de62b4f75802f16709c4

commit 6fcf74934821a141977f025fe322722c4e43c689
Author: Allen Li <ayatane@chromium.org>
Date: Fri May 5 15:25:25 2017 -0700

[autotest] Make offload_dir a callable instead of a closure

I swear, the first thing that a programmer does after learning about
closures is to rewrite every object as a closure.

BUG=chromium:715435
TEST=None

Change-Id: Ifd3cf9b8821b4926dc496859620f16fa34e4960d

commit 7f58dfc1dff99b2679515598352da837236615e0
Author: Allen Li <ayatane@chromium.org>
Date: Fri May 5 15:34:30 2017 -0700

[autotest] Make delete_files() inherit from GSOffloader

BUG=chromium:715435
TEST=None

Change-Id: Idbe4b1bd1d73edb25857ad22f0017df0ecb74402

commit 3b2b10ff73900ad11ca3a5fc57703ffc52a66c4d
Author: Allen Li <ayatane@chromium.org>
Date: Fri May 5 18:40:06 2017 -0700

[autotest] Fix GSOffloader semantics

BUG=chromium:715435
TEST=None

Change-Id: I82adfdcc9349b3afb3b6ccd487c53e90afb91c59

commit 4884e2f3c38bd590cee5eee843a20650bf24b59b
Author: Allen Li <ayatane@chromium.org>
Date: Fri May 5 15:42:31 2017 -0700

[autotest] Use context manager for tempfiles

BUG=chromium:715435
TEST=None

Change-Id: I526708355247e54620723ae1eb6a1bd5ca7ef653

commit 2fd102484811a8980d6c9893969f3bf3188bc2e3
Author: Allen Li <ayatane@chromium.org>
Date: Fri May 5 15:53:40 2017 -0700

[autotest] Use chromite timeout library

BUG=chromium:715435
TEST=None

Change-Id: I85e6457d17d27580a4443f96021a8d280dec9d5d

commit 63229138951ee4e76c43dc2578b50aec21b87501
Author: Allen Li <ayatane@chromium.org>
Date: Fri May 5 16:25:42 2017 -0700

[autotest] Split GSOffload call body

This will make subsequent CL diffs clearer.

BUG=chromium:715435
TEST=None

Change-Id: I6eca38fc060639882d9d2869a0df774a597f171d

commit 89e5e4eb5cddd0b8565ceb568e87083304b40520
Author: Allen Li <ayatane@chromium.org>
Date: Fri May 5 16:27:32 2017 -0700

[autotest] Move TemporaryFile context out

Remove indentation levels.

BUG=chromium:715435
TEST=None

Change-Id: I602c16c241ada2bc452630523764168dd1dda8cb

commit 819c8b1f6c9ce236fb7a7e12992a8ca555b544d2
Author: Allen Li <ayatane@chromium.org>
Date: Fri May 5 16:29:37 2017 -0700

[autotest] Move error handling out

BUG=chromium:715435
TEST=None

Change-Id: I7e712a0c6d0087f7fa5b44ccc45dec72503f365b

commit 13e9132457b0e40f25fcc62df939dcb37c23fe23
Author: Allen Li <ayatane@chromium.org>
Date: Fri May 19 16:57:08 2017 -0700

[autotest] Extract _emit_offload_metrics()

BUG=chromium:715435
TEST=None

Change-Id: I2299344c2d63a3d9585c8f83daf341b7ba1c5d9d

commit 1b0b0708db7d8f370942be9b10f9456983d63ce4
Author: Allen Li <ayatane@chromium.org>
Date: Fri May 19 16:57:40 2017 -0700

[autotest] Remove useless variable

BUG=chromium:715435
TEST=None

Change-Id: I690f3fa6ae7a8c5a224586057292713ae763bb60

commit 92806326b6fe8173c98e0560247f2c64041705dd
Author: Allen Li <ayatane@chromium.org>
Date: Fri May 5 17:38:18 2017 -0700

[autotest] Move pruning logic out

This OSError is supposed to only apply to the pruning; do that. Also
disentangle this pile of spaghetti.

BUG=chromium:715435
TEST=None

Change-Id: If46a5962f4530044058a4cd5ba840a9195c142a7

commit c604443fb5299d26fad0bb00c2b4b0f3bc99b24d
Author: Allen Li <ayatane@chromium.org>
Date: Fri May 5 17:42:44 2017 -0700

[autotest] Decrease scope of error flag

BUG=chromium:715435
TEST=None

Change-Id: If6a86f04c54de0c44774bd842902d54433925273

commit a519607dc6bf93356d7b336e90e9d649c6da441b
Author: Allen Li <ayatane@chromium.org>
Date: Fri May 5 17:46:05 2017 -0700

[autotest] Extract pruning logic

BUG=chromium:715435
TEST=None

Change-Id: Ia454d9d441e3a4e404350219041eadcaf8bdb0ef

commit e0e79552fe4fb7982e7cdabcc3ae28c0c34e40f4
Author: Allen Li <ayatane@chromium.org>
Date: Fri May 5 17:47:39 2017 -0700

[autotest] Clean up pruning test logic

BUG=chromium:715435
TEST=None

Change-Id: Idcb936ab659223eed0476858a05ce0b7a6b4e61e

commit 53e076a46ea1a4c01f0d41d2616a84b8a1d02f60
Author: Allen Li <ayatane@chromium.org>
Date: Fri May 19 17:11:55 2017 -0700

[autotest] Remove error flag

Even C++ has exceptions.

BUG=chromium:715435
TEST=None

Change-Id: I0c2e61cb753f8130356388c307410bb8d37489a9

commit 546180941013147ff493139c33f983e67a03a789
Author: Allen Li <ayatane@chromium.org>
Date: Fri May 19 17:12:53 2017 -0700

[autotest] Remove redudant check

BUG=chromium:715435
TEST=None

Change-Id: Iecc17ec88a78af691a4b3f6a444d2c033bbc3ae5

commit ab2fbbb578eeeb73f5db71c0266c8a551bfef748
Author: Allen Li <ayatane@chromium.org>
Date: Mon May 15 14:48:09 2017 -0700

[autotest] Move uploaded test out

BUG=chromium:715435
TEST=None

Change-Id: Ic265aba95aec337132251c50b6d86a51b415b86b

commit 341f36d00d5b0b5973da3fc78f92db218d17b5ff
Author: Allen Li <ayatane@chromium.org>
Date: Mon May 15 14:49:23 2017 -0700

[autotest] Fix indentation

BUG=chromium:715435
TEST=None

Change-Id: I851a790d9470f99bfc53ca3f71efee8fbc5ab9d1

commit d63eb51d5e5d9553bf6b33dee9b6d7b49135e115
Author: Allen Li <ayatane@chromium.org>
Date: Mon May 15 14:58:11 2017 -0700

[autotest] Remove is_offloaded()

There are two concepts of is_offloaded being used in gs_offloader.
One of them is an existence check that isnt actually quite right.
Remove it.

BUG=chromium:715435
TEST=None

Change-Id: Ib9002b848e74b55e29d17131a3c4962ba32f6207

commit 40ff0da7e960e6861557f3064a3d4618369d8f9e
Author: Allen Li <ayatane@chromium.org>
Date: Mon May 15 15:00:43 2017 -0700

[autotest] Clarify _update_offload_results()

BUG=chromium:715435
TEST=None

Change-Id: I23986726ac1d02a60baf64ba4d137f132c1b9d4f

commit a004fd4c4ff7c9df390b80941bba3a8d38355132
Author: Allen Li <ayatane@chromium.org>
Date: Mon May 15 15:05:56 2017 -0700

[autotest] Dont re-add uploaded jobs

BUG=chromium:715435
TEST=None

Change-Id: I054552667d62110f1e3a16099aeacb99e7d31661

commit 85e22760e53e23be728bec9bb983f710e1c0cdcc
Author: Allen Li <ayatane@chromium.org>
Date: Mon May 15 15:15:33 2017 -0700

[autotest] Fix upload_testresult_files() name

BUG=chromium:715435
TEST=None

Change-Id: I2da7b5c0a25c6cd8f295aed795e614449d93f9ba

commit 20add289f72659648fa5904524eb6d2c9bbe06f8
Author: Allen Li <ayatane@chromium.org>
Date: Mon May 15 15:32:18 2017 -0700

[autotest] Extract _remove_log_directory_contents()

BUG=chromium:715435
TEST=None

Change-Id: I06f2b1f312a0836854bfd43aaa6145473b558c2f

commit a53a80a78c7d72999645d7cb20e9d3e1541bbabe
Author: Allen Li <ayatane@chromium.org>
Date: Mon May 15 15:33:40 2017 -0700

[autotest] Replace get_job_directory()

This isnt Java, we dont need a getter.

BUG=chromium:715435
TEST=None

Change-Id: If97efd0ff8c6698ee8ce386dd113e60c53d02627

commit 8cceb41b48ec68b68ee050c41cc8255ab7090086
Author: Allen Li <ayatane@chromium.org>
Date: Mon May 15 15:40:14 2017 -0700

[autotest] Extract _is_expired()

BUG=chromium:715435
TEST=None

Change-Id: I81924e5ca47489692d836866f83fd9506884f36f

commit f3bfca34e41b3a6643785184e7e6d3f236f90831
Author: Allen Li <ayatane@chromium.org>
Date: Mon May 15 15:42:50 2017 -0700

[autotest] Make get_cmd_list private

BUG=chromium:715435
TEST=None

Change-Id: Id39af7863844b5ed7d5ec3c212e0683b133921e8

commit db314fad7d61ee25af4ac3c3bf8a6ba88e0538d4
Author: Allen Li <ayatane@chromium.org>
Date: Mon May 15 15:48:23 2017 -0700

[autotest] Replace get_failure_time(), get_failure_count()

This isnt Java, we dont need a getter.

BUG=chromium:715435
TEST=None

Change-Id: I857de5947d230c0c7d9f01a11214831189268369

commit c6bd98ca98d92d669c9695d62edd40a67c17be4f
Author: Allen Li <ayatane@chromium.org>
Date: Fri Jun 16 15:26:26 2017 -0700

[autotest] Fix damned mox thing

I swear it works locally, but it fails on trybot. I think mock will
be more reliable.

BUG=None
TEST=None

Change-Id: I7bf11033aee567a5a081b4a2be64769eef3b7f15

commit bb3f60bb6470fd37ba645f562615c2142f4b1d64
Author: Allen Li <ayatane@chromium.org>
Date: Mon Jun 19 12:27:34 2017 -0700

[autotest] Extract tempdir logic into a separate class

This class will be reused for a non-mox test class, because mox is
giving much such a ridiculous time. Moving a few function around
costs hours fiddling with mox tests.

BUG=None
TEST=None

Change-Id: I58fd573a8dbb046b4ab2449dfa22044102088b2c

commit e3b27f31393b6488547103b4f605b49b897cf2be
Author: Allen Li <ayatane@chromium.org>
Date: Mon Jun 19 12:32:04 2017 -0700

[autotest] Add non-mox version of timeout tests

This is confirmed passing when run locally.

BUG=None
TEST=None

Change-Id: I2196d51928b0ca35d783727f2db109148f80fe77

Change-Id: I21d905707ff67a8c124a84458f7e0e313f5fa433
Reviewed-on: https://chromium-review.googlesource.com/538996
Commit-Ready: Allen Li <ayatane@chromium.org>
Tested-by: Allen Li <ayatane@chromium.org>
Reviewed-by: Allen Li <ayatane@chromium.org>
ile_utils.py
fd9071037081ca5db4351d3420e4b6948e252599 23-Jun-2017 Allen Li <ayatane@chromium.org> [autotest] Remove final vestiges of WAITING

BUG=chromium:699276
TEST=None

Change-Id: If22729c1e987953c345c2a2ff49df67122b0ba51
Reviewed-on: https://chromium-review.googlesource.com/545164
Commit-Ready: Allen Li <ayatane@chromium.org>
Tested-by: Allen Li <ayatane@chromium.org>
Reviewed-by: Prathmesh Prabhu <pprabhu@chromium.org>
ost_queue_entry_states.py
8745b0df766fc07c277b55c9b06f4c613f74b2e1 23-Jun-2017 Allen Li <ayatane@chromium.org> [autotest] Remove final vestiges of ARCHIVING

BUG=chromium:699275
TEST=None

Change-Id: I1555a7716f1e62e58b71f709afa4c95057282b6b
Reviewed-on: https://chromium-review.googlesource.com/544532
Commit-Ready: Allen Li <ayatane@chromium.org>
Tested-by: Allen Li <ayatane@chromium.org>
Reviewed-by: Prathmesh Prabhu <pprabhu@chromium.org>
ost_queue_entry_states.py
9ea833a44ddedc02399d2d00ebf436e70ace4efa 23-May-2017 Zhongze Hu <frankhu@google.com> Draft of Autotest for SiS FW updater

This is the basic functionality autotest for SiS FW updater.
The file power_cycle_usb_util.py contains utility functions to power
cycle an USB port by its gpio number or peripharel device VID and PID.

BUG=chromium:713777
TEST=run autotest on chromebox with peripharel device connectting
to different usb ports and throught hub. Unittest for
power_cycle_usb_util.py.

Change-Id: Ia29c429604aa4b8fabd035f1fd104fbd71d5046e
Reviewed-on: https://chromium-review.googlesource.com/513402
Commit-Ready: Zhongze Hu <frankhu@google.com>
Tested-by: Zhongze Hu <frankhu@google.com>
Reviewed-by: Jiwoong Lee <porce@chromium.org>
ros/power_cycle_usb_util.py
ros/power_cycle_usb_util_unittest.py
b273f6fab2b1fc34b60f091151dd1984acbfeb46 21-Jun-2017 xixuan <xixuan@chromium.org> autotest: Clearly log the process of devserver health check.

As crbug.com/691009 shown, we don't have clear logs for how to iterate
devserver health check.

BUG=chromium:691009
TEST=Ran unittest.

Change-Id: I155bdaaecb6b7f7e48abf028e7945cc950165f4e
Reviewed-on: https://chromium-review.googlesource.com/543755
Commit-Ready: Xixuan Wu <xixuan@chromium.org>
Tested-by: Xixuan Wu <xixuan@chromium.org>
Reviewed-by: Xixuan Wu <xixuan@chromium.org>
ros/dev_server.py
f53d1269ad7321116eadcb0167d81dbea9bf4bef 19-Jun-2017 Dan Shi <dshi@google.com> [autotest] Allow control file to specify maximum test results to collect

Control file can set an attribute MAX_RESULT_SIZE_KB to specify the maximum
test result size to collect. By default, it will be 20MB if
`enable_result_throttling` is set to True in global config.

BUG=chromium:716218
TEST=unittest, local run dummy tests

Change-Id: Ia6b9a04d92ec91179ceb99466b5e9d6a5d1b3ef3
Reviewed-on: https://chromium-review.googlesource.com/540196
Commit-Ready: Dan Shi <dshi@google.com>
Tested-by: Dan Shi <dshi@google.com>
Reviewed-by: Dan Shi <dshi@google.com>
ase_job.py
ase_job_unittest.py
ontrol_data.py
ontrol_data_unittest.py
3e96cc24b38bd15c19cee0ba79de2b4c3297a910 08-Jun-2017 Gwendal Grignou <gwendal@chromium.org> autoupdate: Install stateful_update from the right location

stateful_update can be locally stored at 2 locations:
/usr/sbin/stateful_update installed by package chromeos-base/devserver,
or by python modules: either during unit test or by build_externals.py on
the labserver.

BUG=chromium:689105
TEST=Unit test. Test stateful_update is executable.
Check powerwash machines are updating properly.

Change-Id: Ib43552651b7b1bae594254253b0d623f5e72f8a5
Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/527422
Reviewed-by: Richard Barnette <jrbarnette@google.com>
ros/autoupdater.py
ros/autoupdater_unittest.py
6c39365dd108fcf367173f112b71fccdf359e462 06-Jun-2017 Min Zhuo <mzhuo@google.com> Add support for Mimo when there is 1 more windows.

Change-Id: Ia545aaefbf7274250205b4d86dfd201be726ba3e
Reviewed-on: https://chromium-review.googlesource.com/524633
Reviewed-by: Harpreet Grewal <harpreet@chromium.org>
Reviewed-by: Min Zhuo <mzhuo@chromium.org>
Tested-by: Min Zhuo <mzhuo@chromium.org>
Commit-Queue: Min Zhuo <mzhuo@chromium.org>
ros/cfm_util.py
b6150912c13ff4433c7c3330155b77da5cb89352 16-Jun-2017 Mary Ruthven <mruthven@chromium.org> cr50_utils: add board id usb_update arg

The usb_updater board id get/set command will not cause the device to
reboot. Change the arg_parse arg to get_info instead of get ver and
store true if the usb_update arg is binver, fwver, or board id.

BUG=none
BRANCH=none
TEST=none

Change-Id: Ibf15527c0a087a028a50f42fadff684ae8efc332
Signed-off-by: Mary Ruthven <mruthven@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/540129
Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
ros/cr50_utils.py
6b4cc78e0807c591a4f3861177a28c43d9e533fb 16-Jun-2017 Mary Ruthven <mruthven@chromium.org> cr50_utils: use argparse to parse usb_update args

BUG=none
BRANCH=none
TEST=firmware_Cr50Update --args='old_relsease_ver=0.0.18
release_ver=0.0.20'

Change-Id: I1707c8c84fd11a9e649c0d767df965f63e717a86
Signed-off-by: Mary Ruthven <mruthven@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/540128
Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
ros/cr50_utils.py
a66cc51f97408cb9c4c2be2868f0b14409379fee 20-Jun-2017 Mary Ruthven <mruthven@chromium.org> cr50_utils: fix string formatting error

BUG=none
BRANCH=none
TEST=none

Change-Id: I521f212cae26f39d5c8e8acf5942262e0eba688b
Signed-off-by: Mary Ruthven <mruthven@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/540127
Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
ros/cr50_utils.py
26a6a8a63ebf40c01eb089b55e026d446b1c6d50 25-May-2017 Alexander Curtiss <curtissa@google.com> dbus_send: Fixed a bug with _build_arg_string()

The function would incorrectly error when a numeric dbus.* type object
was passed in (e.g. dbus.Int16) due to a 'continue' statement within a
nested loop. This was bypassed by refactoring the loop body.

BUG=chromium:726432
TEST=dbus_send_unittest.py

Change-Id: Ic8028746fe2e4cc5ae459c91bea28208d675bacf
Reviewed-on: https://chromium-review.googlesource.com/514409
Commit-Ready: Alexander Curtiss <curtissa@google.com>
Tested-by: Kirtika Ruchandani <kirtika@chromium.org>
Tested-by: Alexander Curtiss <curtissa@google.com>
Reviewed-by: Eric Caruso <ejcaruso@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>
ros/dbus_send.py
ros/dbus_send_unittest.py
1bf6ec07de479fb00db14a5dd0e2fc8d2ab114fe 17-Jun-2017 Dan Shi <dshi@google.com> [autotest] Fix a bug in bulk_post in metadb upload

BUG=None
TEST=local run

Change-Id: I60e4e090bdcc78e1ff1db520f26ce1395479ee8b
Reviewed-on: https://chromium-review.googlesource.com/539062
Reviewed-by: Dan Shi <dshi@google.com>
Reviewed-by: Paul Hobbs <phobbs@google.com>
Tested-by: Dan Shi <dshi@google.com>
Commit-Queue: Dan Shi <dshi@google.com>
ros/graphite/autotest_es.py
ff1d8babb1961ff7324de380f8f592005431c9e4 16-Jun-2017 David Haddock <dhaddock@chromium.org> [autotest] Remove Brillo v1 update code.

The BrilloUpdater/BrilloTestPlatform implementation was for version one
of Brillo. This is no longer in use. Confirmed by Brillo Test Engineer.

As part of autoupdate_EndToEndTest rewrite, I will remove this code.

BUG=chromium:709710
TEST=test_that chromeos2-row3-rack10-host13.cros autoupdate_EndToEndTest

Change-Id: I7a5500ea14c33fde7d4cc998d1f536130868e371
Reviewed-on: https://chromium-review.googlesource.com/538915
Commit-Ready: David Haddock <dhaddock@chromium.org>
Tested-by: David Haddock <dhaddock@chromium.org>
Reviewed-by: Justin Giorgi <jgiorgi@google.com>
Reviewed-by: Don Garrett <dgarrett@chromium.org>
ros/autoupdater.py
cda739be02a9891b5a2958ebd7a236aaced7b546 15-Jun-2017 Prathmesh Prabhu <pprabhu@chromium.org> Have lsbrelease_utils function respect argument default.

The API of the lsbrelease_utils functions says that when the
lsb_release_content is None, we try to infer it ourselves. But the
implementation tries to infer the content even when the argument is
passed in and is ''. This is not ideal because a call from drone may
result in an empty lsb_release_content being returned from a DUT. A
subsequent call to lsbrelease_utils functions will incorrectly check the
/etc/lsb-release on the drone (if present).

BUG=b:28453441
TEST=None.
- Spot checked manually that none of the callers would be impacted
by this change. This is especially difficult because all these
functions are imported by another utils module and used from
there.

Change-Id: I2d6ded6016fb6e373de3969632f02ad9bc027cd5
Reviewed-on: https://chromium-review.googlesource.com/536414
Commit-Ready: Prathmesh Prabhu <pprabhu@chromium.org>
Tested-by: Prathmesh Prabhu <pprabhu@chromium.org>
Reviewed-by: Allen Li <ayatane@chromium.org>
sbrelease_utils.py
sbrelease_utils_unittest.py
d939d66604032ed727ce99cc0455e2e04f0728cb 13-Jun-2017 Hidehiko Abe <hidehiko@chromium.org> autotest: Fix no_pipes behavior of BgJob.

Currently, if no_pipes is set, logging_manager.LoggingFile instance
is directly passed to subprocess.Popen. However, this does not work,
because subprocess.Popen relies on fileno(), but LoggingFile
provides just a fake FD.
To make matters worse, because it is a pipe, if a subprocess output
too many data, it would be blocked because no one reads it.

Considering current usage (master ssh connection process),
this CL just drops the message proxying code, and, instead, supports
DEVNULL, meaning to discard all the data from subprocess,
and |unjoinable|, meaning the BgJob running on background.
From coding point of view, |unjoinable| option is just for sanity check
which no_pipes option did.

Then, set DEVNULL to BgJob() with no_pipes=True cases.
From users perspective, this should be almost no-op,
because, even now the stdout/stderr data is just discarded.

Along with the change, output_prepare() looks not useful,
but to make the DEVNULL support complicated, so dropped it.

BUG=chromium:733536
TEST=Ran test_that locally. Ran bot.

Change-Id: I7aaadbc16b1ff54f222cc658a3d127fef246287d
Reviewed-on: https://chromium-review.googlesource.com/532468
Commit-Ready: Hidehiko Abe <hidehiko@chromium.org>
Tested-by: Hidehiko Abe <hidehiko@chromium.org>
Reviewed-by: Hidehiko Abe <hidehiko@chromium.org>
tils.py
157a77a2bac507e3c4c2ae5465f13fc1254a3c06 12-Jun-2017 Prathmesh Prabhu <pprabhu@chromium.org> [autotest] Fix lsbrelease_utils.is_moblab to respect its argument.

is_moblab allows one to pass in the content to check, but then promptly
goes on to first verify that the call is running on a moblab device
(which basically ends up ignoring the argument). FixIt.

BUG=b:28453441
TEST=(new) unittests

Change-Id: Ie16eef3de582720a93ac15b29bc991b6b984ec62
Reviewed-on: https://chromium-review.googlesource.com/531761
Commit-Ready: Prathmesh Prabhu <pprabhu@chromium.org>
Tested-by: Prathmesh Prabhu <pprabhu@chromium.org>
Reviewed-by: Prathmesh Prabhu <pprabhu@chromium.org>
sbrelease_utils.py
sbrelease_utils_unittest.py
739e8c71cc6585b37b52fd7fff3c6ecbe29e1a63 09-Jun-2017 Denis Tosic <dtosic@chromium.org> Adds util class for interacting with the hotlane telemetry API

This file wraps JS commands exponsed on the Google Meet pages on a CfM.
It is inteded for usage in test automation. Not yet used anywhere.

BUG=chromium:731094
TEST=manualy

Change-Id: I710114b5c19006fb833a0bbda1319b5a82fbcd36
Reviewed-on: https://chromium-review.googlesource.com/528200
Commit-Ready: Denis Tosic <dtosic@chromium.org>
Tested-by: Denis Tosic <dtosic@chromium.org>
Reviewed-by: Harpreet Grewal <harpreet@chromium.org>
ros/cfm_meetings_api.py
beadce4ff351c5f2bee137de255735979ef7c660 26-May-2017 David Haddock <dhaddock@chromium.org> [autotest] Remove try catch around collect_cros_au_logs.

The devserver has been changed to return json and it is working
successfully so we can remove this check since there are no longer two
cases to account for.

Updating dev_server_unittest too to mock out the json calls.

BUG=chromium:709710
TEST=test_that <IP> provision_AutoUpdate

Change-Id: I8eec58eb957c47f4051ef377069c8a8fb2ec31ef
Reviewed-on: https://chromium-review.googlesource.com/516511
Commit-Ready: David Haddock <dhaddock@chromium.org>
Tested-by: David Haddock <dhaddock@chromium.org>
Reviewed-by: Xixuan Wu <xixuan@chromium.org>
ros/dev_server.py
ros/dev_server_unittest.py
468de2598a8de3fdec23179cb0182d9973f2b1b4 09-Jun-2017 Laurence Goodby <lgoodby@google.com> autotest: Add jetstream host autodetection.

The jetstream_host model is currently forced using the os_type attribute.
This change adds autodetection of jetstream hosts so that the normal
host autodection flow can be used with jetstream devices.

BUG=b:28453441
TEST=Patched to moblab, verified host autodetection after removing
the os_type attribute and os label.

Change-Id: I9d4217da99ce18f2a91de16bbae77af7819a8a14
Reviewed-on: https://chromium-review.googlesource.com/528487
Commit-Ready: Laurence Goodby <lgoodby@chromium.org>
Tested-by: Laurence Goodby <lgoodby@chromium.org>
Reviewed-by: Prathmesh Prabhu <pprabhu@chromium.org>
sbrelease_utils.py
sbrelease_utils_unittest.py
bc22566603fd9209763f89468407c938abc49681 25-May-2017 Allen Li <ayatane@chromium.org> [autotest] Make message less shouty

BUG=None
TEST=None

Change-Id: Ie1112b2352cd40900c1bd5d128700e45b9c4c42f
Reviewed-on: https://chromium-review.googlesource.com/514644
Commit-Ready: Allen Li <ayatane@chromium.org>
Tested-by: Allen Li <ayatane@chromium.org>
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
eprecation.py
7ae78a5bed09f44e46a1abb4ca26e2bdd9ba73de 25-May-2017 Allen Li <ayatane@chromium.org> [autotest] Add deprecations.warn

BUG=None
TEST=None

Change-Id: I46d56238d2a296345c2428984a1bd5271af7c3b8
Reviewed-on: https://chromium-review.googlesource.com/514643
Commit-Ready: Allen Li <ayatane@chromium.org>
Tested-by: Allen Li <ayatane@chromium.org>
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
eprecation.py
9785a705bf8a876bdc154b7ef312b51aae914c6b 09-Jun-2017 xixuan <xixuan@chromium.org> autotest: disable provision with original build for hosts at normal state

The hosts at normal state means they're in a valid build, whose
lsb-release contains full chromeos release info, like MILESTONE.
For these hosts, their build is too new to have no stable-channel
version in gs, which causes the provision with original build definitely
fail for them. so just use the target build to do provision.

BUG=chromium:721861
TEST=None

Change-Id: If3a753ce6e17ac7aea3317bc9924e391b60ac474
Reviewed-on: https://chromium-review.googlesource.com/528652
Commit-Ready: Xixuan Wu <xixuan@chromium.org>
Tested-by: Xixuan Wu <xixuan@chromium.org>
Reviewed-by: Allen Li <ayatane@chromium.org>
ros/dev_server.py
92f6f535eac719bd98bc5442fdd8d3b2883516bd 09-Jun-2017 xixuan <xixuan@chromium.org> autotest: Decrease provision times from 3 to 2.

We detect whether to force provision with original version in CL:497026,
so no need to try provision one more time for this case, which was the
reason to increase provision times from 2 to 3 months ago.

BUG=chromium:731274
TEST=Ran unittest.

Change-Id: Id7779a6d29af4efd7d56ab43527608294dc0822d
Reviewed-on: https://chromium-review.googlesource.com/528328
Commit-Ready: Xixuan Wu <xixuan@chromium.org>
Tested-by: Xixuan Wu <xixuan@chromium.org>
Reviewed-by: Allen Li <ayatane@chromium.org>
ros/dev_server.py
f19118f03d242e0bd7dc04bee0bd93c90273e197 09-Jun-2017 xixuan <xixuan@chromium.org> autotest: Limit the scope of retryable error keyword for auto-update.

BUG=chromium:731274
TEST=None

Change-Id: I34d2164d8dd5c9a04fc74fa56b779a22858f81ea
Reviewed-on: https://chromium-review.googlesource.com/528391
Commit-Ready: Xixuan Wu <xixuan@chromium.org>
Tested-by: Xixuan Wu <xixuan@chromium.org>
Reviewed-by: Dan Shi <dshi@google.com>
ros/dev_server.py
96c3bdc2e5de17857fabf4c40a0f371b0d657258 24-May-2017 Dan Shi <dshi@google.com> [autotest] Log test result size tko_job_keyvals

Get the result size information from directory summary and save the data to
tko_job_keyvals table.

BUG=chromium:716218
TEST=local run test, make sure results are recorded in tko table
mysql> select * from tko_job_keyvals as t where job_id=714 AND
t.key like "%result%";
+------+--------+----------------------------+--------+
| id | job_id | key | value |
+------+--------+----------------------------+--------+
| 8772 | 714 | result_uploaded_KB | 557731 |
| 8773 | 714 | result_throttled | 0 |
| 8781 | 714 | client_result_collected_KB | 569856 |
| 8783 | 714 | original_result_total_KB | 557731 |
+------+--------+----------------------------+--------+

Change-Id: Ice56082086d3b48b885e5a0d64966ac9598b91e7
Reviewed-on: https://chromium-review.googlesource.com/513520
Commit-Ready: Dan Shi <dshi@google.com>
Tested-by: Dan Shi <dshi@google.com>
Reviewed-by: Dan Shi <dshi@google.com>
ile_utils.py
c92efed1d1c1b84d10c157e634de06580f630602 17-May-2017 Mary Ruthven <mruthven@chromium.org> firmware_Cr50Update: move the update code to cr50_utils

More tests will need to run usb_update to new images. This change moves
the usb_update to cr50_utils.

BUG=none
BRANCH=none
TEST=test_that $DUT_IP -b reef --args="release_ver=0.0.19
old_release_ver=0.0.18" firmware_Cr50Update

Change-Id: I6353ad7273e61348369002fbf37318950337831e
Signed-off-by: Mary Ruthven <mruthven@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/522881
ros/cr50_utils.py
2fbe022d586aae9fa330c174c00ddcfd3c8812e1 02-Jun-2017 Mary Ruthven <mruthven@chromium.org> cr50_util: change binver to binvers

binvers is the real arg name

BUG=none
BRANCH=none
TEST=firmware_Cr50Update

Change-Id: I092b9819c020290061d8018e30d46766fdc8a8a3
Signed-off-by: Mary Ruthven <mruthven@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/522878
Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
ros/cr50_utils.py
56827582997ab8e6da292e5064ea9fd9b1445f24 01-Jun-2017 markdr <markdr@google.com> Added required dtbo_a image for some Android devices

BUG=b:62232528
TEST=fastboot -s <S> flash dtbo_a /path/to/dtbo_a.img fixed flashing
for down builds
Change-Id: I1d103b765c504e335b1df599b31eb34f69984da4
Reviewed-on: https://chromium-review.googlesource.com/520423
Reviewed-by: Kris Rambish <krisr@chromium.org>
Tested-by: Kris Rambish <krisr@chromium.org>
ndroid_utils.py
f0c8224364e104aabe3ff76525e0cc7a39be2a6c 19-May-2017 Aviv Keshet <akeshet@chromium.org> autotest: (base_job) delete TAPReport and all callers

This looks unused.

BUG=None
TEST=None

Change-Id: I7ceff7c4c546eba72ab6c24e66abe759077a758c
Reviewed-on: https://chromium-review.googlesource.com/509013
Commit-Ready: Aviv Keshet <akeshet@chromium.org>
Tested-by: Aviv Keshet <akeshet@chromium.org>
Reviewed-by: Keith Haddow <haddowk@chromium.org>
Reviewed-by: Richard Barnette <jrbarnette@google.com>
ase_job.py
est.py
est_unittest.py
tils.py
b83db0d0f9633ac7ddc28f429eb166aa9f122b9d 24-May-2017 Krishna Gavini <krishnargv@chromium.org> Adding a library of methods to calculate perf stats.

Adding a library of methods to calculate various stats from perf
metrics.
The following stats are computed
Kth percentile
Median
Average
Standard Deviation

TEST=None
BUG=None
Change-Id: If5204aba2c1078a52bd49e7e2c8ce8f955bb9036
Reviewed-on: https://chromium-review.googlesource.com/513430
Commit-Ready: Krishna Gavini <krishnargv@chromium.org>
Tested-by: Krishna Gavini <krishnargv@chromium.org>
Reviewed-by: Harpreet Grewal <harpreet@chromium.org>
ros/perf_stat_lib.py
690ca4886375ae2c4ac1f4ae25d3f6cabf39f556 22-May-2017 vikram hirehal <vhirehal@google.com> autotest: Add tx bitrate and rx bitrate support to IwRunner.

Jetstream performance needs support for txbitrate and rxbitrate
station dump in Iwrunner.

BUG=None
TEST=Verified on jetstream devices.

Change-Id: Idef505f769ca0fddfee39c69a8b77cd6c6c8ca66
Reviewed-on: https://chromium-review.googlesource.com/511163
Commit-Ready: VIKRAM HIREHAL <vhirehal@google.com>
Tested-by: VIKRAM HIREHAL <vhirehal@google.com>
Reviewed-by: Brian Norris <briannorris@chromium.org>
ros/network/iw_runner.py
ros/network/iw_runner_unittest.py
2396d5683cbb90e4dabeb17fd6680b4e368fd243 03-Feb-2017 Prathmesh Prabhu <pprabhu@chromium.org> [autotest] Delete redundant call to parent's __str__

BUG=chromium:682417
TEST=None

Change-Id: I2f01023ffaedb9ab572e6110849805399876bc39
Reviewed-on: https://chromium-review.googlesource.com/437611
Commit-Ready: Prathmesh Prabhu <pprabhu@chromium.org>
Tested-by: Prathmesh Prabhu <pprabhu@chromium.org>
Reviewed-by: Prathmesh Prabhu <pprabhu@chromium.org>
Reviewed-by: Richard Barnette <jrbarnette@google.com>
rror.py
3c4fc6f2de5790dad28868d7203cc644e2405dc4 20-May-2017 Po-Hsien Wang <pwang@chromium.org> [common_lib/test.py]: add append opt to output_perf_value

Add append_mode parameter to determine a new perf report
should be appended if a existing key is existed or not.
If the parameter is set to false, the new perf report will
override any existing value.

BUG=chromium:717664
TEST=autotest_lib.client.common_lib.test_unittest

Change-Id: I54816624cea455408094b66e2d14a1f2783a8c5b
Reviewed-on: https://chromium-review.googlesource.com/511222
Commit-Ready: Po-Hsien Wang <pwang@chromium.org>
Tested-by: Po-Hsien Wang <pwang@chromium.org>
Reviewed-by: Ilja H. Friedel <ihf@chromium.org>
est.py
est_unittest.py
a3bbc42d008a967599437c712cfb569f3bbd5241 05-May-2017 xixuan <xixuan@chromium.org> autotest: Check whether a host is in old version before provision.

This CL intends to reduce the load caused by unnessary provision:
1. detect whether a host is already in old version.
2. detect whether the returned error message implies another provision.

BUG=chromium:718532
TEST=locally test provisioning a DUT with old version of ChromeOS.

Change-Id: Ib417dc3599a284dddfee4a04193fdf8311e6b0d4
Reviewed-on: https://chromium-review.googlesource.com/497026
Commit-Ready: Xixuan Wu <xixuan@chromium.org>
Tested-by: Xixuan Wu <xixuan@chromium.org>
Reviewed-by: Xixuan Wu <xixuan@chromium.org>
ros/dev_server.py
sbrelease_utils.py
a65125c70f5459e35c18bbe552a51d0613005d96 11-May-2017 David Haddock <dhaddock@chromium.org> autotest: Write all logs returned from collect_cros_au to disk.

Since the RPC call returns multiple logs, the caller should write all of
the files returned to disk.

I have also changed the order it is called within auto_update so the logs are
read and saved first before handler_cleanup is called to delete them.
This required me to update the unittest too.

BUG=chromium:709710
TEST=collect_cros_au RPC call
TEST=Tested with and without CL:503616
TEST=dev_server.auto_update()
TEST=dev_server.auto_update(payload_filename=...)

Change-Id: Ie6a5e9de73a1b10e8b0efd7409c88383d3dfc0e9
Reviewed-on: https://chromium-review.googlesource.com/503537
Commit-Ready: David Haddock <dhaddock@chromium.org>
Tested-by: David Haddock <dhaddock@chromium.org>
Reviewed-by: David Haddock <dhaddock@chromium.org>
ros/dev_server.py
ros/dev_server_unittest.py
395697ddbbcf211271083b05a19531b74fc7e811 15-May-2017 Dan Shi <dshi@google.com> [autotest] Handle tiem_utils call for None input

BUG=chromium:722477
TEST=None

Change-Id: I2f4b52ce1896480289f5305ee387a879a4a26ecf
Reviewed-on: https://chromium-review.googlesource.com/505940
Commit-Ready: Dan Shi <dshi@google.com>
Tested-by: Dan Shi <dshi@google.com>
Reviewed-by: Benjamin Peake <bpeake@chromium.org>
Reviewed-by: Chris Ching <chingcodes@chromium.org>
ime_utils.py
af939a2c104684c9d58149875857b10a797abb01 18-May-2017 Shuqian Zhao <shuqianz@chromium.org> [autotest]: improve the error message when fail to find devservers

When fail to get a devserver in the same subnet of a given DUT, the
error message is something like either A or B should be specified. This
error message is not helpful. Improve the eror message.

BUG=chromium:724246
TEST=unittest

Change-Id: I2b3f2cd2af9f81344d287db3337e6695ad1896ac
Reviewed-on: https://chromium-review.googlesource.com/508480
Commit-Ready: Shuqian Zhao <shuqianz@chromium.org>
Tested-by: Shuqian Zhao <shuqianz@chromium.org>
Reviewed-by: Dan Shi <dshi@google.com>
ros/dev_server.py
fa0412a0c2817d29ea17dbd057f51bea85b35431 18-May-2017 Keith Haddow <haddowk@chromium.org> [moblab] Harden get_moblab_id against race conditions.

Hard to reproduce report of errors when getting the moblab id - most
likely caused by two version of gs_offloader starting at the same
time trying to write to the moblab home directory. Improve error
handling to count for this possiblity.

TEST=manual tests
BUG=chromium:723865

Change-Id: I0e890baf9a408134b8b2995228e2a256ab6db7be
Reviewed-on: https://chromium-review.googlesource.com/508223
Commit-Ready: Keith Haddow <haddowk@chromium.org>
Tested-by: Keith Haddow <haddowk@chromium.org>
Reviewed-by: Keith Haddow <haddowk@chromium.org>
Reviewed-by: Michael Tang <ntang@chromium.org>
tils.py
5633feebf8cec1b78d87124c6dd9eebe81912fd6 11-May-2017 Dan Shi <dshi@google.com> [autotest] Force host_scheduler to use metadata_reporter

metadata_reporter uploads metadata in bulk and in a separate thread.
This change allows host_scheduler to use metadata_reporter if it's
running. If the reporter is not running, it will still upload the data
using UDP, which may lead to package lost.

Also replace the email alert with metrics data.

BUG=None
TEST=run host_scheduler locally and run test, confirm the data is
uploaded.
Change-Id: I6eb173c239ad4043b701c8964b1c422b2afc10b7
Reviewed-on: https://chromium-review.googlesource.com/502716
Commit-Ready: Dan Shi <dshi@google.com>
Tested-by: Dan Shi <dshi@google.com>
Reviewed-by: Dan Shi <dshi@google.com>
ros/graphite/autotest_es.py
ros/graphite/es_utils.py
c63d07cfeae883263f34e4ce52e1f594aa281a72 27-Apr-2017 Allen Li <ayatane@google.com> [autotest] Improve deprecation warnings

Example output:

$ ./site_utils/deployment/deploy.py -h
WARNING:py.warnings:/usr/local/google/home/ayatane/src/chromiumos/src/third_party/autotest/files/server/lib/status_history.py:43: APIDeprecationWarning: (NOT AN ERROR) autotest_lib.client.common_lib.site_utils is deprecated; please file a fixit bug: https://bugs.chromium.org/p/chromium/issues/entry?labels=Pri-3%2CType-Bug%2CHotlist-Fixit&description=Please+paste+the+warning+message+below%0A&components=Infra%3EClient%3EChromeOS&summary=Deprecated+use+of+autotest_lib.client.common_lib.site_utils
from autotest_lib.client.common_lib import site_utils

BUG=chromium:716077
TEST=Run site_utils/deployment/deploy.py -h

Change-Id: I5dffb6ea756c258bdb0b11cd1cd107318e2d5438
Reviewed-on: https://chromium-review.googlesource.com/489683
Tested-by: Allen Li <ayatane@chromium.org>
Commit-Queue: Allen Li <ayatane@chromium.org>
Reviewed-by: Allen Li <ayatane@chromium.org>
ase_utils.py
eprecation.py
ite_utils.py
12aa4a2b1f3fbbdc419cce98f21c62ecc1df6d11 19-May-2017 Aviv Keshet <akeshet@chromium.org> autotest: consolidate in_mod_wsgi check, add it to utils _reset_sigpipe

The signal handler installation raises spam in our rpc error logs if
attempted within a wsgi enviornment. Fix that. Also, consolidate the
wsgi detection logic.

BUG=None
TEST=None

Change-Id: I452e1c7af2f7e95848a7e1c4d785ad3c49233307
Reviewed-on: https://chromium-review.googlesource.com/508820
Commit-Queue: Aviv Keshet <akeshet@chromium.org>
Tested-by: Aviv Keshet <akeshet@chromium.org>
Trybot-Ready: Aviv Keshet <akeshet@chromium.org>
Reviewed-by: Allen Li <ayatane@chromium.org>
ros/retry.py
nv.py
tils.py
bf59e756d583ad90a487ab53539c41040000ae40 16-May-2017 Dan Shi <dshi@google.com> [autotest] Force not to use ssh devserver call if it's not in restricted subnet

This helps to reduce flakes caused by ssh, and also improve the performance as
ssh to the devserver and run curl tends to be less efficient and flaky comparing
to direct wget call.

BUG=chromium:720219,chromium:722894
TEST=unittest, local run ssp test

Change-Id: I6566bc5b0b08f771330512e66beee876fb84da48
Reviewed-on: https://chromium-review.googlesource.com/506664
Tested-by: Dan Shi <dshi@google.com>
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
Commit-Queue: Dan Shi <dshi@google.com>
ros/dev_server.py
ros/dev_server_unittest.py
47566aebb6c7a133847c081b9cc9825d5c3b6b78 02-May-2017 Dane Pollock <danepollock@google.com> autotest: Add station dump support to IwRunner.

Jetstream tests need support for station dump in
IwRunner. Also taking the opportunity to move some
existing iw parsing in the jetstream repo into
IwRunner, so all of this code lives in a single
place.

BUG=None
TEST=Verified on veyron_speedy that client.bssid
client.get_iw_link_value('wlan0', 'freq') return
the correct values.

Change-Id: I75be7d48e72ded01e561baa4d6c9fa0b6f2b0c5e
Reviewed-on: https://chromium-review.googlesource.com/493832
Commit-Ready: Dane Pollock <danepollock@google.com>
Tested-by: Dane Pollock <danepollock@google.com>
Reviewed-by: Brian Norris <briannorris@chromium.org>
ros/network/iw_runner.py
ros/network/iw_runner_unittest.py
e9386a7e1b63f02e907ce24577615e2523d0d3e2 03-May-2017 markdr <markdr@google.com> Lengthened threadname formatting to allow for longer serial numbers

BUG=b:37486665
TEST=Ran on a testbed with a 12-char serial number
Change-Id: I7fe8b6565fba021abf5993ffbf06cd0f1c85ed76
Reviewed-on: https://chromium-review.googlesource.com/508230
Commit-Ready: Kris Rambish <krisr@chromium.org>
Tested-by: Kris Rambish <krisr@chromium.org>
Reviewed-by: Kris Rambish <krisr@chromium.org>
Reviewed-by: Dan Shi <dshi@google.com>
ogging_config.py
a5aa7ba119adf5a383f10db8c6b3a536332d3d4d 11-May-2017 Allen Li <ayatane@chromium.org> [autotest] Clean up cached property implementation

Use the non-data descriptor behavior of looking up instance attributes
before class attributes to cache the value. This save an extra dict
and the danger of overwriting the instances _property_cache if it is
already using it, and a few extra attribute lookups when accessed.

This is a pretty standard cached property template.

BUG=None
TEST=Run unittests

Change-Id: I16cabcfa942baca673da80ccb92b297a64e9aca0
Reviewed-on: https://chromium-review.googlesource.com/503548
Commit-Ready: Allen Li <ayatane@chromium.org>
Tested-by: Allen Li <ayatane@chromium.org>
Reviewed-by: Xixuan Wu <xixuan@chromium.org>
ecorators.py
ed5db4297ab2c33a60d0905ccb77caf85d709201 05-May-2017 Aviv Keshet <akeshet@chromium.org> autotest: silence elasticsearch import warning

BUG=None
TEST=None

Change-Id: I1d6c494ee160e7ce3836071a792145edfe4d76fb
Reviewed-on: https://chromium-review.googlesource.com/497206
Commit-Ready: Aviv Keshet <akeshet@chromium.org>
Tested-by: Aviv Keshet <akeshet@chromium.org>
Reviewed-by: Dan Shi <dshi@google.com>
ros/graphite/es_utils.py
d2bbb9e2d1d4c7fe32387daceae44daa33161fd5 05-May-2017 Benny Peake <bpeake@google.com> Fixed bug with flashing

Extra vbmeta.img file added for some devices.

TEST=Ran flashing on multiple devices
BUG=b:38002263

Change-Id: I57f61f25495d7c8c7b0d96bc55217c897b5f290c
Reviewed-on: https://chromium-review.googlesource.com/498087
Commit-Ready: Kris Rambish <krisr@chromium.org>
Tested-by: Benjamin Peake <bpeake@chromium.org>
Tested-by: Kris Rambish <krisr@chromium.org>
Reviewed-by: Kris Rambish <krisr@chromium.org>
Reviewed-by: Dan Shi <dshi@google.com>
ndroid_utils.py
eba17402f511d0dc593fad92fd304b50e887e2d5 03-May-2017 Mary Ruthven <mruthven@chromium.org> cr50_utils: add -b hack to work with broken usb_updater

For a time usb_updater was broken. Running 'usb_updater -b $IMG' wont
work on chromeos images built with that image. There is a simple
workaround. 'usb_updater -b $IMG $IMG' will run successfully. This
change modifies cr50_utils.GetBinVersion to run 'usb_updater -b $IMG
$IMG'. This command works on all usb_updater versions.

BUG=b:37958867
TEST=none
BRANCH=none

Change-Id: I5d38cbcebcd5805ed98a7c3523c7418381290e69
Signed-off-by: Mary Ruthven <mruthven@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/493614
Reviewed-by: Wai-Hong Tam <waihong@google.com>
ros/cr50_utils.py
221caeccecc2f883b1349cdd89a53e96c354c24e 05-May-2017 Kuang-che Wu <kcwu@chromium.org> autotest: reduce memory usage when download huge file

Uncompressed video files may be huge and exceeded the ram size of DUT.
This CL split the file content into blocks to write and md5.

BUG=chromium:717973
TEST=video_HangoutHardwarePerf on low-end devices

Change-Id: I1100b9628745db5d1d81aa262a13b3f4e45ed539
Reviewed-on: https://chromium-review.googlesource.com/497346
Commit-Ready: Kuang-che Wu <kcwu@chromium.org>
Tested-by: Kuang-che Wu <kcwu@chromium.org>
Reviewed-by: Pin-chih Lin <johnylin@chromium.org>
ile_utils.py
8e976f60c5c1c8cda793ac8ff04cc401c1137a22 08-Apr-2017 David Haddock <dhaddock@chromium.org> 3/3 Allow auto_update by specifying payload filename.

This adds support for a payload_filename parameter to the devserver
auto_update function. This should be the file we staged by Google
Storage URI in the autoupdate_EndToEndTest. It will be passed to cros_au.

BUG=chromium:709710
TEST=autoupdate_EndToEndTest

Change-Id: Iee618f280129971ca9abb76af922438e69d9206f
Reviewed-on: https://chromium-review.googlesource.com/471883
Commit-Ready: David Haddock <dhaddock@chromium.org>
Tested-by: David Haddock <dhaddock@chromium.org>
Reviewed-by: David Haddock <dhaddock@chromium.org>
ros/dev_server.py
f2c3bdeb201a43f86a35fe40c3eb1b920c2c5bba 07-Apr-2017 khmel <khmel@google.com> arc: Switch to using autotest API to enable Play Store

Need to discard using settings based approach once old
settings expires soon.

BUG=chromium:694081
TEST=Manually, together with crrev.com/2801173002

Change-Id: I906340935fd2f4faa9fc7f6783925f6b89728050
Reviewed-on: https://chromium-review.googlesource.com/470707
Commit-Ready: Yury Khmel <khmel@chromium.org>
Tested-by: Yury Khmel <khmel@chromium.org>
Reviewed-by: Luis Hector Chavez <lhchavez@chromium.org>
Reviewed-by: Yury Khmel <khmel@chromium.org>
ros/arc_util.py
ros/chrome.py
fc6326f64db569884cc551e181f426b9f1572f77 06-Feb-2017 Allen Li <ayatane@chromium.org> [autotest] Merge client/common_lib/check_version

BUG=chromium:672727
TEST=None

Change-Id: Iade47ddb15d51ac5413127d2858a6f560f846f21
Reviewed-on: https://chromium-review.googlesource.com/438525
Commit-Ready: Allen Li <ayatane@chromium.org>
Tested-by: Allen Li <ayatane@chromium.org>
Reviewed-by: Prathmesh Prabhu <pprabhu@chromium.org>
ase_check_version.py
heck_version.py
7b1a83ce7dbbf887c075f844cf7fc9b2c36a5c15 19-Apr-2017 Brian Norris <briannorris@chromium.org> time_utils: don't complain about missing imports

We handle the error case just fine, and our chroot doesn't include
tzlocal by default. This just means that we get pointless errors in our
logs when running 'test_that'.

BUG=none
TEST=`test_that ...`

Change-Id: Iedc72cc38b4050c1da313895d95ceec4b6502bfa
Signed-off-by: Brian Norris <briannorris@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/480937
Reviewed-by: Richard Barnette <jrbarnette@google.com>
ime_utils.py
b3b206f919b133ce2031ee6c00d44063a9ede7a3 05-Apr-2017 Abhishek Bhardwaj <abhishekbh@google.com> Reland "[autotest]: Update tests to use new container IP"

This reverts commit 93f5591d1d8adff2d13d215ce049934265ef6529.

CQ-DEPEND=CL:*316346
CQ-DEPEND=CL:424950
BUG=b:31285667

Change-Id: I2250b0a6fc534cdc0c6456a75b474c1cf12687fa
Reviewed-on: https://chromium-review.googlesource.com/480922
Commit-Ready: Abhishek Bhardwaj <abhishekbh@google.com>
Tested-by: Ilja H. Friedel <ihf@chromium.org>
Tested-by: Abhishek Bhardwaj <abhishekbh@google.com>
Reviewed-by: Abhishek Bhardwaj <abhishekbh@google.com>
ros/arc.py
b0f41503e57a9146b21e9a5870dca2daf82c4a29 22-Apr-2017 Aviv Keshet <akeshet@chromium.org> autotest: remove log spam from apache error.log

Turns out even this humble logging message also ends up in the apache
error log. Silence it.

BUG=chromium:711806
TEST=None

Change-Id: I8fb4e3ee03d6f1ba41d83510ffb6a62ef3228cd5
Reviewed-on: https://chromium-review.googlesource.com/484713
Commit-Ready: Aviv Keshet <akeshet@chromium.org>
Tested-by: Aviv Keshet <akeshet@chromium.org>
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
ros/retry.py
8e312ec3da225ba5c2e084cd1020228087e4bc8f 24-Apr-2017 Dan Shi <dshi@google.com> [autotest] Fix a bug in is_in_container check

BUG=chromium:705811
TEST=None

Change-Id: I46c3080e0ac2646b1594969f17fdfad98e0acafd
Reviewed-on: https://chromium-review.googlesource.com/486244
Commit-Queue: Dan Shi <dshi@google.com>
Tested-by: Dan Shi <dshi@google.com>
Trybot-Ready: Dan Shi <dshi@google.com>
Reviewed-by: Shuqian Zhao <shuqianz@chromium.org>
tils.py
30a90deeff421d9ca4df79d66d4c6e5c537cf1eb 24-Apr-2017 Dan Shi <dshi@google.com> [autotest] Update lxc check logic

For newer version of lxd/lxc, the old logic to check if a process is running
inside a container no longer works. This change updates the logic.

Also fixed issue in lxc_functional_test to test with python package acora.
The one used before is selenium, and it's part of site-packages. So the test
won't try to install it in system python lib, which leads to test failure if
autotest common is not imported first.

BUG=chromium:705811
TEST=local run
sudo python site_utils/lxc_functional_test.py -v

Change-Id: I71c9292f429d9392ad812a47e930f9b0251c18c7
Reviewed-on: https://chromium-review.googlesource.com/486240
Commit-Queue: Dan Shi <dshi@google.com>
Tested-by: Dan Shi <dshi@google.com>
Trybot-Ready: Dan Shi <dshi@google.com>
Reviewed-by: Shuqian Zhao <shuqianz@chromium.org>
tils.py
5ed7e63aeec90dc0c6b4229a66bf161410aa86a6 04-Feb-2017 Allen Li <ayatane@chromium.org> [autotest] Merge client/common_lib/site_utils

BUG=chromium:672727
TEST=None

Change-Id: I15859c0e05e99d244eec5b470a984ced0c874f19
Reviewed-on: https://chromium-review.googlesource.com/437727
Commit-Ready: Allen Li <ayatane@chromium.org>
Tested-by: Allen Li <ayatane@chromium.org>
Reviewed-by: Allen Li <ayatane@chromium.org>
ase_utils.py
ase_utils_unittest.py
erf_expectations/expectation_checker.py
ite_utils.py
ite_utils_unittest.py
tils.py
tils_unittest.py
7e382a9d9f87d7a4946d2855f9783a514fdbbd21 15-Apr-2017 Mengqi Guo <mqg@chromium.org> dbus_send: allow dbus name with the form org.freedesktop.DBus

The current dbus object name pattern only allows for pattern like
":1.12", now adding pattern "org.freedesktop.DBus" to it. Unit
test is also changed accordingly.

BUG=None
TEST=test_that & ./dbus_send_unittest.py

Change-Id: I2ba7ebd902c1002ac3f0a6668aa2b6f4b068f56d
Reviewed-on: https://chromium-review.googlesource.com/478775
Commit-Ready: Mengqi Guo <mqg@chromium.org>
Tested-by: Mengqi Guo <mqg@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>
ros/dbus_send.py
ros/dbus_send_unittest.py
6dec0e1ddc726a0e5e2c0a8b2d8ebefd00ca32f0 18-Apr-2017 Aviv Keshet <akeshet@chromium.org> autotest: make master silently ignore wrong-shard job updates

BUG=chromium:711852
TEST=rpc_interface_unittest; rpc_utils_unittest; overhaul of a unittest
to correctly test the wrong-job-in-heartbeat behavior

Change-Id: I5ebaa659da89f1dbcf484e1ef1f0c7ffef177544
Reviewed-on: https://chromium-review.googlesource.com/479550
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
Tested-by: Aviv Keshet <akeshet@chromium.org>
Commit-Queue: Aviv Keshet <akeshet@chromium.org>
rror.py
29a12d48f3380bccd8565adb4a8dfedc3d9d2ceb 18-Apr-2017 Aviv Keshet <akeshet@chromium.org> autotest: don't attempt to install sigalrm handler in mod_wsgi processes

Installing custom signal handlers inside a mod_wsgi process is never
expected to work, as mod_wsgi relies on these signals for its own
purposes, and will intercept attempts to modify them (and emit spam to
the apache error log).

We can detect when running inside a mod_wsgi process, and not even
bother trying to install sigalrm handler in such a case.

BUG=chromium:711806
TEST=None

Change-Id: I1d012c76068e1fa828f12e75c53b55b9be290b76
Reviewed-on: https://chromium-review.googlesource.com/481004
Tested-by: Aviv Keshet <akeshet@chromium.org>
Reviewed-by: Richard Barnette <jrbarnette@google.com>
Commit-Queue: Aviv Keshet <akeshet@chromium.org>
ros/retry.py
5ebf69b26e04f5b96a3ea113cac4f8454457973f 17-Apr-2017 Mike Frysinger <vapier@chromium.org> dbus_send_unittest: make it easily runable

BUG=None
TEST=`./dbus_send_unittest.py` passes & says it ran some tests

Change-Id: Ib7ed1447baf50bcaf45668e8e74e630944e7d127
Reviewed-on: https://chromium-review.googlesource.com/479074
Commit-Ready: Mike Frysinger <vapier@chromium.org>
Tested-by: Mike Frysinger <vapier@chromium.org>
Reviewed-by: Prathmesh Prabhu <pprabhu@chromium.org>
ros/dbus_send_unittest.py
ros/dbus_send_unittests.py
2b1a26afb4b43172e7b455378084b37b78571391 31-Mar-2017 Daniel Wang <wonderfly@google.com> dbus_send: correctly parse new dbus message header

dbus-1.10.12 has changed the message header a bit. Noticeably, it now
includes an optional "time=" field, and a mandatory "serial=" field.
Also, "dest=" is changed to "destination="

https://cgit.freedesktop.org/dbus/dbus/tree/tools/dbus-print-message.c?id=dbus-1.10.12#n545
https://cgit.freedesktop.org/dbus/dbus/tree/tools/dbus-print-message.c?id=dbus-1.10.12#n572

For easier transition, the regex for older header format is kept. That
way this CL can go in before the dbus upgrade, and we could delete it
easily when that happens.

BUG=chromium:704365, b:34841890
TEST=test_that -b x86-generic ... peerd_DiscoverServices peerd_AdvertiseServices

Change-Id: I032706f681537dbe880d358b8c832a86c8ce3a35
Reviewed-on: https://chromium-review.googlesource.com/465546
Commit-Ready: Daniel Wang <wonderfly@google.com>
Tested-by: Daniel Wang <wonderfly@google.com>
Reviewed-by: Mike Frysinger <vapier@chromium.org>
ros/dbus_send.py
f7078b2870dbeccbd2b280eab85943c0d3ef6558 11-Apr-2017 Brian Norris <briannorris@chromium.org> network/interface: *really* check if this is a wifi device

We're checking if the function exists, not whether it returns true. I
think we wanted the latter.

(This would be different if 'is_wifi_device' were a @property. Not sure
if that makes sense.)

BUG=none
TEST=wifi_matfunc

Change-Id: I6f135e7b3839bb245532d8cd25838a569d0078e9
Signed-off-by: Brian Norris <briannorris@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/475070
Reviewed-by: Kirtika Ruchandani <kirtika@chromium.org>
Reviewed-by: Eric Caruso <ejcaruso@chromium.org>
ros/network/interface.py
127f1d5e2bf371c0e8712cb0271fbf67e88b64be 11-Apr-2017 Brian Norris <briannorris@chromium.org> network/interface: drop unused field

BUG=none
TEST=none

Change-Id: I7eec93a317ffa4a17f31b55ebdf87bc0bc658042
Signed-off-by: Brian Norris <briannorris@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/475069
Reviewed-by: Eric Caruso <ejcaruso@chromium.org>
ros/network/interface.py
e86ccd8c5bccf09a9f28fc713786dd499d0eca3d 25-Mar-2017 Paul Hobbs <phobbs@google.com> [mysql_stats] Add retry to mysql_stats queries

Currently the mysql_stats.py script fails very quickly, and even with an
upstart job to retry running it, it will give up quickly. This change
introduces a retry loop (using common_lib.cros.retry).

BUG=chromium:705188
TEST=retry_unittest.py and mysql_stats_unittest.py pass.

Change-Id: I3e78a34f0f89cf9e134049f0b55bb7d9ab2ed2e3
Reviewed-on: https://chromium-review.googlesource.com/459718
Commit-Ready: Paul Hobbs <phobbs@google.com>
Tested-by: Paul Hobbs <phobbs@google.com>
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
ros/retry.py
2c32d6b593c4987a525ef162d6704fa6d6d7c0b0 04-Feb-2017 Allen Li <ayatane@chromium.org> [autotest] Merge client/bin/site_utils

BUG=chromium:672727
TEST=None

Change-Id: I03a05a3ae3163437109010106ad988ff101a3998
Reviewed-on: https://chromium-review.googlesource.com/437589
Commit-Ready: Allen Li <ayatane@chromium.org>
Tested-by: Allen Li <ayatane@chromium.org>
Reviewed-by: Allen Li <ayatane@chromium.org>
ros/dev_server.py
ros/dev_server_unittest.py
e75ed007b1e5eef5e85942f5db9fd8c447d04279 01-Apr-2017 xixuan <xixuan@chromium.org> autotest: fix "non attribute 'get_server_name'" introduced from rebase

BUG=chromium:658374
TEST=Run local auto_update.

Change-Id: I4564a4f96435d2687003da67bad256064267140c
Reviewed-on: https://chromium-review.googlesource.com/465380
Reviewed-by: Xixuan Wu <xixuan@chromium.org>
Commit-Queue: Xixuan Wu <xixuan@chromium.org>
Tested-by: Xixuan Wu <xixuan@chromium.org>
ros/dev_server.py
162a032f5f848d4a530eae1c314259076258bcd4 15-Mar-2017 Mary Ruthven <mruthven@chromium.org> add test to verify Cr50 update and recovery from erased nvmem

This test can be used to verify the cr50-update process, or recovery
from erased nvmem.

This test will update to the given dev image. After that, each iteration
of the test will start by rolling back to the oldest release image. It
will then use the cr50-update script to update to each image in order of
lowest to highest version. After all of the iterations are complete, the
test will reflash the Cr50 image that the dut had at the start of the
test.

This test verifies that the device updated and the update script did not
exit with any unexpected exit codes.

If erase_nvmem is being tested then nvmem will also be erased during
rollback.

There are four parameters in each control file: test_type, dev_image
release_image, and old_release_image. The image parameters are the
locations of the test images. If the test type is erase_nvmem then cr50
will erase nvmem before rolling back to the release image. The
old_release_image needs to have the oldest version if it is being used.
dev_image needs to have a version higher than release_image,
old_release_image, and whatever image is running on the DUT. If this is
not the case, the test cannot guarantee the original state of the dut is
restored.

There are two control files: control and control.erase_nvmem.
control.erase_nvmem will ignore 'old_release_image' and make sure the
test_type is set to 'erase_nvmem'.

CQ-DEPEND=CL:456624
BUG=b:35833679
BUG=b:35833781
BRANCH=none
TEST=test_that $DUT_IP firmware_Cr50Update
--args="iterations=3 old_release_image=$OLD_RELEASE
release_image=$RELEASE_IMAGE dev_image=$DEV_IMAGE"

Change-Id: I4e2f6c3a720f873e44caa6426f251fe0119cba30
Signed-off-by: Mary Ruthven <mruthven@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/456523
Reviewed-by: Wai-Hong Tam <waihong@google.com>
ros/cr50_utils.py
9c4a4339ff7f32c9f3638a3943e2a82735fbdb3a 30-Mar-2017 Luis Hector Chavez <lhchavez@google.com> [autotest] Improve error message when job failure reason is unicode

This should prevent confusing error messages such as

Unhandled unicode: Unhandled TimeoutException:

BUG=None
TEST=Verified locally

Change-Id: I7dc3370f52c69cbd59572be8e82811eb12b1f0fe
Reviewed-on: https://chromium-review.googlesource.com/463907
Commit-Ready: Luis Hector Chavez <lhchavez@chromium.org>
Tested-by: Luis Hector Chavez <lhchavez@chromium.org>
Reviewed-by: Achuith Bhandarkar <achuith@chromium.org>
Reviewed-by: Lloyd Pique <lpique@chromium.org>
rror.py
f5ee7864fc7a412c2b3e4f2ac5868e802704c354 01-Dec-2016 xixuan <xixuan@chromium.org> autotest: Install stateful with the same build of current rootfs.

This CL changes the devserver side, to add a new feature in cros-flash-based
provision framework: installing statefu partition with the same build of
current rootfs partition on an host if it has a super old build installed.

Also this CL adds a metric to monitor this case.

BUG=chromium:658374
TEST=Ran autoupdate_EndToEndTest first on host, then repair it with this new
feature. Proved that without this feature, repair fails. With this feature,
repair succeeds.

Change-Id: I066cbff0f8b29800116340d7b2ae923c22da7075
Reviewed-on: https://chromium-review.googlesource.com/415500
Commit-Ready: Xixuan Wu <xixuan@chromium.org>
Tested-by: Xixuan Wu <xixuan@chromium.org>
Reviewed-by: Xixuan Wu <xixuan@chromium.org>
ros/dev_server.py
ros/dev_server_unittest.py
a67fce0314539fb284fea8c99c5475351cc122ad 28-Mar-2017 Chung-yih Wang <cywang@google.com> arc.py: Add block_outbound arg in arc_setup()

The patch adds one more argument to block outbound network
traffic if required during a test. Also, we have to relax
localhost-bound connections as some tests require local
client-server connections.

BUG=chromium:705863
TEST=test_that cheets_BlockOutboundNetworkTest DUT_IP

Change-Id: Ib0cb892c9409e500b3307886a0030ee256de904f
Signed-off-by: Chung-yih Wang <cywang@google.com>
Reviewed-on: https://chromium-review.googlesource.com/461621
Reviewed-by: Ilja H. Friedel <ihf@chromium.org>
Reviewed-by: Ben Cheng <bccheng@chromium.org>
ros/arc.py
f15c8fc1d0842903074da84e462822d04dda2ce1 03-Mar-2017 Luigi Semenzato <semenzato@chromium.org> autoupdate test: retry if update_engine daemon has not started yet

We see that update_engine_client fails to connect to update_engine
shortly after boot because update_engine has not started yet.
In such case, we wait a bit and retry.

Some restructuring is needed to share the functionality between
trigger_update() and run_update()

BUG=chromium:690232
TEST=ran on test shard

Change-Id: I596f2fd88462af3d56a5d33ead33fad525fabb6e
Reviewed-on: https://chromium-review.googlesource.com/449975
Commit-Ready: Luigi Semenzato <semenzato@chromium.org>
Tested-by: Luigi Semenzato <semenzato@chromium.org>
Reviewed-by: Luigi Semenzato <semenzato@chromium.org>
Reviewed-by: Richard Barnette <jrbarnette@google.com>
ros/autoupdater.py
ros/autoupdater_unittest.py
90ba12ece4886e6deeed8849dd6c24b83f03e3e4 21-Mar-2017 Derek Basehore <dbasehore@chromium.org> arc_util: Change test account

This changes the test account for arc testing since this is
overloading the power test account.

BUG=b:35888149
CQ-DEPEND=*338428
TEST=none (no test actually uses this code yet)

Change-Id: I4945246bc51606bb250790446f0da287c17bef73
Reviewed-on: https://chromium-review.googlesource.com/457253
Reviewed-by: Derek Basehore <dbasehore@chromium.org>
Tested-by: Derek Basehore <dbasehore@chromium.org>
Commit-Queue: Derek Basehore <dbasehore@chromium.org>
ros/arc_util.py
1701f4815c01c5289b26ae07848018d2fed283f5 21-Mar-2017 Chung-yih Wang <cywang@google.com> Create a new test account for non-PLT tests

BUG=b:35888149
TEST=test_that DUT_IP performance_InboxInputLatency

Change-Id: Iad3aa834d77e482d78b5d278436711cf781fb9b6
Signed-off-by: Chung-yih Wang <cywang@google.com>
Reviewed-on: https://chromium-review.googlesource.com/457301
Reviewed-by: Derek Basehore <dbasehore@chromium.org>
ros/chrome.py
c96aea6105f1b6838540659bc8ec9c44c487b6ab 09-Mar-2017 Shuhei Takahashi <nya@chromium.org> arc: Make is_android_booted() wait "real" boot.

In Android M, sys.boot_completed is set just before BOOT_COMPLETED
is broadcast, but there is a long delay (~10 seconds) in Android N.
Therefore in Android N, we watch event logs to detect Android boot.

BUG=b:36045147
TEST=# Overload CPU cores to simulate slow devices
yes > /dev/null & yes > /dev/null & yes > /dev/null &
TEST=test_that samus cheets_AndroidToChromeIntents

Change-Id: Ia20b89f89986b5361fcb289779b8b5dc53fa8eb8
Reviewed-on: https://chromium-review.googlesource.com/452238
Commit-Ready: Shuhei Takahashi <nya@chromium.org>
Tested-by: Shuhei Takahashi <nya@chromium.org>
Reviewed-by: Luis Hector Chavez <lhchavez@chromium.org>
ros/arc.py
6f0cb6532b6b2a21732193924db031c992e045fc 08-Mar-2017 xixuan <xixuan@chromium.org> autotest: monitor the AU process number on devserver.

This CL adds monitoring AU process count on devservers. We add it since
recently it's found that more and more provision failure (may) come from
devserver's load issue.

BUG=chromium:696606
TEST=Run unittest.

Change-Id: I5c0c1f571403b283ff0c07e283436850a7be9ff7
Reviewed-on: https://chromium-review.googlesource.com/450972
Commit-Ready: Ilja H. Friedel <ihf@chromium.org>
Tested-by: Xixuan Wu <xixuan@chromium.org>
Reviewed-by: Ilja H. Friedel <ihf@chromium.org>
Reviewed-by: Xixuan Wu <xixuan@chromium.org>
ros/dev_server.py
101485c9886668d59dc290a03adbd9124df203dd 15-Mar-2017 Prashant Malani <pmalani@google.com> Modify packager to use pre-computed md5 and tarballs.

Modify the tar_package invocations and compute_checksum calls to only
compute the values if pre-existing ones don't exist. When the script
packager script is run on tests with the '-a tar_only' option. These
will be pre-computed and kept as part of the prebuilt package. So, if
only pre-builts are being fetched, we won't need to recalculate these.

Also, this patch fixes a minor error in the naming of the package's
checksum file.

BUG=chromium:285856
TEST=Run 'emerge-veyron_minnie chromeos-base/autotest-tests-wimax' locally

Change-Id: I344334dabffca429b968c340e7ae24f8c962657a
Reviewed-on: https://chromium-review.googlesource.com/455550
Commit-Ready: Prashant Malani <pmalani@google.com>
Tested-by: Prashant Malani <pmalani@google.com>
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
Reviewed-by: Dan Shi <dshi@google.com>
ackages.py
76966d1ad97ec3651c233217d00b3105360e56c4 15-Mar-2017 Mary Ruthven <mruthven@chromium.org> add test to stress cr50-update script

This test clears the cr50 update state stored in /var/cache and reboots
the device. This will force the cr50-update script to run. This test
verifies cr50-update doesn't exit for any unexpected reasons.

The cr50-update scripts should be phased out soon, but this adds
functions to cr50_utils we will need for other Cr50 tests.

BUG=none
BRANCH=none
TEST=test_that $DUT_IP -b reef firmware_Cr50UpdateScriptStress
--args="iterations=100"

Change-Id: I7d84ead9a0ce2aa6dab1c90490a485027a9250a1
Signed-off-by: Mary Ruthven <mruthven@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/455281
Reviewed-by: Vadim Bendebury <vbendeb@chromium.org>
ros/cr50_utils.py
cbc2dc40a6322f03b608b5a09bfa7caee50eb3f8 09-Feb-2017 Achuith Bhandarkar <achuith@chromium.org> autotest: Default init_controller to False.

BUG=b:35399331
TEST=trybots

Change-Id: I0f507bd2ae9bb727953723415a246d94e15b74b3
Reviewed-on: https://chromium-review.googlesource.com/445338
Commit-Ready: Achuith Bhandarkar <achuith@chromium.org>
Tested-by: Achuith Bhandarkar <achuith@chromium.org>
Reviewed-by: Kazuhiro Inaba <kinaba@chromium.org>
ros/chrome.py
bd762fd7ab3497f4690d381db9624525f6d953c5 15-Mar-2017 Achuith Bhandarkar <achuith@chromium.org> autotest: init_network_controller=True

Wherever we use SetHTTPServerDirectories, we should set
init_network_controller=True.

Also fix a bunch of pre-submit errors.

BUG=chromium:701629
TEST=trybots.

Change-Id: I79f52c10a596695d83c9152035a9878ca7969e60
Reviewed-on: https://chromium-review.googlesource.com/455320
Commit-Ready: Achuith Bhandarkar <achuith@chromium.org>
Tested-by: Achuith Bhandarkar <achuith@chromium.org>
Reviewed-by: Achuith Bhandarkar <achuith@chromium.org>
Reviewed-by: Ilja H. Friedel <ihf@chromium.org>
ros/interactive_xmlrpc_server.py
42daf17ecfeb52c4dfee3bb019b767cbe62e1a1e 13-Feb-2017 Allen Li <ayatane@chromium.org> [autotest] Fix hard-coded references to DevServer class

BUG=None
TEST=None

Change-Id: I2d3d7a79704eb40b66b532c9f73d004c91381eb4
Reviewed-on: https://chromium-review.googlesource.com/442004
Commit-Ready: Allen Li <ayatane@chromium.org>
Tested-by: Allen Li <ayatane@chromium.org>
Reviewed-by: Prathmesh Prabhu <pprabhu@chromium.org>
ros/dev_server.py
ce6b262b143e0dfdf5f6d877e6f1caceba07c64c 11-Feb-2017 Allen Li <ayatane@chromium.org> [autotest] Use resolved hostname for devserver health metrics

BUG=chromium:666022
TEST=None

Change-Id: Ifc640aa88ad333be047100ff7c5ee3dbd5571b56
Reviewed-on: https://chromium-review.googlesource.com/441108
Commit-Ready: Allen Li <ayatane@chromium.org>
Tested-by: Allen Li <ayatane@chromium.org>
Reviewed-by: Allen Li <ayatane@chromium.org>
ros/dev_server.py
ros/dev_server_unittest.py
d322d3d9427bbc362e07ecbf6f3829d5df6cd57d 09-Feb-2017 Benny Peake <bpeake@google.com> Tied in new sponge upload system.

Tied in the new sponge upload system to allow autotest job info
to be uploaded to sponge.

BUG=b:34690570
TEST=Ran test and had results uploaded to sponge.

Change-Id: I0966f2ee37491110b321243c6d18105e5765b250
Reviewed-on: https://chromium-review.googlesource.com/440465
Commit-Ready: Tom Turney <tturney@google.com>
Tested-by: Tom Turney <tturney@google.com>
Reviewed-by: Tom Turney <tturney@google.com>
ecorators.py
ime_utils.py
31a79e07cd33d9469c8bdc669c365df00da3b091 03-Mar-2017 Daichi Hirono <hirono@google.com> Dumpstate when the Android container failed to boot.

BUG=b:34858945
TEST=Test manually with _WAIT_FOR_ANDROID_BOOT_SECONDS = 5
Change-Id: Idd01a0ccc632d4477614490b4efb212b633a293a
Reviewed-on: https://chromium-review.googlesource.com/449553
Commit-Ready: Kazuhiro Inaba <kinaba@chromium.org>
Tested-by: Kazuhiro Inaba <kinaba@chromium.org>
Reviewed-by: Luis Hector Chavez <lhchavez@chromium.org>
Reviewed-by: Kazuhiro Inaba <kinaba@chromium.org>
ros/arc_util.py
d6ac897f46fa85e88f727c73490273556a4ad798 23-Feb-2017 Benny Peake <bpeake@google.com> Fixed bug with pulling acts.zip from different url

When pulling acts.zip from a different url the right url
was used for trigger, but the wrong was was used for downloading.
The correct url is now used for pulling and triggering.

BUG=b:35642067
TEST=Ran test with a different url than the repo url.

Change-Id: I29159877790d03e41ed47cb2d0459ea39efab9f0
Reviewed-on: https://chromium-review.googlesource.com/446736
Commit-Ready: Kris Rambish <krisr@chromium.org>
Tested-by: Benjamin Peake <bpeake@chromium.org>
Tested-by: Kris Rambish <krisr@chromium.org>
Reviewed-by: Kris Rambish <krisr@chromium.org>
ros/dev_server.py
3d718dc7b53fecfe4c17cc917e730e2cb829356d 09-Feb-2017 Allen Li <ayatane@chromium.org> [autotest] Add suite_tag_parts tests

BUG=None
TEST=Run tests

Change-Id: I74dab4603428812bdda2ee81aec67a4f66cb8c46
Reviewed-on: https://chromium-review.googlesource.com/439727
Commit-Ready: Allen Li <ayatane@chromium.org>
Tested-by: Allen Li <ayatane@chromium.org>
Reviewed-by: Prathmesh Prabhu <pprabhu@chromium.org>
ontrol_data_unittest.py
b46d3c05d6507bc65a6498c531cc217561bbc116 07-Jan-2017 Allen Li <ayatane@chromium.org> [autotest] Split multiple imports on one line

This makes it easier to debug import side effects with pdb/print.

BUG=None
TEST=None

Change-Id: I90c6c6f6e06e870f447023a26a8670cc9ae8994c
Reviewed-on: https://chromium-review.googlesource.com/426015
Commit-Ready: Allen Li <ayatane@chromium.org>
Tested-by: Allen Li <ayatane@chromium.org>
Reviewed-by: Prathmesh Prabhu <pprabhu@chromium.org>
agic.py
f20e17d334c502865757ae3d78c27e4216226bf1 04-Jan-2017 Allen Li <ayatane@chromium.org> [autotest] Move parse_tag to its rightful home

The parse_tag() method interacts solely with ControlData, yet fate has
given it a lonely life with the unloving Suite household to which
parse_tag() has no familial connections whatsoever. At long last,
parse_tag() is reunited with ControlData.

BUG=None
TEST=None

Change-Id: I76d0a42740c858ceab536aadd1ef932c6efcdaa4
Reviewed-on: https://chromium-review.googlesource.com/424859
Commit-Ready: Allen Li <ayatane@chromium.org>
Tested-by: Allen Li <ayatane@chromium.org>
Reviewed-by: Prathmesh Prabhu <pprabhu@chromium.org>
ontrol_data.py
016d95b92b13c252d6fb75f9075d8763ba913cd7 27-Feb-2017 xixuan <xixuan@chromium.org> autotest: resolve devserver if privision fails due to network/load issue.

This CL does:
1. Resolve a new devserver if this devserver fails to ping the DUT,
but double check the DUT's connectivity before resolving.
2. Resolve a new devserver if this devserver is overloaded in the
middle.
3. Change kill_au_proc logic to make sure the background au process is
killed.

BUG=chromium:696606
TEST=locally run afe & use lab's devserver to test resolving.

Change-Id: I358fd1f49fb8f1ec0cf5865641717da6f1f6b07f
Reviewed-on: https://chromium-review.googlesource.com/447878
Reviewed-by: Dan Shi <dshi@google.com>
Commit-Queue: Xixuan Wu <xixuan@chromium.org>
Tested-by: Xixuan Wu <xixuan@chromium.org>
ros/dev_server.py
ros/dev_server_unittest.py
89c442d38060c715b5457dceaa0c9430b90c04f7 15-Feb-2017 Achuith Bhandarkar <achuith@chromium.org> autotest: Move is_arc_available to lsbrelease_utils.py

BUG=None
TEST=trybots

Change-Id: Ifcfd11af33620d5850f0dbf18018d70b72c55f3f
Reviewed-on: https://chromium-review.googlesource.com/443184
Commit-Ready: Achuith Bhandarkar <achuith@chromium.org>
Tested-by: Achuith Bhandarkar <achuith@chromium.org>
Reviewed-by: Achuith Bhandarkar <achuith@chromium.org>
ros/chrome.py
sbrelease_utils.py
6a5448905ea4684bb5870615835320993dbb14d2 14-Dec-2016 xixuan <xixuan@google.com> autotest: log auto-update logs path after logging the error traceback

Sheriffs have recently reported that they are not aware of the log for a
failed autoupdateprocess, which can be very useful for debugging. This CL
adds the path of the autoupdate logs after the error traceback so that
sheriff can go to that directory to find detailed auto-update logs.

BUG=chromium:673552
TEST=Test it locally. Manually set devserver's return and then call
ds.auto_update() to see whether this logging is successfully printed.

Change-Id: I0f023514682c015514ed0a43c8cb0f4807010346
Reviewed-on: https://chromium-review.googlesource.com/419901
Commit-Ready: Xixuan Wu <xixuan@chromium.org>
Tested-by: Xixuan Wu <xixuan@chromium.org>
Reviewed-by: Xixuan Wu <xixuan@chromium.org>
ros/dev_server.py
ef2eaccbed2a30105e3b6efdeb0640923c5390f1 22-Feb-2017 khmel <khmel@google.com> arc: Fix enabling ARC from autotest

This use old version chrome://settings-frame that is not MD based.

BUG=chromium:694081
TEST=Manually
Change-Id: Ic39ac038bb26ad0b8c5f6a4a3dd75133321614b8
Reviewed-on: https://chromium-review.googlesource.com/446090
Commit-Ready: Yury Khmel <khmel@google.com>
Tested-by: Yury Khmel <khmel@google.com>
Reviewed-by: Steven Bennetts <stevenjb@chromium.org>
Reviewed-by: Kazuhiro Inaba <kinaba@chromium.org>
ros/arc_util.py
25b2130ef1ac121be4a2a0cea3cb41f92bdd8072 17-Feb-2017 Dan Shi <dshi@google.com> [autotest] Fix the mock class to handle get/set item call.

Refer to comment in
https://chromium-review.googlesource.com/#/c/442088/4/server/autoserv

BUG=b:35442093
TEST=unittest

Change-Id: If947dfcf280efb61390ab94b208a9a2c0dab95d5
Reviewed-on: https://chromium-review.googlesource.com/444071
Tested-by: Dan Shi <dshi@google.com>
Reviewed-by: Laurence Goodby <lgoodby@chromium.org>
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
Commit-Queue: Dan Shi <dshi@google.com>
ros/graphite/stats_es_mock.py
ite_utils_unittest.py
02b6fee0016c10331831a1a7d0463d0c2c07f8b6 02-Feb-2017 xixuan <xixuan@chromium.org> autotest: add logging in testing control files.

This CL adds more loggings for running tests by control files.

BUG=chromium:674598
TEST=Run autoupdate_End_to_End test in local AFE and verify loggings.

Change-Id: I7c6696d2d46c8e2eff9dc744f9be53fa6045f5f1
Reviewed-on: https://chromium-review.googlesource.com/435964
Commit-Ready: Xixuan Wu <xixuan@chromium.org>
Tested-by: Xixuan Wu <xixuan@chromium.org>
Reviewed-by: Luigi Semenzato <semenzato@chromium.org>
est.py
93f5591d1d8adff2d13d215ce049934265ef6529 17-Feb-2017 Chung-yih Wang <cywang@google.com> Revert "[autotest]: Update tests to use new container IP"

BUG=chromium:692981

This reverts commit 754b7fb3bd30e87c41dc8bfc2bdf49575cc0a3e0.

Change-Id: I854c5c9c369d708c049c967abeb3d42edb38169e
Reviewed-on: https://chromium-review.googlesource.com/444704
Commit-Ready: Chung-yih Wang <cywang@google.com>
Tested-by: Chung-yih Wang <cywang@google.com>
Reviewed-by: Hsu-Cheng Tsai <hctsai@chromium.org>
ros/arc.py
66f588abb55d6c537bbaea0f81ad03cf045ec2ca 13-Feb-2017 xixuan <xixuan@chromium.org> autotest: fix errors of previously pre-defined provision error metrics.

The regex matcher is wrong for some of the pre-defined provision error
metrics. This CL fixes it.

BUG=chromium:672919
TEST=Run local test with a real exception 'SSHConnectionError: ssh:
connect to host chromeos2-row3-rack4-host3 port 22: Connection timed
out'

Change-Id: I8907e787103dead742c5dce26ac50be8c01cec96
Reviewed-on: https://chromium-review.googlesource.com/441907
Commit-Ready: Xixuan Wu <xixuan@chromium.org>
Tested-by: Xixuan Wu <xixuan@chromium.org>
Reviewed-by: Prathmesh Prabhu <pprabhu@chromium.org>
ros/dev_server.py
5e2efb71ffebead22aa4f0744ad843ee79814b43 07-Feb-2017 Dan Shi <dshi@google.com> [autotest] Use the metrics_mock object in case chromite is not set up.

BUG=chromium:688166
TEST=unittest

Change-Id: Ic0077cb2dba75a8d820f229060f3f70f507850a1
Reviewed-on: https://chromium-review.googlesource.com/438754
Commit-Ready: Dan Shi <dshi@google.com>
Tested-by: Dan Shi <dshi@google.com>
Reviewed-by: Dan Shi <dshi@google.com>
ros/autoupdater.py
ros/dev_server.py
e8838cf8e272ba5ca28f2fe4bdfa6a1a1263fbff 10-Feb-2017 Benny Peake <bpeake@google.com> Refactored android provisioning to include alias system

-The mapping for android product name to board name acts more like
the image mapping now.
-Expanded the tool to allow for multiple aliases per phone.
-Included correct mappings for known android devices and image
files

BUG=b:33814254,b:32145046
TEST=Flashed seed and volantis device.

Change-Id: Ic38355bf301361cb5e70964990a9a397453908ab
Reviewed-on: https://chromium-review.googlesource.com/441285
Commit-Ready: Benjamin Peake <bpeake@chromium.org>
Tested-by: Benjamin Peake <bpeake@chromium.org>
Reviewed-by: Dan Shi <dshi@google.com>
ndroid_utils.py
38c9960162f1eaad0d3b197e2662c815cc286f2e 04-Feb-2017 Allen Li <ayatane@chromium.org> [autotest] Merge client/common_lib/base_barrier

BUG=chromium:672727
TEST=None

Change-Id: If93f54b6135ad9994543d922cf83c0495aaa3e3a
Reviewed-on: https://chromium-review.googlesource.com/437809
Commit-Ready: Allen Li <ayatane@chromium.org>
Tested-by: Allen Li <ayatane@chromium.org>
Reviewed-by: Prathmesh Prabhu <pprabhu@chromium.org>
arrier.py
arrier_unittest.disabled
arrier_unittest.py
ase_barrier.py
ase_barrier_unittest.py
bf0c4410efcc066070954f0b7222bd06ba5fe389 04-Feb-2017 Allen Li <ayatane@chromium.org> [autotest] Merge client/common_lib/site_packages

BUG=chromium:672727
TEST=None

Change-Id: Idb55408fa26aa3a8b876ce6dfe54100afd69c980
Reviewed-on: https://chromium-review.googlesource.com/437711
Commit-Ready: Allen Li <ayatane@chromium.org>
Tested-by: Allen Li <ayatane@chromium.org>
Reviewed-by: Prathmesh Prabhu <pprabhu@chromium.org>
ase_packages.py
ackages.py
ite_packages.py
6cd838f23983c501ed9b109931771f944cdf2bdc 03-Feb-2017 Dan Shi <dshi@google.com> [autotest] Create a generic mock class for handling import error from chromite

This change allows one to do following:
try:
from chromite.lib import metrics
except ImportError:
metrics = utils.metrics_mock

Then the code to call metrics can stay the same, and don't need to handle the
case where chromite is not installed through build_externals.

BUG=chromium:688166
TEST=unittest

Change-Id: I1ca58c8223b1a0d81bc8bddce567b863b5743e73
Reviewed-on: https://chromium-review.googlesource.com/436409
Commit-Ready: Dan Shi <dshi@google.com>
Tested-by: Dan Shi <dshi@google.com>
Reviewed-by: Dan Shi <dshi@google.com>
ros/graphite/stats_es_mock.py
ros/graphite/statsd_mock_unittest.py
ite_utils.py
ite_utils_unittest.py
97383ca8829258f704f85f8dc36898fe9e0e3918 31-Jan-2017 xixuan <xixuan@chromium.org> autotest: improve logging and add metrics for monitoring 'call is timedout'

This CL
1. make sure every retry logging for devserver calls will log effective
function name.
2. add metrics for monitoring timedout devserver calls, so that we could
find whether devservers are overloaded at a given time.

BUG=chromium:664557
TEST=Run local devserver, call function 'devserver_healthy' and
'get_latest_build_in_gs' to verify whether timeout logging is
meaningful.
Run unittest.

Change-Id: I9967615fc5b7480c3ed2424619253082da878b80
Reviewed-on: https://chromium-review.googlesource.com/435560
Commit-Ready: Xixuan Wu <xixuan@chromium.org>
Tested-by: Xixuan Wu <xixuan@chromium.org>
Reviewed-by: Luigi Semenzato <semenzato@chromium.org>
Reviewed-by: Dan Shi <dshi@google.com>
ros/dev_server.py
ros/dev_server_unittest.py
908b0758b40844685a9acf302e09757e5a2de6dd 09-Dec-2016 xixuan <xixuan@chromium.org> autotest: Return False when tmp files still exist after stateful update

This CL is just a duplicate of CL:403191, fix the bug that 'echo $?' always
return 0, which prevent |_try_stateful_update| returning False.

BUG=chromium:657920
TEST=Ran the following commands locally:
host_dut = ssh_host.SSHHost('100.107.151.251')
cmd = 'test -f /var/tmp/provision_failed'
result = host_dut.run(cmd, ignore_status=True)
then Verify the 'result.exit_status'.

Change-Id: I6927f5872eb97ad65b82ffae56fae4a065002791
Reviewed-on: https://chromium-review.googlesource.com/418497
Commit-Ready: Xixuan Wu <xixuan@chromium.org>
Tested-by: Xixuan Wu <xixuan@chromium.org>
Reviewed-by: Allen Li <ayatane@chromium.org>
osts/base_classes.py
0309dc99e4f2ffae6211c80e4e46a62579807486 03-Feb-2017 Achuith Bhandarkar <achuith@chromium.org> autotest: Replace WaitForJavaScriptExpression with WaitForJavaScriptCondition.

BUG=chromium:682812
TEST=trybot

Change-Id: I8a71fe24c04f31d401a1925251c5d221accb4d46
Reviewed-on: https://chromium-review.googlesource.com/436528
Commit-Ready: Achuith Bhandarkar <achuith@chromium.org>
Tested-by: Achuith Bhandarkar <achuith@chromium.org>
Reviewed-by: Jacob Dufault <jdufault@chromium.org>
ros/arc_util.py
ros/cfm_util.py
ros/enrollment.py
ros/kiosk_utils.py
8f8524dd50b26463435d0431c2913ab00f111575 31-Jan-2017 Shuhei Takahashi <nya@chromium.org> Add a utility function to get Android SDK version.

CQ-DEPEND=CL:433997
BUG=b:34693882
TEST=Tested with in-flight patches using this function.

Change-Id: Ibf230abdc734610ce5588e4aab09d80cbbff77c6
Reviewed-on: https://chromium-review.googlesource.com/435744
Commit-Ready: Shuhei Takahashi <nya@chromium.org>
Tested-by: Shuhei Takahashi <nya@chromium.org>
Reviewed-by: Hidehiko Abe <hidehiko@chromium.org>
ros/arc.py
8bdf51d2495bb976b784a818d2a7245e98127d74 01-Feb-2017 Victor Hsieh <victorhsieh@chromium.org> Remove workaround of previous Phonesky bug

Since the fix has been landed for a long time

TEST=test_that cheets_PlayStoreTest
BUG=b:30310952

Change-Id: Ied01101566fda670e8c203453aaa6ce4fa5ff6af
Reviewed-on: https://chromium-review.googlesource.com/435434
Commit-Ready: Victor Hsieh <victorhsieh@chromium.org>
Tested-by: Victor Hsieh <victorhsieh@chromium.org>
Reviewed-by: Kazuhiro Inaba <kinaba@chromium.org>
ros/arc.py
c4127418e8f61c1a0bec85fe3aa09e1379e2a6c7 01-Feb-2017 Shuhei Takahashi <nya@chromium.org> Fix arc.is_android_process_running().

Android's ps command stopped accepting process name as an
argument since Android N:
https://android-review.googlesource.com/#/c/179678/

BUG=b:34864566
TEST=test_that samus cheets_SettingsBridge # in M and N

Change-Id: I7c31d6297768b5b01da121b2807537f77f46ef5d
Reviewed-on: https://chromium-review.googlesource.com/435764
Commit-Ready: Shuhei Takahashi <nya@chromium.org>
Tested-by: Shuhei Takahashi <nya@chromium.org>
Reviewed-by: Hidehiko Abe <hidehiko@chromium.org>
ros/arc.py
867874a283bc8ae42b70c2df1c344d8b6ab9161e 30-Jan-2017 Victor Hsieh <victorhsieh@chromium.org> Stop waiting for LSO since silent auth is enabled

Also removed an unused import.

BUG=b:34808355
TEST=test_that cheets_PlayStoreTest (with another fix in
cheets_PlayStoreTest due to some app side change)

Change-Id: I43d5709941c8c3215f4c596044bf636f49246d8f
Reviewed-on: https://chromium-review.googlesource.com/434737
Commit-Ready: Victor Hsieh <victorhsieh@chromium.org>
Tested-by: Victor Hsieh <victorhsieh@chromium.org>
Reviewed-by: Yury Khmel <khmel@google.com>
ros/arc_util.py
554c6f8f1ca1384aaa6f541d29c4e12d2e527cc4 27-Jan-2017 Luis Hector Chavez <lhchavez@google.com> cheets: Add a script to keep adb connections alive

This change wraps the GTS invocation around a context that continuously
polls adb and reconnects any lost connections.

BUG=b:34280955
TEST=test_that minnie cheets_GTS.4.1_r1.GtsGmscoreHostTestCases

Change-Id: I5cd8b070a85bd3cd240ed99ec5adc987cfa5b1bc
Reviewed-on: https://chromium-review.googlesource.com/434161
Commit-Ready: Luis Hector Chavez <lhchavez@chromium.org>
Tested-by: Luis Hector Chavez <lhchavez@chromium.org>
Reviewed-by: Luis Hector Chavez <lhchavez@chromium.org>
ros/adb_keepalive.py
08f9a591fd3d874ba2513b6cc3db40bdcae23ceb 21-Jan-2017 Achuith Bhandarkar <achuith@chromium.org> autotest: Initialize network backend conditionally.

No functional change in this CL, but we introduce the facility to
not initialize network backend. cheets_MediaPlayerVideoHWDecodeUsed
(in a diff repo), needs to be updated before we can default
init_network_controller to False.

BUG=chromium:681944
TEST=trybots.

Change-Id: Id4a6886fececc1a26478f24d0c9c67b563a00693
Reviewed-on: https://chromium-review.googlesource.com/431133
Commit-Ready: Achuith Bhandarkar <achuith@chromium.org>
Tested-by: Achuith Bhandarkar <achuith@chromium.org>
Reviewed-by: Jacob Dufault <jdufault@chromium.org>
ros/chrome.py
eb5db992b43406802e561e7940866185eb996073 24-Jan-2017 Achuith Bhandarkar <achuith@chromium.org> autotest: Use explicit timeout keyword in JavaScript calls.

BUG=chromium:682812
TEST=trybots

Change-Id: I1ae37ef0625d29d299878698b9cda8468eb430bd
Reviewed-on: https://chromium-review.googlesource.com/431959
Commit-Ready: Achuith Bhandarkar <achuith@chromium.org>
Tested-by: Achuith Bhandarkar <achuith@chromium.org>
Reviewed-by: Jacob Dufault <jdufault@chromium.org>
ros/arc_util.py
ros/cfm_util.py
ros/enrollment.py
ros/kiosk_utils.py
754b7fb3bd30e87c41dc8bfc2bdf49575cc0a3e0 06-Jan-2017 Abhishek Bhardwaj <abhishekbh@google.com> [autotest]: Update tests to use new container IP

BUG=b:31285667
TEST=Running the test.

Change-Id: I43ae8f9b4373d2ebdf30cc051f617e04e9e5d320
Reviewed-on: https://chromium-review.googlesource.com/425681
Commit-Ready: Abhishek Bhardwaj <abhishekbh@google.com>
Tested-by: Abhishek Bhardwaj <abhishekbh@google.com>
Reviewed-by: Abhishek Bhardwaj <abhishekbh@google.com>
ros/arc.py
d68a75ca747d80687f08eb3bd65d89dcc909b401 19-Jan-2017 Allen Li <ayatane@chromium.org> [autotest] Add tests for get_section_as_dict

BUG=None
TEST=Run tests

Change-Id: I80b8d8108dcb5d89fed8b1a98ad375ddf83de240
Reviewed-on: https://chromium-review.googlesource.com/430815
Commit-Ready: Allen Li <ayatane@chromium.org>
Tested-by: Allen Li <ayatane@chromium.org>
Reviewed-by: Dan Shi <dshi@google.com>
lobal_config_unittest.py
4ca1b04d9ad78f3095ff872383ae486b989d2586 28-Dec-2016 Allen Li <ayatane@chromium.org> [autotest] Fix spotty _ensure_config_parsed()

The old _ensure_config_parsed requires manually calling everywhere.
In fact, this call was missing from some methods, creating potential
bugs.

Instead of nursing this piece of technical debt, nuke the method
entirely and make accessing the config attribute automagically ensure
parsing the config.

BUG=None
TEST=Run atest (which requires global_config)

Change-Id: I4b82551f185df7c9e10155f29ed9aaa1edd0f530
Reviewed-on: https://chromium-review.googlesource.com/424162
Commit-Ready: Allen Li <ayatane@chromium.org>
Tested-by: Allen Li <ayatane@chromium.org>
Reviewed-by: Dan Shi <dshi@google.com>
lobal_config.py
1e9b76cfa8b816c3a534712b9b6b35f9a38d7b15 19-Jan-2017 Benny Peake <bpeake@google.com> Fixed bat lands standalone image list

bat land was still using a bootloader standalone image which was
causing errors while flashing.

BUG=b:33681300
TEST=None

Change-Id: Ia10b22c4e60b0805705c039b188b89d9abd62ae9
Reviewed-on: https://chromium-review.googlesource.com/430235
Commit-Ready: Tom Turney <tturney@google.com>
Tested-by: Tom Turney <tturney@google.com>
Reviewed-by: Tom Turney <tturney@google.com>
ndroid_utils.py
a5cfb97ee793d849acf0efa4369b43d6f91a9c4d 28-Dec-2016 Allen Li <ayatane@chromium.org> [autotest] Add get_hostname_addr_map() (squashed)

BUG=chromium:666022
TEST=None

!Change-Id: I9b3385fd8fba91f67fe968bb7bf85d39792e8c16

[autotest] Add hostname property to devserver

BUG=None
TEST=None

!Change-Id: I7fcd9b92d3c086ea9a8e6a4749f65b65a827855f

[autotest] Extract get_hostname() function

BUG=None
TEST=None

!Change-Id: I45f7a8e4f3f57beb77df6766fbe5747ebe295613

[autotest] Replace get_server_name with get_hostname

BUG=None
TEST=None

!Change-Id: I75ebfe05ccd1f4d9209d68bc0e5f2db691558a74

[autotest] Add _reverse_lookup_from_config()

BUG=chromium:666022
TEST=None

!Change-Id: I1ea54296cc5a7a67981338c1c3d4057b065fa279

[autotest] Attempt to look up devserver hostname for metrics

BUG=chromium:666022
TEST=None

!Change-Id: I3dec24d4874de66466a373c97de5364c4b1ba557

[autotest] Make get_section_as_dict() ordered

The ordering information is preserved in the config file, so may as
well preserve it here.

BUG=chromium:666022
TEST=None

!Change-Id: I46b9fa47fa87b789a4e63563797a4327ac308bef

[autotest] Clarify _reverse_lookup behavior for duplicates

BUG=chromium:666022
TEST=None

!Change-Id: I839ba7b55005b6137fa03887854ea59dfee49dfa

Change-Id: I0aeb05d16d8fc8b98987dc232da8928ddd9fdb9f
Reviewed-on: https://chromium-review.googlesource.com/424913
Commit-Ready: Allen Li <ayatane@chromium.org>
Tested-by: Allen Li <ayatane@chromium.org>
Reviewed-by: Allen Li <ayatane@chromium.org>
ros/autoupdater.py
ros/dev_server.py
lobal_config.py
c1f41e806039e541b152516058eea535687e07a4 06-Jan-2017 Prathmesh Prabhu <pprabhu@chromium.org> Move FakeGlobalConfig to the global_config module.

This CL moves a fake object for global_config from a unittest module to
the global_config module so that other unittests can use it too.

BUG=None.
TEST=python scheduler/monitor_db_functional_test.py

Change-Id: If35ee9db0ef332ce890920b365da93075af4737a
Reviewed-on: https://chromium-review.googlesource.com/425720
Commit-Ready: Prathmesh Prabhu <pprabhu@chromium.org>
Tested-by: Prathmesh Prabhu <pprabhu@chromium.org>
Reviewed-by: Prathmesh Prabhu <pprabhu@chromium.org>
lobal_config.py
976b1ad72aee5e071cab5763d2f095ec7350eafb 05-Jan-2017 Greg Kerr <kerrnel@chromium.org> Add autotest for ImageLoader.

This adds an autotest for ImageLoader. The autotest runs ImageLoader in
the actual runtime environment, as a dbus environment, with the
sandboxing technologies enabled.

BUG=chromium:677162
CQ-DEPEND=CL:425707
TEST=test_that -b ${BOARD} DUT platform_ImageLoader

Change-Id: I19e877c62853b411fe267434888e25c9e9296b2e
Reviewed-on: https://chromium-review.googlesource.com/425088
Tested-by: Greg Kerr <kerrnel@chromium.org>
Reviewed-by: Ilja H. Friedel <ihf@chromium.org>
Reviewed-by: Eric Caruso <ejcaruso@chromium.org>
ros/dbus_send.py
340975de2ccf4742d11f6a1e8f8269d346f9b077 19-Dec-2016 Luigi Semenzato <semenzato@chromium.org> retry.py: be more careful with getting a function name

Some python modules (xmlrpclib in this case) muck with getattr(), which
causes strange behavior with the __name__ attribute of functions.
Use a try/except block for better protection.

BUG=chromium:674679
TEST=none

Change-Id: I47c707aae5f805d53063412878fad3e0fa545cdb
Reviewed-on: https://chromium-review.googlesource.com/422547
Commit-Ready: danny chan <dchan@chromium.org>
Tested-by: Luigi Semenzato <semenzato@chromium.org>
Reviewed-by: danny chan <dchan@chromium.org>
ros/retry.py
bcbe2b6ce92fc35e018260dd9f0cd97cda13e2c6 20-Dec-2016 Benny Peake <bpeake@google.com> bat_land will now skip bootloader and radio

bat_land does not have changes to bootloader or radio for each
build. Automated tests will now skip trying to download these.

BUG=b:33681300
TEST=None

Change-Id: Ia43d5b1294c6d5c6a5fe7d9a890eaed6891f75b7
Reviewed-on: https://chromium-review.googlesource.com/422488
Commit-Ready: Tom Turney <tturney@google.com>
Tested-by: Tom Turney <tturney@google.com>
Reviewed-by: Tom Turney <tturney@google.com>
ndroid_utils.py
7b549fa6c193531a43f7a173840bfd8e8e6823d5 13-Dec-2016 Michael Tang <ntang@google.com> Use the moblab public network interface's mac address as identity.

BUG=chromium:623632
TEST=unittest.

Change-Id: Ib46c5c53bfd5c719b01b55ceefbe275dc4b48cb2
Reviewed-on: https://chromium-review.googlesource.com/418869
Commit-Ready: Michael Tang <ntang@chromium.org>
Tested-by: Michael Tang <ntang@chromium.org>
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
Reviewed-by: Michael Tang <ntang@chromium.org>
ite_utils.py
ite_utils_unittest.py
d72455b37f5b3cdea815e6f48e7b94e7e3b4cb51 23-Nov-2016 xixuan <xixuan@chromium.org> autotest: improve docstring of func download_file in devserver.

BUG=chromium:666414
TEST=None

Change-Id: I6921c7ec63ae222ee4c4ff2c9beb5f7ff69e1658
Reviewed-on: https://chromium-review.googlesource.com/414287
Commit-Ready: Xixuan Wu <xixuan@chromium.org>
Tested-by: Xixuan Wu <xixuan@chromium.org>
Reviewed-by: Wai-Hong Tam <waihong@google.com>
ros/dev_server.py
2c6c39798e72ad0759af493e24c8e935f0e1dc85 11-Dec-2016 Aviv Keshet <akeshet@chromium.org> autotest: add devserver name field to staging metrics

BUG=None
TEST=None

Change-Id: Idf3618c162df4a6a8469e0bd8a09ca818ab88ef2
Reviewed-on: https://chromium-review.googlesource.com/418879
Commit-Ready: Aviv Keshet <akeshet@chromium.org>
Tested-by: Aviv Keshet <akeshet@chromium.org>
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
ros/dev_server.py
13fad55d8088ec511d93f31b1c3813a907aef141 30-Nov-2016 Tien Chang <tienchang@google.com> casey: Create a static_runner for both chambers in Casey.

While here, fix bug where specs are not cycled through if no matching APs were
found (TestError breaks out of the test, so used logging.debug instead). Also
added casey_chromeos7_ap_list.conf.

BUG=None
TEST=Ran network_WiFi_ChaosConnectDisconnect.static in chromeos5 and chromeos7

Change-Id: I7fb8540956420425e4c83652bb8c67a7e9cd2797
Reviewed-on: https://chromium-review.googlesource.com/414619
Commit-Ready: Tien Chang <tienchang@chromium.org>
Tested-by: Kris Rambish <krisr@chromium.org>
Reviewed-by: Kris Rambish <krisr@chromium.org>
ros/network/ap_constants.py
d998e0a3d93a5a58a50328e2a418474d01cc74c8 17-Nov-2016 Shuhei Takahashi <nya@chromium.org> Remove no longer used function.

CQ-DEPEND=CL:*305657
BUG=b:33030423
TEST=test_that minnie cheets_ContainerMount

Change-Id: I37606b1052444793b40ed3afa8d2e59b223a2cbe
Reviewed-on: https://chromium-review.googlesource.com/412503
Commit-Ready: Shuhei Takahashi <nya@chromium.org>
Tested-by: Shuhei Takahashi <nya@chromium.org>
Reviewed-by: Ryo Hashimoto <hashimoto@chromium.org>
ros/arc.py
bdbea876455e617450c9f2f5c2c22d313bb86f9c 07-Dec-2016 Benny Peake <bpeake@google.com> Android apks now installed from any custom artifact

Previously apks could only be installed from the preloaded
artifacts. This meant that tests.zip had to be a part of
provisioning and any apks outside of that could not be
installed. The adb_host code has been changed to not download
tests.zip until installing sl4a, and to allow additional
apks to come form any artifact. By default if one is
not given it comes form tests.zip.

BUG=b:33214713
TEST=Ran android_EasySetup

Change-Id: I751ed042189509dad156830903f7c7e8ca1de8b8
Reviewed-on: https://chromium-review.googlesource.com/417193
Commit-Ready: Benjamin Peake <bpeake@chromium.org>
Tested-by: Benjamin Peake <bpeake@chromium.org>
Reviewed-by: Dan Shi <dshi@google.com>
ndroid_utils.py
6a09e1cf031a4772e72cc8214e9f749e4eecf4fe 05-Dec-2016 xixuan <xixuan@chromium.org> autotest: Add two more auto-update error patterns.

This CL adds 2 more CrOS auto-update error patterns based on the parsed error
infos from tko database.

BUG=chromium:655782
TEST=Run auto_update locally with local devserver to test new patterns.

Change-Id: Ibce2af29659dfb09566a8d92c37da209ba212564
Reviewed-on: https://chromium-review.googlesource.com/416501
Commit-Ready: Xixuan Wu <xixuan@chromium.org>
Tested-by: Xixuan Wu <xixuan@chromium.org>
Reviewed-by: Xixuan Wu <xixuan@chromium.org>
ros/dev_server.py
e76d9f8b9cfa7d1075d3d757f82b9a8792690886 21-Nov-2016 Luigi Semenzato <semenzato@chromium.org> autoupdate tests: retry update_client on network errors

We see many autoupdate test failures from network errors
(update_client error 37 and broken ssh connections) which
may succeed on retry. This change makes the test retry
once for those errors.

BUG=chromium:657548
TEST=none

Change-Id: Id74272639ace343e6f1932a8f4d60db4eec50fb2
Reviewed-on: https://chromium-review.googlesource.com/413076
Commit-Ready: Luigi Semenzato <semenzato@chromium.org>
Tested-by: Luigi Semenzato <semenzato@chromium.org>
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
ros/autoupdater.py
ros/autoupdater_unittest.py
e1632f2bb209878c05f94e26a10590d07c73874e 01-Dec-2016 Aviv Keshet <akeshet@chromium.org> autotest: add a per-DUT cros_update counter

BUG=None
TEST=None

Change-Id: I562c731a1e2c03229b88b1d2a74996ec590695e4
Reviewed-on: https://chromium-review.googlesource.com/415547
Commit-Ready: Aviv Keshet <akeshet@chromium.org>
Tested-by: Aviv Keshet <akeshet@chromium.org>
Reviewed-by: Allen Li <ayatane@chromium.org>
ros/dev_server.py
4a46bb8d138f121b64fee8f7e84b5e8016e10d3c 10-Oct-2016 Achuith Bhandarkar <achuith@chromium.org> autotest: Remove support for component extensions.

BUG=chromium:654525
TEST=trybots

Change-Id: I8fa9f9ab6f7f3ddbe02b6c25eb19ef10ecdf2098
Reviewed-on: https://chromium-review.googlesource.com/395639
Commit-Ready: Achuith Bhandarkar <achuith@chromium.org>
Tested-by: Achuith Bhandarkar <achuith@chromium.org>
Reviewed-by: Dan Shi <dshi@google.com>
ros/arc.py
ros/chrome.py
11e88a9a2cdea839894a1108212e35faa7ee5c87 15-Nov-2016 Achuith Bhandarkar <achuith@chromium.org> autotest: Default is_component to False.

This depends on http://crrev.com/2503213003

BUG=chromium:654525
TEST=desktopui_ScreenLocker

Change-Id: I20f5f8d262e6ab18cfd2952bbc2dc0cfd77b60e1
Reviewed-on: https://chromium-review.googlesource.com/412142
Commit-Ready: Nicolas Boichat <drinkcat@chromium.org>
Tested-by: Achuith Bhandarkar <achuith@chromium.org>
Reviewed-by: Ilja H. Friedel <ihf@chromium.org>
ros/chrome.py
9718b3b197e1965c6d1f7cdde1a0d9b5ad204eef 22-Nov-2016 Aviv Keshet <akeshet@chromium.org> Revert "[autotest] Report resolve devserver metrics"

This reverts commit 6447c015f8ea37260a594d863e4deed192d6099b.

Change-Id: I1f5b4842f42d1e31b78b55d8027a1506245e639c
Reviewed-on: https://chromium-review.googlesource.com/413664
Commit-Ready: Aviv Keshet <akeshet@chromium.org>
Tested-by: Aviv Keshet <akeshet@chromium.org>
Reviewed-by: Allen Li <ayatane@chromium.org>
ros/dev_server.py
14cac44542bc6a403cb7a3585eb3ebae00227992 21-Nov-2016 Aviv Keshet <akeshet@chromium.org> autotest: move or eliminate a bunch of autotest_stats stats

BUG=chromium:667171
TEST=unittests; guado_moblab tryjob + test run

Change-Id: I815d2d748a2daa3bc869ead5d09f722245b7317b
Reviewed-on: https://chromium-review.googlesource.com/413103
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
Commit-Queue: Aviv Keshet <akeshet@chromium.org>
Tested-by: Aviv Keshet <akeshet@chromium.org>
ros/autoupdater.py
ros/dev_server.py
osts/base_classes.py
1ed8b009050702e7eb2947572b0fb8644309de2f 17-Nov-2016 xixuan <xixuan@chromium.org> autotest: retry staging when devserver returns invalid response.

There's a case that when devserver is overloaded and cannot handle some
requests like 'stage', it will return invalid responses, which won't be raised
as an HTTP error and leads to stage process terminated.

This CL retry such cases. When invalid response is detected, stage will be
retried after 30 seconds to 1) not add more burden on that devserver, 2) make
stage process continue, not be terminated.

BUG=chromium:615650
TEST=Locally run ds.trigger_download() with devserver, test whether it's
retried when the returned response of devserver is invalid.

Change-Id: Id6c4adf1fc055bfeace26cb236a0b23c833e19cd
Reviewed-on: https://chromium-review.googlesource.com/412150
Commit-Ready: Xixuan Wu <xixuan@chromium.org>
Tested-by: Xixuan Wu <xixuan@chromium.org>
Reviewed-by: Dan Shi <dshi@google.com>
ros/dev_server.py
8949a8db9cd4d16f897d88241dfc0d658cf93d44 16-Nov-2016 Achuith Bhandarkar <achuith@chromium.org> autotest: Remove is_component from ChromeDriver.

BUG=chromium:654525
TEST=trybots

Change-Id: Ic1ca52cddfcd0fd4c80faf1f3c0002733e12ff8d
Reviewed-on: https://chromium-review.googlesource.com/412122
Commit-Ready: Achuith Bhandarkar <achuith@chromium.org>
Tested-by: Achuith Bhandarkar <achuith@chromium.org>
Reviewed-by: Achuith Bhandarkar <achuith@chromium.org>
ros/chromedriver.py
ae2d0789d9ad14aef0ca266606b945fe05431b24 16-Nov-2016 Shuqian Zhao <shuqianz@chromium.org> [autotest] Automate the deploy process

automated_deploy.py is a script to automate the deploy process. Current
deploy process is:
1. Manually push the prod branch to the lastest tested ToT for both
autotest and chromite.
2. Kick off deploy_server.py script to update all lab server.

This script will automate the whole process. When developers want to
deploy to production, all they need is to run
./site_utils/automated_deploy.py

BUG=None
TEST=unittest and Test on test server.

Change-Id: Ic53278df306c5721c7174b56dc4ff093a5df03a4
Reviewed-on: https://chromium-review.googlesource.com/411533
Reviewed-by: Xixuan Wu <xixuan@chromium.org>
Tested-by: Shuqian Zhao <shuqianz@chromium.org>
Commit-Queue: Shuqian Zhao <shuqianz@chromium.org>
evision_control.py
tils.py
a223ce029cd3b9cfdb29b9d2709eda5618b05c9b 17-Nov-2016 xixuan <xixuan@chromium.org> autotest: add raised_error into metrics for CrOS auto-update by devserver

This CL parses the raised_error for every failed round of auto-update by
devserver, and add it to privision metrics.

BUG=chromium:655782
TEST=Run auto_update locally with local devserver to test function
|_parse_raised_error_for_auto_update|.

Change-Id: Ifb42154056d22f1959d0b083d4edd1beda00ef2f
Reviewed-on: https://chromium-review.googlesource.com/412125
Commit-Ready: Aviv Keshet <akeshet@chromium.org>
Tested-by: Xixuan Wu <xixuan@chromium.org>
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
ros/dev_server.py
be39cd54afe24d6cc346689ab81c03147e7290ef 18-Nov-2016 Daniel Erat <derat@chromium.org> autotest: Use new tab for ARC setting and close afterward.

Make arc_util's enable_arc_setting() function create a new
tab for loading chrome://settings and close it when done. It
previously just navigated the first tab (assuming there'd
be one, I think) and left it open.

Also inline some JavaScript code that was wrapped due to
being stored in one-off local variables.

BUG=chromium:666146
TEST=manually checked that new tab is opened for settings
and closed when done

Change-Id: Idac7966c4fbd8670a41107220572a5c7b895a49a
Reviewed-on: https://chromium-review.googlesource.com/412286
Commit-Ready: Dan Erat <derat@chromium.org>
Tested-by: Dan Erat <derat@chromium.org>
Reviewed-by: Achuith Bhandarkar <achuith@chromium.org>
Reviewed-by: Chung-yih Wang <cywang@google.com>
ros/arc_util.py
952a041496fbdae50a01268edd01d1635d657f02 17-Nov-2016 Chung-yih Wang <cywang@google.com> arc_util.py: Skip waiting for managed session

The managed login will not show any terms section so the
patch simply skips the waiting condition if it is managed
session.

BUG=chromium:666236
TEST=both managed/unmanged login

Change-Id: I39c7b8ccd57ed43cb6caa5b9bcfc1539b1f60dba
Signed-off-by: Chung-yih Wang <cywang@google.com>
Reviewed-on: https://chromium-review.googlesource.com/411606
Reviewed-by: Ben Cheng <bccheng@chromium.org>
ros/arc_util.py
4e116826369f95645151f157e07b8256f7602329 18-Nov-2016 xixuan <xixuan@chromium.org> autotest: fix bugs for devserver function: download_file

BUG=chromium:666414
TEST=Call lxc.download_extract() in hot, successfully download files.

Change-Id: Ibbc70333c14cbfca0f7e4db3899eb49979b3a726
Reviewed-on: https://chromium-review.googlesource.com/412331
Reviewed-by: Dan Shi <dshi@google.com>
Commit-Queue: Xixuan Wu <xixuan@chromium.org>
Tested-by: Xixuan Wu <xixuan@chromium.org>
ros/dev_server.py
e97ebd5956237d1a20faa9c0b1ee728d7158a800 17-Nov-2016 Prathmesh Prabhu <pprabhu@chromium.org> [Workaround] SSH into devserver when obtaining ssp package.

This is a quick workaround to allow ssp staging to work even when a
devserver is chosen in an incorrect subnet.

BUG=chromium:666414
TEST=test_push passes.

Change-Id: I4db067a203b3fd6745999d744cbc66c72cd7ffdd
Reviewed-on: https://chromium-review.googlesource.com/412384
Reviewed-by: Xixuan Wu <xixuan@chromium.org>
Tested-by: Prathmesh Prabhu <pprabhu@chromium.org>
ros/dev_server.py
a04b42d8f105b91600c67468793009d1d318d1f2 16-Nov-2016 xixuan <xixuan@chromium.org> autotest: temporary fix for fetching firmware package

Current firmware_install (running on drone/shard) use wget to fetch
firmware_from_source.tar.bz2 for firware installation from devserver.
However, only port 22 is allowed for devservers under ACL.

This CL is a temporary fix for using port 22 to get the firmware package. A
long-term solution will be 'choose a devserver by host, build, and package' so
that we can use ganeti devserver for such use cases and reduce lab devserver's
load.

BUG=chromium:664333
TEST=Run '/usr/local/autotest/server/autoserv -p -r /tmp/firmware-test5 -m
chromeos1-row1-rack9-host6 --verbose --lab True --provision --job-labels
cros-version:veyron_jerry-release/R56-8977.0.0,fwro-version:veyron_jerry-release/R56-8977.0.0'
on chromeos-server41.cbf, verify that successfully downloading the packages.

Change-Id: Ie08a8ef47aa92044d1d1152889067ca37cc7a2b6
Reviewed-on: https://chromium-review.googlesource.com/412028
Reviewed-by: Xixuan Wu <xixuan@chromium.org>
Commit-Queue: Xixuan Wu <xixuan@chromium.org>
Tested-by: Xixuan Wu <xixuan@chromium.org>
ros/dev_server.py
623d981cb9bc0b9cb115bcfcdfac6e91c407981f 04-Nov-2016 Luigi Semenzato <semenzato@chromium.org> retry.py: provide more information in timeout exception message

This changes the message "call is timed out" to provide more
information, such as the name of the function that is timed
out. In cases in which the function name is not useful (e.g. "wrapper"),
a label may be passed.

Also changes the exception message for some of the other
exceptions which used to have the "call is timed out" message.

BUG=chromium:645259
TEST=ran unit test

Change-Id: I688ea72a5e0abb5188d801f753e65bb330bdc43e
Reviewed-on: https://chromium-review.googlesource.com/407982
Commit-Ready: Luigi Semenzato <semenzato@chromium.org>
Tested-by: Luigi Semenzato <semenzato@chromium.org>
Reviewed-by: Xixuan Wu <xixuan@chromium.org>
ros/dev_server.py
ros/dev_server_unittest.py
ros/retry.py
61d289840e3482df2ef0cf74832a6d707def2ac2 28-Oct-2016 Shelley Chen <shchen@chromium.org> [autotest] adding in board,build_type,milestone in autoupdater

BUG=chromium:655782
BRANCH=None
TEST=None

Change-Id: I40828ff3a43befd7863a09f8171fb282080e68ea
Signed-off-by: Shelley Chen <shchen@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/404868
Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
ros/autoupdater.py
6ae02f0988f60b893b47a5059738060ca3773b02 03-Nov-2016 xixuan <xixuan@chromium.org> Autotest: Let status_log_entry not raise exception in parsing error msg.

Status_log_entry will raise exception when getting an error msg which includes
bad characters, which leads to a traceback exicting in status.log. This may
prevent tko parser to parse the status log and upload it to tko database.

This CL replaces the bad characters with space, and won't raise exception for
this case.

BUG=chromium:662108
TEST=Ran python commands locally, Ran unittest.

Change-Id: I4fbb4bcc2fb8eea566e80c5fe28f229e092242bb
Reviewed-on: https://chromium-review.googlesource.com/406458
Commit-Ready: Xixuan Wu <xixuan@chromium.org>
Tested-by: Xixuan Wu <xixuan@chromium.org>
Reviewed-by: Allen Li <ayatane@chromium.org>
ase_job.py
dd18afb9a111c8f33e3821af5413cf9ad0497757 14-Nov-2016 Chung-yih Wang <cywang@google.com> arc_util.py: Fix the detection of termsPage loaded

To align with the javascript code in Chrome side, the patch fixes
the detection of terms Page loaded accordingly.

BUG=chromium:664869
TEST=on minnie, the opt-in test passes.

Change-Id: Iaebd2c29e0f01a826e14fc1740fc17bc08bb7d7c
Signed-off-by: Chung-yih Wang <cywang@google.com>
Reviewed-on: https://chromium-review.googlesource.com/410965
Reviewed-by: Hsu-Cheng Tsai <hctsai@chromium.org>
ros/arc_util.py
bffafe6af64af38fd5c16df7bb7650e16e5357db 03-Nov-2016 harpreet <harpreet@google.com> Remove call to stop ui and wait for chrome

Call to cros_ui.stop_and_wait_for_chrome_to_exit is not needed when
clearing tpm. This is meant to be called from client side test whereas
clear tpm request is always made from server side which results in
permission issue causing the error.

BUG=chromium:659342
TEST=Tested against local setup.

Change-Id: I4770b517b73a84235a8bc4c7f0074f358d0cb77e
Reviewed-on: https://chromium-review.googlesource.com/407405
Commit-Ready: Harpreet Grewal <harpreet@chromium.org>
Tested-by: Harpreet Grewal <harpreet@chromium.org>
Reviewed-by: Achuith Bhandarkar <achuith@chromium.org>
Reviewed-by: Richard Barnette <jrbarnette@chromium.org>
Reviewed-by: Kalin Stoyanov <kalin@chromium.org>
ros/tpm_utils.py
e0434294725f84acfc66e5499a89fece453ae183 10-Nov-2016 khmel <khmel@google.com> arc: Fix arc tests by setting arc.enabled.

There is expected that arc.enabled is set while Arc is running.
There are several DCHECKs for this case which are not available
for integration tests. This is first part of fix. There is an
additional fix in ArcAuthService that starts Arc for tests
triggered by arc.enabled.

BUG=brillo:32660818
TEST=test_that $IP cheets_CTS.6.0_r12.arm.android.text.
test_that $IP cheets_ContainerSmokeTest
test_that $IP suite:bvt-inline
This test passes in 2 modes. First is without any additional
CLs. Second with following CLs on board:
http://crrev.com/2486393003
http://crrev.com/2468973006

Change-Id: I1958512fb98314a7bf663d9fc4e7ec36e10da302
Reviewed-on: https://chromium-review.googlesource.com/410056
Commit-Ready: Yury Khmel <khmel@chromium.org>
Tested-by: Yury Khmel <khmel@chromium.org>
Reviewed-by: Luis Hector Chavez <lhchavez@google.com>
ros/chrome.py
6447c015f8ea37260a594d863e4deed192d6099b 28-Oct-2016 Allen Li <ayatane@chromium.org> [autotest] Report resolve devserver metrics

BUG=None
TEST=Not sure

Change-Id: I922cdb8c56e964d3edbb7db8ad58b31eca334f6b
Reviewed-on: https://chromium-review.googlesource.com/404889
Commit-Ready: Allen Li <ayatane@chromium.org>
Tested-by: Allen Li <ayatane@chromium.org>
Reviewed-by: Xixuan Wu <xixuan@chromium.org>
ros/dev_server.py
0038e10734cf0b5ad2de47e03ea6ee30693088ed 08-Nov-2016 John Budorick <jbudorick@google.com> Initialize telemetry's network controller backend at Chrome creation time.

BUG=chromium:663145
TEST=None

Change-Id: I1304500eb182a713f5865cd90684858ae7dea9b3
Reviewed-on: https://chromium-review.googlesource.com/408663
Commit-Ready: Ned Nguyen <nednguyen@google.com>
Tested-by: Ned Nguyen <nednguyen@google.com>
Reviewed-by: Ricky Liang <jcliang@chromium.org>
Reviewed-by: Ilja H. Friedel <ihf@chromium.org>
Reviewed-by: Ned Nguyen <nednguyen@google.com>
ros/chrome.py
16b8df37317c901e03bba2ced92ff0f91cfa3315 28-Oct-2016 Shelley Chen <shchen@chromium.org> [autotest] Add metric collection during autoupdate

Adding in collection of metrics when autoupdate
command completes. Currently only for devserver
and success/failure.

BUG=chromium:655782
BRANCH=None
TEST=None

Change-Id: If1270a7d5c9eec2ee05d81bce900a9c47c23ab40
Signed-off-by: Shelley Chen <shchen@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/404554
Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
ros/autoupdater.py
2bfa5640825faf707213abd2bee03f684547a938 09-Nov-2016 Ricky Liang <jcliang@chromium.org> Call platform.StopAllLocalServers() in close()

This is to make sure the telemetry local servers, e.g. the one started by
platform.SetHTTPServerDirectories(), are closed properly.

BUG=chromium:663387
TEST=Manually run several tests which use platform.SetHTTPServerDirectories()
and make sure there's no process leak.

Change-Id: I63630b9df6898e34ee1114f66f22201d129498e5
Reviewed-on: https://chromium-review.googlesource.com/408835
Commit-Ready: Ilja H. Friedel <ihf@chromium.org>
Tested-by: Ricky Liang <jcliang@chromium.org>
Reviewed-by: Ilja H. Friedel <ihf@chromium.org>
ros/chrome.py
ros/interactive_xmlrpc_server.py
0c9b8816e646213e740ede2775bf20bfe8a00efe 02-Nov-2016 Katherine Threlkeld <kathrelkeld@chromium.org> [Autotest] Remove termsView check from arc++ opt_in

Tests which use opt_in have started failing with
"Unhandled EvaluateException: Uncaught" error.

This change removes the offending term (termsView) and improves
various error messages so that the above message will display more
useful information in the future.

BUG=b:32071833
TEST=tests which use opt_in can now log in

Change-Id: I3ee3cf3e4c16bcf443b93c1527f55774617fc5a9
Reviewed-on: https://chromium-review.googlesource.com/406512
Commit-Ready: Chung-yih Wang <cywang@google.com>
Tested-by: Chung-yih Wang <cywang@google.com>
Tested-by: Katherine Threlkeld <kathrelkeld@chromium.org>
Reviewed-by: David Haddock <dhaddock@chromium.org>
ros/arc_util.py
328073b9ee29148e5db89f8148a7571cd04f6fbb 01-Nov-2016 Michael Tang <ntang@google.com> Adds extra fields to the test job offload notification.

BUG=chromium:660913
TEST=Unitest and Manual.

Change-Id: Id83f3a9fd1254e919c6486e55615e6d009ea06f5
Reviewed-on: https://chromium-review.googlesource.com/406447
Commit-Ready: Michael Tang <ntang@chromium.org>
Tested-by: Michael Tang <ntang@chromium.org>
Reviewed-by: Moises Osorio <moisesosorio@chromium.org>
Reviewed-by: Michael Tang <ntang@chromium.org>
ite_utils.py
38480a3bcb515378432e16a9708007d9f03e09a7 26-Oct-2016 Nathan Ciobanu <nathan.d.ciobanu@intel.com> [autotest] site_utils.py: enable IPv6 ping6 support

Adds support for host pinging in autotest utilities when remote is a
literal IPv6 address. This doesn't change the existing support for
IPv4.

BUG=none
TEST=No regression in:
time test_that IPV4_LITERAL|HOSTNAME dummy_Pass # and any other test
TEST=Fixes "get_network_stats ping failed: not collecting network stats"
in: time test_that IPV6_LITERAL dummy_Pass # and any other test
TEST=Saves one wasted minute busy looping in _ping_wait_for_status()
when: time test_that IPV6_LITERAL logging_GenerateCrashFiles.PROCESS
TEST=possibly others

Change-Id: I5d6cc56845434389dc53510dad977a3e36ba6abb
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
Reviewed-on: https://chromium-review.googlesource.com/403476
Reviewed-by: Mike Frysinger <vapier@chromium.org>
ite_utils.py
07c2e1d04c551dd6a0011243121340d49e562e81 26-Oct-2016 Richard Barnette <jrbarnette@chromium.org> [autotest] Keep servo repair events out of status.log in tests.

For tests that depend on servo, and use the standard recommended
boilerplate for ensuring that the servo host is created, the servo
host's repair() method will be called prior to the test. The
resulting log records in status.log cause wmatrix to report bogus
tests that pollute the UI.

This changes servo repair in this case not to write to status.log.

BUG=chromium:643703
TEST=unit tests

Change-Id: I293282b3e80c484dd8e636c1f3c104c3ecf9283c
Reviewed-on: https://chromium-review.googlesource.com/403453
Commit-Ready: Richard Barnette <jrbarnette@chromium.org>
Tested-by: Richard Barnette <jrbarnette@chromium.org>
Reviewed-by: danny chan <dchan@chromium.org>
osts/repair.py
osts/repair_unittest.py
d0bf655882a91fc1a6f4c30ae6aa51e53804d67e 27-Oct-2016 Keith Haddow <haddowk@chromium.org> Ensure we only append /results if the image uri is being used for
results.

BUG=chromium:659500
TEST=ran unit test locally

Change-Id: Iaf76b67129d0344a13f5264a1102320be0fc2560
Reviewed-on: https://chromium-review.googlesource.com/403434
Commit-Ready: Keith Haddow <haddowk@chromium.org>
Tested-by: Keith Haddow <haddowk@chromium.org>
Reviewed-by: Keith Haddow <haddowk@chromium.org>
Reviewed-by: Michael Tang <ntang@chromium.org>
ite_utils.py
ite_utils_unittest.py
3a76f76bc59af6660bb98036b0a5cb869fcaa0e6 28-Oct-2016 Aviv Keshet <akeshet@chromium.org> [autotest] add board, build_type, milestone fields to provision metrics

BUG=chromium:655782
TEST=None

Change-Id: I44d5e260c70f7af8321cd60902fc1e3e23f2675c
Reviewed-on: https://chromium-review.googlesource.com/404514
Tested-by: Aviv Keshet <akeshet@chromium.org>
Reviewed-by: Xixuan Wu <xixuan@chromium.org>
ros/dev_server.py
963257d3a7e4f91af7fd2222344f7a8406bf90e0 27-Oct-2016 xixuan <xixuan@chromium.org> autotest: modify version_match to fit build like trybot-**-toolchain.

This CL handles the exceptional case that build version contains both 'trybot'
and 'toolchain'.

BUG=chromium:654603
TEST=Ran unittest

Change-Id: Id155231ca96ba40dc9e506045019a1a501b5ceba
Reviewed-on: https://chromium-review.googlesource.com/404408
Commit-Ready: Xixuan Wu <xixuan@chromium.org>
Tested-by: Xixuan Wu <xixuan@chromium.org>
Reviewed-by: Caroline Tice <cmtice@chromium.org>
ite_utils.py
ite_utils_unittest.py
f93754802bb4de87aee96d67ba3045ef4d223cce 26-Oct-2016 Aviv Keshet <akeshet@chromium.org> [autotest] add metrics to provision-by-devserver code

We already collect some information about provision jobs, in the form of
special task metrics. However, special tasks are a scheduler concept,
and a fair amount of useful informationa about provision jobs is
invisible to them (in particular the devserver used, and details about
failures that occured).

Since provision is so uniquely import in infra, makes sense to have more
instrumentation internal to the provision job. This CL starts adding
some.

BUG=chromium:655782
TEST=None

Change-Id: Icc4eb6eea2600adb61490b34b63c48f3d2718ca7
Reviewed-on: https://chromium-review.googlesource.com/403549
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
Tested-by: Aviv Keshet <akeshet@chromium.org>
Commit-Queue: Aviv Keshet <akeshet@chromium.org>
ros/dev_server.py
749b64d227349613d35dfec365f18b18763bc192 26-Oct-2016 Dan Shi <dshi@google.com> [autotest] Update android_utils to allow certain android board to be provisioned

This change is to allow certain android board that don't have any standalone
image needs to be provisioned, so android_standalone_images_board has an empty
value in shadow config.

BUG=None
TEST=None

Change-Id: Ia80b60b4a08dfec0b906569cfa402381034ec365
Reviewed-on: https://chromium-review.googlesource.com/403490
Reviewed-by: Simran Basi <sbasi@chromium.org>
Commit-Queue: Dan Shi <dshi@google.com>
Tested-by: Dan Shi <dshi@google.com>
ndroid_utils.py
f71b696e2fd062dd7ab40e58a6d28bd2e5cc6374 21-Oct-2016 Bindu Mahadev <bmahadev@google.com> [Autotest]Power off all APs and harden MAX_SSID_COUNT

In order to reduce congestion in chaos, power off entire lab APs
and also reduce the MAX_SSID_COUNT to 10, to make it a cleaner env
for the next test run.

BUG=b:31803816
TEST=None

Change-Id: Ia697abecf9284fac93f27ff4ae8181d78b4d384c
Reviewed-on: https://chromium-review.googlesource.com/401648
Commit-Ready: Kris Rambish <krisr@chromium.org>
Tested-by: Kris Rambish <krisr@chromium.org>
Reviewed-by: Kris Rambish <krisr@chromium.org>
ros/network/ap_constants.py
c35d7317b37108d2f66a04145b54aa5342fddd04 15-Oct-2016 xixuan <xixuan@chromium.org> autotest: let collect_au_log and handler_cleanup use the same hostname

After using host's IP in the second auto-update, RPC collect_au_log and
handler_clean still use hostname as argument, it will lead to error like
'cannot find auto-update log'.

This CL fix this problem by passing kwargs['host_name'] so that it use the same
argument for all auto-update RPC: cros_au, get_au_status, handler_clean,
collect_au_log and kill_au_process.

BUG=chromium:656175
TEST=run repair in local autotest with local devserver.

Change-Id: I2034d3ad452695461be048aee5cf8d0988803909
Reviewed-on: https://chromium-review.googlesource.com/399578
Commit-Ready: Xixuan Wu <xixuan@chromium.org>
Tested-by: Xixuan Wu <xixuan@chromium.org>
Reviewed-by: Allen Li <ayatane@chromium.org>
ros/dev_server.py
ba12a34aa06205a215e7908a9a1c1e3a332177e0 11-Oct-2016 Katherine Threlkeld <kathrelkeld@chromium.org> [Autotest] Split up ARC++ opt_in() code.

In preparation for some tweaks to this code (to handle some
points of failure we see in the test results), split opt_in
into four different sub-functions. This function has gotten
too long and shouldn't be made longer without clearer
organization.

The only functional change is fixing a problem that was
exacerbated by the reordering: GetByExtensionId doesn't
return ordered results and the code always selected the first
element. Instead, determine the correct extension page by
checking for the correct page url.

TEST=ran tests using opt_in()
BUG=b:32071833

Change-Id: Ifb79287c6104709be1d7d8b33a372aa32dcc0f9f
Reviewed-on: https://chromium-review.googlesource.com/396404
Commit-Ready: Katherine Threlkeld <kathrelkeld@chromium.org>
Tested-by: Katherine Threlkeld <kathrelkeld@chromium.org>
Reviewed-by: danny chan <dchan@chromium.org>
Reviewed-by: Harpreet Grewal <harpreet@chromium.org>
ros/arc_util.py
25af06dcfdc05674c90b25e067ec975c6390d146 27-Sep-2016 Allen Li <ayatane@chromium.org> [autotest] Fix typos

BUG=None
TEST=None

Change-Id: I6043c837befe8f8b7348ae5c38b5623df7261049
Reviewed-on: https://chromium-review.googlesource.com/389838
Commit-Ready: Allen Li <ayatane@chromium.org>
Tested-by: Allen Li <ayatane@chromium.org>
Reviewed-by: Prathmesh Prabhu <pprabhu@chromium.org>
evision_control.py
58424779a23e853a64562a66ccbbcbbeea3d1209 05-Oct-2016 xixuan <xixuan@chromium.org> autotest: Let log report the real auto-update error.

Previous error msg shown on waterfall only tells 'CrOS update reached the AU
limit', but not tell the real reason of AU failure.

This CL parse the http response returned from devserver and raise the real
error.

BUG=chromium:652033
TEST=Run repair in local workstation and hot, check the error logs.
Run unittest.

Change-Id: Idc153493344904f83d46ddcf00919c7915349265
Reviewed-on: https://chromium-review.googlesource.com/393886
Commit-Ready: Xixuan Wu <xixuan@chromium.org>
Tested-by: Xixuan Wu <xixuan@chromium.org>
Reviewed-by: Allen Li <ayatane@chromium.org>
ros/dev_server.py
d33c21d5d384efdb53643bf1168b17628905ac68 07-Oct-2016 Ben Cheng <bccheng@google.com> Define ARC opt-in string markers for other modules to reference.

BUG=b:29154686
TEST=test_that <IP_OF_DUT> cheets_PlayStoreOptIn

Change-Id: I2df5cbc95b8a43451cc90a17d328dde1b16b3fb4
Reviewed-on: https://chromium-review.googlesource.com/394510
Commit-Ready: Ben Cheng <bccheng@chromium.org>
Tested-by: Chung-yih Wang <cywang@google.com>
Tested-by: Ben Cheng <bccheng@chromium.org>
Reviewed-by: Chung-yih Wang <cywang@google.com>
ros/arc_util.py
788dfa0418bc5a04a28822d8868134683b28df06 07-Oct-2016 xixuan <xixuan@chromium.org> autotest: add logging of RPC stage.

Bug 615650 has errors like 'HTTP OK not accompanied by Success'. But we don't
have any clue about the response of RPC call stage.

This CL logs the response of staging so that we can better debug stage errors.

BUG=chromium:615650
TEST=None

Change-Id: I67bf088df7d0fa8bd988de57c96db05ffe4996fb
Reviewed-on: https://chromium-review.googlesource.com/395006
Commit-Ready: Xixuan Wu <xixuan@chromium.org>
Tested-by: Xixuan Wu <xixuan@chromium.org>
Reviewed-by: Dan Shi <dshi@google.com>
ros/dev_server.py
95c6cce5c3debfc7bd98f27450916c78390f28c6 06-Oct-2016 xixuan <xixuan@chromium.org> autotest: save devserver logs for auto-update to directory autoupdate_logs

Previously, devserver logs of auto-update is saved in sysinfo, which is
sometimes zipped and hard to diagnose in browser.

This CL changes 'sysinfo' to directory 'autoupdate_logs' and save the CrOS
Auto-Update logs there.

BUG=chromium:652211
TEST=run jobs in local workstation and make sure that CrOS_update_***.log exist
in directory 'autoupdate_logs'.
Run unittest.

Change-Id: Ia0702a916374417284294bf4bc7ff5d86d8a0bf5
Reviewed-on: https://chromium-review.googlesource.com/394268
Commit-Ready: Xixuan Wu <xixuan@chromium.org>
Tested-by: Xixuan Wu <xixuan@chromium.org>
Reviewed-by: Allen Li <ayatane@chromium.org>
ros/dev_server.py
ros/dev_server_unittest.py
ff527d502aac9d94e631a6d23ea3203c8074ffd5 07-Oct-2016 Waldemar Rymarkiewicz <ext.waldemar.rymarkiewicz@tieto.com> autotest: Add locale-aware float convertion

float() is not locale aware in opposite to pyshark which formats floats
locale dependant way. As a result, it can cause an error:

ValueError: invalid literal for float(): 13,5

for locale where decimal point is the comma.

This patch sets python locale to your system defaults and uses locale.atof()
instead float() to convert float independently from decimal point.

BUG=none
TEST=network_WiFi_LowInitialBitrates HW: Acer Lars (with NFA344A M.2 NIC)

Signed-off-by Waldemar Rymarkiewicz <ext.waldemar.rymarkiewicz@tieto.com>

Change-Id: I8255106daaeae6861cd5811515c0a431f1656818
Reviewed-on: https://chromium-review.googlesource.com/394590
Commit-Ready: Waldemar Rymarkiewicz <waldemar.rymarkiewicz@gmail.com>
Tested-by: Waldemar Rymarkiewicz <waldemar.rymarkiewicz@gmail.com>
Reviewed-by: Tien Chang <tienchang@chromium.org>
ros/network/tcpdump_analyzer.py
a679063841e2bb87ffe55df752d3309bde3e44c4 04-Oct-2016 Achuith Bhandarkar <achuith@chromium.org> network_controller doesn't need to be initialized for autotests.

BUG=chromium:650936
TEST=trybots

Change-Id: Ic8f5843cd3dcdca7c2ab7d83f6257efcf4e352af
Reviewed-on: https://chromium-review.googlesource.com/393226
Commit-Ready: Ned Nguyen <nednguyen@google.com>
Commit-Ready: Harpreet Grewal <harpreet@chromium.org>
Tested-by: Achuith Bhandarkar <achuith@chromium.org>
Tested-by: Ned Nguyen <nednguyen@google.com>
Reviewed-by: Ned Nguyen <nednguyen@google.com>
Reviewed-by: Harpreet Grewal <harpreet@chromium.org>
ros/chrome.py
23bdfd50223f1212153324a5025046df5b2b5546 03-Oct-2016 Kevin Cheng <kevcheng@chromium.org> [autotest] dev_server use the IP when the first attempt to AU fails.

This is a temporary fix to get testing in cassandra working until DNS
works again in that lab (from the devserver -> dut).

BUG=chromium:651974
TEST=none

Change-Id: I0a65307f85d3af5240bce2114310d152fd4253d1
Reviewed-on: https://chromium-review.googlesource.com/392346
Commit-Ready: Kevin Cheng <kevcheng@chromium.org>
Tested-by: Kevin Cheng <kevcheng@chromium.org>
Reviewed-by: Kevin Cheng <kevcheng@chromium.org>
ros/dev_server.py
1cc4157bbb604707ab9880ce7caca5682c554775 30-Sep-2016 Achuith Bhandarkar <achuith@chromium.org> Don't initialize network controller for gaia login.

BUG=chromium:650936
TEST=login_GaiaLogin

Change-Id: I1b183a80fdee3ec6032af96e95df0401c183a622
Reviewed-on: https://chromium-review.googlesource.com/391123
Reviewed-by: Ned Nguyen <nednguyen@google.com>
Reviewed-by: Achuith Bhandarkar <achuith@chromium.org>
Tested-by: Ned Nguyen <nednguyen@google.com>
Tested-by: Achuith Bhandarkar <achuith@chromium.org>
ros/chrome.py
1d6f3b4433872f6c1330f6e6a67fc482c005c0fb 26-Sep-2016 Chen-Hao Chang@google.com <haocc@google.com> [autotest] arc: add arc communication utilities, and support no_chrome

check_android_file_exists() will be used in site tests to check whether the
given file exists in the Android filesystem.
send_keycode() sends the given keycode into the container.
Both utilities are used to communicate with the container.
No_chrome will be used in client tests controlled by server side tests
when the server side needs a chrome (e.g. browser extension.).

BUG=b:31636623
TEST=not used yet.

Change-Id: Ifcbb3f0db0e221eb0beda04cef5d19464d2e5223
Reviewed-on: https://chromium-review.googlesource.com/388955
Commit-Ready: Chen-hao Chang <haocc@google.com>
Tested-by: Chen-hao Chang <haocc@google.com>
Reviewed-by: Cheng-Yi Chiang <cychiang@chromium.org>
Reviewed-by: Victor Hsieh <victorhsieh@chromium.org>
ros/arc.py
30654038061a71ead1a0618c853d7acfbdd00136 26-Sep-2016 Dan Shi <dshi@google.com> [autotest] Correct devserver names in 'All devservers are currently down'

This change correct the list of devserver in the message. Also include hostname
for easier troubleshooting.

BUG=None
TEST=local verify

Change-Id: I50423ffae8fa827906d8556108f688948e0d35bf
Reviewed-on: https://chromium-review.googlesource.com/389535
Commit-Ready: Dan Shi <dshi@google.com>
Tested-by: Dan Shi <dshi@google.com>
Reviewed-by: Shuqian Zhao <shuqianz@chromium.org>
ros/dev_server.py
5c2745d57902e68bbfdd4cfb953740faef645944 20-Sep-2016 Ricky Zhou <rickyz@chromium.org> Ignore adb errors in adb polling.

BUG=chromium:647976
TEST=cheets_SELinuxTest still passes.

Change-Id: I5890c14921c134cbad98633791186396740d1ca5
Reviewed-on: https://chromium-review.googlesource.com/387270
Commit-Ready: Ricky Zhou <rickyz@chromium.org>
Tested-by: Ricky Zhou <rickyz@chromium.org>
Reviewed-by: Dylan Reid <dgreid@chromium.org>
ros/arc.py
a7cf9dd5ef5bdc4b89e5fba523e6f90b983a2469 20-Sep-2016 khmel <khmel@google.com> Fix hanging tsproxy process after test execution

BUG=chromium:648359
TEST=After muliple runs test_that <ip> cheets_ContainerSmokeTest there
is no python process on device that consumes 100%.
TEST=test_that <ip> suite:arc-bvt-cq

Change-Id: Iffba8c43f1fdf85778ad9847f3bb1e76cd3562b8
Reviewed-on: https://chromium-review.googlesource.com/387209
Tested-by: Yury Khmel <khmel@google.com>
Trybot-Ready: Yury Khmel <khmel@google.com>
Reviewed-by: Don Garrett <dgarrett@chromium.org>
Commit-Queue: Yury Khmel <khmel@google.com>
ros/chrome.py
7bf05519a83e76ad818cd2ef016f13be6cfc7aaf 03-Sep-2016 Benny Peake <bpeake@google.com> ACTs now deploys from devserver

When running any ACTs job on autotest, ACTs along with all test
files will be deployed from the devserver artifact.

BUG=b:30102263
TEST=None
Change-Id: I6cc788ab4122188ebd7456b1d69d93f8d40b4a7a
Reviewed-on: https://chromium-review.googlesource.com/380829
Tested-by: Benjamin Peake <bpeake@chromium.org>
Reviewed-by: Dan Shi <dshi@google.com>
Commit-Queue: Benjamin Peake <bpeake@chromium.org>
ros/dev_server.py
a854fbf43f5273f9c1e9700c05d8173e9ca4177d 09-Sep-2016 Cheng-Yu Lee <cylee@chromium.org> autotest: Fix ArcTest cleanup() failures if setup() is not run

ArcTest misuses setup(), which is not guaranteed to be run on DUT. For
example if emerge builds binaries in src/ on host machine, setup() would
be skipped on DUT.
ArcTest needs a pure client side setup step when run_once() is called to
do things like Android packages installation. This CL makes arc_setup()
such a function instead of setup(). That is,
1. arc_setup() is called by default in default implementation of
initialize() of ArcTest. It tries to install needed packages.
2. Subclasses can override arc_setup() to install their specific
packages or whatever needs to be done after Android is booted.

BUG=chromium:623790
TEST=Run all the modified tests on my minnie. All passed except some tests
which fail even on a clean checkout.
CQ-DEPEND=CL:*284358

Change-Id: I16d9ccd07ab36b875d273d6915dee89318043801
Reviewed-on: https://chromium-review.googlesource.com/383454
Commit-Ready: Cheng-Yu Lee <cylee@chromium.org>
Tested-by: Cheng-Yu Lee <cylee@chromium.org>
Reviewed-by: Chung-yih Wang <cywang@google.com>
ros/arc.py
21cf23a3a5efa367da90602246cdb713584d9749 09-Sep-2016 Cheng-Yi Chiang <cychiang@chromium.org> [autotest] arc: Add grant_permissions utility function

This will be used in site tests to grant permissions to apps.

BUG=chromium:644036
TEST=not used yet.

Change-Id: Ic56940da0f6d43cc9134fff384f9b063adbdcb2d
Reviewed-on: https://chromium-review.googlesource.com/383714
Commit-Ready: Cheng-Yi Chiang <cychiang@chromium.org>
Tested-by: Cheng-Yi Chiang <cychiang@chromium.org>
Reviewed-by: Victor Hsieh <victorhsieh@chromium.org>
ros/arc.py
785cf458ee0ce7516687add68f102825d8891df5 02-Mar-2016 Bartosz Markowski <bartosz.markowski@tieto.com> autotests: add QCA6174 to supported devices list

network_WlanDriver check the pci id's and *.ko locations/kernel and
wireless overlay availability. Add QCA6174 hw3.0 support.

BUG=chromium:39554
TEST=full AVL list. HW: Acer Loreal (with NFA344A M.2 NIC)

Change-Id: Idff33f2475350557149d32081faa90fab4962e0f
Signed-off-by: Bartosz Markowski <bartosz.markowski@tieto.com>
Reviewed-on: https://chromium-review.googlesource.com/358441
Reviewed-by: Tien Chang <tienchang@chromium.org>
ros/network/interface.py
776cb5e3e63e4e117dc4f3656424f6e3c6ae906d 08-Sep-2016 Victor Hsieh <victorhsieh@chromium.org> Rename arc_new.py to arc.py

TEST=test_that some random ARC tests # didn't see import error
BUG=b:28937952

Change-Id: I2f58e3187e99adfd44187883ecc550c15b88aecc
Reviewed-on: https://chromium-review.googlesource.com/382876
Commit-Ready: Victor Hsieh <victorhsieh@chromium.org>
Tested-by: Victor Hsieh <victorhsieh@chromium.org>
Reviewed-by: Chung-yih Wang <cywang@google.com>
Reviewed-by: Cheng-Yu Lee <cylee@chromium.org>
ros/arc.py
ros/arc_new.py
5e1fe269a0bd72b9d4895efa0fbda2053211e220 02-Sep-2016 Dan Shi <dshi@google.com> Revert "[autotest] Enable any devserver to be selected when hostname is not provided."

This reverts commit 53fd8e4fa083938b312fbebff649952667f06197.

Change-Id: I0fe127345499ec2f3a652b5ce873715930e90e0a
Reviewed-on: https://chromium-review.googlesource.com/380523
Reviewed-by: Dan Shi <dshi@google.com>
Commit-Queue: Dan Shi <dshi@google.com>
Tested-by: Dan Shi <dshi@google.com>
ros/dev_server.py
53fd8e4fa083938b312fbebff649952667f06197 02-Sep-2016 Dan Shi <dshi@google.com> [autotest] Enable any devserver to be selected when hostname is not provided.

If config enable_ssh_connection_for_devserver is set to True, all devservers
can be used to do calls like:
ds = dev_server.ImageServer.resolve(image)
image = ds.translate(image)

Without that, we will need at least one devserver in unrestricted subnet.

BUG=chromium:643655
TEST=verified in lab, local setup, and unittest

Change-Id: Ie8e92e38849fa4a54a4288c80951571f9e37fc06
Reviewed-on: https://chromium-review.googlesource.com/380735
Commit-Queue: Dan Shi <dshi@google.com>
Tested-by: Dan Shi <dshi@google.com>
Reviewed-by: Dan Shi <dshi@google.com>
ros/dev_server.py
2eba892985ce86df60b4a1a04f84a9683eec6349 17-Aug-2016 Victor Hsieh <victorhsieh@chromium.org> Move arc.py to the public repo as arc_new.py

To avoid conflict with the original file while installing the package,
the file is temporarily named differently.

Also, for tests, fallback to import arc_new when import arc failed.
This is to make sure two ebuilds won't have the same file at the same
time.

TEST=install autotest-lib, force the test to use the new version and run it
BUG=b:28937952

Change-Id: I0bb6b8f28be95b342e28b8fd8f460accc9a3fce3
Reviewed-on: https://chromium-review.googlesource.com/372158
Commit-Ready: Victor Hsieh <victorhsieh@chromium.org>
Tested-by: Victor Hsieh <victorhsieh@chromium.org>
Reviewed-by: Victor Hsieh <victorhsieh@chromium.org>
ros/arc_new.py
6a61239a702907ad1aedd56aa4ee700ca50bbab0 18-Aug-2016 Allen Li <ayatane@chromium.org> [autotest] Improve pool health bugs

Assign and label pool health bugs appropriately, and add more detailed
host information to the bug.

BUG=chromium:637008
TEST=Run run_suite.py with fewer hosts than required, run unittests

Change-Id: I801b8bfb028a9a576d48fecda017c439b93088fe
Reviewed-on: https://chromium-review.googlesource.com/372879
Commit-Ready: Allen Li <ayatane@chromium.org>
Tested-by: Allen Li <ayatane@chromium.org>
Reviewed-by: Allen Li <ayatane@chromium.org>
ost_states.py
e35b6668ea335d79d40d1985409f8886dee53b2b 29-Aug-2016 Aseda Aboagye <aaboagye@google.com> BasePackageManager: Use `test` instead of `ls`.

Prior to this change, it could be confusing when there was an error or
not when fetching packages. The fetch_pkg method runs a `ls` on the
package file to see if it already exists. When the package doesn't
exist, or is out of date, the new package is fetched from a repo.

`ls` would return an error saying "no such file or directory" when the
package doesn't exist. However, this is to be expected in many cases.

This commit changes the method in checking for the existence of files
and/or directories to using `test` instead of `ls`. This provides much
quieter output.

Additionally, the log level for successfully retrieving the package was
raised to INFO.

BUG=chromium:639005
BRANCH=None
TEST=run tryjob with HWTest and verify that `ls` error messages are
no longer present.

Change-Id: I59ace7449294fadd44f1b35e1cdbba060510cd8e
Signed-off-by: Aseda Aboagye <aaboagye@google.com>
Reviewed-on: https://chromium-review.googlesource.com/376999
Commit-Ready: Aseda Aboagye <aaboagye@chromium.org>
Tested-by: Aseda Aboagye <aaboagye@chromium.org>
Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
ase_packages.py
f977066f2796446e4cbe195a60a872e697246227 09-Aug-2016 Krishna Gavini <krishnargv@chromium.org> Automatically configure the Rise Player Kiosk App.

-Create a kiosk_utils.py for common kiosk methods.
-Create a config_riseplayer method within kiosk_utils
to automatically configure the Rise Player Kiosk App.
-Grab the RisePlayer app config id value from the
DUT's AFE labels.
-Update enterprise_KioskEnrollment to call the config_riseplayer
method during RisePlayer setup.

BUG=chromium:636019
TEST=Run longevity_Tracker/control.riseplayer

Change-Id: Ia794b39fae0742a2782abb923c3d55dd3a5e1b58
Reviewed-on: https://chromium-review.googlesource.com/367430
Commit-Ready: Krishna Gavini <krishnargv@chromium.org>
Tested-by: Krishna Gavini <krishnargv@chromium.org>
Reviewed-by: Harpreet Grewal <harpreet@chromium.org>
ros/kiosk_utils.py
121239d5bd01e98039ce65009b30ef531c9b86a5 25-Aug-2016 Richard Barnette <jrbarnette@chromium.org> [autotest] Tweak the logging message for failed triggers.

When we start a repair action, we log the failed triggers.
This changes the message around the logging to make more sense
in context.

Sample before:
Attempting this repair action: Wait for update, then reboot servo host.
Repair was triggered by these failures:
pwr_button control is normal
lid_open control is normal

Sample after:
Attempting this repair action: Wait for update, then reboot servo host.
Repairing because these triggers failed:
pwr_button control is normal
lid_open control is normal

BUG=None
TEST=unit tests

Change-Id: I551b982ae55d099b615b6a82637120bc61e3c272
Reviewed-on: https://chromium-review.googlesource.com/376258
Tested-by: Richard Barnette <jrbarnette@chromium.org>
Reviewed-by: Kevin Cheng <kevcheng@chromium.org>
Commit-Queue: Richard Barnette <jrbarnette@chromium.org>
osts/repair.py
5fae7692b7e5c29fc9173644d0a9090750209f45 23-Jun-2016 Ricky Zhou <rickyz@chromium.org> Close fds when running commands.

BUG=None
TEST=Ran test which previously hung due to a pipe fd being kept alive.

Change-Id: Id5dd4121677b66ff160b64143fe52d2663062a2f
Reviewed-on: https://chromium-review.googlesource.com/355284
Commit-Ready: Ricky Zhou <rickyz@chromium.org>
Tested-by: Ilja H. Friedel <ihf@chromium.org>
Tested-by: Ricky Zhou <rickyz@chromium.org>
Reviewed-by: Ilja H. Friedel <ihf@chromium.org>
Reviewed-by: Rohit Makasana <rohitbm@chromium.org>
ase_utils.py
08edc2030ea4fe745002cfce4ab7f73468245bf0 23-Aug-2016 Achuith Bhandarkar <achuith@chromium.org> NetworkController needs explicit initialization.

This is in anticipation of catapult:#2584.

BUG=chromium:639730
TEST=vm tests.

Change-Id: I46afb6a03b171d14dcb0845391caedad5d3c57c6
Reviewed-on: https://chromium-review.googlesource.com/374542
Commit-Ready: Ned Nguyen <nednguyen@google.com>
Tested-by: Achuith Bhandarkar <achuith@chromium.org>
Tested-by: Ned Nguyen <nednguyen@google.com>
Reviewed-by: Achuith Bhandarkar <achuith@chromium.org>
Reviewed-by: Ned Nguyen <nednguyen@google.com>
ros/chrome.py
6f4acccf48cb1dcdd0a5b45fc88e423f4fef14f0 23-Aug-2016 Achuith Bhandarkar <achuith@chromium.org> Cleanup chrome.py

BUG=chromium:603169
TEST=hwtests

Change-Id: Ieeb5cb895023db6938c9010d5aa7cdb95bc049b7
Reviewed-on: https://chromium-review.googlesource.com/374442
Commit-Ready: Ned Nguyen <nednguyen@google.com>
Tested-by: Achuith Bhandarkar <achuith@chromium.org>
Tested-by: Ned Nguyen <nednguyen@google.com>
Reviewed-by: Achuith Bhandarkar <achuith@chromium.org>
Reviewed-by: Ned Nguyen <nednguyen@google.com>
ros/chrome.py
b98b931a0624dcfa07076ed56af681a089243b37 16-Aug-2016 Bindu Mahadev <bmahadev@google.com> [Scheduler]Creating a suite for Marlin/Sailfish.

This suite will run wpa2psk alone on days 0 & 1.
Also changing the batch size back to 12 and increasing the
SSID_MAX_COUNT(this seemed good for the previous batch size,
increasing it by 10).

While here, also changed the android_wifi_connect suite times
to 04:00hrs.

BUG=None
TEST=None

Change-Id: I823bca07d9217ad83454c2f58eabe91bc0397efa
Reviewed-on: https://chromium-review.googlesource.com/371341
Reviewed-by: Bindu Mahadev <bmahadev@chromium.org>
Commit-Queue: Bindu Mahadev <bmahadev@chromium.org>
Tested-by: Bindu Mahadev <bmahadev@chromium.org>
ros/network/ap_constants.py
aa401d354435497a4195efad12c89912d5028187 09-Aug-2016 Sabin Floares <sabin.floares@intel.com> site_tests/shill: Modified tests for systemd enabled images

Adds a naming alternative for critical processes checking
which permits optional naming for daemon names.
Adds an utils function "has_systemd" to test for systemd.
Switches between commands when systemd is detected.

BUG=chromium:583671
TEST=test_that ip network_CheckCriticalProcesses
network_DefaultProfileCreation network_DefaultProfileServices
network_DestinationVerification network_DhcpClasslessStaticRoute
network_DhcpFailureWithStaticIP network_DhcpNak
network_DhcpNegotiationSuccess network_DhcpNegotiationTimeout
network_DhcpNonAsciiParameter network_DhcpRenew
network_DhcpRenewWithOptionSubset network_DhcpRequestHostName
network_DhcpStaticIP network_DhcpVendorEncapsulatedOptions
network_DhcpWpadNegotiation network_ShillInitScripts
network_TwoShills network_WiFiInvalidParameters network_WlanDriver
network_WlanHasIP

Change-Id: I16dfd469aff9712087b03239073f7170c5eca46d
Reviewed-on: https://chromium-review.googlesource.com/362800
Commit-Ready: Sabin Floares <sabin.floares@intel.com>
Tested-by: Sabin Floares <sabin.floares@intel.com>
Reviewed-by: Mike Frysinger <vapier@chromium.org>
ite_utils.py
f6579937c953d9c6f72f8dcd9ed9f2003f7d2167 17-Aug-2016 Richard Barnette <jrbarnette@chromium.org> [autotest] Update exceptions typically raised by verify().

When verify() fails, typically it raises AutoservVerifyDependencyError.
Previously, such exceptions would contain the description of every
verifier that failed; this was useful for the debug logs. Upcoming
changes for servo repair will sometimes need to print the exceptions
raised by verify(); for the exceptions raised by verify() to be
useful for printing error messages, they need to contain the actual
errors.

This changes verify and repair so that their exceptions contain both
the description and the exception message. If the exception is
converted to a string, (i.e. for printing) it includes all the error
messages. Logging continues to use the verifier description.

This also tweaks the logging messages to be slightly more readable.

BUG=chromium:630018
TEST=Unit tests, plus tested the new servo repair with this code

Change-Id: I3988e9cd7422e7be5d9280b93589ca63184a450e
Reviewed-on: https://chromium-review.googlesource.com/371565
Commit-Ready: Richard Barnette <jrbarnette@chromium.org>
Tested-by: Richard Barnette <jrbarnette@chromium.org>
Reviewed-by: Kevin Cheng <kevcheng@chromium.org>
osts/repair.py
osts/repair_unittest.py
e519dcd90749c04af0541102f453d91a7dd06af6 16-Aug-2016 Richard Barnette <jrbarnette@chromium.org> [autotest] Add DUT board to ServoHost.

In preparation for upcoming servo repair changes, the DUT board
needs to be a field in the ServoHost object.

BUG=chromium:630018
TEST=repair_test on a DUT in the lab

Change-Id: I35fd4ca255fa828bb842debd422dda0928c87335
Reviewed-on: https://chromium-review.googlesource.com/370899
Commit-Ready: Richard Barnette <jrbarnette@chromium.org>
Tested-by: Richard Barnette <jrbarnette@chromium.org>
Reviewed-by: Allen Li <ayatane@chromium.org>
Reviewed-by: Dan Shi <dshi@chromium.org>
ros/servo_afe_board_map.py
ros/servo_afe_board_map_unittest.py
6ee645357e48ac0a32a4543e29f58a7b6bc5d183 10-Aug-2016 Justin Giorgi <jgiorgi@google.com> [autotest] GenericHostRunError.

Renamed HostRunErrorMixIn to GenericHostRunError as a generic
error used for both client and server host.run failures. Fixed ADBHost,
EmulatedADBHost, EmulatorManager and all android/brillo tests to catch this
exception where they were catching one or both of AutotestHostRunError and
AutoservRunError.

TEST=Verified locally, ran unit tests.
BUG=None

Change-Id: I87e166bd580df7dd4b021e2fe0b426beaba2c270
Reviewed-on: https://chromium-review.googlesource.com/367015
Commit-Ready: Justin Giorgi <jgiorgi@google.com>
Tested-by: Justin Giorgi <jgiorgi@google.com>
Reviewed-by: Dan Shi <dshi@chromium.org>
rror.py
455ec8d722c95a1f64c9540df403c02ac5d580fe 13-Aug-2016 Justin Giorgi <jgiorgi@google.com> [autotest] Case insensitive match for LATEST build

BUG=None
TEST=Verified on moblab

Change-Id: I0955b6677d4d28030939d7ed3bd95994cd18ef70
Reviewed-on: https://chromium-review.googlesource.com/368881
Commit-Ready: Justin Giorgi <jgiorgi@google.com>
Tested-by: Justin Giorgi <jgiorgi@google.com>
Reviewed-by: Dan Shi <dshi@chromium.org>
ros/dev_server.py
17bfc6c4f47c7e9b7f04c94b2cb0e8afa37f6cde 05-Aug-2016 Richard Barnette <jrbarnette@chromium.org> [autotest] Change host creation in deployment_test.

This refactoring is for the sake of upcoming changes relating
to servo repair. Additionally, it allows for cleaning up
certain awkward design aspects in deployment_test.

The change switches creating hosts in the AFE from invoking the
'atest' command in a subprocess to making RPC calls directly.
The result is that the AFE host entry for each new DUT can be
passed when calling hosts.create_host() to create the CrosHost
object. This eliminates the need to monkey patch private methods
in the host object.

Additionally, the change now guarantees that the 'servo_host' and
'servo_port' attributes for the host are added to the AFE database,
in a step towards eliminating the hard-coding of the mapping of DUT
hostnames to servo hostnames during ServoHost construction.

BUG=chromium:630018
TEST=Run the command against a spare DUT in the test lab.

Change-Id: Ia8accaf5de0076ddb68de1d831cd7c803a735bd5
Reviewed-on: https://chromium-review.googlesource.com/366843
Commit-Ready: Richard Barnette <jrbarnette@chromium.org>
Tested-by: Richard Barnette <jrbarnette@chromium.org>
Reviewed-by: Kevin Cheng <kevcheng@chromium.org>
ost_states.py
303d2669b78eb5a2ebd6c41dce80ca18d06a19cf 02-Jul-2016 Laurence Goodby <lgoodby@google.com> [autotest] Scheduler fix for SYNC_COUNT > 1.

Details in go/autotest-sync-count-fix

BUG=chromium:621257
TEST=Run included tests.

Change-Id: If08df8fb04771a321dbdf2122b885935e7ef3b41
Reviewed-on: https://chromium-review.googlesource.com/358092
Commit-Ready: Laurence Goodby <lgoodby@chromium.org>
Tested-by: Laurence Goodby <lgoodby@chromium.org>
Reviewed-by: Richard Barnette <jrbarnette@chromium.org>
Reviewed-by: Richard Barnette <jrbarnette@google.com>
Reviewed-by: Dan Shi <dshi@google.com>
ost_queue_entry_states.py
b6168e5d23e8916922564de8823f0cd915260c53 29-Jul-2016 Luis Hector Chavez <lhchavez@google.com> [Autotest]: Save Android dumpstate on ARC tests

This change triggers the execution of Android's dumpstate upon test
termination and saves its output to /var/log/arc-dumpstate.log. This
will add 12-20s seconds to every ArcTest and collect an extra 4MB worth
of logs.

BUG=chromium:632836
TEST=/var/log/arc-dumpstate.log is present after an ArcTest.

Change-Id: I11702b49a2e4e2e0884c1ce8dcedce98f98486a3
Reviewed-on: https://chromium-review.googlesource.com/364383
Commit-Ready: Luis Hector Chavez <lhchavez@google.com>
Tested-by: Luis Hector Chavez <lhchavez@google.com>
Reviewed-by: Junichi Uekawa <uekawa@chromium.org>
Reviewed-by: Ricky Zhou <rickyz@chromium.org>
ros/arc_util.py
aaaf6e100dbf4105293de9c92403bf4ea5afc846 29-Jul-2016 xixuan <xixuan@google.com> Autotest: modify auto-update logic to make sure errors won't be eaten.

Since func _start_auto_update will return process id finally, any errors in
triggerring auto-update won't be raised and logged.

This CL propose to:
1. Raise any errors happens in _start_auto_update()
2. Call handler_cleanup() and collect_au_log() no matter auto-update process
succeeds or not.
3. Call kill_au_proc() if error happens in auto-update. It can be executed even
if the current auto-update process has finished, since that pid is not
required for it.
4. Every rpc functions should be retried independently. For example, retry
handler_cleanup won't cause the whole auto-update process
(_start_auto_update()) to be retried.

BUG=chromium:613769
TEST=locally ran 'ds.auto_update([dut], [image_path])';
Ran 'repair' and 'provision test' for DUT from local autotest instance;
Ran unittest.

Changes to be committed:
modified: client/common_lib/cros/dev_server.py
modified: client/common_lib/cros/dev_server_unittest.py

Change-Id: Ia827d584d6010930f3f35fafe451d64c0195be21
Reviewed-on: https://chromium-review.googlesource.com/364583
Commit-Ready: Xixuan Wu <xixuan@chromium.org>
Tested-by: Xixuan Wu <xixuan@chromium.org>
Reviewed-by: Chris Sosa <sosa@chromium.org>
ros/dev_server.py
ros/dev_server_unittest.py
1565be1acdf46506acf71b67395f4296d94b0a13 22-Jul-2016 Junichi Uekawa <uekawa@google.com> Remove hooks for saving logpersistd files.

/data/misc/logd was populated by logpersistd when we were userdebug/eng
images, but now the daemon no longer runs.

TODO: store logcat in all tests other than ArcTest too.

TEST=test_that --board=samus-cheets $IP cheets_FileSystemPermissions
BUG=b:29341443
CQ-DEPEND=CL:*270549

Change-Id: Ic8770bafa02551f112d53c976aff529f7ac1bdbd
Reviewed-on: https://chromium-review.googlesource.com/362202
Commit-Ready: Junichi Uekawa <uekawa@chromium.org>
Tested-by: Junichi Uekawa <uekawa@chromium.org>
Reviewed-by: Junichi Uekawa <uekawa@chromium.org>
Reviewed-by: Hidehiko Abe <hidehiko@chromium.org>
ros/arc_util.py
fa705d2882fb4de845957d1a064c0c268b9d1b2a 29-Jul-2016 Dan Shi <dshi@google.com> [autotest] Don't parse os type from board label

Brillo/Android duts no longer use board label with os type in it.

BUG=chromium:627264
TEST=unittest, local suite scheduler run

Change-Id: Ie36f9b317920c92ec1a677b636506f1c4d711438
Reviewed-on: https://chromium-review.googlesource.com/364292
Commit-Ready: Dan Shi <dshi@google.com>
Tested-by: Dan Shi <dshi@google.com>
Reviewed-by: Kevin Cheng <kevcheng@chromium.org>
ite_utils.py
ite_utils_unittest.py
5dc64eab19add3bca232fc9139845a4e839a1d3a 21-May-2016 xixuan <xixuan@google.com> Autotest: Add logic for devserver to trigger auto-update.

This CL let devserver.py trigger CrOS auto-update for a CrOS host. The code
path now is:
afe -->
cros_host.machine_install_by_devserver() -->
devserver.auto_update() -->
cros_au in Devserver API.

Involving host class is because that there're many host-specific feature
needs to be read. The whole functions are combined with CL:346199, CL:348381.

BUG=chromium:613769
TEST=locally ran 'ds.auto_update([dut], [image_path])';
Ran 'repair' and 'provision test' for DUT from local autotest instance;
Ran unittest.

Changes to be committed:
modified: client/common_lib/cros/dev_server.py
modified: client/common_lib/cros/dev_server_unittest.py
modified: global_config.ini
modified: server/afe_utils.py
modified: server/hosts/cros_host.py

Change-Id: I91ce8d283d97f4bb110d7478714302c4584b171e
Reviewed-on: https://chromium-review.googlesource.com/346484
Commit-Ready: Xixuan Wu <xixuan@chromium.org>
Tested-by: Xixuan Wu <xixuan@chromium.org>
Reviewed-by: Chris Sosa <sosa@chromium.org>
ros/dev_server.py
ros/dev_server_unittest.py
dd05a946c3e3edcceb2844d64e92c73466d5065b 06-Jul-2016 Justin Giorgi <jgiorgi@google.com> [autotest] Added Host for emulated adb devices.

Minor changes to factory and utilities. Added EmulatorManager class to
handle the grunt work and EmulatedADBHost to interface with emulated
devices.

CQ-DEPEND=360512
BUG=None
TEST=Ran dummy tests on emulator with install from go/ab. Also verified
on dragonboard.

Change-Id: I3058e886deeb256e9187c4313d34f807b34eb58d
Reviewed-on: https://chromium-review.googlesource.com/360220
Commit-Ready: Justin Giorgi <jgiorgi@google.com>
Tested-by: Justin Giorgi <jgiorgi@google.com>
Reviewed-by: Simran Basi <sbasi@chromium.org>
ndroid_utils.py
ros/dev_server.py
10548fe5ec9b51a431b1fb932246213a1a017862 20-Jul-2016 Victor Hsieh <victorhsieh@chromium.org> Fix opt-in automation

The #start element is gone and we are now waiting for #terms.

TEST=modified existing test and passed
BUG=None

Change-Id: Ic1cbf6eedd1a4afa1fd59dedc82715e7fba15e92
Reviewed-on: https://chromium-review.googlesource.com/362041
Commit-Ready: Victor Hsieh <victorhsieh@chromium.org>
Tested-by: Victor Hsieh <victorhsieh@chromium.org>
Reviewed-by: Yury Khmel <khmel@google.com>
ros/arc_util.py
31b45e07e0268ec978b2e0bd3748d7c92b46cdec 20-Jul-2016 Kris Rambish <krisr@google.com> Add xbin to the search paths.

Android will store some tools in xbin.

BUG=b:30206157
TEST=Manual; Ran it

Change-Id: I932538d998481e4bc701aff77af9b84eb8983325
Reviewed-on: https://chromium-review.googlesource.com/361870
Commit-Ready: Dan Shi <dshi@google.com>
Tested-by: Kris Rambish <krisr@chromium.org>
Reviewed-by: Tien Chang <tienchang@chromium.org>
ros/path_utils.py
c64d6f280cf6c327f88532e61317eb241840e494 20-Jul-2016 Katherine Threlkeld <kathrelkeld@chromium.org> [Autotest] Fix opt_in() flake source.

Poll for the web_views context instead of just getting it. Other
implementations which use this function do that too. This change
should stop the occasional flake we see in a test which uses this
function.

Also add various docstrings to avoid repo upload errors and adhere
to style guide.

TEST=ran a test 10x times with no failure
BUG=b:30208840

Change-Id: I33dc17e56f179d591ae886452bc7554a6d8cd87e
Reviewed-on: https://chromium-review.googlesource.com/361619
Commit-Ready: Katherine Threlkeld <kathrelkeld@chromium.org>
Tested-by: Katherine Threlkeld <kathrelkeld@chromium.org>
Reviewed-by: David Haddock <dhaddock@chromium.org>
ros/arc_util.py
451e466d460c7e9f5489b18f38d942dd8b4062ff 16-Jul-2016 Nicolas Boichat <drinkcat@google.com> chrome.py: Import arc_util unconditionally

We moved arc_util.py to public repos, so we can simply always import it.

BUG=b/28937952
BUG=chrome-os-partner:55067
TEST=test_that --board=oak 172.30.251.250 power_LoadTest

Change-Id: I01673a4d6a41ceb4428e5c7a5f33b9ca2892a861
Reviewed-on: https://chromium-review.googlesource.com/360937
Commit-Ready: Nicolas Boichat <drinkcat@chromium.org>
Tested-by: Nicolas Boichat <drinkcat@chromium.org>
Reviewed-by: Nicolas Boichat <drinkcat@chromium.org>
ros/chrome.py
84ec4f482b7fd97199e5d2ef2e7f68f1c2127c97 13-Jul-2016 Dan Shi <dshi@google.com> [autotest] Add a script to get the total size of test results uploaded.

The script can help to identify tests that generate too much logs.
A cron job will be created on cautotest to record daily summary to graphite.
Also update es_utils to support scroll command to get large set of results.

BUG=None
TEST=manual test:
python contrib/result_size_summary.py -l 1 -t 3
import common
from autotest_lib.client.common_lib.cros.graphite import autotest_es
from autotest_lib.client.common_lib import time_utils
t_start_epoch = time.time() - 3600*2
t_end_epoch = time.time()
host_history_entries = autotest_es.query(
fields_returned=['time_recorded', 'status'],
equality_constraints=[('_type', 'host_history')],
range_constraints=[('time_recorded', t_start_epoch,
t_end_epoch)],
sort_specs=[{'time_recorded': 'asc'}])

Change-Id: I7d087fc4f674e16f4cb7c23c9125554065382b3c
Reviewed-on: https://chromium-review.googlesource.com/359925
Commit-Ready: Dan Shi <dshi@google.com>
Tested-by: Dan Shi <dshi@google.com>
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
ros/graphite/autotest_es.py
ros/graphite/es_utils.py
4f46aaffdf5ce99bf60d22f4e4e0652343ebecad 25-Jun-2016 Dan Shi <dshi@google.com> [autotest] Support test to upload results to Sponge inside test code.

This allows android_ACTS test to upload results to Sponge including the child
test results in test_run_summary.json file.
The test only needs to make following call at the end of the test:
url = sponge_utils.upload_results_in_test(self, acts_summary='path_to_json')

BUG=chromium:616211
TEST=python site_utils/sponge_utils_functional_test.py

Change-Id: Ida93ffc802a9b9e3eb9d8217b0d7af69ab31f48b
Reviewed-on: https://chromium-review.googlesource.com/356167
Commit-Ready: Dan Shi <dshi@google.com>
Tested-by: Dan Shi <dshi@google.com>
Reviewed-by: Ang Li <angli@google.com>
Reviewed-by: Dan Shi <dshi@google.com>
ecorators.py
20257f0b6214b283f4821cde39425dfffba8b3b6 11-Jul-2016 Nicolas Boichat <drinkcat@google.com> [Autotest] Move arc_common/util.py to public repository

There is no reason to keep these files private, and they break
partner testing.

BUG=b:28937952
BUG=chrome-os-partner:55067
TEST=Move away autotest-tests-cheets,
test_that --board=oak 172.30.251.250 power_LoadTest
CQ-DEPEND=CL:*269096

Change-Id: I949885f01e2722270c356c8c8499d01db648356d
Reviewed-on: https://chromium-review.googlesource.com/360052
Commit-Ready: Nicolas Boichat <drinkcat@chromium.org>
Tested-by: Nicolas Boichat <drinkcat@chromium.org>
Reviewed-by: Victor Hsieh <victorhsieh@chromium.org>
ros/arc_common.py
ros/arc_util.py
5ec6ba580405c1cf563deeee5f6518e239717b7c 12-Jul-2016 harpreet <harpreet@google.com> Fix flakiness in the CFM stress test.

Adding a poll for whether hotrod app is ready for hangout session before
proceeding with trying to start a session.

BUG=None
TEST=Locally

Change-Id: I8c4e7fdb2694543320760f33e233d1dcc2ac6813
Reviewed-on: https://chromium-review.googlesource.com/359983
Reviewed-by: Rohit Makasana <rohitbm@chromium.org>
Tested-by: Harpreet Grewal <harpreet@chromium.org>
ros/cfm_util.py
9aec6930955ea7d3d345cf2d214f9e6982f84cb8 03-Jun-2016 Richard Barnette <jrbarnette@chromium.org> [autotest] Remove the last of the support for kernel selection.

This removes all the vestiges related to support selecting a kernel
for test from client side code. This completes removal of all such
code from the Chrome OS fork of Autotest.

N.B. It's possible that there are still design concepts within the
code that exist primarily for the benefit of kernel selection.
Finding and simplifying those design concepts are left for the
next intrepid developer.

BUG=chromium:266704
TEST=Run push_to_prod suite in a local instance.

Change-Id: I7a8bbee0f58c14c4826689d5d04999b3708ad5f6
Reviewed-on: https://chromium-review.googlesource.com/349710
Commit-Ready: Richard Barnette <jrbarnette@chromium.org>
Tested-by: Richard Barnette <jrbarnette@chromium.org>
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
ase_job.py
ase_job_unittest.py
oottool.py
oottool_unittest.py
og.py
fe4d62e304695d4e2a35993af15740b74a416ee8 23-Jun-2016 Shuqian Zhao <shuqianz@chromium.org> update_engine: Add retry to the update_engine check status call

Based on the discussion in the bug, there could exist a race condition
between the update_engine start deamon and the update_engine_client
call. Add a retry to check_update_status call to wait for the update_engine
is ready. And also remove the 2>&1 in several places to show up the logs that
could helpful for debug.

BUG=chromium:588828
TEST=TEST in a test DUT. Stop update_engine on the DUT, and run the check
status call and the DUT retried.

Change-Id: I214f5029397c25847c4ed52590b00a10bc918227
Reviewed-on: https://chromium-review.googlesource.com/355692
Commit-Ready: Shuqian Zhao <shuqianz@chromium.org>
Tested-by: Shuqian Zhao <shuqianz@chromium.org>
Reviewed-by: Shuqian Zhao <shuqianz@chromium.org>
ros/autoupdater.py
866447e402d4583129ff21ddc621c7a4993ce869 02-Jul-2016 Wei-Ning Huang <wnhuang@chromium.org> network_WlanDriver: add support for Marvell 8997 on kernel 4.4

Kevin uses Marvell 8W8997 via PCIE interface.

BUG=chrome-os-partner:52323
TEST=`test_that -b kevin dut network_WlanDriver`

Change-Id: Iea382487e560dca6bf1438cf575f4c6e0e07cf14
Reviewed-on: https://chromium-review.googlesource.com/358280
Commit-Ready: Wei-Ning Huang <wnhuang@chromium.org>
Tested-by: Wei-Ning Huang <wnhuang@chromium.org>
Reviewed-by: Mao Huang <littlecvr@chromium.org>
ros/network/interface.py
67ad67d564fd605dc0ac3671b1620a601cfc6c90 29-Jun-2016 Justin Giorgi <jgiorgi@google.com> [autotest] Removed copy of unittest library.

All tests still pass with the standard unittest library.

BUG=None
TEST=Executed utils/unittest_suite.py locally

Change-Id: I86f7e2884282bca0fcb240fe2f70c4adb71f8ddf
Reviewed-on: https://chromium-review.googlesource.com/357330
Commit-Ready: Justin Giorgi <jgiorgi@google.com>
Tested-by: Justin Giorgi <jgiorgi@google.com>
Reviewed-by: Richard Barnette <jrbarnette@google.com>
Reviewed-by: Simran Basi <sbasi@chromium.org>
ase_job_unittest.py
est_utils/unittest.py
0a30d467b58126b10589cad8be448ebe4f5a530b 27-Jun-2016 Michael Tang <ntang@google.com> Honor the results_storage_server parameter in moblab.

By default, the results_storage_server in global_config.ini is empty
now. Both lab and moblab could set the value and take effect. If not
set, the lab takes the original default value, and moblab takes the
image bucket uri.

BUG=chromium:621212
TEST=unit test.

Change-Id: Ifd712b53bcffa76af17db8cd4d87947323291b08
Reviewed-on: https://chromium-review.googlesource.com/356126
Commit-Ready: Michael Tang <ntang@chromium.org>
Tested-by: Michael Tang <ntang@chromium.org>
Reviewed-by: Simran Basi <sbasi@chromium.org>
Reviewed-by: Michael Tang <ntang@chromium.org>
ite_utils.py
ite_utils_unittest.py
56f9b23075ee81c4a122b02f8ee2285c35bc9a63 24-Jun-2016 Nicolas Norvez <norvez@chromium.org> Fix security_NetworkListeners in bvt-inline test suite

Common Lib:
Make chrome.is_arc_available() method public so tests can detect if the
board is ARC-enabled or not at runtime

NetworkListeners test:
Detect if ARC is available at runtime and use the applicable baseline
to know which listening services to expect

BUG=chromium:620781
TEST=test run as part of both bvt_inline and arc-bvt-cq passes on cyan
and cyan-cheets

Change-Id: I629c2486da9a27968494764f935b738eb5c45c8f
Reviewed-on: https://chromium-review.googlesource.com/355685
Commit-Ready: Nicolas Norvez <norvez@chromium.org>
Tested-by: Nicolas Norvez <norvez@chromium.org>
Reviewed-by: Victor Hsieh <victorhsieh@chromium.org>
Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
ros/chrome.py
3d97d21b14692fc8fc67cb2c610bd20355236518 24-Jun-2016 Todd Broch <tbroch@chromium.org> file_utils.py: fix urllib2 attribute error.

urrllib2.URLError's message atrribute is obj.message not obj.msg.

BUG=chrome-os-partner:52264,chrome-os-partner:54277
TEST=none

Change-Id: Ifc46a64cdfb05871eaee38ff5c854e0d3ac7d02f
Reviewed-on: https://chromium-review.googlesource.com/355683
Commit-Ready: Todd Broch <tbroch@chromium.org>
Tested-by: Todd Broch <tbroch@chromium.org>
Reviewed-by: Ravi Chandra Sadineni <ravisadineni@chromium.org>
ile_utils.py
d76ed50c6cd468975a8ae7e295e3d75a4e1184cb 21-Jun-2016 Justin Giorgi <jgiorgi@google.com> Improved tests for host mod and create commands.

This is preparation for a refactor of the logic for those commands. For
host mod removed the --ignore_site_file flag to ensure real logic is
always tested. For host create replaced the existing tests with tests
that cover the site logic including all command line arguments.

Remaining changes are to satisfy linter. Any comments on the docstrings
will be welcome. Much of it was inferred from calls I could find in the
codebase.

BUG=None
TEST=Yes, lots of them

Change-Id: Ib882c54318bca0f29f48de0da8c8f2df5e090a0c
Reviewed-on: https://chromium-review.googlesource.com/354552
Commit-Ready: Justin Giorgi <jgiorgi@google.com>
Commit-Ready: Justin Giorgi <jgiorgi@chromium.org>
Tested-by: Justin Giorgi <jgiorgi@google.com>
Tested-by: Justin Giorgi <jgiorgi@chromium.org>
Reviewed-by: Simran Basi <sbasi@chromium.org>
osts/base_classes.py
32731c78c21e72217168a684c8d52db41dd5f7e9 15-Jun-2016 harpreet <harpreet@google.com> Fix CFM autotest flakes and cleanup tests.

Session stress and peripheral detect tests have been flaky and failing
randomly for some runs. This CL is an attempt to fix the flakiness and
cleanup some tests.

BUG=None
TEST=Locally

Change-Id: Ia58e8a53045130113544b9ee402add901e3ab377
Reviewed-on: https://chromium-review.googlesource.com/352814
Commit-Ready: Harpreet Grewal <harpreet@chromium.org>
Tested-by: Harpreet Grewal <harpreet@chromium.org>
Reviewed-by: Kalin Stoyanov <kalin@chromium.org>
ros/cfm_util.py
0dd90a3cae37492ae05fe349c3f5d47c84d9a1f2 17-Jun-2016 Dan Shi <dshi@google.com> [autotest] Collect time used for call devserver_healthy

BUG=None
TEST=local run

Change-Id: If4c93d342fc40f9c1040b17a2fec44e8fc527940
Reviewed-on: https://chromium-review.googlesource.com/353402
Trybot-Ready: Dan Shi <dshi@google.com>
Tested-by: Dan Shi <dshi@google.com>
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
ros/dev_server.py
eb0d2495608f26a6a416280a0dd4b870497737be 17-Jun-2016 xixuan <xixuan@google.com> Autotest: add logs in is_stage.

This CL logs the return result or error information of API is_stage in
devserver.

BUG=None
TEST=unittest

Change-Id: I5b49adb57e6b034a352d8ec1ad9e8620ed49fd7f
Reviewed-on: https://chromium-review.googlesource.com/353652
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
Tested-by: Aviv Keshet <akeshet@chromium.org>
ros/dev_server.py
75e859c8114572ab88c7b2003303389754809b96 17-Jun-2016 Aviv Keshet <akeshet@chromium.org> autotest: dev_server.py increase timeouts for ssh-wrapped calls

BUG=chromium:620485
TEST=None

Change-Id: I7231141a24532fccf22e3aa0e9d8ac58ee8679a6
Reviewed-on: https://chromium-review.googlesource.com/353551
Reviewed-by: Dan Shi <dshi@google.com>
Tested-by: Aviv Keshet <akeshet@chromium.org>
ros/dev_server.py
ba31601061b723086f28b44eed2a9ee20ab57734 17-Jun-2016 Chung-yih Wang <cywang@google.com> dev_server: Fix timeout value

As we changed the timeout to 100 mins in is_staged polling, this
patch fixed the one in remote_devserver_call which governs the
overall timeout in decorator.

BUG=chromium:620822
TEST=None

Change-Id: Ibdc4adb28aba91f948dbeb38bc3bd14acb604f34
Signed-off-by: Chung-yih Wang <cywang@google.com>
Reviewed-on: https://chromium-review.googlesource.com/353560
Reviewed-by: Ilja H. Friedel <ihf@chromium.org>
Reviewed-by: Ben Cheng <bccheng@chromium.org>
Reviewed-by: Dan Shi <dshi@google.com>
Reviewed-by: Xixuan Wu <xixuan@chromium.org>
ros/dev_server.py
20b4120c820669a54938719a4231c23cd3242d46 14-Jun-2016 harpreet <harpreet@google.com> Add kiosk enterprise enrollment test.

Test to enrollment the device in kiosk mode. This test relies on kiosk
app attributes including name and extension id which are provided via
the server side control file as well as login credentials for each
different kiosk app. These credentials are stored in
credentials.<app_name> file next to the enterprise_KioskEnrollment.py.
By default if no kiosk app attributes are provide, the device will
enroll using the default credentials in credentials.chromesign.

BUG=None
TEST=Locally

Change-Id: Ic0b2df9f95ff3467618f79f728425e0993c49d8a
Reviewed-on: https://chromium-review.googlesource.com/352245
Commit-Ready: Harpreet Grewal <harpreet@chromium.org>
Tested-by: Harpreet Grewal <harpreet@chromium.org>
Reviewed-by: Kalin Stoyanov <kalin@chromium.org>
ros/cfm_util.py
ros/enrollment.py
ccf2e72170237a6111d56c6956eb1732972a9ad8 11-Jun-2016 xixuan <xixuan@google.com> Autotest: delete http call to devserver for new ACL

Since new ACL forbiddens all ports except for port 22, this CL deletes the
direct http call to devserver in pre-check process of auto-update. It's
replaced by devserver healthy check, which uses inherited call to connect
to devserver. The inherited call in devserver use port 22 when the new ACL
applies.

BUG=chromium:618510
TEST=run local autotest instance and 'repair' job for dut to check the logic.

Change-Id: Ib30af06d34df68c0fca608b3263397ca49796b9f
Reviewed-on: https://chromium-review.googlesource.com/351681
Commit-Ready: Xixuan Wu <xixuan@chromium.org>
Tested-by: Xixuan Wu <xixuan@chromium.org>
Reviewed-by: Dan Shi <dshi@google.com>
ros/autoupdater.py
cf350eed553288507f2f35e2c8b5ce779d64be13 14-Jun-2016 Ricky Zhou <rickyz@chromium.org> Pass a Chrome object to post_processing_after_browser.

https://chromium-review.googlesource.com/#/c/351590/ changed it to take
arc_mode instead of self, but the callee expects a Chrome object.

TEST=Autotest on cheets.
BUG=None

Change-Id: I611542579e76d1b64a7610e8ec396d9832b9715b
Reviewed-on: https://chromium-review.googlesource.com/352290
Reviewed-by: Luis Hector Chavez <lhchavez@google.com>
Commit-Queue: Ricky Zhou <rickyz@chromium.org>
Trybot-Ready: Ricky Zhou <rickyz@chromium.org>
Tested-by: Ricky Zhou <rickyz@chromium.org>
ros/chrome.py
d6d56ba1d43916f90c04e8828ad5ab78eb55267b 10-Jun-2016 F#m <malaykeshav@google.com> Adds option to enable the use of arc opt-in flow if required during tests

BUG=b:26715832
TEST=Ran test_that for various autotests with disable_arc_opt_in set to
False.

- Adds an additional parameter to initialize Chrome.

Change-Id: I643068cff36fb372013c31377b15fae5be3efb2b
Reviewed-on: https://chromium-review.googlesource.com/351590
Trybot-Ready: Malay Keshav <malaykeshav@google.com>
Reviewed-by: Malay Keshav <malaykeshav@google.com>
Commit-Queue: Malay Keshav <malaykeshav@google.com>
Tested-by: Malay Keshav <malaykeshav@google.com>
Reviewed-by: Yury Khmel <khmel@google.com>
ros/chrome.py
f3469ec291a20b9d27eb8d633781c789aae53038 09-Jun-2016 Achuith Bhandarkar <achuith@chromium.org> Support for normalizing email.

Remove dots from username, add @gmail.com if necessary.
Allow username, password to be specified for login_GaiaLogin.

BUG=chromium:618466
TEST=login_GaiaLogin

Change-Id: I8cd1340ec90e0d6d750cbde39cdbbcab3960ac0c
Reviewed-on: https://chromium-review.googlesource.com/351120
Commit-Ready: Achuith Bhandarkar <achuith@chromium.org>
Tested-by: Achuith Bhandarkar <achuith@chromium.org>
Reviewed-by: Jacob Dufault <jdufault@chromium.org>
ros/chrome.py
18ed0ea21e71afb9a5da1b7511c1efbbae8523d6 09-Jun-2016 xixuan <xixuan@google.com> Autotest: add logging to record the IOError in connection to devserver.

BUG=chromium:618510
TEST=None

Change-Id: I76e2dbc49a36a727df62af93f4e39790604a09c0
Reviewed-on: https://chromium-review.googlesource.com/351091
Reviewed-by: Kris Rambish <krisr@chromium.org>
Commit-Queue: Xixuan Wu <xixuan@chromium.org>
Tested-by: Xixuan Wu <xixuan@chromium.org>
ros/autoupdater.py
6dc174e9fc08f7ff6e9cd545bf20607d9a7ceb09 01-Jun-2016 Michael Tang <ntang@google.com> Shows the image when clone a suite job or its child job.

BUG=chromium:485813
TEST=unit test and manual test.

Change-Id: I044991928513cea2c06eb6db8b31eeba6ea29289
Reviewed-on: https://chromium-review.googlesource.com/348482
Commit-Ready: Michael Tang <ntang@chromium.org>
Tested-by: Michael Tang <ntang@chromium.org>
Reviewed-by: Simran Basi <sbasi@chromium.org>
Reviewed-by: Michael Tang <ntang@chromium.org>
ontrol_data.py
8a0bd70dffa81b4e9b334ca188b186cf0cab9d74 04-Jun-2016 Brian Norris <briannorris@chromium.org> client: move restart_job() helper into upstart library

It's helpful to have similar helpers all in one place.

BUG=chromium:616778
TEST=run the affected tests (e.g., power_VideoDetector)

Change-Id: Ife4dea334257a0166a741fc3ad03b1c911385d6c
Signed-off-by: Brian Norris <briannorris@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/349676
Reviewed-by: Dan Erat <derat@chromium.org>
ase_utils.py
ee9fd7da7b83b84f753f7f12b1aaa0e0b11c6762 02-Jun-2016 harpreet <harpreet@google.com> Adding volume change test for hotrod kiosk app.

Adding a test that changes the hangouts volume using hotrod kiosk app JS
hooks and validates the change against cras_test_client output.

BUG=chromium:614885
TEST=Locally

Change-Id: I720c92cbe8d31fcf372b7493af6aa31978892668
Reviewed-on: https://chromium-review.googlesource.com/349241
Commit-Ready: Harpreet Grewal <harpreet@chromium.org>
Tested-by: Harpreet Grewal <harpreet@chromium.org>
Reviewed-by: Harpreet Grewal <harpreet@chromium.org>
Reviewed-by: Kalin Stoyanov <kalin@chromium.org>
Reviewed-by: Jenny Zhang <jennyz@chromium.org>
ros/cfm_util.py
2f7dc503c33d769a93a95229a2d9a34a36abcde7 02-Jun-2016 Richard Barnette <jrbarnette@chromium.org> [autotest] Recognize nyan_blaze-freon for servo board conversion.

Recognize "-freon" in servo_afe_board_map, so that the build name
"nyan_blaze-freon" will be recognized as servo board "nyan_blaze".
Update the unit tests to prove that it's true.

BUG=chromium:478339
TEST=unit tests

Change-Id: Iaad79a1e633b6493d8b71a7c84ced0018b20b9a3
Reviewed-on: https://chromium-review.googlesource.com/349211
Commit-Ready: Richard Barnette <jrbarnette@chromium.org>
Tested-by: Richard Barnette <jrbarnette@chromium.org>
Reviewed-by: Kevin Cheng <kevcheng@chromium.org>
ros/servo_afe_board_map.py
ros/servo_afe_board_map_unittest.py
f37b2d72fd2fd7a21a8cc0a377b2f93d53f75a68 02-Jun-2016 Aviv Keshet <akeshet@chromium.org> [autotest] eliminate exception-passing multiprocess queue

Now that multiprocess usage has been eliminated, we no longer need the
complexity of the update_error_queue

BUG=chromium:547548
TEST=trybot

Change-Id: I13bc02306ebac68eb0d0a6795b39af8a4cbe0830
Reviewed-on: https://chromium-review.googlesource.com/348961
Commit-Ready: Aviv Keshet <akeshet@chromium.org>
Tested-by: Aviv Keshet <akeshet@chromium.org>
Reviewed-by: Chris Sosa <sosa@chromium.org>
ros/autoupdater.py
2610d3e4da4a3af1884b56dc8299974beb2a7ed0 02-Jun-2016 Aviv Keshet <akeshet@chromium.org> [autotest] autoupdater.py run rootfs update and stateful update in series

Stateful update takes <1 minute, and running it in parallel with rootfs
update only adds complexity to the logs and risk of flake.

BUG=chromium:547548
TEST=moblab tryjob

Change-Id: I8f60a7398973accd00d47b0e924366bbbbca0209
Reviewed-on: https://chromium-review.googlesource.com/348857
Commit-Ready: Aviv Keshet <akeshet@chromium.org>
Tested-by: Aviv Keshet <akeshet@chromium.org>
Reviewed-by: Chris Sosa <sosa@chromium.org>
ros/autoupdater.py
a362e9651da32caeb58bc524d83009b8a0189c47 01-Jun-2016 Hidehiko Abe <hidehiko@chromium.org> Add extra_paths to utils.run.

This adds a convenient optinal parameter |extra_paths| to the
utils.run. If it is set, the paths are prepended to PATH
in environment variable, so that executable binaries in the
directory can be accessible from its subprocess.

BUG=None
TEST=Ran with setting extra_paths.

Change-Id: I02f0fc816b62ea49305f5874d04604cf6c3d30b7
Reviewed-on: https://chromium-review.googlesource.com/348604
Commit-Ready: Hidehiko Abe <hidehiko@chromium.org>
Tested-by: Hidehiko Abe <hidehiko@chromium.org>
Reviewed-by: Chung-yih Wang <cywang@google.com>
Reviewed-by: Junichi Uekawa <uekawa@chromium.org>
Reviewed-by: Rohit Makasana <rohitbm@chromium.org>
ase_utils.py
8462b88ad43b2c09ae7647c49298b718e5808b99 31-May-2016 Shuhei Takahashi <nya@chromium.org> Pass Chrome object to ARC specific hooks.

CQ-DEPEND=CL:*261222
BUG=b:26700652
TEST=test_that minnie <some ARC tests>

Change-Id: If8f18cad9e89f6777422ec98efe8f3dd69cfc8fe
Reviewed-on: https://chromium-review.googlesource.com/348106
Commit-Ready: Shuhei Takahashi <nya@chromium.org>
Tested-by: Shuhei Takahashi <nya@chromium.org>
Reviewed-by: Victor Hsieh <victorhsieh@chromium.org>
ros/chrome.py
d1881ad74b732affb1575d04db5ab01af14dabf0 26-May-2016 Hidehiko Abe <hidehiko@chromium.org> Move poll_for_condition to common_lib.

Some server test starts to use it, and there is no reason
to keep it in client.bin.site_utils from implementation
perspective.

This CL moves it to client.common_lib.site_utils, thus
test code can access to it via autotest_lib.server.utils,
instead of client.bin.utils.

Note that it is still accessible from client.bin.utils, so
no client side change is needed at the moment.

In future, probably it would be better to integrate the
function to client.common_lib.base_utils.wait_for_value() and
wait_for_value_changed(), but it is not the goal of this CL.

BUG=None
TEST=Ran locally.

Change-Id: Ic15df9d87c96ae459267cd157bbbb408abca6bfd
Reviewed-on: https://chromium-review.googlesource.com/347562
Commit-Ready: Hidehiko Abe <hidehiko@chromium.org>
Tested-by: Hidehiko Abe <hidehiko@chromium.org>
Reviewed-by: Dan Shi <dshi@google.com>
ite_utils.py
1724f9573c8b4bd7eebb587bdd39f30cda70c58a 26-May-2016 Dan Shi <dshi@google.com> Change logging formatter to include thread name in testbed provision.

When provisioning duts connected to testbed, change logging formatter to include
thread name. This is to help logs from each provision runs have the dut's
serial, which is set as the thread name.

BUG=b:28848023
TEST=local run, sample log:
dshi1.mtv/results/1046-debug_user/100.96.51.111/debug/autoserv.DEBUG

Change-Id: I02c9641951ef0b7db336466cc97fac72a7f68365
Reviewed-on: https://chromium-review.googlesource.com/347511
Commit-Ready: Dan Shi <dshi@google.com>
Tested-by: Dan Shi <dshi@google.com>
Reviewed-by: Kevin Cheng <kevcheng@chromium.org>
ogging_config.py
e33080bbdc664be8ab9048315010077e1efa515c 27-May-2016 harpreet <harpreet@google.com> Add new API calls to cfm_utils

Add additional functions for hangouts API calls to cfm_utils.

BUG=None
TEST=None

Change-Id: I380360d0b8ec764d4c64189c573b794ed4c3f6fa
Reviewed-on: https://chromium-review.googlesource.com/347900
Commit-Ready: Harpreet Grewal <harpreet@chromium.org>
Tested-by: Harpreet Grewal <harpreet@chromium.org>
Reviewed-by: Harpreet Grewal <harpreet@chromium.org>
ros/cfm_util.py
a1b2c8d670741d2a114337c22ef4cb29e4be0c41 21-May-2016 Richard Barnette <jrbarnette@chromium.org> [autotest] Remove the unused utils.send_email().

The autotest sources seem to have multiple functions for sending
e-mail in use. Then there's utils.send_email(), which is unused.

This change removes the unused function.

BUG=None
TEST=grep, see that the uses of this name all refer to other functions

Change-Id: I082a4833c9c18a43d7b70c6de66799892115af66
Reviewed-on: https://chromium-review.googlesource.com/346218
Commit-Ready: Richard Barnette <jrbarnette@chromium.org>
Tested-by: Richard Barnette <jrbarnette@chromium.org>
Reviewed-by: Simran Basi <sbasi@chromium.org>
ase_utils.py
0cb2fba11d0fb809cea80e38674cc82ce112d548 13-May-2016 Victor Dodon <printesoi@chromium.org> [autotest] use urlparse instead of regex for urls

Use urlparse instead of regexes in get_server_name and get_server_url.
This also fixes a bug that leads to returning wrong server name when
hostname begins with a sequence of at least on of h,t,p.

BUG=None
TEST=manual

Change-Id: I372172656044e5bcc2ff48ff69b7fdc8db293bc4
Reviewed-on: https://chromium-review.googlesource.com/345931
Commit-Ready: Victor Dodon <printesoi@chromium.org>
Tested-by: Victor Dodon <printesoi@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>
ros/dev_server.py
5f5579e6f825cf33bb022c08a1b2ab95bcb9d1d7 11-May-2016 Richard Barnette <jrbarnette@chromium.org> [autotest] Bury more virtualization code.

This deletes two unused modules and tests related to kvm virtualization.

BUG=None
TEST=git grep, see that the modules are unused

Change-Id: I317c1d9d64d3663f7209a85e3f4048f80281dd39
Reviewed-on: https://chromium-review.googlesource.com/343919
Commit-Ready: Richard Barnette <jrbarnette@chromium.org>
Tested-by: Richard Barnette <jrbarnette@chromium.org>
Reviewed-by: Dan Shi <dshi@google.com>
rror.py
53558128ecfc6e36bb61cab5e40ac54d66b98ef6 07-May-2016 Dan Shi <dshi@google.com> [autotest] Raise DevServerException if devserver response contains error.

When global config enable_ssh_connection_for_devserver is set to True, devserver
calls are made by ssh to devserver and run a curl command to devserver request.
If the devserver request failed, the curl command won't return a
urllib2.HTTPError, instead, it just returns the string of the HTTP response.
Without that error, client will repeatedly make the request until timeout, which
misleads user to think devserver has some issue.

This change checks the HTTP response to see if there is any certain string of
exception raised by devserver. It's the most reliable way but the only thing
available for now.

BUG=b:28643167
TEST=local run
set enable_ssh_connection_for_devserver to True
Try to make some devserver call that known will fail, e.g.,
import common

from autotest_lib.client.common_lib.cros import dev_server

build_info = {'branch': 'git_mnc-release',
'target': 'shamu-userdebug',
'build_id': '2419303', 'os_type': 'android'}

build_name = '%(branch)s/%(target)s/%(build_id)s' % build_info
devserver = dev_server.AndroidBuildServer.resolve(build_name, 'localhost')
devserver.stage_artifacts(build_info['target'], build_info['build_id'],
build_info['branch'],
artifacts=['none_existing_package'])

Change-Id: I53faf12182a67085bf331976eb90267a6dc54b34
Reviewed-on: https://chromium-review.googlesource.com/343291
Commit-Ready: Dan Shi <dshi@google.com>
Tested-by: Dan Shi <dshi@google.com>
Reviewed-by: Xixuan Wu <xixuan@chromium.org>
ros/dev_server.py
43651acdf736d03f2591acef9893c029e8b149d6 20-Apr-2016 Victor Hsieh <victorhsieh@chromium.org> Isolate ARC specific logic from Chrome

CQ-DEPEND=CL:*256462
TEST=test_that some tests
BUG=None

Change-Id: I40d16414adecf14e52b088c83a8aac6463843383
Reviewed-on: https://chromium-review.googlesource.com/340437
Commit-Ready: Victor Hsieh <victorhsieh@chromium.org>
Tested-by: Victor Hsieh <victorhsieh@chromium.org>
Reviewed-by: Achuith Bhandarkar <achuith@chromium.org>
ros/chrome.py
c32ef4d9f8a9f659cafdfaeebfdcfcb6d3356211 21-Apr-2016 Richard Barnette <jrbarnette@chromium.org> [autotest] Delete client/tests/kvm and related dead code.

This deletes code related to kernel tests for KVM (N.B. _not_ the
Chrome OS tests that run inside KVM in the builders), as well as
various client-side libraries that become dead after the deletion.

BUG=None
TEST=Run push_to_prod suite on a local instance

Change-Id: I6cb49f7c0eac5da07c27112071e0effda69f2a7a
Reviewed-on: https://chromium-review.googlesource.com/340243
Commit-Ready: Richard Barnette <jrbarnette@chromium.org>
Tested-by: Richard Barnette <jrbarnette@chromium.org>
Reviewed-by: Kevin Cheng <kevcheng@chromium.org>
Reviewed-by: Dan Shi <dshi@google.com>
ase_utils.py
artesian_config.py
rror.py
e7848fce8d0f7289153fa4c71d164d6a9368b897 22-Apr-2016 Dan Shi <dshi@google.com> [autotest] Allow restricted_subnet to use : as delimiter

This is for backwards compatibility with older builds.

BUG=None
TEST=unittest

Change-Id: I06fe9f0f6bec926d1af031801b26ab3fef89c1d2
Reviewed-on: https://chromium-review.googlesource.com/340263
Reviewed-by: Dan Shi <dshi@google.com>
Commit-Queue: Dan Shi <dshi@google.com>
Tested-by: Dan Shi <dshi@google.com>
ite_utils.py
9b5f5fa00de341abf3da00e1a7f6ecc27a247904 20-Apr-2016 Rohit Makasana <rohitbm@chromium.org> Run CrOS bvt-cq tests using Chrome with ARC mode enabled.

This is to ensure that bvt-cq doesn't encounter any regression when
ARC is enabled.

TEST=ran locally
BUG=b/27599221

Change-Id: Ib98f51112bee24fc4380c270777bb0e5b3125e36
Reviewed-on: https://chromium-review.googlesource.com/339850
Commit-Ready: Rohit Makasana <rohitbm@chromium.org>
Tested-by: Rohit Makasana <rohitbm@chromium.org>
Reviewed-by: Victor Hsieh <victorhsieh@chromium.org>
ros/chrome.py
49d451fac1f3189ea2dc84c544d4207059bc65fe 19-Apr-2016 Dan Shi <dshi@google.com> [autotest] Allow global config to specify list of images to install in Android.

This change adds the support to specify list of images to install in Android.
For example:
[CLIENT]
android_standalone_images_shamu: bootloader.img
android_artifacts_shamu: bootloader_image, zip_images, test_zip

Above settings will allow shamu device to skip flashing radio.img

BUG=b:28087501
TEST=unittest, local run

Change-Id: I0b83fd9be69c6a09e4d8da161bdfd1285d7db0a7
Reviewed-on: https://chromium-review.googlesource.com/339848
Commit-Ready: Dan Shi <dshi@google.com>
Tested-by: Dan Shi <dshi@google.com>
Reviewed-by: Kevin Cheng <kevcheng@chromium.org>
ndroid_utils.py
ros/dev_server.py
ros/dev_server_unittest.py
a96aff052fa67057f5cdd70cafe7b5f9cb795989 29-Mar-2016 xixuan <xixuan@google.com> Autotest: Add specified exception type to Retry for dev_server and servo

After adding ssh feature to dev_server and servo, we need to do retry
when meeting error.CmdError (ssh error). However a specified error type
needs to raised after retry, in order to be caught by its caller.

For example, a caller needs to call dev_server.get_control_file(). The ideal
case is we retry ssh connections to dev_server if it fails. When retry
is finished, we need it to raise a DevServerException, which is
currently caught by the caller.

This CL adds a specified exception to raise in retry, and also
refactors the error msg raising processes.

BUG=chromium:598496
TEST=Checked dev_server and servo raise the corresponding error types in
local autotest instance. Ran dev_server_unittest.

Change-Id: I53ad52b2c397beeb922d75539b63eaf9b6632c86
Reviewed-on: https://chromium-review.googlesource.com/335901
Commit-Ready: Xixuan Wu <xixuan@chromium.org>
Tested-by: Xixuan Wu <xixuan@chromium.org>
Reviewed-by: Xixuan Wu <xixuan@chromium.org>
ros/dev_server.py
ros/dev_server_unittest.py
ros/retry.py
05bcd7973513dc868a5479f5df8165874a71947e 15-Apr-2016 Ilja H. Friedel <ihf@chromium.org> autotest: improve readability of logs (2).

This change overrides logging.*() autotest output on the client,
which normally is diverted to a file (like in this instance
/usr/local/autotest/results/default/debug/client.0.WARNING)
to also be appended to /var/log/messages using the "logger"
command.

This change is purely client/DUT side.

Also a tiny bit of pylint cleanup.

BUG=chromium:598517, chromium:602780
TEST=test_that, grep /var/log/messages for "autotest" like
2016-04-14T22:10:22.089065-07:00 NOTICE autotest[18004]: 22:10:22.084 WARNI| test:0606| Autotest caught exception when running
test:#012Traceback (most recent call last):#012 File "/usr/local/autotest/common_lib/test.py", line 600, in _exec#012
_call_test_function(self.execute, *p_args, **p_dargs)#012 File "/usr/local/autotest/common_lib/test.py", line 804, in _call_test_function#012
return func(*args, **dargs)#012 File "/usr/local/autotest/common_lib/test.py", line 461, in execute#012 dargs)#012 File
"/usr/local/autotest/common_lib/test.py", line 347, in _call_run_once_with_retry#012 postprocess_profiled_run, args, dargs)#012 File
"/usr/local/autotest/common_lib/test.py", line 376, in _call_run_once#012 self.run_once(*args, **dargs)#012 File
"/usr/local/autotest/tests/graphics_dEQP/graphics_dEQP.py", line 538, in run_once#012 self._filter)#012TestNAError: No test cases found for
filter: dEQP-EGL.info!
2016-04-14T22:10:23.220747-07:00 NOTICE autotest[18316]: 22:10:23.208 ERROR| parallel:0026| child process failed

Change-Id: Ic141b10536807fd2c7af18d212620571d2da7944
Reviewed-on: https://chromium-review.googlesource.com/339013
Commit-Ready: Ilja Friedel <ihf@chromium.org>
Tested-by: Ilja Friedel <ihf@chromium.org>
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
ogging_config.py
6fb9387b516e7b88fec91b43ad659f1d904dd9ea 19-Apr-2016 Achuith Bhandarkar <achuith@chromium.org> Some tests are failing with the new code, so they are using old catapult. I was too hasty in removing this.

Revert "Remove cruft in gaia_id and extensions_to_load."

This reverts commit 2d706d8c2fd72cd74a076b2cf815f498f4ee3d73.

Change-Id: I3f7d230a174b3c5943e76ed71e809bded1c36193
Reviewed-on: https://chromium-review.googlesource.com/339673
Commit-Ready: Achuith Bhandarkar <achuith@chromium.org>
Tested-by: Achuith Bhandarkar <achuith@chromium.org>
Reviewed-by: harpreet Grewal <harpreet@chromium.org>
ros/chrome.py
0f7755d1e9ceca25f95ebb01dd05f040f154cba3 18-Apr-2016 xixuan <xixuan@google.com> Autotest: Make autotest call the new devserver API list_suite_controls

Related to CL:338931, this CL is to change the code in autotest to call
the API: list_suite_controls, to get the control contents of all control
files in one call to devserver.

BUG=chromium:602562
TEST=Ran dev_server_unittest, control_file_getter_unittest,
suite_unittest.py, site_rpc_interface_unittest for
ENABLE_CONTROLS_IN_BATCH=False/True;
Ran test_suite:dummy in local autotest instance using local devserver
for ENABLE_CONTROLS_IN_BATCH=False/True.

Change-Id: I075fad07b79827a5d78b7de371bba845fcdf09b1
Reviewed-on: https://chromium-review.googlesource.com/339480
Commit-Ready: Dan Shi <dshi@google.com>
Tested-by: Xixuan Wu <xixuan@chromium.org>
Reviewed-by: Dan Shi <dshi@google.com>
ros/dev_server.py
ros/dev_server_unittest.py
rror.py
b1127af6fde9d8fb944332acf51e1459176476ad 19-Apr-2016 Dan Shi <dshi@google.com> [autotest] Bug fix in get_available_devservers call.

The call returns a tupple of devservers, can_retry. Only devservers value
should be used for get_healthy_devserver call.

BUG=chromium:604702
TEST=unittest

Change-Id: I0e48ca653b14ca69700ccdc401bee11c917e818c
Reviewed-on: https://chromium-review.googlesource.com/339564
Reviewed-by: Dan Shi <dshi@google.com>
Commit-Queue: Dan Shi <dshi@google.com>
Tested-by: Dan Shi <dshi@google.com>
ros/dev_server.py
01b28a630230336c3277dd7b9d375ee012931b77 18-Apr-2016 Dan Shi <dshi@google.com> [autotest] Update AU test to select a devserver based on host location

This CL also cleans up how devserver is selected based on following:
DUT location
perfer_local_devserver setting
restricted_subnets setting

BUG=chromium:577363
TEST=run in local setup, test push verified.

Change-Id: Ia6393b7e15266a6d6a267f3e65b6b10a1e2b3d5e
Reviewed-on: https://chromium-review.googlesource.com/339218
Commit-Ready: Dan Shi <dshi@google.com>
Tested-by: Dan Shi <dshi@google.com>
Reviewed-by: Dan Shi <dshi@google.com>
ros/dev_server.py
ros/dev_server_unittest.py
997a9659b33bc8731c16c0964bfd9e12cd4c16ab 14-Apr-2016 Hidehiko Abe <hidehiko@chromium.org> autotest: Support env by utils.run().

With this change, we can pass env dictionary to
the utils.run(), which will be used for the subprocess.

BUG=b:28085962
TEST=Made sure the passed dict is used in the subprocess.

Change-Id: Idc9eee32e2b7b1d1be11f340503db5cb89bf1093
Reviewed-on: https://chromium-review.googlesource.com/338887
Commit-Ready: Hidehiko Abe <hidehiko@chromium.org>
Tested-by: Hidehiko Abe <hidehiko@chromium.org>
Reviewed-by: Junichi Uekawa <uekawa@chromium.org>
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
Reviewed-by: Chung-yih Wang <cywang@chromium.org>
ase_utils.py
5e8fa1873a5cc8fd4a2129c3ff39c0f37054a0d0 15-Apr-2016 Dan Shi <dshi@google.com> [autotest] Allow create_suite_job RPC to pick a devserver in desired subnet.

This change allows create_suite_job RPC to pick a devserver in the same subnet
of the duts may run tests. The assumption is that duts in the same pool and
board are in the same subnet, which should be true once ACL is enforced.

BUG=chromium:577363
TEST=run in local setup
update global config:
prefer_local_devserver: True
add couple devservers in different subnet
call run_suite, confirm the desired desverver is picked

Change-Id: I3435c13a7c5b25a429609780e0d8471a066e501d
Reviewed-on: https://chromium-review.googlesource.com/339250
Commit-Ready: Dan Shi <dshi@google.com>
Tested-by: Dan Shi <dshi@google.com>
Reviewed-by: Dan Shi <dshi@google.com>
ros/dev_server.py
ite_utils.py
2d706d8c2fd72cd74a076b2cf815f498f4ee3d73 15-Apr-2016 Achuith Bhandarkar <achuith@chromium.org> Remove cruft in gaia_id and extensions_to_load.

BUG=chromium:603169
TEST=VM tests and HW tests

Change-Id: I7671d66783ac8935e1458cf6b3f831d303fe468a
Reviewed-on: https://chromium-review.googlesource.com/339251
Commit-Ready: Achuith Bhandarkar <achuith@chromium.org>
Tested-by: Achuith Bhandarkar <achuith@chromium.org>
Reviewed-by: Ilja Friedel <ihf@chromium.org>
ros/chrome.py
000240bae4bd43b65f44dadfe0463c2c1604f302 12-Apr-2016 Victor Hsieh <victorhsieh@google.com> Allow non-ARC tests to start with ARC enabled

Tests (that run with Chrome) can now start with ARC instance. The
config variable ARC_MODE can be passed from control file into the test,
and to Chrome constructor.

TEST=Passed existing ARC tests
TEST=1. Modifid power_Consumption/control to pass arc_mode="enabled" to
run_test
2. Modifid power_Consumption.py to pass the parameter to chrome.
3. Ran test_that.
4. Saw logs that started ARC and blocked.
TEST=Same above, but with arc_mode="enabled_async"
CQ-DEPEND=CL:*254476
BUG=b:27597593

Change-Id: Id6f50d4c144620a4c1b306399dbbcaf3bfc123f3
Reviewed-on: https://chromium-review.googlesource.com/338202
Commit-Ready: Victor Hsieh <victorhsieh@chromium.org>
Tested-by: Victor Hsieh <victorhsieh@chromium.org>
Reviewed-by: Victor Hsieh <victorhsieh@chromium.org>
ros/chrome.py
fc3417e53c81919c5e241b57e8c6a32f780c0056 26-Mar-2016 Victor Hsieh <victorhsieh@google.com> Allow autotest to inspect an notification of Chrome

TEST=See correct notification info returned in the new autotest
BUG=b:27850100

Change-Id: I5dda8386358d703547bbf09a2fe8361952156244
Reviewed-on: https://chromium-review.googlesource.com/337951
Commit-Ready: Victor Hsieh <victorhsieh@chromium.org>
Tested-by: Victor Hsieh <victorhsieh@chromium.org>
Reviewed-by: Yoshiki Iguchi <yoshiki@chromium.org>
Reviewed-by: Chung-yih Wang <cywang@chromium.org>
ros/chrome.py
202ed32ca1343e34187a45ecd99f80241bd34786 14-Apr-2016 Hidehiko Abe <hidehiko@chromium.org> chrome.py: Add callback for cheets on browser closing.

BUG=b:27405466
TEST=Made sure the callback runs on cheets.
CQ-DEPEND=CL:*255362

Change-Id: Id9a441ea8b592b3b48cff6ea79c80c58d4e6450e
Reviewed-on: https://chromium-review.googlesource.com/338943
Commit-Ready: Hidehiko Abe <hidehiko@chromium.org>
Tested-by: Hidehiko Abe <hidehiko@chromium.org>
Reviewed-by: Shuhei Takahashi <nya@chromium.org>
Reviewed-by: Hidehiko Abe <hidehiko@chromium.org>
ros/chrome.py
531a62ab82e7f925959f5554de2ea80ae5d497bf 13-Apr-2016 Achuith Bhandarkar <achuith@chromium.org> extensions_to_load has moved to browser_options.

BUG=chromium:603169
TEST=login_Cryptohome

Change-Id: I96c0f91c64576a08fe19aed6fcb8803e477e42d8
Reviewed-on: https://chromium-review.googlesource.com/338891
Trybot-Ready: Achuith Bhandarkar <achuith@chromium.org>
Tested-by: Achuith Bhandarkar <achuith@chromium.org>
Reviewed-by: Ilja Friedel <ihf@chromium.org>
Commit-Queue: Achuith Bhandarkar <achuith@chromium.org>
ros/chrome.py
f1aa648718522cf7058f54c178455fbc8a34d31d 09-Apr-2016 Dan Shi <dshi@google.com> [autotest] Make get_wireless_ssid return the most strict match

There could be a change that multiple ssid config matches the subnet setting.
For example, for config:
wireless_ssid_1.2.3.0/24: ssid1
wireless_ssid_1.2.3.4/32: ssid2

Host with IP 1.2.3.4 matches both of the subnets. However, subnet
1.2.3.4/32 is more restrictive than 1.2.3.0/24. The method should return ssid2,
rather than ssid1.

BUG=None
TEST=unittest

Change-Id: Ie5ebfaeec4c177c29284c216bc35bfc7584fb073
Reviewed-on: https://chromium-review.googlesource.com/338032
Commit-Ready: Dan Shi <dshi@google.com>
Tested-by: Dan Shi <dshi@google.com>
Reviewed-by: Ralph Nathan <ralphnathan@chromium.org>
ite_utils.py
ite_utils_unittest.py
e6e78d7124dba371356f2928c5cd67f69772bd60 23-Mar-2016 harpreet <harpreet@google.com> Adding CFM sanity test and doing some refactoring.

Add CFM sanity test utilizing hangout JS commands to test basic hangouts
functionality like starting a hangout, muting/unmuting mic, exiting
hangout, detecting peripherals and running hotrod diagnostics.

BUG=chromium:597138
TEST=Tested on a local setup with test_that

Change-Id: Ic315f38f1d0f6ecca55a30973cfa9665bbc96bb2
Reviewed-on: https://chromium-review.googlesource.com/334259
Commit-Ready: harpreet Grewal <harpreet@chromium.org>
Tested-by: harpreet Grewal <harpreet@chromium.org>
Reviewed-by: harpreet Grewal <harpreet@chromium.org>
Reviewed-by: Kalin Stoyanov <kalin@chromium.org>
ros/cfm_util.py
03cb93fd2444eebe5bd992f773f6d1d73763c7d7 23-Mar-2016 xixuan <xixuan@google.com> Autotest: reboot DUTs when they are moved from shard to master.

A special task REPAIR is triggered to force rebooting on the shard DUTs
when a shard is deleted, in order to make sure the DUTs are still of
ready status and own testing logs in master DB. However, the REPAIR job
won't support reboot in a short time.

This CL triggers a reboot test with highest priority on all DUTs that will
be moved from shard to master. The procedure for deleting a shard is:
1. unlock all related DUTs of this shard.
2. delete any shard information in master DB.
3. trigger a reboot test with highest priority, to make sure that this
test runs firstly after the DUTs are unlocked.
4. unlock these DUTs.

BUG=chromium:499865
TEST=Configer a cbf master and a cbf shard. Set several tasks on master, one
is running, others are pending. Ran 'atest shard delete ***' on the master
to make sure:
* The DUTs beloging to the shard are locked.
* The shard is deleted
* A reboot with highest priority is triggered.
* The DUTs are unlocked.
* The reboot test is ran first, all other pending tasks are queued still.
* After reboot test is finished, other pending tasks will continue
to run on the master.
Ran site_rpc_interface_unittest locally.

Change-Id: I2b348e520c0f67bec5b4b1c89c75ad41e86c72a2
Reviewed-on: https://chromium-review.googlesource.com/334434
Commit-Ready: Xixuan Wu <xixuan@chromium.org>
Tested-by: Xixuan Wu <xixuan@chromium.org>
Reviewed-by: Fang Deng <fdeng@chromium.org>
Reviewed-by: Xixuan Wu <xixuan@chromium.org>
riorities.py
b677c10dd0597d6ce15c95d65d96595ff6bd39c3 25-Mar-2016 Casey Dahlin <sadmac@google.com> Fix wait_for_logcat_log race condition

We can use the new logcat regex option to do the matching and do away
with the racy bash-foo altogether.

TEST=brillo_WebservdSanity no longer flakes here
BUG=b:27856896
Change-Id: Ib81fc4e5763ec9135db503742cd3aa31bce6a942
Reviewed-on: https://chromium-review.googlesource.com/335310
Commit-Ready: Casey Dahlin <sadmac@google.com>
Tested-by: Casey Dahlin <sadmac@google.com>
Reviewed-by: Jorge Lucangeli Obes <jorgelo@chromium.org>
rillo/logcat_utils.py
c2a15ebfadd2a3cf4ab369b3d0c4a868ce99505c 31-Mar-2016 Shuqian Zhao <shuqianz@chromium.org> [autotest] print out the original exception when running update

The original exception of running update is helpful for debug. Log it
out.

BUG=None
TEST=Unittest

Change-Id: I909f882bc091cbffcbc45c301d8056d2753d02aa
Reviewed-on: https://chromium-review.googlesource.com/336720
Reviewed-by: Richard Barnette <jrbarnette@chromium.org>
Tested-by: Shuqian Zhao <shuqianz@chromium.org>
Commit-Queue: Shuqian Zhao <shuqianz@chromium.org>
ros/autoupdater.py
de15d83c553a3d45b15d98fcd3bc67930ddb8fa1 30-Mar-2016 Brian Norris <briannorris@chromium.org> base_utils: document @std_err_is_expected param to run()

Noticed while trying to update the verity autotests.

BUG=none
TEST=none

Change-Id: I5ee63d0b39f073b643eee81aa1d19acdd0f16604
Signed-off-by: Brian Norris <briannorris@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/335882
Commit-Ready: Filipe Brandenburger <filbranden@chromium.org>
Reviewed-by: Filipe Brandenburger <filbranden@chromium.org>
ase_utils.py
df2730bfeb42699fa9d88de7dd982db51502cd25 29-Mar-2016 Keith Haddow <haddowk@chromium.org> Fix issue where different tests of the same graph overwrite each other.

TEST=hand ran unittests
BUG=chromium:598488

Change-Id: I1c641a9e487de67ba23284a804a7d30822272426
Reviewed-on: https://chromium-review.googlesource.com/335468
Commit-Ready: Keith Haddow <haddowk@chromium.org>
Tested-by: Keith Haddow <haddowk@chromium.org>
Reviewed-by: Keith Haddow <haddowk@chromium.org>
Reviewed-by: Dan Shi <dshi@chromium.org>
est.py
est_unittest.py
476408397bec660680d7d4f347ead1eb7dc21aa4 24-Mar-2016 xixuan <xixuan@google.com> Autotest: Make Devserver retry ssh connection, and Add stats for ssh
failures.

When trying to SSH to a devserver, this SSH connection could be aborted
by the devserver itself, which causes staging failure.

This CL add 'retry' to all ssh connections to devserver, and add stats
for ssh failures: ssh_dev_server_failure, and ssh_tunnel_failure, to
estimate the stabality of ssh-based approaches.

BUG=chromium:597680
TEST=Ran dev_server_unittest to ensure error.CmdError causes retry. Turn
on the enable_ssh switch to test that ssh to devserver & servo still works.

Change-Id: I4b9e6092d8989fb2ecb770367c5869042e8e5740
Reviewed-on: https://chromium-review.googlesource.com/334770
Reviewed-by: Xixuan Wu <xixuan@chromium.org>
Tested-by: Xixuan Wu <xixuan@chromium.org>
Commit-Queue: Xixuan Wu <xixuan@chromium.org>
ros/dev_server.py
ros/dev_server_unittest.py
cddad39309f750d75f0b08a205ddc02e63ca9b37 23-Mar-2016 Dan Shi <dshi@google.com> [autotest] Do not add empty items in set when parsing control file

This change is to allow a control file with line:
DEPENDENCIES = ""

The empty dependency becomes a real dependency string and no host can
match that. This change filters out empty items in the DEPENDENCIES
setting in control files.

BUG=None
TEST=local run test
./site_utils/run_suite.py -b veyron_jerry \
-i veyron_jerry-release/R51-8099.0.0 -s hotrod

Change-Id: Id65f995beb6182607a22b4f09f7b46eb985b72ec
Reviewed-on: https://chromium-review.googlesource.com/334456
Commit-Ready: Dan Shi <dshi@google.com>
Tested-by: Dan Shi <dshi@google.com>
Reviewed-by: harpreet Grewal <harpreet@chromium.org>
ontrol_data.py
91137f091ec7c5df44081b692ab7e9d9bc79247e 11-Mar-2016 J. Richard Barnette <jrbarnette@chromium.org> [autotest] Convert CrosHost repair to the new Repair framework.

This moves all individual repair functions in CrosHost into
RepairAction subclasses in cros_repair.py and converts the repair()
method to use self._repair_strategy.

This also converts MoblabHost (a subclass of CrosHost) in a
similar fashion.

BUG=chromium:586326,chromium:586317
TEST=test against various DUTs in a local Autotest instance

Change-Id: I0eee80890da1cc63dc9efa5ba06548fd37c1a35d
Reviewed-on: https://chromium-review.googlesource.com/332292
Commit-Ready: Richard Barnette <jrbarnette@chromium.org>
Tested-by: Richard Barnette <jrbarnette@chromium.org>
Reviewed-by: Dan Shi <dshi@google.com>
rror.py
6450e148ba84c878490b4ea166218430fd393ddd 11-Mar-2016 Dan Shi <dshi@google.com> [autotest] Support run_suite with suite package and SSP for Brillo.

This change allows one to run run_suite command without using
--run_prod_code for Brillo build.
create_suite_job will use test_suites and control_files packages from
the Brillo build to create suite job and its test jobs.

Server-side packaging is also supported for newer builds that have
autotest_server_package artifact build.

BUG=chromium:584705
TEST=run in local instance, unittest, verify in moblab

Change-Id: Ia96ca4de919b178302580c23f911bb6445016285
Reviewed-on: https://chromium-review.googlesource.com/332431
Commit-Ready: Dan Shi <dshi@google.com>
Tested-by: Dan Shi <dshi@google.com>
Reviewed-by: Dan Shi <dshi@google.com>
ros/dev_server.py
ite_utils.py
908b2e44d75c799087f1cf8dca4d8e5435ded527 18-Mar-2016 J. Richard Barnette <jrbarnette@chromium.org> [autotest] Remove CrosHost.try_collect_crashlogs(), et seq.

This removes the verification check that could force repair in order
to collect logs; neither the check nor the associated repair code
could ever trigger.

The result is to remove _need_crash_logs(), try_collect_crashlogs()
and a variety of transitive dependencies.

BUG=None
TEST=GIT GREP ALL THE NAMES!

Change-Id: Iaaf64ce0d08e189ad8edd332627adca0e386d350
Reviewed-on: https://chromium-review.googlesource.com/333698
Commit-Ready: Richard Barnette <jrbarnette@chromium.org>
Tested-by: Richard Barnette <jrbarnette@chromium.org>
Reviewed-by: Xixuan Wu <xixuan@chromium.org>
rror.py
5522861acc472b2dc9efe16924f41a0b736dc888 17-Feb-2016 J. Richard Barnette <jrbarnette@chromium.org> [autotest] Initial framework for the new Repair.

This adds repair to the new verify framework, with unit tests,
completing the new, combined framework.

Additional code will follow to convert specific repair code to the
new framework.

BUG=chromium:586317,chromium:586326
TEST=unit tests; test full verify with a local instance

Change-Id: Ie2a65d24109e164e0af88556b18706b3f2fecbdc
Reviewed-on: https://chromium-review.googlesource.com/327626
Commit-Ready: Richard Barnette <jrbarnette@chromium.org>
Tested-by: Richard Barnette <jrbarnette@chromium.org>
Reviewed-by: Richard Barnette <jrbarnette@chromium.org>
osts/repair.py
osts/repair_unittest.py
3e080df22887baf1fda216105eee3f6d443024b0 18-Mar-2016 Casey Dahlin <sadmac@google.com> Add debug code to process_utils

Something's not dying when we kill it in the tests. Let's find out why.

TEST=None
BUG=b:27644525

Change-Id: I741a8c445af1fad1206c58a55748b90f72a6f9c4
Reviewed-on: https://chromium-review.googlesource.com/333703
Commit-Ready: Casey Dahlin <sadmac@google.com>
Tested-by: Casey Dahlin <sadmac@google.com>
Reviewed-by: Casey Dahlin <sadmac@google.com>
rocess_utils.py
d999272ea09ef0541116cf39307cc6a87e8a168d 29-Feb-2016 Shuqian Zhao <shuqianz@chromium.org> [autotest] show the update_engine error msg on chromeos waterfall

Every time when autoupdate test failed, we will ask the update_engine to
return the last update error messages, and show on the waterfall.

BUG=None
TEST=Unittest, trybot, and run provisioning jobs on local dut.

Change-Id: I5cb80fb45ca6eb10ef71e9b253cf00ef37c410c8
Reviewed-on: https://chromium-review.googlesource.com/329742
Commit-Ready: Shuqian Zhao <shuqianz@chromium.org>
Tested-by: Shuqian Zhao <shuqianz@chromium.org>
Reviewed-by: Shuqian Zhao <shuqianz@chromium.org>
ros/autoupdater.py
ros/autoupdater_unittest.py
cfe6b0d426e42bc74b6dac68e8e2662070838751 17-Mar-2016 J. Richard Barnette <jrbarnette@chromium.org> [autotest] Rename the exception for Verify errors.

This renames the exceptions to be raised when Verifiers fail.
AutotestHostVerifyError is renamed to AutoservVerifyError, and
AutotestVerifyDependencyError becomes AutoservVerifyDependencyError.
The change is being made for naming consistency with existing exception
classes, and with some upcoming names to be added with the new
repair framework.

BUG=None
TEST=unit tests; manually run verify to provoke selected errors.

Change-Id: I7c4520c8f87189aaf847c7391946872eddfcdd66
Reviewed-on: https://chromium-review.googlesource.com/333661
Commit-Ready: Richard Barnette <jrbarnette@chromium.org>
Tested-by: Richard Barnette <jrbarnette@chromium.org>
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
osts/repair.py
osts/repair_unittest.py
d25fa8aae829a45ad9a496a19946b7ca399276af 12-Mar-2016 xixuan <xixuan@google.com> Autotest: Simplify the devserver unit tests

After CL:329409, the dev_server_unittest becomes bigger since it need to
test with ENABLE_SSH_CONNECTION_FOR_DEVSERVER set both True or False.

This CL changes the testing stratgy:
* Create class SshConnectionTest to test different settings and args
for func DevServer.run_call() and ImageServerBase.run_call().
* Test all callers of run_call() with a mocked version of run_call().
In this way, we seperate the tests to `before` and `after` calling run_call().

BUG=chromium:593137
TEST=ran dev_server_unittest.py locally with --debug.

Change-Id: Id516deaebfba8fcdabff70bc20996d3d49b7c96c
Reviewed-on: https://chromium-review.googlesource.com/332227
Commit-Ready: Xixuan Wu <xixuan@chromium.org>
Tested-by: Xixuan Wu <xixuan@chromium.org>
Reviewed-by: Xixuan Wu <xixuan@chromium.org>
ros/dev_server_unittest.py
4fc24650036880f918011295f3574219f7d0ced8 16-Mar-2016 Keith Haddow <haddowk@chromium.org> Attempt to convert all input values to numbers.

BUG=chromium:595365
TEST=manual execution of unit tests.

Change-Id: Ic9017f69ef3950d15b58f50b7a8dd8b148ea1051
Reviewed-on: https://chromium-review.googlesource.com/332987
Commit-Ready: Keith Haddow <haddowk@chromium.org>
Tested-by: Keith Haddow <haddowk@chromium.org>
Reviewed-by: Keith Haddow <haddowk@chromium.org>
Reviewed-by: Dan Shi <dshi@google.com>
est.py
est_unittest.py
bb469d685a3829f08605fe2c861357c7f0e11010 16-Mar-2016 Casey Dahlin <sadmac@google.com> Make wait_for_logcat_log account for pid field width correctly

The existing regexp matched the exact number of spaces in the PID field
that are present when the PID is exactly 4 digits. If the PID is 3
digits there are more spaces to keep field widths consistent.

TEST=Verified match now works correctly
BUG=None

Change-Id: Iac4f30bb21b9ffddcffe970758657b5b3a735669
Reviewed-on: https://chromium-review.googlesource.com/332535
Commit-Ready: Casey Dahlin <sadmac@google.com>
Tested-by: Casey Dahlin <sadmac@google.com>
Reviewed-by: Christopher Wiley <wiley@chromium.org>
rillo/logcat_utils.py
8988eb240fc2f5bf25c0e251fdfa595798a45625 16-Mar-2016 Chung-yih Wang <cywang@google.com> chrome.py: Reland the change

This reverts commit 629326dc78275fa853259f958dd4d73939b8351b.

BUG=chromium:594622
TEST=build Chrome browser w/ revert of the change; then
test_that DUT_IP cheets_ContainerSmokeTest

Change-Id: I501dd2d3c93e3919f95968201cb6b50798d5e25f
Signed-off-by: Chung-yih Wang <cywang@google.com>
Reviewed-on: https://chromium-review.googlesource.com/332314
Reviewed-by: Ben Cheng <bccheng@chromium.org>
ros/chrome.py
d804bc84458877e51c35496e423ef6f851f65f84 16-Mar-2016 Keith Haddow <haddowk@chromium.org> Fix issue where logging a list of performance values was incorrect.

BUG=chromium:595169
TEST=hand execution of test_unittest.py

Change-Id: I945714b7790df1bca06beba9b4f09ef6c725a3c5
Reviewed-on: https://chromium-review.googlesource.com/332890
Commit-Ready: Keith Haddow <haddowk@chromium.org>
Tested-by: Keith Haddow <haddowk@chromium.org>
Reviewed-by: Keith Haddow <haddowk@chromium.org>
est.py
est_unittest.py
629326dc78275fa853259f958dd4d73939b8351b 15-Mar-2016 Dominik Laskowski <domlaskowski@chromium.org> Revert "chrome.py: Append extra browser args for cheets platforms"

This reverts commit 7d7200707d0718df785c3e016df693ce330a4696.

Reverting to fix BVT-CQ failures caused by the container not booting.

BUG=chromium:594622

Change-Id: I8e02c3ceb768baf8884857b455220e4527b2ae21
Reviewed-on: https://chromium-review.googlesource.com/332854
Commit-Ready: Dominik Laskowski <domlaskowski@chromium.org>
Tested-by: Dominik Laskowski <domlaskowski@chromium.org>
Reviewed-by: Elijah Taylor <elijahtaylor@chromium.org>
ros/chrome.py
41bd6904869ad745a19a1ad7f89f2ca6c4c96a63 12-Mar-2016 J. Richard Barnette <jrbarnette@chromium.org> [autotest] Add unit test coverage for Verifier._reverify()

This adds explicit unit test coverage for the _reverify() method in
hosts.Verifier. Previously, there was only indirect coverage owing to
the fact that RepairStrategy objects call the method.

BUG=None
TEST=run the unit tests

Change-Id: Ie1b40635de683fe2da38fbbde994ada33c531a9c
Reviewed-on: https://chromium-review.googlesource.com/332243
Commit-Ready: Richard Barnette <jrbarnette@chromium.org>
Tested-by: Richard Barnette <jrbarnette@chromium.org>
Reviewed-by: Richard Barnette <jrbarnette@chromium.org>
osts/repair_unittest.py
7d7200707d0718df785c3e016df693ce330a4696 01-Mar-2016 Chung-yih Wang <cywang@google.com> chrome.py: Append extra browser args for cheets platforms

BUG=b:27406867
TEST=None
CQ-DEPEND=CL:*250277

Change-Id: I9682c28951c25cc68b1a69f80119f051ea7ed12c
Signed-off-by: Chung-yih Wang <cywang@google.com>
Reviewed-on: https://chromium-review.googlesource.com/330983
Reviewed-by: Ben Cheng <bccheng@chromium.org>
ros/chrome.py
1e5c701acaaf4ae81e232636ce5602f67bb2afaa 10-Mar-2016 Keith Haddow <haddowk@chromium.org> Update the lab autotest code to send chart-json format data to
the chromeperf dashboard.

BUG=chromium:589868
TEST=Tested client side and server side tests locally, and unit tests.

Change-Id: Ief821a2d524313ef6328bf3749760e4df906e630
Reviewed-on: https://chromium-review.googlesource.com/331795
Commit-Ready: Keith Haddow <haddowk@chromium.org>
Tested-by: Keith Haddow <haddowk@chromium.org>
Reviewed-by: Keith Haddow <haddowk@chromium.org>
est.py
10439d8e98cd66a96c567031209d8aef7af8eb9d 07-Mar-2016 Christopher Wiley <wiley@google.com> Pass control file path to ControlData.__init__

This is useful because ControlData uses this string to report
warnings in its constructor.

BUG=b:27519238
TEST=some scripts I'm writing consume this correctly.

Change-Id: Ia5869f5cc62bc4c86e85ce3e4736ef2a938fc4c0
Reviewed-on: https://chromium-review.googlesource.com/331300
Commit-Ready: Christopher Wiley <wiley@chromium.org>
Tested-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Shuqian Zhao <shuqianz@chromium.org>
ontrol_data.py
4a1405641c1d26097b1e33435964dd09a6d60487 08-Mar-2016 Christopher Wiley <wiley@google.com> Add unittest for merging SUITE and ATTRIBUTES

We expect people to use ATTRIBUTES going forward, but we
should try to prevent ourselves from unintentially breaking
the logic to merge SUITE and ATTRIBUTES. This support allows
us to run old snapshots of autotest found in old builds
against new infrastructure.

Force a stable suite name order to make this test stable.

BUG=b:27519238
TEST=unittest passes

Change-Id: I9d61310083dfd224c852eaaf6bfab178948b07f1
Reviewed-on: https://chromium-review.googlesource.com/331298
Commit-Ready: Christopher Wiley <wiley@chromium.org>
Tested-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Shuqian Zhao <shuqianz@chromium.org>
ontrol_data.py
ontrol_data_unittest.py
a4784066542331bd978b5a3ea522f7cf40ec17db 04-Mar-2016 J. Richard Barnette <jrbarnette@chromium.org> [autotest] For hosts.Verifier, assign tags at construction time.

This changes the hosts.Verifier class constructor to use a tag
provided at construction time, rather than have the class provide
its own tag.

BUG=None
TEST=Unit tests; run verify on a local instance.

Change-Id: I64a7b9af7f03cf70f62aea48db80223ebd27b654
Reviewed-on: https://chromium-review.googlesource.com/330950
Commit-Ready: Richard Barnette <jrbarnette@chromium.org>
Tested-by: Richard Barnette <jrbarnette@chromium.org>
Reviewed-by: Richard Barnette <jrbarnette@chromium.org>
osts/repair.py
osts/repair_unittest.py
9e2c98d8d0c61a816e736a387591950af9505504 27-Feb-2016 xixuan <xixuan@google.com> autotest: Use SSH For Communication to DevServer

Use an ssh-based rpc call for autoserv to communicate to devserver. The format
of such call is like: ssh host 'curl "[RPC calls]"'.

Related Change:

1. Add function |run_call| in class DevServer to execute http calls.
Add function |run_call| in class ImageServerBase to excute ssh/http calls,
which extend DevServer.run_call().

2. Add a global flag |enable_ssh_connection_for_devserver|, use it as a
switch in ImageServerBase.|run_call| to turn on/off ssh-based rpc calls to
ImageServer and AndroidBuildServer. CrashServer keeps using http calls.

3. Make functions, eg. |_pool_is_staged|, to use function |run_call| based on
their classes, respectively.

4. Modify dev_server_unittest.py to pass tests for different settings of
flag |enable_ssh_connection_for_devserver|.

5. Change some functions, eg. |devserver_healthy|, to class methods.
Modify the callers of these class methods to specific types of DevServers in
related files.

BUG=chromium:582646
TEST=Ran dev_server_unittest with setting |enable_ssh_connection_for_devserver|
as True or False.
Ran real test for all the modified functions mentioned above using local moblab
devserver, to compare the responses between turn on/off
|enable_ssh_connection_for_devserver|.
Ran dummy_Pass and Repair task on local autotest instance to further test the
staging process.

Change-Id: I237d7451dbd0d0e885f43cfb145523b3cb231d93
Reviewed-on: https://chromium-review.googlesource.com/329409
Commit-Ready: Xixuan Wu <xixuan@chromium.org>
Tested-by: Xixuan Wu <xixuan@chromium.org>
Reviewed-by: Xixuan Wu <xixuan@chromium.org>
ros/dev_server.py
ros/dev_server_unittest.py
a35a9c9dbd506d6cee618499d72a731fb6bfa37e 07-Mar-2016 Christopher Wiley <wiley@google.com> brillo: Add utility to wait for a specific logcat line

It is sometimes useful to wait for an asynchronous event by
observing the stream of logged messages. Since doing so in
an efficient way is a little subtle, extract this functionality
into a utility.

BUG=b:26776493
TEST=brillo_WevservdSanity uses this utility successfully.

Change-Id: Ie94e64b245afad48a62824f473f0af1673dec403
Reviewed-on: https://chromium-review.googlesource.com/331033
Commit-Ready: Christopher Wiley <wiley@chromium.org>
Tested-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Ralph Nathan <ralphnathan@chromium.org>
rillo/logcat_utils.py
2703d1213098ee26bc723a4ccfcac6a7f6900bf2 07-Mar-2016 Christopher Wiley <wiley@google.com> Add common utility for pkill'ing processes

BUG=b:26776493
TEST=Test using this primitive works

Change-Id: Ibb0338149cfb388f12e6f8820c491077cfa14820
Reviewed-on: https://chromium-review.googlesource.com/331032
Commit-Ready: Christopher Wiley <wiley@chromium.org>
Tested-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Ralph Nathan <ralphnathan@chromium.org>
ros/process_watcher.py
rocess_utils.py
bfec5927e4bb87506b61cab5db17e501b65bafad 07-Mar-2016 Christopher Wiley <wiley@google.com> Derive control file SUITES as the union of SUITE and ATTRIBUTES

Control files in old builds of Chrome OS will not have an appropriate
ATTRIBUTES field set. Therefor we have to merge the information from
SUITE and ATTRIBUTES rather than dropping SUITE entirely.

BUG=b:27434125
TEST=test_droid correctly runs a test by either of a suite listed
only via SUITE or ATTRIBUTES.

Change-Id: If68c73f43b7b46094aba23d75fcf73f55d27cfe8
Reviewed-on: https://chromium-review.googlesource.com/331181
Tested-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
ontrol_data.py
76910a8936629360ea94fb59e7f0f0ea68dc7cd0 04-Mar-2016 Ralph Nathan <ralphnathan@google.com> brillo: Get audio tests to work with interactive testing framework.

Brillo audio playback and recording tests now work both interactively
and with a loopback dongle.

BUG=b:27484053
TEST=./site_utils/test_droid.py brillo_LibmediaPlaybackAudioTest -i
./site_utils/test_droid.py brillo_MonoLibmediaRecordingAudioTest -i

Change-Id: Ida74fb5c6fae14cbec304d6363bea685a4588e08
Reviewed-on: https://chromium-review.googlesource.com/330600
Commit-Ready: Ralph Nathan <ralphnathan@chromium.org>
Tested-by: Ralph Nathan <ralphnathan@chromium.org>
Reviewed-by: Christopher Wiley <wiley@chromium.org>
eedback/tester_feedback_client.py
2654c55e199cf31f9e7d4ea30e278d779e2312d5 02-Mar-2016 J. Richard Barnette <jrbarnette@chromium.org> [autotest] Fix two bugs in the verification framework.

This fixes two bugs in the verification framework:
* The constructor for RepairStrategy had a bug such that all
Verify DAG nodes would be treated as roots of the DAG, whether
or not they actually were roots.
* If a failing node had more than one other verifier depending on
it, the AutotestVerifyDependencyError that was raised at the
highest level would include the failing node twice.

Additionally, there is improved unit test coverage to catch both
bugs.

BUG=None
TEST=run the new unit tests, with and without the fix.

Change-Id: Ie4c4737491ad827230a5a7d8e14df12ca499be02
Reviewed-on: https://chromium-review.googlesource.com/329991
Commit-Ready: Richard Barnette <jrbarnette@chromium.org>
Tested-by: Richard Barnette <jrbarnette@chromium.org>
Reviewed-by: Dan Shi <dshi@chromium.org>
Reviewed-by: Kevin Cheng <kevcheng@chromium.org>
osts/repair.py
osts/repair_unittest.py
6a8ac2d2ba35992a71e908ac268b6df24dee37f6 02-Mar-2016 Christopher Wiley <wiley@google.com> autotest: derive control file SUITES from ATTRIBUTES

Previously, we supported listing test suites for a test in the SUITE
variable of a control file. However, since ATTRIBUTES is strictly
more useful than suites, use this instead.

While here, refactor some validation code out of __init__ to make
the function more readable.

Once this has landed, we can go through the codebase and remove SUITE=
lines, then add SUITE to the list of obsolete variables.

BUG=b:27434125
TEST=test_droid correctly runs a test with a suite: attribute and no
SUITE line.

Change-Id: I5bf873716100460685a2c8239c695b3b58ca8873
Reviewed-on: https://chromium-review.googlesource.com/329980
Commit-Ready: Christopher Wiley <wiley@chromium.org>
Tested-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Christopher Wiley <wiley@chromium.org>
ontrol_data.py
2121a3382d70bfb60284a830f341d78d6d555519 25-Feb-2016 Dan Shi <dshi@google.com> [autotest] Support scheduling Launch Control builds from suite scheduler.

This change adds the support of scheduling Launch Control builds from
suite scheduler.

For task defined like:
[brollo_test]
run_on: nightly
hour: 17
suite: dummy
os_type: brillo
branches: git_mnc-brillo-dev
targets: dragonboard-userdebug
pool: suites

Suite scheduler will try to schedule the latest build as of
git_mnc-brillo-dev/dragonboard-userdebug/LATEST
for dragonbard daily at 5PM, to run a duts in suites pool.

BUG=chromium:585628
TEST=unittest, local suite scheduler run:
/usr/local/autotest/site_utils/suite_scheduler/suite_scheduler.py \
-d /usr/local/autotest/logs -f /usr/local/autotest/ss_test.ini \
-e nightly -i git_mnc-brillo-dev/dragonboard-userdebug/2636090 \
-r /tmp/_autotmp_0pjXWQ_suite_scheduler -o brillo

Also test existing cros build can be scheduled:
/usr/local/autotest/site_utils/suite_scheduler/suite_scheduler.py \
-d /usr/local/autotest/logs -f /usr/local/autotest/ss_test.ini \
-e nightly -i veyron_jerry-release/R49-7834.3.0 \
-r /tmp/_autotmp_0pjXWQ_suite_scheduler

Change-Id: I6dc8ecb95ff0d353a1e8a96f98183945216f9a50
Reviewed-on: https://chromium-review.googlesource.com/329362
Commit-Ready: Dan Shi <dshi@google.com>
Tested-by: Dan Shi <dshi@google.com>
Reviewed-by: Dan Shi <dshi@google.com>
ros/dev_server.py
ite_utils.py
ite_utils_unittest.py
9256a3c28f573681e4fce7e6d29f3146a2074cbd 25-Feb-2016 Christopher Wiley <wiley@google.com> brillo: Add test that the camera stack works

Check if we have a camera HAL, and if we do, assert that we can
talk to the camera service to take pictures.

BUG=b:27361726
TEST=This test passes against a brillo_emulator

Change-Id: I7337123861aad0424f6034efba5f784ca8a8b52b
Reviewed-on: https://chromium-review.googlesource.com/329188
Commit-Ready: Christopher Wiley <wiley@chromium.org>
Tested-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Ralph Nathan <ralphnathan@chromium.org>
rillo/__init__.py
rillo/hal_utils.py
d3472e17c0e02bfb046c31274d2db23af0bc6273 13-Feb-2016 Ralph Nathan <ralphnathan@google.com> brillo: Move Brillo specific audio utils to audio_utils.py.

Move the Brillo specific audio util functions to
server/brillo/audio_utils.py.

BUG:b/27166458
TEST=test_droid.py suite:brillo-audio + unittests pass

Change-Id: I95cf604283524b7fd94948be1c3352c6ac8e3a7f
Reviewed-on: https://chromium-review.googlesource.com/327684
Commit-Ready: Ralph Nathan <ralphnathan@chromium.org>
Tested-by: Ralph Nathan <ralphnathan@chromium.org>
Reviewed-by: Christopher Wiley <wiley@chromium.org>
ite_utils.py
db0366c921c4067beb88f94a1b9df7ddf9265a37 19-Feb-2016 Dan Shi <dshi@google.com> [autotest] Add a utility to install apk to an Android device

The method install_apk_from_build will use the job_repo_url of the host
to get build information, and install the given apk from the given build
artifact.

BUG=chromium:586320
TEST=local run test
modify testbed_DummyTest.py to install apk
from autotest_lib.server import adb_utils
adb_utils.install_apk_from_build(testbed.adb_devices['ZX1G22K3SQ'],
'sl4a.apk', 'test_zip')
Run the test in local Autotest instance with a image, e.g.,
git_mnc-release/shamu-userdebug/LATEST
Confirm the apk is installed.

adb_utils.install_apk_from_build(
testbed.adb_devices['ZX1G22K3SQ'], 'sl4a.apk', 'test_zip',
package_name='com.googlecode.android_scripting',
force_reinstall=True)
Confirm package is reinstalled
adb_utils.install_apk_from_build(
testbed.adb_devices['ZX1G22K3SQ'], 'sl4a.apk', 'test_zip',
package_name='no such package',
force_reinstall=True)
Confirm the package install failed due to package not found.

Change-Id: I1b9aa7668a97e18f4cde5b6f1532e8e3c4d830ab
Reviewed-on: https://chromium-review.googlesource.com/328478
Commit-Ready: Dan Shi <dshi@google.com>
Tested-by: Dan Shi <dshi@google.com>
Reviewed-by: Simran Basi <sbasi@chromium.org>
Reviewed-by: Dan Shi <dshi@google.com>
ros/dev_server.py
08ff128c59a0fda5f76faba06e4d89f8d9dc6d26 19-Feb-2016 Dan Shi <dshi@google.com> [autotest] Add support for devserver call locate_file

This change update the client lib of devserver in autotest to make
locate_file call.

BUG=chromium:586320
TEST=local run script
import common
from autotest_lib.client.common_lib.cros import dev_server

build_info = {'branch': 'git_mnc-release',
'target': 'shamu-userdebug',
'build_id': '2419303',
'os_type': 'android'}

build_name ='%(branch)s/%(target)s/%(build_id)s' % build_info
devserver = dev_server.AndroidBuildServer.resolve(build_name, 'localhost')
print devserver.locate_file('sl4a.apk', 'test_zip', None, build_info)

Expected return:
http://1.1.1.1:8080/static/git_mnc-release/shamu-userdebug/23/DATA/priv-app/sl4a/sl4a.apk

Change-Id: I94ab40a169f900f95ecb69d68c5cf1dadf94875d
Reviewed-on: https://chromium-review.googlesource.com/328477
Commit-Ready: Dan Shi <dshi@chromium.org>
Tested-by: Dan Shi <dshi@chromium.org>
Reviewed-by: Dan Shi <dshi@chromium.org>
ros/dev_server.py
c542c43c022b33e3a05b2f20facb45267a4b2810 12-Feb-2016 J. Richard Barnette <jrbarnette@chromium.org> [autotest] Initial framework for the new Verify.

This CL is the first step in rewriting both the Repair and Verify
operations, starting with basic verification. The new framework is
meant to enable fixing two specific problems:
* We want consistent, useful log messages. Especially, we want
informative records written to status.log.
* We want to avoid unnecessary actions (like repeatedly trying to
ssh to a DUT that's known to be offline), both to avoid log
clutter, and to improve performance.

The framework will consists of three parts:
* The Verifier class, representing individual verification tests.
* The RepairAction class, representing a procedure that can fix
one or more failed Verifier tests.
* A RepairStrategy class used to organize a DAG of Verifier and
RepairAction objects, and invoke them in order.

This change does not include the RepairAction class or other related
pieces. Subsequent changes will build on this code, and add support
for repair.

BUG=chromium:586317,chromium:586326
TEST=unit tests

Change-Id: I433b9fc9cdbec2a90a7611f5f256aab2d247a4eb
Reviewed-on: https://chromium-review.googlesource.com/327394
Commit-Ready: Richard Barnette <jrbarnette@chromium.org>
Tested-by: Richard Barnette <jrbarnette@chromium.org>
Reviewed-by: Kevin Cheng <kevcheng@chromium.org>
osts/__init__.py
osts/repair.py
osts/repair_unittest.py
f48f81394f1eda084846251df2f99e23e9e914c2 18-Feb-2016 Dan Shi <dshi@google.com> [autotest] Collect stats for CrOS provision job

BUG=chromium:582353
TEST=local provision job

Change-Id: I7fc6a060954ef70a5dc1867ffebbad091792efdf
Reviewed-on: https://chromium-review.googlesource.com/328305
Commit-Ready: Dan Shi <dshi@google.com>
Tested-by: Dan Shi <dshi@google.com>
Reviewed-by: Dan Shi <dshi@google.com>
ros/dev_server.py
e4256c81ced9c519f2256bb37119f801edbb9ff1 18-Feb-2016 Dan Shi <dshi@google.com> [autotest] Fix afe_utils to maintain compatability with existing builds.

BUG=chromium:586327
TEST=run AU test

Change-Id: I5670055e44522ba269e9541014abe04bfc45ca16
Reviewed-on: https://chromium-review.googlesource.com/328180
Trybot-Ready: Dan Shi <dshi@google.com>
Tested-by: Dan Shi <dshi@google.com>
Reviewed-by: Kevin Cheng <kevcheng@chromium.org>
Commit-Queue: Dan Shi <dshi@google.com>
osts/base_classes.py
f57080024280104e5c3b236f69d1629d597fa5b6 18-Feb-2016 Katherine Threlkeld <kathrelkeld@chromium.org> [Autotest] Check Bluetooth naming format inside of bluetooth_IDCheck test.

A recent change appends some identifying numbers on the end of the
Bluetooth adapter alias. E.g. "Chromebook_1234" instead of just
"Chromebook".

The bluetooth_IDCheck test already verified the format of the ID.
This change makes it also verify the new naming convention.

Also, add a common utils function to get the device_type string
from /etc/lsb_release.

TEST=ran on several devices
BUG=chromium:585965

Change-Id: Ia347b975f918aeb5a91a2f196ed64ca6930d38f9
Reviewed-on: https://chromium-review.googlesource.com/328061
Commit-Ready: Katherine Threlkeld <kathrelkeld@chromium.org>
Tested-by: Katherine Threlkeld <kathrelkeld@chromium.org>
Reviewed-by: Tien Chang <tienchang@chromium.org>
sbrelease_utils.py
be3636ad815a877f4f951e5fd61794b769203d0c 15-Feb-2016 Dan Shi <dshi@google.com> [autotest] Update job_repo_url_[serial] after adb devices is provisioned

The job_repo_url_[serial] will be used for tests to stage more build
artifacts.

This change also refactor the return value of machine_install. The
return is now a type of (image_name, host_attributes). host_attributes
is a dictionary of attribute: value. The caller, e.g.,
afe_utils.machine_install_and_update_labels, will be responsible of
remove and update the host attributes.

BUG=chromium:586327
TEST=local run provision for both cros and adb devices.
./site_utils/test_droid.py ZX1G22K3SQ android_DummyTest

Change-Id: Idaaa0377a93c6587f18af5c2ab17971dcec86a66
Reviewed-on: https://chromium-review.googlesource.com/327671
Commit-Ready: Dan Shi <dshi@google.com>
Tested-by: Dan Shi <dshi@google.com>
Reviewed-by: Simran Basi <sbasi@chromium.org>
osts/base_classes.py
92bdebc278ac4508327d512804d16b58637bd49c 05-Feb-2016 Ralph Nathan <ralphnathan@google.com> brillo: Add tests to sweep audio parameters.

Add functionality to sweep over different parameters for sample rates,
widths, and channels for playback using OpenSL ES.

BUG=26747922,26746989,26746989
TEST=suite:brillo-audio passes

Change-Id: If96a022a0675fa7733cadcfb0ef3358beb9c1a95
Reviewed-on: https://chromium-review.googlesource.com/326485
Commit-Ready: Ralph Nathan <ralphnathan@chromium.org>
Tested-by: Ralph Nathan <ralphnathan@chromium.org>
Reviewed-by: Christopher Wiley <wiley@chromium.org>
ite_utils.py
15b2726e914f4f8d7b3fb5ba9ae571be30f638f6 16-Feb-2016 Dan Shi <dshi@google.com> [autotest] Add a check on devserver apache client count.

Consider a devserver to be unhealthy if it has more than 75 live
connections. The large number indicates Apache is handling too many long
running connections, e.g., downloading stateful partitions. It's safer
for a test to use different devserver.

BUG=chromium:582353
TEST=local run
>>> import common
>>> from autotest_lib.client.common_lib.cros import dev_server
>>> dev_server.DevServer.devserver_healthy('http://1.1.1.2:8082')
>>> True

Change-Id: I3f90cd3806391e2dca49a83d6390e2270209096e
Reviewed-on: https://chromium-review.googlesource.com/327690
Tested-by: Dan Shi <dshi@google.com>
Reviewed-by: Kevin Cheng <kevcheng@chromium.org>
ros/dev_server.py
187e24e6c560ebe70134ada818f123c6015f2d36 06-Feb-2016 Dane Pollock <danepollock@google.com> autotest: Refactor ping_runner for multi-platform.

There is a desire to add MacOS hosts to WiFi testbeds, so this is an attempt
to extend ping_runner functionality to support multiple platforms which require
different ping arguments and parsing logic, while still keeping the same
external interface. Repurposed PingConfig to only implement very basic input
validation, and command timeout calculation (common between platforms). Added
'PingDelegate' classes which know how to map a PingConfig to arguments, and
implement the (fairly similar) parsing logic of the output. The platform type
is selected when instantiating the ping_runner, and the external interface is
unchanged.

BUG=None
TEST=Ran jetstream_Connect to test linux/chromeos ping_runner behavior is
unaffected, stub test to verify MacOS ping_runner in a variety of
scenarios: simple ping, positive/negative test of pings on local subnet,
positive/negative test of pings to a different subnet.

Change-Id: I5be0a7517618572d03739cf966b17d5170d97025
Reviewed-on: https://chromium-review.googlesource.com/326501
Commit-Ready: Dane Pollock <danepollock@google.com>
Tested-by: Dane Pollock <danepollock@google.com>
Reviewed-by: Christopher Wiley <wiley@chromium.org>
ros/network/ping_runner.py
b6f3b08fba2e780c2249ca841c87303cf31d7b90 04-Feb-2016 Xiyuan Xia <xiyuan@google.com> Remove deprecated policy DeviceProxySettingsProto reference

BUG=chromium:442466
TEST=Builds and autotest passes.

Change-Id: I34c2fb6f1d6568482d0311144dcc1dc3f1d4a36b
Reviewed-on: https://chromium-review.googlesource.com/325863
Commit-Ready: Xiyuan Xia <xiyuan@chromium.org>
Tested-by: Xiyuan Xia <xiyuan@chromium.org>
Reviewed-by: Alex Deymo <deymo@chromium.org>
ros/policy.py
71e94bd284ce7cb7c6feed21d85c120218aa1757 30-Jan-2016 Ralph Nathan <ralphnathan@google.com> brillo: Add checks to ensure the recorded audio matches what was played.

Compares what was played to the recorded audio to ensure they are the
same. Checks that the frequency is the same and that there are no
extraneous frequencies in the recorded audio.

BUG=b:25803625
TEST=test_droid.py suite:brillo-audio

Change-Id: Iaa0bf06f6da67c3af0fe715ec3f4d42fda99e637
Reviewed-on: https://chromium-review.googlesource.com/324636
Commit-Ready: Ralph Nathan <ralphnathan@chromium.org>
Tested-by: Ralph Nathan <ralphnathan@chromium.org>
Reviewed-by: Gilad Arnold <garnold@chromium.org>
ite_utils.py
a44442fbeff945fdcf1f91aaf8bed21ccd214b77 25-Jan-2016 Gilad Arnold <garnold@google.com> Tester feedback: audio playback query delegate implementations.

First implementation of a query delegate, covering the two playback
queries. These can be used with existing interactive Brillo audio tests.

BUG=b:26769297
TEST=test_droid -i <dut-serial> brillo_OpenSLESPlaybackAudioTest

Change-Id: I4b9273168d49d8b660982b0537762d1d46a804fe
Reviewed-on: https://chromium-review.googlesource.com/324532
Commit-Ready: Gilad Arnold <garnold@chromium.org>
Tested-by: Gilad Arnold <garnold@chromium.org>
Reviewed-by: Gilad Arnold <garnold@chromium.org>
ite_utils.py
f311062f7c344920a7785d6bb9a2bd5144daaf43 16-Jan-2016 Gilad Arnold <garnold@google.com> Tester feedback: client implementation.

This implements the test-side client library for interacting with
a human tester. Also instrumenting the client interface with sets
including input/output/all query types.

BUG=b:26514064
TEST=test_droid -i <dut-serial> brillo_OpenSLESPlaybackAudioTest

Change-Id: I0417e230532a1b00e3b5aa4078fd9e423fc80148
Reviewed-on: https://chromium-review.googlesource.com/324530
Commit-Ready: Gilad Arnold <garnold@chromium.org>
Tested-by: Gilad Arnold <garnold@chromium.org>
Reviewed-by: Simran Basi <sbasi@chromium.org>
eedback/client.py
eedback/tester_feedback_client.py
42ffd3d0a235f8ab14af52142176c7bd7f299487 28-Jan-2016 Dan Shi <dshi@google.com> [autotest] Allow test to pick wireless ssid based on host's subnet

This change allows a test to choose wireless ssid from shadow config based on
its subnet. Global config has a fixed CLIENT/wireless_ssid config for test
to get the wireless ssid. To support different host with different wireless
ssid, we need to allow more flexible config, e.g.,
[CLIENT]
wireless_ssid: ssid_0
wireless_ssid_1.2.3.4/24: ssid_1
wireless_ssid_4.3.2.1/16: ssid_2

For hosts in subnet 1.2.3.4/24, ssid_1 will be used.
For hosts in subnet 4.3.2.1/16, ssid_2 will be used.
For hosts in other subnets, ssid_0 will be used.

BUG=chromium:577506
TEST=unittest

Change-Id: I03ee67c1d9efc40c78ab4947895b2dac886854dd
Reviewed-on: https://chromium-review.googlesource.com/324560
Commit-Ready: Dan Shi <dshi@google.com>
Tested-by: Dan Shi <dshi@google.com>
Reviewed-by: Dan Shi <dshi@google.com>
lobal_config.py
lobal_config_unittest.py
ite_utils.py
ite_utils_unittest.py
54562ba80ed68d4ebdf912be9bc80efe5974ccf1 25-Jan-2016 Ralph Nathan <ralphnathan@google.com> brillo: Add test for recording using two channels.

Add test for stereo recording.

BUG=26747922
TEST=test_droid.py suite:brillo-audio passes

Change-Id: Ie6b05cc58324bc89230fc894e97e79c577aa5795
Reviewed-on: https://chromium-review.googlesource.com/323710
Commit-Ready: Ralph Nathan <ralphnathan@chromium.org>
Tested-by: Ralph Nathan <ralphnathan@chromium.org>
Reviewed-by: Ralph Nathan <ralphnathan@chromium.org>
ite_utils.py
4a0c76009823afd2e40f238d74ebc4ba130b992f 26-Jan-2016 Kris Rambish <krisr@google.com> Check that the remaining list isn't empty.

Before removing from the remaining list, verify that it
is not empty.

BUG=chromium:570474
TEST=Manual; ran it

Change-Id: I3f100bc19e9b53d3e428561cca4dd2bbf176e55e
Reviewed-on: https://chromium-review.googlesource.com/324110
Commit-Ready: Kris Rambish <krisr@chromium.org>
Tested-by: Kris Rambish <krisr@chromium.org>
Reviewed-by: Bindu Mahadev <bmahadev@chromium.org>
ros/network/iw_runner.py
f3a35f73b2d47db2ab488f4954bc06667fc439e3 25-Jan-2016 Dan Shi <dshi@google.com> [autotest] Log time used to run autoupdater for CrOS

The stats data will be used to monitor the overall history of time used to run
AU and Paygen test.

BUG=chromium:561036
TEST=None

Change-Id: Iab43619d629885b14792962b0182ba27b182a850
Reviewed-on: https://chromium-review.googlesource.com/323397
Commit-Ready: Dan Shi <dshi@google.com>
Tested-by: Dan Shi <dshi@google.com>
Reviewed-by: Alex Deymo <deymo@chromium.org>
ros/autoupdater.py
0ca30c27547634d0cab031526ab759da772bd355 26-Jan-2016 Dane Pollock <danepollock@google.com> autotest: Read iw event log directly from host.

Currently, the IwEventLogger is only able to read the event log file after
it has been copied to the autotest server after the event logger has been
stopped. With this change, we will read the file directly from the host,
to allow multiple checks within a single context, then copy it to the
autotest server after we exit the context.

BUG=None
TEST=Run jetstream sanity autotests which use the iw event logger.

Change-Id: If2a814c90a941e6f46ab031909ce607d01a2c729
Reviewed-on: https://chromium-review.googlesource.com/323771
Commit-Ready: Dane Pollock <danepollock@google.com>
Tested-by: Dane Pollock <danepollock@google.com>
Reviewed-by: Filipe Brandenburger <filbranden@chromium.org>
ros/network/iw_event_logger.py
80aa910c8a388371bdd59b5be745e6a5e9c77d4e 25-Jan-2016 Dan Shi <dshi@google.com> [autotest] Change the hardcoded timeout value to mox.IgnoreArg

This will prevent future breakage when timeout is changed and chumped.

BUG=None
TEST=unittest

Change-Id: I3a091e22509483486adf03c8e0a51327333cd98b
Reviewed-on: https://chromium-review.googlesource.com/323810
Commit-Ready: Dan Shi <dshi@google.com>
Tested-by: Dan Shi <dshi@google.com>
Reviewed-by: Luigi Semenzato <semenzato@chromium.org>
Reviewed-by: Kevin Cheng <kevcheng@chromium.org>
ros/autoupdater_unittest.py
7d17589900d09c173efb28cc8fd09d2bcb85e887 25-Jan-2016 Dan Shi <dshi@google.com> [autotest] Fix autoupdater unittest

BUG=None
TEST=None

Change-Id: I35ca6a17ce2be5e21ca4aeaeae28cc5a1c390b58
Reviewed-on: https://chromium-review.googlesource.com/323800
Reviewed-by: Dan Shi <dshi@google.com>
Commit-Queue: Dan Shi <dshi@google.com>
Tested-by: Dan Shi <dshi@google.com>
ros/autoupdater_unittest.py
205b873e3fd99d6ed20e2d47b8317f27344a4f3e 25-Jan-2016 Dan Shi <dshi@google.com> [autotest] Increase stateful_update timeout

This is to accommodate the occasionally network issue in the lab. The lab
devservers sometime are overloaded and the slow network can cause paygen runs
to timeout.

BUG=chromium:561036
TEST=None

Change-Id: I5d60319bc405caab2420bfc3d6ad22a79c8e0271
Reviewed-on: https://chromium-review.googlesource.com/323409
Trybot-Ready: Dan Shi <dshi@google.com>
Tested-by: Dan Shi <dshi@google.com>
Reviewed-by: Kevin Cheng <kevcheng@chromium.org>
ros/autoupdater.py
d035b0c458560c0421620a63191328522ff880a7 21-Jan-2016 Alex Deymo <deymo@chromium.org> Increase payload application timeout to 1h.

The update_engine_client command ran from update_image() had a timeout
of 20 minutes. This command blocks until the payload is downloaded and
applied in the DUT. Due to network load or server side load, the
payload application started to take more than 20 minutes, with a
steady but slow download speed.

This CL bumps the limit to 1h and lets the whole test suite timeout
instead of failing to apply the payload.

BUG=chromium:580261
TEST=None

Change-Id: I07bad14ae1a6fd28d22ed371d920953268b8ef05
Reviewed-on: https://chromium-review.googlesource.com/322866
Trybot-Ready: Alex Deymo <deymo@chromium.org>
Tested-by: Alex Deymo <deymo@chromium.org>
Reviewed-by: Dan Shi <dshi@google.com>
ros/autoupdater.py
e6803234ac5233c48ff50b57460d42641e04a52b 20-Jan-2016 Dan Shi <dshi@google.com> [autotest] Add switch to enable/disable devserver and drone election in restricted subnet.

This allows devserver and drone election in restricted subnet to be enabled/
disabled separatedly.

BUG=chromium:574872
TEST=unittest

Change-Id: If2c3d1ad1bd9be5546bf2f8a027bcd88627ae2c5
Reviewed-on: https://chromium-review.googlesource.com/322468
Commit-Ready: Dan Shi <dshi@google.com>
Tested-by: Dan Shi <dshi@google.com>
Reviewed-by: Dan Shi <dshi@google.com>
ros/dev_server.py
114e17228efd62ab595690be30cb1e3f26fabebe 11-Jan-2016 Dan Shi <dshi@google.com> [autotest] Support selecting drone in restricted subnet

For agent task uses host in restricted subnet, only use drone in the subnet.
For agent task uses host NOT in restricted subnet, only use drones NOT in any
restricted subnet.

BUG=chromium:574872
TEST=local run, unittest

Change-Id: I3492fe14660e7629f982937d428d230ca9dcf3dc
Reviewed-on: https://chromium-review.googlesource.com/321116
Commit-Ready: Dan Shi <dshi@google.com>
Tested-by: Dan Shi <dshi@chromium.org>
Reviewed-by: Fang Deng <fdeng@chromium.org>
Reviewed-by: Simran Basi <sbasi@chromium.org>
ros/dev_server.py
ros/dev_server_unittest.py
ite_utils.py
a28f62fb9fa0df4432d35766e22282e9e146e373 15-Jan-2016 Dan Shi <dshi@google.com> [autotest] Fix the logic to prefer devserver in local network.

The behavior was changed when the work to support selecting devserver in
restricted subnet is done. This change re-enable the feature so we can enable
this in the lab to reduce cross-lab traffic.

BUG=chromium:573011
TEST=unittest

Change-Id: Idc91297c1db3ea483b654d6457269f558d0903fe
Reviewed-on: https://chromium-review.googlesource.com/321868
Commit-Ready: Dan Shi <dshi@google.com>
Tested-by: Dan Shi <dshi@google.com>
Reviewed-by: Kevin Cheng <kevcheng@chromium.org>
ros/dev_server.py
b957e6c3f4c4e0dd9d176beb6438f82c7730cba2 13-Jan-2016 Gilad Arnold <garnold@google.com> feedback.client.Client.initialize(): Make host argument optional.

A host object is only used when running server-side tests. Since the
feedback client is not limited to server-side testing, we make this
argument optional and leave it to the implementation to validate that
it's been provided.

BUG=b:26509986
TEST=None

Change-Id: I87ab9d9b5d783bec1c284399a3f390a47833443d
Reviewed-on: https://chromium-review.googlesource.com/321455
Commit-Ready: Gilad Arnold <garnold@chromium.org>
Tested-by: Gilad Arnold <garnold@chromium.org>
Reviewed-by: Dan Shi <dshi@google.com>
eedback/client.py
2bc5be69ce44e4d5b0582f833b04e141a0e4f502 08-Jan-2016 Dan Shi <dshi@google.com> [autotest] Only select from unrestricted subnet if host is not in restricted subnet.

Otherwise drone will keep calling check_health on devservers in restricted
subnet, which is a waste of time.

BUG=chromium:571651
TEST=unittest

Change-Id: I02c6ba2ff6d3afbaf9fab5d2dac1905479352e8e
Reviewed-on: https://chromium-review.googlesource.com/321170
Commit-Ready: Dan Shi <dshi@google.com>
Tested-by: Dan Shi <dshi@google.com>
Reviewed-by: Dan Shi <dshi@google.com>
ros/dev_server.py
ros/dev_server_unittest.py
b5746a102355b9a19e34518da636060fd7643d70 08-Dec-2015 Gilad Arnold <garnold@google.com> Closed-loop audio feedback client implementation.

This is an implementation of a feedback client for interactive audio
testing that is based on a closed-loop connection between the DUT's
audio-out/audio-in jacks. This includes logic for both playback and
recording queries.

BUG=b:26162596
TEST=None

Change-Id: I930630a9beedbdbc1d9c879aeb50c27285682116
Reviewed-on: https://chromium-review.googlesource.com/319198
Commit-Ready: Gilad Arnold <garnold@chromium.org>
Tested-by: Gilad Arnold <garnold@chromium.org>
Reviewed-by: Ralph Nathan <ralphnathan@chromium.org>
ite_utils.py
e57b7e81816f492b78cfa32c0a232264ec9862c1 08-Dec-2015 Gilad Arnold <garnold@google.com> Feedback client interface.

This includes the interface definition (classes and constants) as
described in the design doc.

BUG=b:26162591
TEST=None

Change-Id: Iff67506e4e5d02d04186f53c72df00c45c6e43df
Reviewed-on: https://chromium-review.googlesource.com/319197
Commit-Ready: Gilad Arnold <garnold@chromium.org>
Tested-by: Gilad Arnold <garnold@chromium.org>
Reviewed-by: Simran Basi <sbasi@chromium.org>
eedback/__init__.py
eedback/client.py
ff46d70e2f954e9e43b9846d6b439ad11e4a5aae 07-Jan-2016 harpreet <harpreet@google.com> Fix 'No module named dbus' error for remora test

Cryptohome tries to import 'dbus' which is not accessible from the
server job. It is used by SaveTPMPassword which is not used anymore
hence removing this method from tpm_utils should fix the error.

BUG=None
TEST=Tested against a dut in the lab as well as locally.

Change-Id: I8bc38c41759b76a4af34df17698e0ac9dba16b24
Reviewed-on: https://chromium-review.googlesource.com/320413
Commit-Ready: harpreet Grewal <harpreet@chromium.org>
Tested-by: harpreet Grewal <harpreet@chromium.org>
Reviewed-by: Achuith Bhandarkar <achuith@chromium.org>
Reviewed-by: harpreet Grewal <harpreet@chromium.org>
Reviewed-by: Kalin Stoyanov <kalin@chromium.org>
ros/tpm_utils.py
216389cfb1c687a90581cfdd62cbff0535bb6c1f 22-Dec-2015 Dan Shi <dshi@google.com> [autotest] Locate devserver in restricted subnets

Add a new config (CROS/restricted_subnets) to specify a list of subnets that
requires devserver within the same subnet.

In devserver.ImageServer.resolve function, always pass in the hostname to check
subnet restriction. This does add a bit overhead to do IP lookup.

BUG=chromium:571651
TEST=local test

Change-Id: Id3e47c315523d6bc7d40e1c5fbedd1733147b8b9
Reviewed-on: https://chromium-review.googlesource.com/319612
Commit-Ready: Dan Shi <dshi@google.com>
Tested-by: Dan Shi <dshi@chromium.org>
Reviewed-by: Simran Basi <sbasi@chromium.org>
ros/dev_server.py
ite_utils.py
15d42311147778148e0a80b703e789abc6bbd12d 16-Dec-2015 Dan Shi <dshi@google.com> [autotest] Allow suite scheduler to process boards in parallel

suite scheduler processes each board in a single threaded fashion. Each board
takes about 2-10 mins to process for a single event (new_build, nightly or
weekly). We have over 100 boards in the lab, that leads to nightly run takes
almost 8 hours to finish, and weekly run takes more than 36 hours.

This CL changes suite scheduler driver to process boards in parallel, to
reduce the run time needed to handle each event.

BUG=chromium:560951
TEST=local run, confirm suite can be created.
/usr/local/autotest/site_utils/suite_scheduler/suite_scheduler.py -b \
-d /usr/local/autotest/logs -f /usr/local/autotest/t_suite_scheduler.ini \
-r /tmp/_autotmp_P5J9Zj_suite_scheduler
unittest

Change-Id: I3d7eea2b6449d3c4ea4a8c191ff980064e0301a6
Reviewed-on: https://chromium-review.googlesource.com/318503
Commit-Ready: Dan Shi <dshi@google.com>
Tested-by: Dan Shi <dshi@google.com>
Reviewed-by: Simran Basi <sbasi@chromium.org>
ros/retry.py
78a16a5d15229a9958a033570197f3c3af87eacb 16-Dec-2015 David Sharp <dhsharp@chromium.org> output_perf_value: If units is None, then we can't check its length.

BUG=None
TEST=None

Change-Id: I5fbc5a7e30c539e3c56800faa79c899e5d8f18f8
Reviewed-on: https://chromium-review.googlesource.com/318761
Commit-Ready: David Sharp <dhsharp@chromium.org>
Tested-by: David Sharp <dhsharp@chromium.org>
Reviewed-by: Dan Shi <dshi@chromium.org>
est.py
ab999721eeb8ddddf42bfa49cc25da1233238535 04-Dec-2015 Dan Shi <dshi@google.com> [autotest] Enable provisioning Brillo device from autotest

This change adds the support of provision Brillo device from autotest. Methods
are added to adb_host, so machine_install knows how to provision a Brillo
device with given build, e.g., git_mnc-brillo-dev/dragonboard-userdebug/LATEST.

BUG=chromium:548881
TEST=moblab setup, set build to git_mnc-brillo-dev/dragonboard-userdebug/LATEST
http://dshi.mtv/afe/#tab_id=view_job&object_id=3066
also make sure the change doesn't break Android provision
http://dshi.mtv/afe/#tab_id=view_job&object_id=3027

Change-Id: I299349301067572e7f4ee6792e19da3853e657f3
Reviewed-on: https://chromium-review.googlesource.com/315775
Commit-Ready: Dan Shi <dshi@google.com>
Tested-by: Dan Shi <dshi@google.com>
Reviewed-by: Simran Basi <sbasi@chromium.org>
ros/dev_server.py
1bf60eb788365f083d0ee8045a6556f906149dec 02-Dec-2015 Simran Basi <sbasi@google.com> [autotest] autoserv add --lab & --host_attributes arguments

Added two new flags to autoserv.

--lab indicates that autoserv is running in the lab and has
the full Autotest infrastructure at its disposal.

--host_attributes allows host attribute information that is
usually in the database to be retrievable from the command
line arguments.

If --lab is pulled in, autoserv will request the host attributes
from the database at test runtime.

From here this change, then updates the concept of the "machines"
list that test control files receive to now be a list of dicts
that contain the machine hostname and host attributes. This will
enable identifing information the hosts library needs to create
host objects to be available whether or not there is a database
present.

BUG=chromium:564343
TEST=local autoserv runs. Also verified scheduler changes work
via MobLab. waiting on trybot results.
DEPLOY=scheduler

Change-Id: I6021de11317e29e2e6c084d863405910c7d1a71d
Reviewed-on: https://chromium-review.googlesource.com/315230
Commit-Ready: Simran Basi <sbasi@chromium.org>
Tested-by: Simran Basi <sbasi@chromium.org>
Reviewed-by: Simran Basi <sbasi@chromium.org>
ase_job_unittest.py
9f364a6fe1fedaecc652f111cd143ab2ee7ca825 07-Dec-2015 Simran Basi <sbasi@google.com> [autotest] Block atest/run_suite from being ran as root user.

If these scripts run as root on MobLab, they leave files in
the autotest directory that user moblab can't open or delete,
and the autotest services will begin to fail. Usually a user
would have to powerwash if they got to this state, hence
lets stop these scripts from being ran as root at all.

BUG=chromium:391138
TEST=sudo python run_suite.py fails.

Change-Id: I341b0d38f211809eeafc174ef709a7b71ea87b64
Reviewed-on: https://chromium-review.googlesource.com/316448
Commit-Ready: Simran Basi <sbasi@chromium.org>
Tested-by: Simran Basi <sbasi@chromium.org>
Reviewed-by: Kevin Cheng <kevcheng@chromium.org>
Reviewed-by: Dan Shi <dshi@google.com>
rror.py
9603cd19499048c30856f2de2f821c937b33cb6f 07-Dec-2015 Christopher Wiley <wiley@google.com> Remove conmux

It isn't clear what the original authors had in mind for this code, but
we don't seem to use it. Remove one more piece of cruft from the
autotest codebase.

BUG=None
TEST=None

Change-Id: I35e9d212feb54106fa6f27f36f075e4f1924d567
Reviewed-on: https://chromium-review.googlesource.com/316430
Commit-Ready: Christopher Wiley <wiley@chromium.org>
Tested-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Richard Barnette <jrbarnette@chromium.org>
ase_job.py
ase_job_unittest.py
ba943535dbec910f88b29e112039fe92ddac4d71 03-Dec-2015 Dan Shi <dshi@google.com> [autotest] Add support of LATEST for android build.

With this change, android build can have LATEST as build id.

BUG=chromium:548881
TEST=local
http://dshi/afe/#tab_id=view_job&object_id=3017

Change-Id: I54b416548be5003f592e68fa6cb2d91034e14a5b
Reviewed-on: https://chromium-review.googlesource.com/315680
Commit-Ready: Dan Shi <dshi@google.com>
Tested-by: Dan Shi <dshi@google.com>
Reviewed-by: Fang Deng <fdeng@chromium.org>
ros/dev_server.py
10b27caed5434380d8b5739cf66b8991b7464bb8 01-Dec-2015 Roshan Pius <rpius@google.com> autotest(wifi): System info changes for Android

Couple of changes needed to get chaos tests running on Android DUT's:
1. The uname binary (used to get the kernel version, arch, etc) is
located at /system/bin/uname for Android/Brillo and /bin/uname for Cros
devices. So, use the path utils to figure out the exact command to be
run to make it compatible across different platforms.
2. Skip chaos_clique_utils.get_firmware_ver() for Android/Brillo
targets.

BUG=chromium:564291
TEST=`test_that -b panther chromeos3-row1-rack1-host5.cros
network_WiFi_ChaosConnectDisconnect.open` on CrosHost(veyron_minnie).
TEST=`test_that -b panther chromeos3-row1-rack1-host3.cros
network_WiFi_ChaosConnectDisconnect.open` on AdbHost(Android)

Change-Id: I0f2a4fe34eb12ba315603637be23956e91f5b258
Reviewed-on: https://chromium-review.googlesource.com/315192
Commit-Ready: Roshan Pius <rpius@chromium.org>
Tested-by: Roshan Pius <rpius@chromium.org>
Reviewed-by: Roshan Pius <rpius@chromium.org>
osts/base_classes.py
5b97c3c73e321f661c2727b88f364e8739af0d77 26-Nov-2015 harpreet <harpreet@google.com> Workaround fix for enterprise_RemoraRequisition.

BUG=chromium:495847
TEST=Tested against local DUT setup.

Change-Id: I6ff2a429346dec321d0ca73894608663dc9ba1f7
Reviewed-on: https://chromium-review.googlesource.com/314069
Commit-Ready: harpreet Grewal <harpreet@chromium.org>
Tested-by: harpreet Grewal <harpreet@chromium.org>
Reviewed-by: harpreet Grewal <harpreet@chromium.org>
ros/tpm_utils.py
f1fc9104ea678e61a1d0e719c73d666a56e27822 23-Nov-2015 J. Richard Barnette <jrbarnette@chromium.org> [autotest] Support servo for "cheets" boards.

Analagous to freon, "cheets" boards have different software for
the same underlying hardware. In order to avoid the churn of
mostly bogus board names in hdctools, we recognize and convert
the "cheets" board names here in Autotest.

BUG=chromium:560460
TEST=unit tests, run repair_test with a non-cheets board.

Change-Id: I0ee961164cc5355cf2b2ce76d3e189db4266b337
Reviewed-on: https://chromium-review.googlesource.com/314090
Commit-Ready: Richard Barnette <jrbarnette@chromium.org>
Tested-by: Richard Barnette <jrbarnette@chromium.org>
Reviewed-by: Kevin Cheng <kevcheng@chromium.org>
Reviewed-by: Dan Shi <dshi@google.com>
ros/servo_afe_board_map.py
ros/servo_afe_board_map_unittest.py
225b90414c570404a1f71e6b12d2402ef2e32a20 18-Nov-2015 Dan Shi <dshi@google.com> [autotest] Add a dummy test for android device.

With this change, user can create a test from AFE to run the dummy test on an
Android device. Image specified in "image" box with format
branch/target/build_id will be installed in the android device during the test.

BUG=chromium:548881
TEST=local create test from AFE.

Change-Id: I2ca444c1824a838f4f4f9c5d3691d2a20288798a
Reviewed-on: https://chromium-review.googlesource.com/312976
Commit-Ready: Dan Shi <dshi@google.com>
Tested-by: Dan Shi <dshi@chromium.org>
Reviewed-by: Simran Basi <sbasi@chromium.org>
ite_utils.py
c2d99cf743c86fe0519f155ffbcad54df31bd742 18-Nov-2015 J. Richard Barnette <jrbarnette@chromium.org> [autotest] Remove the concept of 'protection level' from repair.

In original Autotest, hosts have a 'protection level' that is
passed to repair jobs in order to limit the specific kinds of repair
that can be done. For the CrOS lab, this concept is largely not
useful; we want a uniform repair procedure determined by the kind of
DUT being repaired, not by a database configuration.

This removes the concept of 'protection level' from the repair flow;
repair steps are now determined only by the class of Host that
handles the operation. The protection level remains in the
database, but the only meaningful value is 'Do not verify'. That
setting on a host will prevent it from running any verify, cleanup,
or repair tasks. This is done for the sake of non-DUT hosts that
exist in the CrOS lab AFE database.

BUG=None
TEST=unit tests, and run repair in a local instance

Change-Id: I1d512eb2b1fe604b70fec00b3a290f5f6b9d9beb
Reviewed-on: https://chromium-review.googlesource.com/312979
Commit-Ready: Richard Barnette <jrbarnette@chromium.org>
Tested-by: Richard Barnette <jrbarnette@chromium.org>
Reviewed-by: Dan Shi <dshi@chromium.org>
rror.py
osts/base_classes.py
5563b77f2029cfe97df9d719a87cc4a6f9fad5f1 12-Nov-2015 Dan Shi <dshi@chromium.org> [autotest] Update devserver to support stage request of Android build.

BUG=chromium:512668
TEST=local test script:
TARGET = 'shamu-userdebug'
BUILD_ID = '123'
BRANCH = 'master'

ARTIFACTS = ['bootloader_image', 'radio_image', 'zip_images']

devserver = dev_server.ImageServer('http://localhost:8082')
devserver.stage_artifacts(image='daisy-release/R47-7520.30.0',
artifacts=['control_files'])
devserver.trigger_download(image='daisy-release/R47-7520.30.0')
devserver.finish_download(image='daisy-release/R47-7520.30.0')

devserver = dev_server.AndroidBuildServer('http://localhost:8082')
devserver.trigger_download(target=TARGET, build_id=BUILD_ID,
branch=BRANCH)
devserver.finish_download(target=TARGET, build_id=BUILD_ID,
branch=BRANCH)

Change-Id: Ieb4bbbdbf0e6a8e38e99435b273dfc3c6845ac83
Reviewed-on: https://chromium-review.googlesource.com/312138
Commit-Ready: Dan Shi <dshi@chromium.org>
Tested-by: Dan Shi <dshi@chromium.org>
Reviewed-by: Fang Deng <fdeng@chromium.org>
Reviewed-by: Simran Basi <sbasi@chromium.org>
ros/dev_server.py
ros/dev_server_unittest.py
05b03e057e1acff341ffcbd4d358e38331dfa9f8 10-Nov-2015 Bindu Mahadev <bmahadev@chromium.org> Correcting logical errors in my previous cl

The packet capturer should be sanitized after we acquire lock
and before creating the capturer object else the monitor
interface will not be configured. While here, bumping the
MAX_SSID_COUNT.

BUG=None
TEST=Chaos

Change-Id: Ie22b436eef87fd9bb5056cb9794b3b9df41a7fb7
Reviewed-on: https://chromium-review.googlesource.com/311792
Reviewed-by: Tien Chang <tienchang@chromium.org>
Reviewed-by: Bindu Mahadev <bmahadev@chromium.org>
Tested-by: Bindu Mahadev <bmahadev@chromium.org>
ros/network/ap_constants.py
a552393788b1cbb1df24b868ace4fe6d34ca2df3 24-Oct-2015 Roshan Pius <rpius@google.com> autotest(wifi): Use shell 'time' for command exec times.

Change to use the default shell provided time functionality to measure the
iw dev scan times because Brillo lacks the "time" utility which was
being used in Cros devices.
Adb shell commands capture the stdout/stderr of the commands run on the
DUT into stdout, so the time command output goes into stderr on Cros and
stdout in Brillo. Force the command to redirect stderr to stdout on Cros
devices as well.

BUG=25231337
TEST=`test_that $host --board=$BOARD network_WiFi_ScanPerformance` on
both dragonboard(brillo) and panther(cros).

Change-Id: Iba3a568650403bb873ab7667580de5f12c284c05
Reviewed-on: https://chromium-review.googlesource.com/308565
Commit-Ready: Roshan Pius <rpius@chromium.org>
Tested-by: Roshan Pius <rpius@chromium.org>
Reviewed-by: Roshan Pius <rpius@chromium.org>
ros/network/iw_runner.py
ros/network/iw_runner_unittest.py
fda0dd55f76177bcf2b57a07d7977e92f6a06a8b 23-Oct-2015 Bindu Mahadev <bmahadev@chromium.org> Fix for setting WPA and WEP network property using wpa_cli

The current command passed to wpa_cli consists of an extra
pair of single quotes that did work work well with wpa_cli.
Removing these quotes for successful command execution.

BUG=None
TEST=Ran SimpleConnect on nexus6 and also Peach-Pit in wificell

Change-Id: I2e3dcb61017a95e2cfe3602e69e05c1174e3835a
Reviewed-on: https://chromium-review.googlesource.com/308176
Commit-Ready: Bindu Mahadev <bmahadev@chromium.org>
Tested-by: Bindu Mahadev <bmahadev@chromium.org>
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Filipe Brandenburger <filbranden@chromium.org>
ros/network/xmlrpc_security_types.py
2c5f99b82c0d0f9be5d399fdf66e6f2ab405b47b 21-Oct-2015 Roshan Pius <rpius@google.com> autotest(wifi): Add frequency check in SimpleConnect.

Bail out of SimpleConnect tests gracefully if it detects that the DUT
does not support the frequency band being tested.

BUG=brillo:25129221
TEST=Ran network_WiFi_SimpleConnect.wifi_check11a &
network_WiFi_SimpleConnect.wifi_check11g on dragonboard and ensured that
the test bailed out in the former and passed successfully on the latter.

Change-Id: I4b9cc3864f89dc665e767cf93b7a781db5bdd4c8
Reviewed-on: https://chromium-review.googlesource.com/307566
Commit-Ready: Roshan Pius <rpius@chromium.org>
Tested-by: Roshan Pius <rpius@chromium.org>
Reviewed-by: mukesh agrawal <quiche@chromium.org>
ros/network/iw_runner.py
a074a5192ab9722d6c3b5de47ba814ed3f85d931 21-Oct-2015 Mussa <mussa@chromium.org> Exposes the chrome instance used by chromedriver instance.

There are cases where clients of chromedriver.ChromeDriver objects
need to use Chrome to create tabs and do some kind of verification.

We can use the same chrome object that the driver already, while
the driver is active and hasn't been closed.

That way we can avoid creating a new logging session.

Example: crosreview.com/304081 will need this feature.

BUG=None.
TEST=None.

Change-Id: I261efd8c2ce5f998ff70881cf091c6af950c3586
Reviewed-on: https://chromium-review.googlesource.com/307561
Commit-Ready: Mussa Kiroga <mussa@chromium.org>
Tested-by: Mussa Kiroga <mussa@chromium.org>
Reviewed-by: Mussa Kiroga <mussa@chromium.org>
ros/chromedriver.py
570c7ddc289b63d71543387924b91012eb915189 15-Oct-2015 Filipe Brandenburger <filbranden@chromium.org> autotest (wifi): Do not try to write to /tmp on an ADBHost

Because the root filesystem is read-only and writing to /data/local/tmp
is a more appropriate location on that platform.

The file will now be placed into a subdirectory named autoserv-<random>
under the base temporary directory (be it /tmp or /data/local/tmp) for
each test run. The temporary directories all get cleaned up after the
end of the test run.

BUG=chrome-os-partner:42310
TEST=Ran network_WiFi_SimpleConnect through adb successfully.
Also ran it on samus and confirmed it did not cause any regressions.

Change-Id: I1f7e94c3aad91c05cd958698a44c491b4ed673ee
Signed-off-by: Filipe Brandenburger <filbranden@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/306115
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Bindu Mahadev <bmahadev@chromium.org>
Reviewed-by: Simran Basi <sbasi@chromium.org>
ros/network/iw_event_logger.py
3e765032e34dacf797befb1ee31fcb159d7a72bf 09-Oct-2015 Gilad Arnold <garnold@chromium.org> autoupdater: Provide more detail on failure.

BUG=None
TEST=None

Change-Id: I4bb97fd1b6efc810f9347414742377e6f39ed52d
Reviewed-on: https://chromium-review.googlesource.com/304906
Commit-Ready: Gilad Arnold <garnold@chromium.org>
Tested-by: Gilad Arnold <garnold@chromium.org>
Reviewed-by: Simran Basi <sbasi@chromium.org>
Reviewed-by: Dan Shi <dshi@chromium.org>
ros/autoupdater.py
ecf894b60e77db4f827b0a7ea03f366adf8950bd 07-Oct-2015 Gilad Arnold <garnold@chromium.org> autoupdater.py: Fix bogus use of super() in BrilloUpdater.

BUG=b:24157043
TEST=autoupdate_EndToEnd on moblab doesn't fail with TypeError

Change-Id: Ie8ac782e8ab6a60881a0847c6904a1a5aa519085
Reviewed-on: https://chromium-review.googlesource.com/304570
Commit-Ready: Gilad Arnold <garnold@chromium.org>
Tested-by: Gilad Arnold <garnold@chromium.org>
Reviewed-by: Dan Shi <dshi@chromium.org>
ros/autoupdater.py
d6adeb8e407b50a5332976342a1ad2d457a081e5 21-Sep-2015 Gilad Arnold <garnold@chromium.org> autoupdater.py: Implement BrilloUpdater.

This extracts shared updater functionality from ChromiumOSUpdater into
a new class (BaseUpdater) and implements BrilloUpdater based on it.
Currently extracted logic is meant to support the autoupdate_EndToEnd
server-side test; we may pull more as we expand support for other tests.

BUG=b:24157043
TEST=AU E2E test ran successfully on moblab w/ peppy DUT (sbasi@)
TEST=Unit tests

Change-Id: I73243560dcf6938f56d1c87364d5f5800dc0cd12
Reviewed-on: https://chromium-review.googlesource.com/301402
Commit-Ready: Gilad Arnold <garnold@chromium.org>
Tested-by: Gilad Arnold <garnold@chromium.org>
Reviewed-by: Gilad Arnold <garnold@chromium.org>
ros/autoupdater.py
ros/autoupdater_unittest.py
d607797a9f84b5d173d10cf3d5eff4d72ca6511e 06-Oct-2015 Vitaly Buka <vitalybuka@chromium.org> Remove check of the command Category

Property is going to be removed.

BUG=b:24267885
TEST=test_that -b $BOARD $DEV_HOST e:buffet_Registration

Change-Id: I73bc0a88ba739d19ce57e299ea16730c315d44ab
Reviewed-on: https://chromium-review.googlesource.com/304194
Commit-Ready: Vitaly Buka <vitalybuka@chromium.org>
Tested-by: Vitaly Buka <vitalybuka@chromium.org>
Reviewed-by: Vitaly Buka <vitalybuka@chromium.org>
ros/tendo/buffet_tester.py
d968286039e438d7c6548bf94551cbe550c8e7b9 02-Oct-2015 Alexander Alekseev <alemate@chromium.org> Telemetry: Chrome object should support passing gaia_id.

BUG=chromium:535369
TEST=manual
Change-Id: Ife93f76e9f3fde87cebee9f3aa768a0768fdf587
Reviewed-on: https://chromium-review.googlesource.com/303747
Commit-Ready: Achuith Bhandarkar <achuith@chromium.org>
Tested-by: Alexander Alekseev <alemate@chromium.org>
Reviewed-by: Achuith Bhandarkar <achuith@chromium.org>
ros/chrome.py
dcf5c83a0d4b39171dd8056b58949093b9b35a8c 03-Oct-2015 Vitaly Buka <vitalybuka@chromium.org> Don't assume that exported commands only commands from test

We use command to implement UpdateDeviceInfo as well.

BUG=none
TEST=none

Change-Id: I787df6df4a662c74d94e7fd32ce4d0cac1e937f0
Reviewed-on: https://chromium-review.googlesource.com/303814
Commit-Ready: Vitaly Buka <vitalybuka@chromium.org>
Tested-by: Vitaly Buka <vitalybuka@chromium.org>
Reviewed-by: Vitaly Buka <vitalybuka@chromium.org>
ros/tendo/buffet_tester.py
755b2ec23e7b36199fb756d80fa6860f7c145a5e 04-Sep-2015 Tien Chang <tienchang@google.com> Connect to various network services on WiFi Rack's lab network.

Assert access by wget-ing URLs, including sites that can only be accesed through
our rack's Apache server.

BUG=None
TEST=None

Change-Id: I09c1a6dc21e3e5b0abc26cdac5f8efd8b2308ea5
Reviewed-on: https://chromium-review.googlesource.com/297549
Commit-Ready: Tien Chang <tienchang@chromium.org>
Tested-by: Tien Chang <tienchang@chromium.org>
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Bindu Mahadev <bmahadev@chromium.org>
ros/network/wifi_rack_constants.py
62cf3a47fb75b5abf367dcc684234e9bd89459f1 01-Oct-2015 Gilad Arnold <garnold@chromium.org> autoupdater.py: Improve error reporting of certain operations.

Clarify and add detail to the errors reported by three methods that are
used by the autoupdate_EndToEnd test.

BUG=b:24530765
TEST=Unit tests

Change-Id: I2392f27fd6724e5b3249cc04d4d351c8d2b6ed3a
Reviewed-on: https://chromium-review.googlesource.com/303156
Commit-Ready: Gilad Arnold <garnold@chromium.org>
Tested-by: Gilad Arnold <garnold@chromium.org>
Reviewed-by: Dan Shi <dshi@chromium.org>
ros/autoupdater.py
06977bf3187e127ac369700ff4cb9fd23f61dbf1 30-Sep-2015 Bindu Mahadev <bmahadev@chromium.org> Reboot packet capturer

Reboot packet capturer and also determine total number of APs that
are up in the lab before running a chaos test.

BUG=chromium:537000
TEST=Ran chaos tests

Change-Id: I3e78a553039cffd814927bd8814a2ead8ca53bb1
Reviewed-on: https://chromium-review.googlesource.com/303053
Commit-Ready: Bindu Mahadev <bmahadev@chromium.org>
Tested-by: Bindu Mahadev <bmahadev@chromium.org>
Reviewed-by: Tien Chang <tienchang@chromium.org>
ros/network/ap_constants.py
55e4a38297449fcf3dbd693e2e6afe72fa84b519 30-Sep-2015 Ahmed Fakhry <afakhry@google.com> [Telemetry] Use browser.platform for SetHTTPServerDirectories and http_server

SetHTTPServerDirectories and http_server were moved from Browser to Platform
in the CL https://codereview.chromium.org/1364853006. This CL modifies the
users of the Browser class to account for that change.

BUG=chromium:537655
TEST=Ran the test locally

Change-Id: I64dc425fbc6f5ed68993668739433e1d74a455f8
Reviewed-on: https://chromium-review.googlesource.com/303183
Reviewed-by: Achuith Bhandarkar <achuith@chromium.org>
Commit-Queue: Achuith Bhandarkar <achuith@chromium.org>
Trybot-Ready: Achuith Bhandarkar <achuith@chromium.org>
Tested-by: Achuith Bhandarkar <achuith@chromium.org>
ros/interactive_xmlrpc_server.py
1b854e0747723352fa60d107da5ef3662511caf8 26-Sep-2015 Eric Caruso <ejcaruso@chromium.org> cros/network/interface: Add Broadcom 4371 device info

Since we are testing out this chip we should have its name show
up instead of treating it like an unknown device.

BUG=None
TEST=Run network_WiFi_RxFrag, make sure the test does not complain
that the wifi device is unrecognized

Change-Id: I4ff5cdf4d9bd260930378db4d58f62e6c0028621
Reviewed-on: https://chromium-review.googlesource.com/302775
Commit-Ready: Eric Caruso <ejcaruso@chromium.org>
Tested-by: Eric Caruso <ejcaruso@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
ros/network/interface.py
d59f299e7b4f1c3db868eefbd1241628a26425ef 25-Sep-2015 mukesh agrawal <quiche@chromium.org> autotest (wifi): ChannelScanDwellTime: fix filtering bug

ChannelScanDwellTime references the WLAN_BEACON_FILTER field
of tcpdump_analyzer, but that field doesn't actually exist.
Oops!

Also, ChannelScanDwellTime calls get_frames() with one argument
fewer than is required.

Fix both of these issues.

BUG=chromium:522599
TEST=network_WiFi_ChannelScanDwellTime

Change-Id: I5d81cb0ea55e4fa89ae79dfbcaf3304280a077b4
Reviewed-on: https://chromium-review.googlesource.com/302495
Commit-Ready: mukesh agrawal <quiche@chromium.org>
Tested-by: mukesh agrawal <quiche@chromium.org>
Reviewed-by: Tien Chang <tienchang@chromium.org>
ros/network/tcpdump_analyzer.py
76adb264a8e007b122f084cc8c0572daaa43751e 24-Sep-2015 Fang Deng <fdeng@chromium.org> [autotest] set symbolication timeout to 10mins and modify stats

Currently timeout is 20 which is too long.
A lot of builders have timed out.

Set timeout to 10mins and modify some stats.

TEST=Initialize a CrashServer and symbolicate a file.
BUG=chromium:532559,chromium:535671

Change-Id: I96c8f433d0ed3a63df6a44ff529dcac6523bd24f
Reviewed-on: https://chromium-review.googlesource.com/302144
Commit-Ready: Fang Deng <fdeng@chromium.org>
Tested-by: Fang Deng <fdeng@chromium.org>
Reviewed-by: Dan Shi <dshi@chromium.org>
ros/dev_server.py
9e6812115fcc52d762827002f525d0836b2c2003 19-Sep-2015 Shuqian Zhao <shuqianz@chromium.org> [autotest] Tests which not specify any subsystem will have 'subsystem:default'

Tests without any subsystem specified will have 'subsystem:default' when
read into ControlData object.

BUG=chromium:533659
TEST=unittest and test on local autotest with cmd
site_utils/run_suite.py --board=peppy --build=peppy-paladin/LATEST
--suite_name=suite_attr_wrapper
--suite_args="{'attr_filter':'suite:network_nightly and
subsystem:default'}"
.

Change-Id: Ia6e7e668d466e58cdd5e92704029f2d1761d86df
Reviewed-on: https://chromium-review.googlesource.com/300732
Commit-Ready: Shuqian Zhao <shuqianz@chromium.org>
Tested-by: Shuqian Zhao <shuqianz@chromium.org>
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
Reviewed-by: Dan Shi <dshi@chromium.org>
ontrol_data.py
ontrol_data_unittest.py
f8f45b131862de37935359cc62d55f0465709f33 21-Sep-2015 Dan Shi <dshi@chromium.org> [autotest] Fix a bug in host label metadata collection

Add retries in metadata bulk uploading.
Abort label collection if bulk upload failed.

If an entry of time_index posted to metadb without actual host labels uploaded,
host history lookup will fail as there is no board information found for the
latest time_index.

BUG=None
TEST=local run

Change-Id: Ic234cf8e97f4b80498c51189a06647b1ea8685cb
Reviewed-on: https://chromium-review.googlesource.com/301117
Commit-Ready: Dan Shi <dshi@chromium.org>
Tested-by: Dan Shi <dshi@chromium.org>
Reviewed-by: Mungyung Ryu <mkryu@google.com>
ros/graphite/autotest_es.py
0c0df7324b80a8fcf41739705b3bcbd10d3e2b8b 21-Sep-2015 Gilad Arnold <garnold@chromium.org> autoupdater.py: move CrOS-specific constants into ChromiumOSUpdater.

We'll soon have a new implementation (with different assumptions) for
Brillo devices.

BUG=b:24157043
TEST=Linter + unittests

Change-Id: I87c0dcae0cb8d646329b1a27aaf4403d6bf14aec
Reviewed-on: https://chromium-review.googlesource.com/301401
Commit-Ready: Gilad Arnold <garnold@chromium.org>
Tested-by: Gilad Arnold <garnold@chromium.org>
Reviewed-by: Simran Basi <sbasi@chromium.org>
Reviewed-by: Dan Shi <dshi@chromium.org>
ros/autoupdater.py
ros/autoupdater_unittest.py
5f2ff44e311ce949e24a7e8c4f1b12c65fee81f1 21-Sep-2015 Gilad Arnold <garnold@chromium.org> autoupdater: Fix whitespace errors.

BUG=None
TEST=None

Change-Id: If8c4cdf7952df882f63422fc3ceeb5861a9a8cc3
Reviewed-on: https://chromium-review.googlesource.com/301400
Commit-Ready: Gilad Arnold <garnold@chromium.org>
Tested-by: Gilad Arnold <garnold@chromium.org>
Reviewed-by: Dan Shi <dshi@chromium.org>
ros/autoupdater.py
34fdca477cb30bb7ee751648505b8121e129a587 01-Jun-2015 Ed Baker <edward.baker@intel.com> Add HTTP proxy config for client downloads

Client downloads timeout when the device under test is behind a proxy. This
introduces an optional config setting which is then picked up in file_utils.

BUG=chromium:496264
TEST=`test_that ${DUT_IP} platform_Crouton video_PlaybackPerf.vp8`

Change-Id: Ibea4414314c32395f86ab8268449d3a6fb6cc68b
Reviewed-on: https://chromium-review.googlesource.com/274846
Commit-Ready: Edward Baker <edward.baker@intel.com>
Tested-by: Edward Baker <edward.baker@intel.com>
Reviewed-by: Dan Shi <dshi@chromium.org>
ile_utils.py
11b13976b86fde5fc75f99698c54d8ca008139a7 11-Sep-2015 Don Garrett <dgarrett@chromium.org> Turn Chrome Crash collection back on.

Revert "Revert "Turn on collection of Chrome crashes again.""

This reverts commit 2165ae169273ec1742d270cfdc8be33922372907.

BUG=chromium:527144
TEST=None

Change-Id: I947b2db642013bef148540f5634e079e1113bbe6
Reviewed-on: https://chromium-review.googlesource.com/299330
Commit-Ready: Don Garrett <dgarrett@chromium.org>
Tested-by: Don Garrett <dgarrett@chromium.org>
Reviewed-by: Shuqian Zhao <shuqianz@chromium.org>
ros/chrome.py
b9730f5ed07e99149d3b545cfc495e59e28e54a2 03-Sep-2015 Dan Shi <dshi@chromium.org> [autotest] Prefer devserver in the same subnet

BUG=chromium:421123
TEST=local run

Change-Id: I8b1235381ae772996f4322b21b2ef268dd9eba04
Reviewed-on: https://chromium-review.googlesource.com/297174
Commit-Ready: Dan Shi <dshi@chromium.org>
Tested-by: Dan Shi <dshi@chromium.org>
Reviewed-by: Fang Deng <fdeng@chromium.org>
Reviewed-by: Don Garrett <dgarrett@chromium.org>
ros/dev_server.py
ff3ebfe8d9434cf590ad798b80b285e94c37530c 01-Sep-2015 Dan Shi <dshi@chromium.org> [autotest] Collect stats about devserver assignment for provision job.

Collect stats about if a devsever is assigned to a dut in the same subnet or
not, during a provision job.
The stats will be used to evaluate how much cros-lab traffic can be alleviated
if a dut can only use devserver in the same lab.

BUG=chromium:421123
TEST=local

Change-Id: I7ef7e3ea77df99f8d5359b800e4dee4bf7b9eb36
Reviewed-on: https://chromium-review.googlesource.com/296761
Trybot-Ready: Dan Shi <dshi@chromium.org>
Tested-by: Dan Shi <dshi@chromium.org>
Reviewed-by: Don Garrett <dgarrett@chromium.org>
Commit-Queue: Dan Shi <dshi@chromium.org>
ite_utils.py
ite_utils_unittest.py
2165ae169273ec1742d270cfdc8be33922372907 01-Sep-2015 Don Garrett <dgarrett@chromium.org> Revert "Turn on collection of Chrome crashes again."

As a temporary work around for bandwidth issues, turning off Chrome
crash collection. crbug.com/527144 covers re-enabling.

This reverts commit 54a830ea2ae7bfe20cb83d257b2075251221f0d0.

BUG=chromium:524814
TEST=None

Change-Id: Ic96f2b056b3806341988a6e087e1afed8fbebf82
Reviewed-on: https://chromium-review.googlesource.com/296468
Commit-Ready: Don Garrett <dgarrett@chromium.org>
Tested-by: Don Garrett <dgarrett@chromium.org>
Reviewed-by: Don Garrett <dgarrett@chromium.org>
ros/chrome.py
e428672caa5230383a6b3d40172d4e6e460d10b9 25-Aug-2015 Filipe Brandenburger <filbranden@chromium.org> autotest: Use sh_quote_word() in base_utils.run()

Use the new shell quoting API in the central run() function.

Update test case that depended on the internal quoting format, so that
it now reflects the sh_quote_word() output. Add a comment to note that
specific test depends on the internal quoting function.

It turns out this broke some cases that were passing a list in the
command argument. The old code was working since it used += which is
accepted by a list, but causes problems if args are passed because they
will be in escaped shell syntax. Fix that by making them uniform, always
converting "command" into a string if necessary. (In hindsight, we
should be doing the opposite, but we can try to address that later.)

BUG=None.
TEST=Ran the base_utils_unittest.py unit tests with no failures.

Change-Id: I5ff8f92671583a236ee38d0da90c890bbb096cc8
Signed-off-by: Filipe Brandenburger <filbranden@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/295441
Reviewed-by: Christopher Wiley <wiley@chromium.org>
ase_utils.py
ase_utils_unittest.py
b2d1fc137b403edf24d3ef3f6e6d3e409bb33948 25-Aug-2015 Filipe Brandenburger <filbranden@chromium.org> autotest: Introduce new sh_quote_word() API for shell commands.

This new API is meant to eventually replace sh_escape().

While the old sh_escape() API works as expected and seems to cover all
the corner cases, I would argue that the new API is:

1) More complete: Because it returns a term that can be directly used as
a shell word (while sh_escape relies on the caller surrounding it with
double quotes.)

2) Cleaner: Most characters are unaffected, including the dollar sign
and backslash and even the double quote.

The only one that gets affected by quoting is the single quote (granted
though, for the single quote it gets pretty ugly, especially if there is
nesting.)

It is also cleaner in that words that require no quoting will be
returned unquoting, with an optional whitelist to control which
characters are totally safe.

Using single quotes for the automated quoting (with sh_quote_word()) is
also nicer as for literal shell commands, the double quote is more
useful, being used for shell code that uses variables, etc. so it is
easier to reason about having all that code use mostly double quotes and
then be fairly recognizable after going through sh_quote_word().

3) More efficient: It only needs a single scan of the original text,
replcaing a single character. (The sh_escape() approach could be made to
do a single scan using regular expressions, but see points #1 and #2
above.)

Add new unit tests to cover the functionality of sh_quote_word. Inherit
from test_sh_escape to ensure the same tests are run on both. Introduce
a new test class to test nested quoting (quote a command, pass it
through "echo" and run the output through another shell.)

BUG=None.
TEST=Ran the base_utils_unittest.py unit tests with no failures.

Change-Id: I8b7fbce0aaf6a7eaa36ee6bc8bb939b915d903fb
Signed-off-by: Filipe Brandenburger <filbranden@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/295440
Reviewed-by: Fang Deng <fdeng@chromium.org>
ase_utils.py
ase_utils_unittest.py
177190fc27ed1828308ab772b22c24b5dde585ed 26-Aug-2015 Eric Caruso <ejcaruso@chromium.org> Revert "Add symlinks to new xmlrpc server locations"

This reverts commit fc21048744a595c00073d90c084df19a292fd221.

BUG=chromium:517197
TEST=None

Change-Id: I81c10d2aef5807e5cbca244de97c6e97f2781892
Reviewed-on: https://chromium-review.googlesource.com/295633
Commit-Ready: Eric Caruso <ejcaruso@chromium.org>
Tested-by: Eric Caruso <ejcaruso@chromium.org>
Reviewed-by: Christopher Wiley <wiley@chromium.org>
ros/bluetooth/bluetooth_device_xmlrpc_server.py
ros/bluetooth/bluetooth_tester_xmlrpc_server.py
ros/network/apmanager_xmlrpc_server.py
ros/network/shill_xmlrpc_server.py
cd756470f9583966c41a59ab1e25d773b701a119 26-Aug-2015 J. Richard Barnette <jrbarnette@chromium.org> [autotest] Remove obsolete "compatible_artifacts" handling.

This removes obsolete code related to handling different artifacts
generated by older version of the builders. The code was causing
devserver timeout error to be mis-reported.

N.B. This means it is no longer possible to stage builds from before
R40.

BUG=chromium:525186,chromium:433436
TEST=None

Change-Id: Ie4d7fc72b11dbfa68ada42f308afcba34867a907
Reviewed-on: https://chromium-review.googlesource.com/295750
Commit-Ready: Richard Barnette <jrbarnette@chromium.org>
Tested-by: Richard Barnette <jrbarnette@chromium.org>
Reviewed-by: Richard Barnette <jrbarnette@chromium.org>
ros/dev_server.py
b1b996c4b0478a2ed869afa14d906ab3198e6dd9 06-Aug-2015 Eric Caruso <ejcaruso@chromium.org> dark_resume_xmlrpc_server: move server constants out

In the lab, we are failing all lucid sleep tests because the
import chain on the server side ends up including stuff that
should only be present on the client side. This breaks the
dependency chain and moves all the relevant constants to
common_lib.

BUG=chromium:485834
TEST=run lucid sleep tests

Change-Id: I082b2b0fba4670fbe148fb353659ff6a34843314
Reviewed-on: https://chromium-review.googlesource.com/291303
Reviewed-by: Samuel Tan <samueltan@chromium.org>
Tested-by: Eric Caruso <ejcaruso@chromium.org>
Commit-Queue: Eric Caruso <ejcaruso@chromium.org>
/external/autotest/client/cros/dark_resume_xmlrpc_server.py
df1821be7abe211d5a95a76bbbb9c3f0e757fd24 25-Aug-2015 Filipe Brandenburger <filbranden@chromium.org> autotest: Cleanup after logging.warn -> logging.warning

There were some small issues which were probably introduced after
replacing logging.warn() calls with logging.warning().

In particular, line wrapping was incorrect in a few places, since line
continuations needed to be indented three extra spaces. In one place,
this bumped the line over 80 columns, so the string had to be rewrapped
as well.

Test cases were still stubbing logging.warn (so logging.warning was not
mocked, producing some noise in the output of test cases), after
correcting it to stub logging.warning, it was clear that some spots were
not marked as expecting a call, so I added those as well.

BUG=None.
TEST=Ran the base_utils_unittest.py unit tests with no failures.
Also confirmed that the test run did not produce any warning output,
only the "dots" indicating progress with a final report summary
("Ran 91 tests in 2.151s" and the "OK" line.)

Change-Id: I632a59b43d885c7aad8ec2d2083abba08e232279
Signed-off-by: Filipe Brandenburger <filbranden@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/295399
Reviewed-by: Christopher Wiley <wiley@chromium.org>
ase_utils.py
ase_utils_unittest.py
39c118098c12e5ec81be8a470ed7ebaf653f777a 25-Aug-2015 Filipe Brandenburger <filbranden@chromium.org> autotest: Use one import per line to comply with pep8

Following recommendation from the PEP 8:
https://www.python.org/dev/peps/pep-0008/#imports

This makes it easier to tell whether a certain module was imported
already or not.

BUG=None.
TEST=Ran the base_utils_unittest.py unit tests with no failures.

Change-Id: I66f7fa2961b2862fe40ed8e7858197b5e7ff7f34
Signed-off-by: Filipe Brandenburger <filbranden@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/295398
Reviewed-by: Christopher Wiley <wiley@chromium.org>
ase_utils.py
4055704ec6c3ed559d35d61e5f0b8b4fcda797f6 18-Aug-2015 MK Ryu <mkryu@google.com> [autotest] Add a new script that deletes unused labels.

Labels such as 'cros-version', 'fw-version', 'fwrw-version',
and 'fwro-version' are stacking up in the DB, and there are
many such labels that are no longer in use.
This script can be used to delete unused labels.
We will run this script as a cron job in the machines that
run MySQL. Such machines are shards and master DB.

BUG=chromium:380365
TEST=Test with local database.

Change-Id: I0f341c3e5a5977c53b0764efd0442684b525f3fd
Reviewed-on: https://chromium-review.googlesource.com/294164
Trybot-Ready: Mungyung Ryu <mkryu@google.com>
Tested-by: Mungyung Ryu <mkryu@google.com>
Reviewed-by: Dan Shi <dshi@chromium.org>
Commit-Queue: Mungyung Ryu <mkryu@google.com>
ogging_config.py
c026987fe3ef3f5d16f956176d4f52c464b46856 20-Aug-2015 Katherine Threlkeld <kathrelkeld@chromium.org> Improve logging for bluetooth_SDP_*AttributeRequest tests.

Add more logging statements and clarify error messages,
especially for the most frequent errors seen in the lab.

No functional changes to the behavior of the test.

ServiceSearchAttributeRequest:
- Split the giant and-ed line and make each sub-test fail instead of
returning False
- Add in the test name to failures
- Alter the current retry method to handle errors instead of bool

SDP tests:
- Split initial device reset into two sections which fail
independantly
- Set self.interactive before anything else, to avoid problems
if the later things fail
- Change output to hex instead of decimal where it makes sense

Client side code:
- Catch btsocket errors and timeouts and log more context info
- Add logging messages to low-level failures
- Check if adapter variable is None before using it

TEST=ran all bluetooth tests on a wificell and saw them pass
BUG=chromium:426260

Change-Id: I919524a984304334265a7e1658fee956fdfbfdb8
Reviewed-on: https://chromium-review.googlesource.com/294622
Reviewed-by: Mussa Kiroga <mussa@chromium.org>
Tested-by: Katherine Threlkeld <kathrelkeld@chromium.org>
Commit-Queue: Katherine Threlkeld <kathrelkeld@chromium.org>
ros/bluetooth/bluetooth_sdp_socket.py
ros/bluetooth/bluetooth_socket.py
735fec04a0041878cddd4877433414f528fac68d 16-Aug-2015 Vitaly Buka <vitalybuka@chromium.org> libweave: Remove device_kind and embedded_code_path

Keep only embedded_code, implementation will decide how to get it.
device_kind is not supported by server already.

BUG=brillo:1257
TEST=`FEATURES=test emerge-gizmo libweave buffet`
`test_that -b $BOARD $DEV_HOST e:buffet_.*`

Change-Id: I3ed09c8e879db4c0c5737b523d3b16cd31360619
Reviewed-on: https://chromium-review.googlesource.com/293940
Reviewed-by: Vitaly Buka <vitalybuka@chromium.org>
Commit-Queue: Vitaly Buka <vitalybuka@chromium.org>
Tested-by: Vitaly Buka <vitalybuka@chromium.org>
ros/fake_device_server/client_lib/devices.py
ros/fake_device_server/client_lib/registration.py
ros/fake_device_server/devices.py
ros/fake_device_server/devices_unittest.py
ros/fake_device_server/registration_tickets_unittest.py
e0b08e6170b57f90262726eb7f04e059cb47419c 11-Aug-2015 Hsinyu Chao <hychao@chromium.org> Revert "autotest: move constants to common_lib"

This reverts commit a4ac7a8f67d61f8a616724f9426dbc0fce71ce69.

BUG=chromium:519353

Change-Id: Iec2873ad22b5bb90e46a9e5b323f9626a2c07d9b
Reviewed-on: https://chromium-review.googlesource.com/292347
Reviewed-by: Hsinyu Chao <hychao@chromium.org>
Commit-Queue: Hsinyu Chao <hychao@chromium.org>
Tested-by: Hsinyu Chao <hychao@chromium.org>
Reviewed-by: Sonny Rao <sonnyrao@chromium.org>
Commit-Queue: Sonny Rao <sonnyrao@chromium.org>
Tested-by: Sonny Rao <sonnyrao@chromium.org>
ros/chrome.py
ros/constants.py
ros/interactive_xmlrpc_server.py
ros/session_manager.py
sbrelease_utils.py
ite_utils.py
a4ac7a8f67d61f8a616724f9426dbc0fce71ce69 06-Aug-2015 Eric Caruso <ejcaruso@chromium.org> autotest: move constants to common_lib

This file gets imported from lots of server-side tests and
infrastructure so it shouldn't be hiding in client/cros. This
moves the file and fixes all imports.

BUG=chromium:485834
TEST=run many tests, make sure there are no problems importing
constants

Change-Id: I5c2b2a0bef6ebc998e62f40162a6ec9cc4436480
Reviewed-on: https://chromium-review.googlesource.com/291302
Trybot-Ready: Eric Caruso <ejcaruso@chromium.org>
Commit-Queue: Eric Caruso <ejcaruso@chromium.org>
Tested-by: Eric Caruso <ejcaruso@chromium.org>
Reviewed-by: Chris Sosa <sosa@google.com>
ros/chrome.py
ros/constants.py
ros/interactive_xmlrpc_server.py
ros/session_manager.py
sbrelease_utils.py
ite_utils.py
fc21048744a595c00073d90c084df19a292fd221 05-Aug-2015 Christopher Wiley <wiley@google.com> Add symlinks to new xmlrpc server locations

If for some reason, we run an older version of the autotest server
package against a newer version of the client library, the server
code will expect to find xmlrpc_server implementation at these paths.

We can delete these symlinks after a very short time (order of a week).

BUG=chromium:485834
TEST=None

Change-Id: If448ef4fde0105607f86d2d1f08b2d12ad8fd112
Reviewed-on: https://chromium-review.googlesource.com/290555
Reviewed-by: Eric Caruso <ejcaruso@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
Tested-by: Christopher Wiley <wiley@chromium.org>
ros/bluetooth/bluetooth_device_xmlrpc_server.py
ros/bluetooth/bluetooth_tester_xmlrpc_server.py
ros/network/apmanager_xmlrpc_server.py
ros/network/shill_xmlrpc_server.py
6946f948018ca7ce9263e9a9b5ff0eee676c1f68 05-Aug-2015 Christopher Wiley <wiley@google.com> Move xmlrpc servers to client/cros

Having these files in client/common_lib/cros makes it appear as if
it is acceptable to include them from server code. Unfortunately,
many of them have dependencies on DBus, which makes them appropriate
only for inclusion in client contexts.

BUG=chromium:485834
TEST=These tests have been confirmed to work:
- network_WiFi_SimpleConnect.wifi_checkWPA_TKIP
- bluetooth_Sanity_Discoverable

Change-Id: I8fe2beb8dab22678e4aa33f357065ca474c515d5
Reviewed-on: https://chromium-review.googlesource.com/290731
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
Tested-by: Christopher Wiley <wiley@chromium.org>
ros/bluetooth/bluetooth_device_xmlrpc_server.py
ros/bluetooth/bluetooth_tester_xmlrpc_server.py
ros/network/apmanager_xmlrpc_server.py
ros/network/shill_xmlrpc_server.py
ec0b71daa4d20f466724523821e4f4908d7e7d5a 05-Aug-2015 Christopher Wiley <wiley@google.com> Move xmlrpc_server.py to client/cros

Ths reflects that one should never import this file unless one is
running in a client context.

BUG=chromium:485834
TEST=These tests have been confirmed to work:
- network_WiFi_SimpleConnect.wifi_checkWPA_TKIP
- bluetooth_Sanity_Discoverable

Change-Id: I07cccc0d5ea49c09d8732b4bc369a441309998c5
Reviewed-on: https://chromium-review.googlesource.com/290730
Tested-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Eric Caruso <ejcaruso@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
ros/bluetooth/bluetooth_device_xmlrpc_server.py
ros/bluetooth/bluetooth_tester_xmlrpc_server.py
ros/network/apmanager_xmlrpc_server.py
ros/network/shill_xmlrpc_server.py
ros/xmlrpc_server.py
/external/autotest/client/cros/dark_resume_xmlrpc_server.py
d9fce7f91b0130eae07eac53b2e49bd0527b2b2a 28-Jul-2015 mukesh agrawal <quiche@chromium.org> autotest (wifi): tcpdump_analyzer: parse SSIDs for beacon frames

Beacon frames have SSIDs, and we'd like to use them. So update
tcpdump_analyzer, to parse SSIDs for beacon frames.

While there: remove _match_frame_field_with_value(). Doing
so makes it easier to match a field against multiple values.

BUG=chromium:514256
TEST=network_WiFi_ChannelScanDwellTime (after next CL)

Change-Id: Ia4bf51107a1c04e4a1d66d25a24a1606594f1784
Reviewed-on: https://chromium-review.googlesource.com/290802
Tested-by: mukesh agrawal <quiche@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: mukesh agrawal <quiche@chromium.org>
Trybot-Ready: mukesh agrawal <quiche@chromium.org>
ros/network/tcpdump_analyzer.py
34e74b567270941510239d7b9dcfd748c2c23866 28-Jul-2015 mukesh agrawal <quiche@chromium.org> autotest (wifi): pick some nits in tcpdump_analyzer

Use consistent indentation for long argument lists.
Previously, the code had a mix of hanging-right, and
pack-next-line. This CL makes the code consistently
use pack-next-line

BUG=None
TEST=None

Change-Id: I14a3eb192b531c1fc9faee6fee22459a978b04ca
Reviewed-on: https://chromium-review.googlesource.com/290801
Tested-by: mukesh agrawal <quiche@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: mukesh agrawal <quiche@chromium.org>
Trybot-Ready: mukesh agrawal <quiche@chromium.org>
ros/network/tcpdump_analyzer.py
c3961df5bb902874397f79c70db10f8db1363f69 21-Jul-2015 Prathmesh Prabhu <pprabhu@chromium.org> telemetry: Complete transition of cros_interface import path.

CL:287163 began transition of the import path for cros_interface module
provided by telemetry. With the new path now available in CrOS (after a
chrome roll), this CL completes the transition to the new path, dropping
the old one.

BUG=chromium:512427
TEST=CQ passes.

Change-Id: If470bc11c2d61993008ae6cbafee7fa5838a57e2
Reviewed-on: https://chromium-review.googlesource.com/287144
Reviewed-by: mukesh agrawal <quiche@chromium.org>
Reviewed-by: Don Garrett <dgarrett@chromium.org>
Reviewed-by: Prathmesh Prabhu <pprabhu@chromium.org>
Commit-Queue: Prathmesh Prabhu <pprabhu@chromium.org>
Tested-by: Prathmesh Prabhu <pprabhu@chromium.org>
ros/chrome.py
bbec804e4c63caf1b8e58ddaf3dc1bc7933442da 03-Aug-2015 mukesh agrawal <quiche@chromium.org> autotest (wifi): filter bad frames in get_probe_ssids()

We've found the HiddenScan test test to be flaky with some
hardware combinations. It turns out that we sometimes report
probes for SSIDs which are similar, but not identical, to the
SSID that we set up for the test.

These similar-but-not-identical SSIDs have always appeared
in frames which fail the FCS check. Presumably, either the
client, or the AP, is mangling these frames. (Channel noise
shouldn't be an issue, as these tests are run in a shield
box. And the FCS errors are very frequent.)

To remedy this problem, we have get_probe_ssids() filter out
frames whose FCS values don't match the frame data.

While there:
- Add a |bad_fcs| argument to get_frames(). This argument
specifies the disposition of frames which fail the FCS check.
While we could have get_frames() always discard such frames,
some tests probably won't want that. (E.g., a test of the
rate control algorithm would want to know how failed
transmissions affect transmit rates.)
- Rename WLAN_PROBE_REQ_FILTER to WLAN_PROBE_REQ_ACCEPTOR.
This makes the naming less ambiguous. (We now have both
positive, and negative filters. "Filter" doesn't tell
us whether a matching frame will be accepted, or rejected.)
- Update existing tests to specify |bad_fcs='include'|. This
maintains existing behavior for those tests.
- DarkResumeActiveScans: use ACCEPTOR instead of FILTER.
- TDLSPing: wordsmith some error messages
- TDLSPing: address 'logging-not-lazy' warning from presubmit check.

BUG=chromium:504486
TEST=network_WiFi_HiddenScan [1][2]3[]
TEST=network_WiFi_TDLSPing [2]
TEST=network_WiFi_DarkResumeActiveScans [3]
TEST=network_WiFi_RateControl [2][3]
TEST=network_WiFi_LowInitialBitrates [2][3]
TEST=network_WiFi_VisibleScan [2][3]

[1] 10 iterations, on new hardware
[2] on peppy
[3] on samus

Change-Id: I0c2069bce9e25b70c8d4936265c1d548c814cf18
Reviewed-on: https://chromium-review.googlesource.com/290371
Trybot-Ready: mukesh agrawal <quiche@chromium.org>
Tested-by: mukesh agrawal <quiche@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Mukesh Agrawal <quiche@google.com>
ros/network/tcpdump_analyzer.py
b2d204bdfe899c01188cba532d5f61a98d38f509 04-Aug-2015 Rebecca Silberstein <silberst@chromium.org> autotest: update version check for test-ap builds

Update regex to cover test-ap builds when checking image versions after
an update. Also added unittest.

BUG=chromium:496868
TEST=ran network_WiFi_UpdateRouter test on DUT
TEST=python autoupdater_unittest.py

Change-Id: Ied31c18bfb087f40cd28729920d492a83dd81d22
Reviewed-on: https://chromium-review.googlesource.com/290436
Reviewed-by: Dan Shi <dshi@chromium.org>
Commit-Queue: Rebecca Silberstein <silberst@chromium.org>
Trybot-Ready: Rebecca Silberstein <silberst@chromium.org>
Tested-by: Rebecca Silberstein <silberst@chromium.org>
ros/autoupdater_unittest.py
ite_utils.py
91025b5fa6f0ceaaee5dfadb4a710677f1cb87ed 03-Aug-2015 mukesh agrawal <quiche@chromium.org> autotest (wifi): pick some nits

1) Remove some unused imports, to make the presubmit check happy.
2) Use single-quotes, instead of double-quotes, per style.
3) Use two blank lines between methods, per style.

BUG=None
TEST=network_WiFi_HiddenScan

Change-Id: Ifa5aa006e6f6749e0a670a2323ca2afd8f89f7df
Reviewed-on: https://chromium-review.googlesource.com/290370
Trybot-Ready: mukesh agrawal <quiche@chromium.org>
Tested-by: mukesh agrawal <quiche@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: mukesh agrawal <quiche@chromium.org>
ros/network/tcpdump_analyzer.py
7bdd89d6927be7c0aa4096aaf6f0354a5de38a19 28-Jul-2015 Dan Shi <dshi@chromium.org> [autotest] Change missing elasticsearch error to debug info.

BUG=chromium:487258
TEST=None

Change-Id: I6e8af1a902b05858e23065ee9d68f2ea70112a60
Reviewed-on: https://chromium-review.googlesource.com/288973
Commit-Queue: Dan Shi <dshi@chromium.org>
Trybot-Ready: Dan Shi <dshi@chromium.org>
Tested-by: Dan Shi <dshi@chromium.org>
Reviewed-by: mukesh agrawal <quiche@chromium.org>
ros/graphite/es_utils.py
029457bea998679d3c5c8e6ad22305e925af2c2e 14-Jul-2015 Filipe Brandenburger <filbranden@chromium.org> autotest: Use `nohup` to put the iw log tail command in background

Otherwise running it through `adb shell` ends up killing it with a
SIGHUP as soon as the shell is terminated.

Also redirect its stdin (to /dev/null) and stderr (dup of stdout) to
prevent the channel from staying open, which would block the script.

BUG=chrome-os-partner:42310
TEST=Ran network_WiFi_SimpleConnect through adb successfully.
Ran suite:wifi_matfunc against a Samus in a wifi cage.

Change-Id: Ia74f923b0487d6cae99d921876ebdf3d0446120c
Reviewed-on: https://chromium-review.googlesource.com/285643
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Commit-Queue: Filipe Brandenburger <filbranden@chromium.org>
Tested-by: Filipe Brandenburger <filbranden@chromium.org>
ros/network/iw_event_logger.py
fe0694c2637916870b85dd5d0effd2026c0f5333 14-Jul-2015 Filipe Brandenburger <filbranden@chromium.org> autotest: Refactor code parsing `iw dev` output

The refactor makes it cope with this output (from an Android device):

$ adb shell iw dev
phy#0
Unnamed/non-netdev interface
wdev 0x2
addr aa:bb:cc:dd:ee:ff
type P2P-device
Interface wlan0
ifindex 4
wdev 0x1
addr aa:bb:cc:dd:ee:ff
ssid Whatever
type managed

Before this refactor, interface "wlan0" would be incorrectly associated
with type "P2P-device", since at that point one type and one interface
name were seen.

The correct association for "wlan0" is with type "managed", which
appears under the interface. Types are always expected to be after the
interface, so we should only start looking for a type after seeing an
interface name.

BUG=chrome-os-partner:42310
TEST=Ran network_WiFi_SimpleConnect through adb successfully.
Ran suite:wifi_matfunc against a Samus in a wifi cage.

Change-Id: Ibdd1199ba27715f5774537e494f69ec6499dbcf9
Reviewed-on: https://chromium-review.googlesource.com/285642
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Commit-Queue: Filipe Brandenburger <filbranden@chromium.org>
Tested-by: Filipe Brandenburger <filbranden@chromium.org>
ros/network/iw_runner.py
70647cafbd061a7754ac304fd9dc067f2b6dbab4 17-Jul-2015 Dan Shi <dshi@chromium.org> [autotest] Save parent job id, build, board and suite info to tko_jobs.

parent job id is passed in through autoserv commandline. autoserv saves the
value to keyval file in results folder. The parser job then reads the parent
job id from keyval file.

build, board and suite info are parsed from job name. The label column in
tko_jobs is essentially the job name. However, that column has a size limit of
100 characters, thus the name could be truncated. This CL parse the actual job
name to get the build, board and suite info and save to tko_jobs table.

BUG=chromium:509770,chromium:509901
TEST=local test
CQ-DEPEND=CL:285026

Change-Id: I06b073b052a9d07ffd36308b1682a7bc12699898
Reviewed-on: https://chromium-review.googlesource.com/286265
Tested-by: Dan Shi <dshi@chromium.org>
Reviewed-by: Mungyung Ryu <mkryu@google.com>
Commit-Queue: Dan Shi <dshi@chromium.org>
ase_job.py
ase_job_unittest.py
5a04c913266fd9aa50a6393e2c3c059b19e5168d 22-Jul-2015 Mussa <mussa@chromium.org> Use a Longest Common Subsequence(LCS) to compare chameleon frames.

In our video frame comparison tests we have a list of golden checksums
and a list of test checksums.

Each checksum is computed from each frame. Due to the nature of capturing
frames sometimes we miss a frame. Therefore, either of the two lists could
end up with a missing frame, or what would appear to be an added frame in
the other list.

Currently we are walking the golden checksum list insisting that we find
each checksum in the test checksum list. The test fails when we see a mismatch.

But this mismatch could be because there is one extra or one less checksum, and
the rest of the checksums could continue to be matched.

SO, use LCS to measure how similar the two lists are. If we have less than 10
golden frames that coudln't be found in the test, we will say the test has passed.

In future CLs, a check to make sure the mismatched frames are not consecutive will
be added.

BUG=chromium:484057
TEST=Ran a test 10 times on code without CL. Got a few (false) failures.
Ran same test with this CL and got no failures.

Change-Id: I5aea72e4cb9ada296e7df365b7108cf969e9c496
Reviewed-on: https://chromium-review.googlesource.com/285854
Reviewed-by: Wai-Hong Tam <waihong@chromium.org>
Commit-Queue: Mussa Kiroga <mussa@chromium.org>
Tested-by: Mussa Kiroga <mussa@chromium.org>
equence_utils.py
580717f35931982b0a98fef941ecf445a8092348 24-Jul-2015 Don Garrett <dgarrett@google.com> unittests: Make all unittests directly runnable.

After this, you can run all of the unittests directly, though some of
them don't pass when run that way.

BUG=chromium:476304
TEST=Ran tests.

Change-Id: I07adeb8dbb6f1d2c0bd6287c4ede7300a8211275
Reviewed-on: https://chromium-review.googlesource.com/288372
Tested-by: Don Garrett <dgarrett@chromium.org>
Trybot-Ready: Don Garrett <dgarrett@chromium.org>
Reviewed-by: Mungyung Ryu <mkryu@google.com>
Commit-Queue: Don Garrett <dgarrett@chromium.org>
ros/dev_server_unittest.py
ros/network/iw_runner_unittest.py
ros/servo_afe_board_map_unittest.py
c5e287d5afa2a565674154437b744acbe77e1912 24-Jul-2015 Alex Vakulenko <avakulenko@chromium.org> Fix fake-gcd-server to include device resource timestamp

Buffet now requires lastUpdateTimeMs timestamp on device resource,
so changed the test fake GCD server to include the timestamp.

Also, fixed GET request for '/devices/<id>' to retrieve the api_key
from the authorization header via access token, when this call
originates from buffet process (which does not include "?key=..."
query parameters on the URL).

BUG=brillo:1261
TEST=`test_that -b link <ip> "e:buffet_.*"`

Change-Id: I35b7b56bf51d52c38f4324827d7f48422c690ad5
Reviewed-on: https://chromium-review.googlesource.com/288010
Reviewed-by: Vitaly Buka <vitalybuka@chromium.org>
Tested-by: Alex Vakulenko <avakulenko@chromium.org>
Commit-Queue: Alex Vakulenko <avakulenko@chromium.org>
ros/fake_device_server/devices.py
cae83c7f545ba16316c819ce238cf6a00db4a4c5 23-Jul-2015 Dan Shi <dshi@chromium.org> [autotest] Update elasticsearch python module and add request_timeout in query

Without the request_timeout, it's quite often metadb query failed with error:
ReadTimeoutError("HTTPConnectionPool(host='xxx', port=9800):
Read timed out. (read timeout=3)

This can be avoid by increasing the request_timeout. The parameter is only
supported in newer elasticsearch module, thus it needs to be updated.

BUG=None
TEST=local run command
./site_utils/host_history.py --board lumpy --pool bvt -l 1
DEPLOY=build_externals

Change-Id: Ic4bdf7e26d7055fa38163994428ba8e45ce02581
Reviewed-on: https://chromium-review.googlesource.com/287670
Tested-by: Dan Shi <dshi@chromium.org>
Reviewed-by: Fang Deng <fdeng@chromium.org>
Commit-Queue: Dan Shi <dshi@chromium.org>
ros/graphite/es_utils.py
7668974aa7b9968ebadf3cfbdf94280c56a2f7e2 22-Jul-2015 Rebecca Silberstein <silberst@chromium.org> autotest (wifi): Move disconnect checks to function and add a third

During tests, connection failures are checked by looking for log messages
starting with specific phrases. Consolidate these checks into a helper
function and add a third log message type.

Log messages covered now include those starting with 'disconnected' and
'Deauthenticated' and matching 'Previous authentication no longer valid'.

BUG=chromium:512928
TEST=confirmed network_WiFi_LinkMonitorFailure still passes

Change-Id: Ic1e4fc41c482af11d1b3c1aa249bab1c7bdec466
Reviewed-on: https://chromium-review.googlesource.com/287613
Reviewed-by: mukesh agrawal <quiche@chromium.org>
Commit-Queue: Rebecca Silberstein <silberst@chromium.org>
Trybot-Ready: Rebecca Silberstein <silberst@chromium.org>
Tested-by: Rebecca Silberstein <silberst@chromium.org>
ros/network/iw_event_logger.py
b022062a70013c4baa19a36b2aa43ab90b23507d 21-Jul-2015 Prathmesh Prabhu <pprabhu@chromium.org> telemetry: Transition import path for cros_interface.

crbug.com/462776 changed the import path for cros_interface. To allow
this change to make it through the CrOS PFQ, we must support both the
old and the new paths. We'll later send in a change to drop the old
path.

BUG=chromium:512427
TEST=CQ passes, PFQ passes.

Change-Id: I34fadbc9f8adf86437050bc2c10be297e3237eee
Reviewed-on: https://chromium-review.googlesource.com/287163
Trybot-Ready: Prathmesh Prabhu <pprabhu@chromium.org>
Reviewed-by: Don Garrett <dgarrett@chromium.org>
Tested-by: Prathmesh Prabhu <pprabhu@chromium.org>
ros/chrome.py
b058a8f201af2d99f3d02aa956ab118df2d9c67d 02-Jul-2015 Achuith Bhandarkar <achuith@chromium.org> Remove WARs for telemetry.internal imports

BUG=chromium:506037
TEST=autotests

Change-Id: I999bc892e676258b46fc35e3066841a97a95b348
Reviewed-on: https://chromium-review.googlesource.com/283173
Commit-Queue: Achuith Bhandarkar <achuith@chromium.org>
Trybot-Ready: Achuith Bhandarkar <achuith@chromium.org>
Reviewed-by: Achuith Bhandarkar <achuith@chromium.org>
Tested-by: Achuith Bhandarkar <achuith@chromium.org>
ros/chrome.py
88a2babadec91f44481af7a6be90d89b0dcdf0e3 10-Jul-2015 Achuith Bhandarkar <achuith@chromium.org> Fixes for enterprise_RemoraRequisition.

BUG=chromium:495847
TEST=enterprise_RemoraRequisition

Change-Id: I26adc9bd1f37e8289ed724ded068f29123a5eca6
Reviewed-on: https://chromium-review.googlesource.com/285652
Commit-Queue: Achuith Bhandarkar <achuith@chromium.org>
Trybot-Ready: Achuith Bhandarkar <achuith@chromium.org>
Tested-by: Achuith Bhandarkar <achuith@chromium.org>
Reviewed-by: David Abrahams <resetswitch@chromium.org>
Reviewed-by: Achuith Bhandarkar <achuith@chromium.org>
ros/chrome.py
ros/enrollment.py
dc6442b70574048ad5cc3958f049cfe985961a20 08-Jul-2015 Cheng-Yi Chiang <cychiang@chromium.org> [autotest] bluetooth_device_xmlrpc_server: Add has_device API

Add a method has_device so user can query if device with certain MAC
address exists. By doing this, user does not need to get the properties
in get_devices.

BUG=chromium:507410
TEST=not used yet.

Change-Id: I960084d59487f62bc021623a0134cf14684b11ea
Reviewed-on: https://chromium-review.googlesource.com/283756
Reviewed-by: Wai-Hong Tam <waihong@chromium.org>
Commit-Queue: Cheng-Yi Chiang <cychiang@chromium.org>
Tested-by: Cheng-Yi Chiang <cychiang@chromium.org>
ros/bluetooth/bluetooth_device_xmlrpc_server.py
4ee74511349b196a936bb56dbe0e18ee1c16b531 16-Jul-2015 Rebecca Silberstein <silberst@chromium.org> autotest (wifi): add Deauthenticated message to disconnect checks

During tests, connection failures are only counted if the message starts
with 'disconnected'. When the AP is suddenly taken down, the connection
failure may be logged as 'Deauthenticated'. The event message now
covers both cases.

BUG=chromium:510636
TEST=confirmed network_WiFi_LinkMonitorFailure still passes

Change-Id: Ia5bea977d3182da758dca2bb1f2aada95346ea02
Reviewed-on: https://chromium-review.googlesource.com/285923
Reviewed-by: mukesh agrawal <quiche@chromium.org>
Commit-Queue: Rebecca Silberstein <silberst@chromium.org>
Trybot-Ready: Rebecca Silberstein <silberst@chromium.org>
Tested-by: Rebecca Silberstein <silberst@chromium.org>
ros/network/iw_event_logger.py
3e4e0ab0cc2097523c8554b2f7df6d90f3a8cf7c 14-Jul-2015 Filipe Brandenburger <filbranden@chromium.org> autotest: Do not fail trying to find the module of wlan0

If the Linux kernel is non-modular and the driver is built into the
kernel, the "driver/module" symlink for that device in sysfs will not
exist.

In that case, fail gracefully by setting the kernel_module field (which
is only used for debugging purposes) to a sensible textual description
indicating that the name of the module is unknown.

BUG=chrome-os-partner:42310
TEST=Ran network_WiFi_SimpleConnect against a machine with a kernel with
drivers linked into the kernel and modules disabled.
Ran suite:wifi_matfunc against a Samus in a wifi cage.

Change-Id: If3b822eef5b62238e4094d0f03b6978354a4a1ba
Reviewed-on: https://chromium-review.googlesource.com/284007
Trybot-Ready: Filipe Brandenburger <filbranden@chromium.org>
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Commit-Queue: Filipe Brandenburger <filbranden@chromium.org>
Tested-by: Filipe Brandenburger <filbranden@chromium.org>
ros/network/interface.py
e24761c537e04951e92d85f0878f2b6dbcc94caf 07-Jul-2015 Dan Shi <dshi@chromium.org> [autotest] Handle version comparison for builder trybot-*-pre-cq

trybot pre-cq build is similar to trybot paladin build that the build name ends
with -b#, and the release version in lsb-release ends with a date string, e.g.,
3837.0.2013_03_21_1340

This CL adds the support to compare the CrOS version from builder
trybot-*-pre-cq to the release name from lsb-release file.

BUG=chromium:507406
TEST=unittest

Change-Id: Ib57408a6e76715cd833daa58815f38c0c897938a
Reviewed-on: https://chromium-review.googlesource.com/283514
Tested-by: Dan Shi <dshi@chromium.org>
Reviewed-by: Tien Chang <tienchang@chromium.org>
Reviewed-by: Chris Sosa <sosa@chromium.org>
Commit-Queue: Dan Shi <dshi@chromium.org>
ite_utils.py
ite_utils_unittest.py
5b35656e62acce8fd0fac341592670ad0145c8a9 26-Jun-2015 Ilja H. Friedel <ihf@chromium.org> Flash autotests: Add warning if Flash is not installed.

BUG=chrome-os-partner:41508
TEST=Ran locally with and without Flash binary.

Change-Id: Ifa0b6f95196565962a26392c7b7ebea11ab05da3
Reviewed-on: https://chromium-review.googlesource.com/282251
Commit-Queue: Ilja Friedel <ihf@chromium.org>
Trybot-Ready: Ilja Friedel <ihf@chromium.org>
Tested-by: Ilja Friedel <ihf@chromium.org>
Reviewed-by: Dan Erat <derat@chromium.org>
ite_utils.py
aa850d1f9d0980d4c7a728e901ef0b46f55c1f80 01-Jul-2015 Achuith Bhandarkar <achuith@chromium.org> WAR for files that have moved from telemetry.core to telemetry.internal.

BUG=chromium:506037
TEST=autotests

Change-Id: I5c934d4c3733e7a9f73aa5bed619e1a2d2711856
Reviewed-on: https://chromium-review.googlesource.com/282769
Reviewed-by: Achuith Bhandarkar <achuith@chromium.org>
Tested-by: Achuith Bhandarkar <achuith@chromium.org>
Commit-Queue: Achuith Bhandarkar <achuith@chromium.org>
Trybot-Ready: Achuith Bhandarkar <achuith@chromium.org>
ros/chrome.py
064ea97588f6d760ec1256f37215b352efea3dfd 26-Jun-2015 mukesh agrawal <quiche@chromium.org> autotest (wifi): dynamically probe for IBSS capability

Some hardware does not support IBSS mode. Accordingly, we should
check hardware capabilities before reporting CAPABILITY_IBSS.

The exact division of labor between LinuxRouter and LinuxSystem
is not obvious to me. I'm moving IBSS detection into LinuxSystem,
because it's quite reasonable to use IBSS on a system that's not
a router.

Note: tests do not currently verify that a DUT supports IBSS.
If we add DUTs that do not support IBSS, we'll need to update
the relevant test(s).

While there: fix typo in iw_runner.

BUG=chromium:504926
TEST=test_that chromeos1-dev-host6.cros network_WiFi_IBSS.wifi_IBSS
TEST=test_that chromeos1-row3-rack11-host1.cros network_WiFi_IBSS.wifi_IBSS

First command should report PASSED, but with TEST_NA. Second command
should just report PASSED.

Change-Id: I8e875b7a137f2451493194bd12d95e435f68d61f
Reviewed-on: https://chromium-review.googlesource.com/282162
Reviewed-by: Paul Stewart <pstew@chromium.org>
Tested-by: mukesh agrawal <quiche@chromium.org>
Commit-Queue: mukesh agrawal <quiche@chromium.org>
Trybot-Ready: mukesh agrawal <quiche@chromium.org>
ros/network/iw_runner.py
8fbb4d188a7d5e3985467f65b371a8305da2436d 26-Jun-2015 J. Richard Barnette <jrbarnette@chromium.org> [autotest] Silence the stupid message in utils.is_in_container().

This changes site_utils.is_in_container() to change the arguments
passed to base_utils.run() so as not to log that it calls a shell
command. This is to prevent the message from showing up on every
'atest' invocation.

BUG=chromium:504984
TEST=`atest host list >/dev/null`, see no extra output

Change-Id: Iad9fb29cba327b6b564ecc9fd620cd190f6026c5
Reviewed-on: https://chromium-review.googlesource.com/282310
Tested-by: Richard Barnette <jrbarnette@google.com>
Reviewed-by: Prathmesh Prabhu <pprabhu@chromium.org>
Commit-Queue: Richard Barnette <jrbarnette@chromium.org>
ite_utils.py
4beca02ac922291c63cc65a96b43eed4e26f469e 16-Jun-2015 Christopher Grant <cjgrant@google.com> autotest: let after-test hooks see exceptions.

The "after iteration hooks" are the first code to run after run_once(),
in both the success and failure cases. This change gives the hooks a
chance to check for a pending exception and log extra information if
needed.

BUG=None
TEST=Verify server/client-side test exceptions are visible in hooks.

Change-Id: I2d8248d329130d515a8e0d8dfd8c6093a253eed3
Reviewed-on: https://chromium-review.googlesource.com/278025
Reviewed-by: Ilja Friedel <ihf@chromium.org>
Reviewed-by: Dan Shi <dshi@chromium.org>
Commit-Queue: Christopher Grant <cjgrant@chromium.org>
Tested-by: Christopher Grant <cjgrant@chromium.org>
est.py
639ec4db71d56f3b41eaede82a558c717d3e0f6d 23-Jun-2015 Vitaly Buka <vitalybuka@chromium.org> Move-out dbus from buffet_config

Some server tests can't import dbus.

BUG=brillo:1214
TEST=test_that -b $BOARD $HOST e:buffet_.*

Change-Id: Ib68ad7c1974820bae80a45083353b52c34c36c42
Reviewed-on: https://chromium-review.googlesource.com/281196
Trybot-Ready: Vitaly Buka <vitalybuka@chromium.org>
Tested-by: Vitaly Buka <vitalybuka@chromium.org>
Reviewed-by: Alex Vakulenko <avakulenko@chromium.org>
Commit-Queue: Vitaly Buka <vitalybuka@chromium.org>
ros/tendo/buffet_config.py
ros/tendo/buffet_dbus_helper.py
ros/tendo/buffet_tester.py
ff78f11ff85372a1e2f8ddf8eefbc8b772686148 12-Jun-2015 Dan Shi <dshi@chromium.org> [autotest] Pass current user into container for RPC usage

RPC is called using current OS user if not specified (frontend.py). This causes
an issue for autoserv running inside container, as the OS user is always root.
The root user may fail check_for_acl_violation_hosts if a host has special ACL
that does not allow `everyone`.

This CL add an SSP/user config in global config, lxc related code is updated so
that the OS user of autoserv running in host will be passed into the container
through shadow_config.ini. And frontend will use such user to make RPC.

BUG=chromium:480525,chromium:502897
TEST=local
sudo python site_utils/lxc_functional_test.py -v -s
attach to the container
update SSP/user with a user name (existing one should be root as the process
site_utils/lxc_functional_test.py is executed with sudo)
update frontend.py with code in this CL (this means only newer builds won't
be hit by this bug.)
run some RPC:
import common
from autotest_lib.server.cros.dynamic_suite import frontend_wrappers
_AFE = frontend_wrappers.RetryingAFE()
print _AFE.run('get_stable_version')

Also make sure afe in the host still works.

Change-Id: I9ba924e2652fadffa71d6298f74c5b82e8e26b4e
Reviewed-on: https://chromium-review.googlesource.com/281062
Trybot-Ready: Dan Shi <dshi@chromium.org>
Tested-by: Dan Shi <dshi@chromium.org>
Reviewed-by: Simran Basi <sbasi@chromium.org>
Commit-Queue: Dan Shi <dshi@chromium.org>
ite_utils.py
2e3b4973c63745892f6267a2b116661630ad01f0 22-Jun-2015 Peter Qiu <zqiu@chromium.org> Add IPv6 address support for virtual ethernet pair

This is needed for testing DHCPv6.

BUG=chromium:496361
TEST=Upcoming client test network_Dhcpv6Basic

Change-Id: I977c06b8967e091aca4317f2c682caa1f95093b7
Reviewed-on: https://chromium-review.googlesource.com/281051
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Zeping Qiu <zqiu@chromium.org>
Tested-by: Zeping Qiu <zqiu@chromium.org>
ros/virtual_ethernet_pair.py
3c83af491f95d271f926533ac1f0fe877254c9ef 22-Jun-2015 Vitaly Buka <vitalybuka@chromium.org> buffet: Updated tests to match options moved from privet into buffet

Now it's a single binary and don't deserve separate configs and states.
BUG=brillo:1211,brillo:1212
CQ-DEPEND=CL:281018
TEST=test_that -b $BOARD $DEV_HOST e:buffet_.*

Change-Id: I8d1b8c73ea3bb56ad6fc55d9427b98578072b796
Reviewed-on: https://chromium-review.googlesource.com/281024
Tested-by: Vitaly Buka <vitalybuka@chromium.org>
Reviewed-by: Vitaly Buka <vitalybuka@chromium.org>
Commit-Queue: Vitaly Buka <vitalybuka@chromium.org>
ros/tendo/buffet_config.py
0b2becccaa6a25b59fa686f6ab72817e9bb4fac3 18-Jun-2015 Payton Turnage <turnage@chromium.org> Adds parameters to chromedriver wrapper.

Adds url base parameter so that the wrapper can start an instance of
chromedriver serving a nondefault url base (e.g. /wd/hub).

Adds parameter for extra arguments to be forwarded to the chromedriver
binary.

BUG=chromium:501600
TEST=run locally

Change-Id: I18b2669fc88d6692608f6ff17b70a0df61730e7b
Reviewed-on: https://chromium-review.googlesource.com/278214
Reviewed-by: Dan Shi <dshi@chromium.org>
Reviewed-by: David Abrahams <resetswitch@chromium.org>
Reviewed-by: Payton Turnage <turnage@chromium.org>
Commit-Queue: Payton Turnage <turnage@chromium.org>
Tested-by: Payton Turnage <turnage@chromium.org>
ros/chromedriver.py
f88c633339c1471adbba633478687cf3eebaf0cf 20-Jun-2015 Paul Stewart <pstew@chromium.org> security_Firewall: Tentatively re-enable webservd tests

This partially re-enables testing of webservd firewall rules.
It does a number of things to reduce the incidence rate of
false failures:

- Instead of just testing that webservd is installed, it
also checks to see if the service is running. If it
is not (and does not appear in a short amount of time)
the webservd rules are not checked.

- If only the webservd rules are missing an error is
printed but the test does not fail.

Both failures above should probably be considered as a
failure in webservd, not in the firewall test. If folks
want to test proper function of webservd, presumably
a different test should be created. Log messages for
both cases (webservd not running, missing webservd rules)
are printed, so incidence rates of these non-fatal checks
can be monitored.

While here, remove an errant reset of the "failed" variable
since everyone that looked at line believes it is here in
error.

BUG=chromium:470701
TEST=Run this test on an amd64-generic VM with:
TEST=(a) system at boot
TEST=(b) system after "stop webservd"
TEST=(c) system after "start webservd"
TEST=(d) system after "iptables -D INPUT 1" (removes 1st webservd rule) [FAIL]
TEST=(e) system after "iptables -D INPUT 1" (removes 2nd webservd rule)

Change-Id: I9ba1bba25559472d03ced34e96dc0c121b1924dd
Reviewed-on: https://chromium-review.googlesource.com/280889
Reviewed-by: Alex Vakulenko <avakulenko@chromium.org>
Commit-Queue: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
ros/tendo/webservd_helper.py
e5858340931bb7465178715f9bfec79b85fd57e0 19-Jun-2015 Vitaly Buka <vitalybuka@chromium.org> buffet: Update privet specific buffet tests

buffet_PrivetInfo and buffet_WebServerSanity should work.
buffet_PrivetSetupFlow does not run locally, going too see results in
https://wmatrix.googleplex.com/tests

BUG=brillo:1214
TEST='test_that -b $BOARD $DEV_HOST e:buffet_.*'

Change-Id: I9ede76311c2f13f91f2b2d6046345325222e381d
Reviewed-on: https://chromium-review.googlesource.com/280566
Tested-by: Vitaly Buka <vitalybuka@chromium.org>
Reviewed-by: Alex Vakulenko <avakulenko@chromium.org>
Reviewed-by: Vitaly Buka <vitalybuka@chromium.org>
Commit-Queue: Vitaly Buka <vitalybuka@chromium.org>
ros/tendo/buffet_config.py
a2b3d9fee5ae16d22819168daa5d1e2df6e63e0d 18-Jun-2015 Vitaly Buka <vitalybuka@chromium.org> buffet: Merge privetd_BasicDBusAPI test into buffet_BasicDBusAPI.py

Privet dbus API is part of buffet now.

BUG=brillo:1214
CQ-DEPEND=CL:278361
TEST='test_that -b $BOARD $DEV_HOST e:buffet_.*'

Change-Id: I72985932977e5d6680234844aee6ffc710907ecf
Reviewed-on: https://chromium-review.googlesource.com/278278
Reviewed-by: Vitaly Buka <vitalybuka@chromium.org>
Tested-by: Vitaly Buka <vitalybuka@chromium.org>
Commit-Queue: Vitaly Buka <vitalybuka@chromium.org>
ros/tendo/buffet_config.py
ros/tendo/buffet_dbus_helper.py
ros/tendo/buffet_tester.py
ros/tendo/privet_helper.py
309836154ac0272efdb35df1c6f223ee8522100c 18-Jun-2015 Vitaly Buka <vitalybuka@chromium.org> Rename privet related helpers

BUG=brillo:1214
TEST='test_that -b $BOARD $DEV_HOST e:buffet_.*'

Change-Id: I8c36dabc8bdc9591f50117631b83c2bf339f29da
Reviewed-on: https://chromium-review.googlesource.com/278360
Reviewed-by: Vitaly Buka <vitalybuka@chromium.org>
Tested-by: Vitaly Buka <vitalybuka@chromium.org>
Commit-Queue: Vitaly Buka <vitalybuka@chromium.org>
ros/tendo/buffet_dbus_helper.py
ros/tendo/privet_helper.py
ros/tendo/privetd_helper.py
b16491a6e6430503be036a1e52c8421f45aaa434 11-Jun-2015 Christopher Grant <cjgrant@google.com> autotest: reverse order of after-run_once hooks.

Hooks can be registered to run before and after run_once(). Execute the
"after" hooks in reverse order, so that before/after pairs work like a
stack. This makes log entries look more sensible.

BUG=None
TEST=./test_unittest.py

Change-Id: Id88981552e442e7035b3717f43fcdc4f4c5245b0
Reviewed-on: https://chromium-review.googlesource.com/277037
Reviewed-by: Dan Shi <dshi@chromium.org>
Trybot-Ready: Christopher Grant <cjgrant@chromium.org>
Tested-by: Christopher Grant <cjgrant@chromium.org>
Reviewed-by: Ilja Friedel <ihf@chromium.org>
Commit-Queue: Christopher Grant <cjgrant@chromium.org>
est.py
6b8a9553d74d5ff4310e0dc7b0625d6b2349a40d 09-Jun-2015 Kris Rambish <krisr@chromium.org> wait_for_scan_result takes lists of ssids/bsses

All of the other scan functions in the iw_runner take a list
of ssids of bsses. This make wait_for_scan_result consistent
with the rest of the scan methods.

TEST=unittest
BUG=None

Change-Id: I43bff12c79259cdcb3584b0bd056fd4df2708cc6
Reviewed-on: https://chromium-review.googlesource.com/276347
Tested-by: Kris Rambish <krisr@chromium.org>
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Commit-Queue: Kris Rambish <krisr@chromium.org>
Trybot-Ready: Kris Rambish <krisr@chromium.org>
ros/network/iw_runner.py
ros/network/iw_runner_unittest.py
d188984d9aef5a4ff09d8d459b5b3a6c46789fb0 05-Jun-2015 Matthew Sartori <msartori@chromium.org> [autotest] Retry with backoff for RPCs

Use chromite.lib.retry_util to run RPCs with exponential
backoff. The chromite library cannot be safely imported into
client/common_lib, preventing us from adding to the retry module.
So, we use chromite's retry_util directly when issuing RPCs to
get the desired backoff behaviour.

BUG=chromium:493219
Test=Tested that test suites were runnable with these changes on
a moblab. Tested the new retry logic with a stubbed function to
retry.

Change-Id: Ia5aac84d3e475a022867b4ca43d8f6bb0fb05d7a
Reviewed-on: https://chromium-review.googlesource.com/275699
Tested-by: Matthew Sartori <msartori@chromium.org>
Reviewed-by: David James <davidjames@chromium.org>
Commit-Queue: Matthew Sartori <msartori@chromium.org>
ros/retry.py
ros/retry_unittest.py
f2f090cb07a707111e1bfd96bf87dc3be218251b 11-Jun-2015 Roshan Pius <rpius@google.com> autotest(wifi): Fix bug in fetching MCS index in capture analysis.

Bug in reading the MX index field using pyshark.
Fixing this: https://wmatrix.googleplex.com/testrun/unfiltered?
test_ids=202031371

BUG=chromium:470708
TEST=`test_that ${host} network_WiFi_RateControl`

Change-Id: I9a5d986c2f47916986aa16322064ea9169a68886
Reviewed-on: https://chromium-review.googlesource.com/276777
Reviewed-by: Paul Stewart <pstew@chromium.org>
Tested-by: Roshan Pius <rpius@chromium.org>
Commit-Queue: Roshan Pius <rpius@chromium.org>
ros/network/tcpdump_analyzer.py
c5b6d2c5b7a0f18a9db61db816c0b8df2ab644ad 25-May-2015 Cheng-Yi Chiang <cychiang@chromium.org> bluetooth_device_xmlrpc_server: Fix pylint error

Add docstrings in bluez_stopped and pair_error

BUG=None
TEST=run_pylint

Change-Id: I291f64c3c61d464275b03434ab093f3746e477a6
Reviewed-on: https://chromium-review.googlesource.com/273150
Reviewed-by: Kalin Stoyanov <kalin@chromium.org>
Commit-Queue: Cheng-Yi Chiang <cychiang@chromium.org>
Tested-by: Cheng-Yi Chiang <cychiang@chromium.org>
ros/bluetooth/bluetooth_device_xmlrpc_server.py
cdea4046128d757ad78a581a4dc65c881ffc0119 25-May-2015 Cheng-Yi Chiang <cychiang@chromium.org> bluetooth_device_xmlrpc_server: use byte_arrays=True in get_devices

By default, when byte arrays are converted from D-Bus to Python, they
come out as a dbus.Array of dbus.Byte. Some devices have byte arrays in
their ServiceData property. This causes XMLRPC client fail to parse the
response and raise ExpatError exception for invalid token.
Use byte_arrays=True so byte arrays will be represented as
strings.

BUG=chromium:476860
TEST=start bluetooth_device_xmlrpc_server and call get_devices()
method. Check that the error message "ExpatError: not well-formed
(invalid token): line 5, column 16" does not happen even when there is a
bluetooth device having byte arrays in its ServiceData property.

Change-Id: Ief9fba246fdff83ec2d62378c19bc5fb0f0bf0df
Reviewed-on: https://chromium-review.googlesource.com/273149
Reviewed-by: Kalin Stoyanov <kalin@chromium.org>
Commit-Queue: Cheng-Yi Chiang <cychiang@chromium.org>
Tested-by: Cheng-Yi Chiang <cychiang@chromium.org>
ros/bluetooth/bluetooth_device_xmlrpc_server.py
79bfa0540ba4873419705a926ce1314e59a29349 10-Jun-2015 Ilja H. Friedel <ihf@chromium.org> Increase module name in logs from 10 to 18 characters.

This changes increases the verbosity of log files somewhat, but it makes
following the spew much easier. With the current limit of 10 characters
there is often too much ambiguity to quickly find which file/line the
logging came from.

BUG=None.
TEST=Ran on lumpy.

Change-Id: I624b7cb7af4cc1a5e983f0258d432e712411c15a
Reviewed-on: https://chromium-review.googlesource.com/276502
Tested-by: Ilja Friedel <ihf@chromium.org>
Reviewed-by: Simran Basi <sbasi@chromium.org>
Commit-Queue: Ilja Friedel <ihf@chromium.org>
ogging_config.py
61dd885dbfb51b8b1ed9f91ef8ad1cb7d863cb78 02-Jun-2015 Dan Shi <dshi@chromium.org> [autotest] Add a method to select least loaded devserver

This CL refactors how devserver_healthy is called and add a new method,
get_least_loaded_devserver to get the least loaded devserver to use.

The logic in _compare_load needs to be polished after we collect more
data in production devservers.

BUG=chromium:486278
TEST=unittest, setup local devserver, run script
import common
from autotest_lib.client.common_lib.cros import dev_server
print dev_server.get_least_loaded_devserver()

Change-Id: Iadd38e93a12fc5be93b25bf0e8a5836db864517c
Reviewed-on: https://chromium-review.googlesource.com/274873
Trybot-Ready: Dan Shi <dshi@chromium.org>
Tested-by: Dan Shi <dshi@chromium.org>
Reviewed-by: Simran Basi <sbasi@chromium.org>
Commit-Queue: Dan Shi <dshi@chromium.org>
ros/dev_server.py
ros/dev_server_unittest.py
a624576542ae9b524100eac4584d36f20aba4d7a 10-Jun-2015 Ilja H. Friedel <ihf@chromium.org> Remove assert on X from chromedriver.

BUG=chromium:413075
TEST=None.

Change-Id: Id131b8c28156f4653934f3e293feb32a6eb856d4
Reviewed-on: https://chromium-review.googlesource.com/276551
Tested-by: Ilja Friedel <ihf@chromium.org>
Reviewed-by: Haixia Shi <hshi@chromium.org>
ros/chromedriver.py
a025919ac2e6d18bd5839979d4c99d4d482f269c 26-Mar-2015 Roshan Pius <rpius@chromium.org> autotest (wifi): Migrate all the capture packet analysis to use pyshark.

Migrating all existing packet capture analysis done using tcpdump
commandline to use pyshark python library since it makes the analysis
less unwieldy.
Uses SSP to install pyshark and its dependencies in lab machines.

BUG=chromium:470708
TEST=Following tests run:
`test_that ${host} network_WiFi_HiddenScan`
`test_that ${host} network_WiFi_VisibleScan`
`test_that ${host} network_WiFi_LowInitialBitrates`
`test_that ${host} network_WiFi_RateControl`

Change-Id: I5ee8891c76760a7250bbd151fdbad0527712a2bb
Reviewed-on: https://chromium-review.googlesource.com/262651
Tested-by: Roshan Pius <rpius@chromium.org>
Reviewed-by: Dan Shi <dshi@chromium.org>
Commit-Queue: Roshan Pius <rpius@chromium.org>
Trybot-Ready: Roshan Pius <rpius@chromium.org>
ros/network/tcpdump_analyzer.py
ec841372cdf085abdad345795c9389c2af74111e 06-Jun-2015 Prathmesh Prabhu <pprabhu@chromium.org> revision_control_unittest: Really mock git environment.

CL:232140 tried to mock out git environment for this unittest, making it
reproducible on systems where user's git setup is incomplete / broken.
It didn't do it properly, so try again.

BUG=chromium:436739
TEST=unittest passes on mobbuild.

Change-Id: I414c0febd14a1c1deeda10dfd1006d8235973258
Reviewed-on: https://chromium-review.googlesource.com/275770
Tested-by: Prathmesh Prabhu <pprabhu@chromium.org>
Reviewed-by: Paul Hobbs <phobbs@google.com>
Commit-Queue: Prathmesh Prabhu <pprabhu@chromium.org>
evision_control_unittest.py
0919c40d069a6f5a65e072c8ce97cb0c9a12b859 05-Jun-2015 mukesh agrawal <quiche@chromium.org> autotest (wifi): improve shill_xmlrpc_server exit behavior

When shutting down the shill_xmlrpc_server, we attempt to start
the UI. That's reasonable, because we probably shut down the UI
when starting the shill_xmlrpc_server. (I believe we do this to
ensure that the UI does not, e.g., initiate WiFi scans.)

When starting the UI, we wait until the login prompt is visible.
This causes a couple of complications. First, in the normal case,
it slows down the exit of shill_xmlrpc_server by about 4 seconds.
Second, if the developer has switched the DUT to VT2, then the
login prompt will never become visible. Instead, we'll wait 90
seconds, before timing out the shut down of the shill_xmlrpc_server.

This second case is doubly unfortunate. First, we slow down
the running of the test. Second, we spam the test results with
errors that are othogonal to the purpose of the test.

To resolve this, we make starting the UI a non-blocking operation.
This does leave the possibility that the login prompt will not
be visible at the time of the next test. But I think that's ok.
If a test requires the UI to be visible, it should check that
condition itself. And, in any case, such a test will likely
emit a more relevant failure than a timeout in the shutdown of
shill_xmlrpc_server.

BUG=chromium:495837
TEST=network_WiFi_DisconnectClearsIP

Change-Id: I2ff2e4a35dee6dc6260d7abb7ef41aeda3d01afa
Reviewed-on: https://chromium-review.googlesource.com/275698
Trybot-Ready: mukesh agrawal <quiche@chromium.org>
Tested-by: mukesh agrawal <quiche@chromium.org>
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Commit-Queue: mukesh agrawal <quiche@chromium.org>
ros/network/shill_xmlrpc_server.py
5de10171860a2ef3a30aa2ba6a67431673120649 05-Jun-2015 Dan Shi <dshi@chromium.org> [autotest] Fix couple issues in bulk post metadata.

The metadb had an outage last couple hours and led to all data reported
get the same timestamp. This CL is to fix the bug and increase buffer size.

1. Increase the buffer size, also limit size in a single upload.
2. Add time_recorded in the host history metadata.

BUG=None
TEST=local

Change-Id: I157eb25ab0b8aeb227080aca47e42d3834ae1337
Reviewed-on: https://chromium-review.googlesource.com/275641
Trybot-Ready: Dan Shi <dshi@chromium.org>
Tested-by: Dan Shi <dshi@chromium.org>
Reviewed-by: Fang Deng <fdeng@chromium.org>
Commit-Queue: Dan Shi <dshi@chromium.org>
ros/graphite/es_utils.py
3a7f3e2dd2db6afbcee8d3df8691703fef87addf 05-Jun-2015 Hung-ying Tyan <tyanh@chromium.org> Deal with missing chromite in retry module

The chromite module only exists in chroot. Need to handle the exception
of missing chromite when the retry module is run on non-chroot environment,
for example on DUT.

BUG=chromium:496989
TEST=run display_Resolution.extended with multimedia XMLRPC server being
successfully brought up on DUT.

Change-Id: Ia7e2d12eb4f786317c45ddefe633a86bf632e96c
Reviewed-on: https://chromium-review.googlesource.com/275413
Reviewed-by: Yuli Huang <yuli@chromium.org>
Commit-Queue: Hung-ying Tyan <tyanh@chromium.org>
Tested-by: Hung-ying Tyan <tyanh@chromium.org>
ros/retry.py
c122cf40c2c9a97ab3d463fc78d4cf099c9a1ef6 03-Jun-2015 Kris Rambish <krisr@chromium.org> Add signal to the network parser.

Some tests like network_WiFi_VerifyAttenuator may take
advantage of knowing the singal strength before connecting
to a network.

BUG=None
TEST=network_WiFi_VerifyAttenuator, unittest

Change-Id: Ib0aa13e271ca8afee1c839b044efd3923f14c8b2
Reviewed-on: https://chromium-review.googlesource.com/275061
Trybot-Ready: Kris Rambish <krisr@chromium.org>
Tested-by: Kris Rambish <krisr@chromium.org>
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Commit-Queue: Kris Rambish <krisr@chromium.org>
ros/network/iw_runner.py
ros/network/iw_runner_unittest.py
db550114d3137db4fca4b9b6ae8a95ef38292aea 02-Jun-2015 Matthew Sartori <msartori@chromium.org> [autotest] Retry with backoff for RPCs

Create a new retry function in the autotest retry module.
This function provides a very similar interface to the current
retry function. This new function does not rely on jittered delays,
but uses the chromite retry_util module to provide backoff behaviour.

BUG=chromium:493219
TEST=Tested with unittests.

Change-Id: I55642954d90e9b7dc14b2ea9f09691a5fa7dda56
Reviewed-on: https://chromium-review.googlesource.com/274864
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
Commit-Queue: Matthew Sartori <msartori@chromium.org>
Tested-by: Matthew Sartori <msartori@chromium.org>
ros/retry.py
ros/retry_unittest.py
e749ff8acf12e19a31954c89e5bfbf294f9127bd 27-May-2015 Dan Shi <dshi@chromium.org> [autotest] Report all states collected by devserver's check_health call.

This will collect all performance data from devservers.

BUG=chromium:486278
TEST=local test run to access devserver

Change-Id: If3db95010b36c700dd52dd50f44eb0e971d26955
Reviewed-on: https://chromium-review.googlesource.com/273552
Trybot-Ready: Dan Shi <dshi@chromium.org>
Tested-by: Dan Shi <dshi@chromium.org>
Reviewed-by: Fang Deng <fdeng@chromium.org>
Commit-Queue: Dan Shi <dshi@chromium.org>
ros/dev_server.py
7cde53d430e208139638ee65116c0cd1ae7a7a36 27-May-2015 Dan Shi <dshi@chromium.org> [autotest] performance tuning for host history collection

1. Increase query timeout to 30s (default is 3)
2. Update query generation code to use msut, rather than should.
3. Add multithreading to host history collection.

The runtime is reduced to 25% for query like
./site_utils/host_history.py --board falco --pool suites

BUG=None
TEST=./site_utils/host_history.py --board falco --pool suites

Change-Id: I0f35c358c99aed07e60d75470f76309489235429
Reviewed-on: https://chromium-review.googlesource.com/273392
Trybot-Ready: Dan Shi <dshi@chromium.org>
Tested-by: Dan Shi <dshi@chromium.org>
Reviewed-by: Keith Haddow <haddowk@chromium.org>
Commit-Queue: Dan Shi <dshi@chromium.org>
ros/graphite/es_utils.py
d1df3d5d21a9abff7028677ec2626c572f7a627e 21-May-2015 Resetswitch <resetswitch@chromium.org> Chromedriver remote test support

My team is writing remote webdriver tests for ChromeOS. This
requires two changes to the local chromedriver server script:
*Allowing remote connections
*Leaving the server running after the script completes

BUG=None
TEST=Started server on vm guest, ran webdriver tests from vm host.

Change-Id: I8d1562ca59ec6ad4fe5916f263630c705cfcfcff
Reviewed-on: https://chromium-review.googlesource.com/272535
Reviewed-by: Dan Shi <dshi@chromium.org>
Reviewed-by: David Abrahams <resetswitch@chromium.org>
Trybot-Ready: David Abrahams <resetswitch@chromium.org>
Commit-Queue: David Abrahams <resetswitch@chromium.org>
Tested-by: David Abrahams <resetswitch@chromium.org>
ros/chromedriver.py
ca3be48da9dd7882ba282d9e82413b4aad2a8364 06-May-2015 Dan Shi <dshi@chromium.org> [autotest] Add sudo -n option to avoid password prompt.

Also add a utility function to check if password is needed to run sudo command.

We can add -n option to all sudo command that SSP used. However, once the
property drone.support_ssp is set to False, no SSP code will be executed.
Therefore, there is no need to add -n everywhere.

BUG=chromium:484396
TEST=local run
Start scheduler, confirm no password promt, and drone.support_ssp is False.
Run sudo true, enter password.
Run scheduler again, confirm no password promt, and drone.support_ssp is True.

Change-Id: Ifbd302973db5d443499311e435ec99e32d24cb5b
Reviewed-on: https://chromium-review.googlesource.com/269740
Tested-by: Dan Shi <dshi@chromium.org>
Reviewed-by: Simran Basi <sbasi@chromium.org>
Tested-by: Richard Barnette <jrbarnette@chromium.org>
Reviewed-by: Richard Barnette <jrbarnette@chromium.org>
Commit-Queue: Dan Shi <dshi@chromium.org>
ite_utils.py
17224dafbd49270ef5228595c489ee33a93680f2 19-May-2015 mukesh agrawal <quiche@chromium.org> autotest: add host_is_in_afe(), and have wifi code use it

Several parts of our WiFi test code attempt to contact the
autotest front-end, in order to fetch meta-data about DUTs.
These bits of code are guarded by calls to host_is_in_afe(),
to prevent us from wasting time for DUTs which are outside
the lab.

This was great, until the definition of "outside the lab"
became a bit fuzzier. In particular, there are some machines
which are in the lab zone (in DNS), but not managed by AFE
(autotest front-end).

For machines that are in the lab zone, but not managed by AFE,
calls to host_is_in_lab_zone() will return True. So we'll
waste time asking AFE about DUTs which AFE does not manage.

In the normal case, that's not a huge deal. But, when AFE is
down, things get really painful.

By adding host_is_in_afe(), and updating WiFi test code to use
it, we improve this situation. Namely, tests against DUTs in
developer cells won't be blocked due to AFE problems.

BUG=chromium:484442
TEST=test_that chromeos1-dev-host6.cros network_WiFi_RateControl
TEST=test_that chromeos1-row3-rack11-host1.cros network_WiFi_RateControl
TEST=test_that chromeos2-row6-rack4-host4.cros network_WiFi_RateControl
TEST=test_that chromeos1-dev-host6.cros network_WiFi_RateControl (AFE firewalled)
TEST=test_that chromeos1-row3-rack11-host1.cros network_WiFi_RateControl (AFE firewalled)

Observed test results:
- chromeos1-dev-host6: "Unable to determine if DUT has conducted..."
- chromeos1-row3-rack11-host1: TEST_NA
- chromeos2-row6-rack4-host4: PASS
- chromeos1-dev-host6 (AFE firewalled): "Unable to determine..."
- chromeos1-row3-rack11-host1 (AFE FW): "Unhandled URLError... Connection timed out"

Firewall setup:
- iptables -A INPUT --proto tcp --source 172.18.72.86 -j DROP

Change-Id: Id01f964ffe03f283e8b18743f677fa5fe7280e7a
Reviewed-on: https://chromium-review.googlesource.com/271856
Reviewed-by: mukesh agrawal <quiche@chromium.org>
Tested-by: mukesh agrawal <quiche@chromium.org>
Commit-Queue: mukesh agrawal <quiche@chromium.org>
ite_utils.py
e032d418a4609ad801c816e9ae4a5c72a94c9284 17-May-2015 Vitaly Buka <vitalybuka@chromium.org> buffet: Make RegisterDevice accept only ticket ID

Changing name, description and location is possible using
UpdateDeviceInfo.

BUG=none
TEST='test_that -b $BOARD $DEV_HOST e:buffet_.*'
CQ-DEPEND=CL:271377

Change-Id: I2f100645fba1dfd72550c01fedab4e0c9207b894
Reviewed-on: https://chromium-review.googlesource.com/271616
Tested-by: Vitaly Buka <vitalybuka@chromium.org>
Reviewed-by: Alex Vakulenko <avakulenko@chromium.org>
Commit-Queue: Vitaly Buka <vitalybuka@chromium.org>
ros/tendo/buffet_tester.py
773a86ebaa2e4e4cce213b8553aeb4b30c1f3a9d 14-May-2015 Simran Basi <sbasi@google.com> moblab_setup page: Save config diff to shadow_config.ini

Updates the moblab_setup page to only save the changed settings
to the shadow_config and not the whole config which eliminated
our ability to AU config changes. Now that only the changed settings
are saved we can properly toggle on/off features remotely.

BUG=chromium:487415
TEST=local moblab setup and unittests.

Change-Id: Ie75de09d196673f14908519a228e9bc0b18c0095
Reviewed-on: https://chromium-review.googlesource.com/271171
Reviewed-by: Simran Basi <sbasi@chromium.org>
Tested-by: Simran Basi <sbasi@chromium.org>
Commit-Queue: Simran Basi <sbasi@chromium.org>
lobal_config.py
8f8cdb425db94473f50579e2123f61831fac7322 12-May-2015 MK Ryu <mkryu@google.com> [autotest] Getting mixed HQEs and special tasks fail on shard AFE

BUG=chromium:486926
TEST=Prepare shard testing cluster. Run a dummy suite on a DUT
that is sharded, and check if I can get mixed HQEs and special tasks
on the shard AFE.

Change-Id: I66449e07d6f5ae4c5e39ee87d4608b8eae9777f3
Reviewed-on: https://chromium-review.googlesource.com/270342
Reviewed-by: Dan Shi <dshi@chromium.org>
Tested-by: Mungyung Ryu <mkryu@google.com>
Commit-Queue: Mungyung Ryu <mkryu@google.com>
ite_utils.py
ite_utils_unittest.py
0e7d0f5c8298782aecf4db3b0a2bb05b2f201486 13-May-2015 Dan Shi <dshi@chromium.org> [autotest] Add retry if bulk_post failed when uploading metadata

BUG=None
TEST=manual local test
stop ES server, confirm scheduler log showing failure message, and retry.
start ES server, confirm queued metadata being uploaded.

Change-Id: Ia63a95ec1e13d94f7246ad53f5e1faf6ab0b6dba
Reviewed-on: https://chromium-review.googlesource.com/270671
Reviewed-by: Dan Shi <dshi@chromium.org>
Commit-Queue: Dan Shi <dshi@chromium.org>
Tested-by: Dan Shi <dshi@chromium.org>
ros/graphite/autotest_es.py
ros/graphite/es_utils.py
1e290c986e761efea86ebaf8688e2acd251b3f09 11-May-2015 Dan Shi <dshi@chromium.org> [autotest] Change host_label_utils to use bulk_post for metadata.

bulk post is 100x faster than individual upload.

BUG=None
TEST=local run the script and check test ES server:
http://172.25.61.45:9200/_plugin/elastic-hammer/
Query string:
{ "query": {"bool": {"minimum_should_match": 2,
"should": [
{"term": {"_type": "host_labels"}},
{"term": {"time_index": "1431374045"}}
]}},
"size": 100}

Change-Id: Ibbb07b3f08c3e75428413e4954f36cd652314d9e
Reviewed-on: https://chromium-review.googlesource.com/270271
Reviewed-by: Dan Shi <dshi@chromium.org>
Commit-Queue: Dan Shi <dshi@chromium.org>
Trybot-Ready: Dan Shi <dshi@chromium.org>
Tested-by: Dan Shi <dshi@chromium.org>
ros/graphite/autotest_es.py
98a0f7d6e5599a2b76310443a0b069189dfebda4 04-May-2015 Resetswitch <resetswitch@chromium.org> Adding a port parameter to Chromedriver server.

We are planning to use Chromedriver on ChromeOS vms. Any port on
the VM that is accessed by tests on the VM host must be decided
at VM startup time so that the port can be forwarded. So
chromedriver server should accept a port parameter rather than
always choosing a random port.

BUG=chromium:484380
TEST=run locally
Change-Id: I7d8610cbc7518373feb03e60a30f7e146a008643
Reviewed-on: https://chromium-review.googlesource.com/269163
Reviewed-by: Dan Shi <dshi@chromium.org>
Reviewed-by: David Abrahams <resetswitch@chromium.org>
Commit-Queue: David Abrahams <resetswitch@chromium.org>
Trybot-Ready: David Abrahams <resetswitch@chromium.org>
Tested-by: David Abrahams <resetswitch@chromium.org>
ros/chromedriver.py
cf2e8dd3f81d5eb4c9720db396ebbf64fd7b9ae4 08-May-2015 Dan Shi <dshi@chromium.org> [autotest] Add a new thread to upload metadata reported by scheduler

Currently host state change was reported to metadb before the change is
committed to database. Each change makes a ES post call to send data. To avoid
performance overhead for scheduler, UDP is used. UDP has a data lost issue.
Especially that the ES server now lives in GCE, while scheduler runs in a
different network.

This CL attempts to fix the issue by reporting metadata in a separate thread
in bulk. The performance of ES bulk API is much better than individual calls.
For example, a single index request through HTTP might take 80ms. For bulk API,
1000 records can be indexed in less than 0.5 second.

BUG=chromium:471015
TEST=run local scheduler, make sure all metadata was uploaded. Also, confirm
scheduler can be properly shut down.

Change-Id: I38991b9e647bb7a6fcaade8e8ef9eea27d9aa035
Reviewed-on: https://chromium-review.googlesource.com/270074
Reviewed-by: Dan Shi <dshi@chromium.org>
Commit-Queue: Dan Shi <dshi@chromium.org>
Trybot-Ready: Dan Shi <dshi@chromium.org>
Tested-by: Dan Shi <dshi@chromium.org>
Reviewed-by: Keith Haddow <haddowk@chromium.org>
ros/graphite/autotest_es.py
ros/graphite/es_utils.py
54a830ea2ae7bfe20cb83d257b2075251221f0d0 07-May-2015 David James <davidjames@google.com> Turn on collection of Chrome crashes again.

When our autotest framework was switched to telemetry, the ability to
collect Chrome crashes was accidentally turned off. Turn it on again.

BUG=chromium:485379
TEST=Test that when Chrome crashes, crash dumps are included now.

Change-Id: Idef254515700f2bba81c7305030f21ed5eed8346
Reviewed-on: https://chromium-review.googlesource.com/269808
Reviewed-by: Albert Bodenhamer <abodenha@chromium.org>
Commit-Queue: David James <davidjames@chromium.org>
Trybot-Ready: David James <davidjames@chromium.org>
Tested-by: David James <davidjames@chromium.org>
ros/chrome.py
0c1a37dd9b1237fe8d43c7f911ce601104806339 30-Apr-2015 MK Ryu <mkryu@google.com> [autotest] Support sharding for getting HQEs and special tasks

Following 2 RPCs that are used by AFE java client are improved
to support sharding.

get_host_queue_entries_and_special_tasks
get_num_host_queue_entries_and_special_tasks

BUG=chromium:462819
DEPLOY=afe,apache
TEST=puppylab. Get HQEs and special tasks for a lumpy host
which is sharded from the master AFE.

Change-Id: I68c0d1a70fb6b61034c755d3a2b7f26475994bb0
Reviewed-on: https://chromium-review.googlesource.com/268523
Reviewed-by: Mungyung Ryu <mkryu@google.com>
Commit-Queue: Mungyung Ryu <mkryu@google.com>
Tested-by: Mungyung Ryu <mkryu@google.com>
ime_utils.py
e92399e32d4e83d7eb01b5c56e53c301a2a6dbc7 24-Apr-2015 Chris Sosa <sosa@chromium.org> Re-land: Autotest: rewrite machine_install to be robust to devserver flakiness.

This CL both simplifies machine_install as well as adds protections
when devservers are flaky to provisioning.

1) I simplified machine_install's repair logic by having it in one place
rather than scattered throughout machine_install and using the same
pre-condition state for all machine_install's (rather than a heavier one just
for repair).

2) Added a loop around the actual full update. Basically, I've added a #
of attempts for update. If an update fails, I will run a health check against
its devserver and re-attempt on another devserver if it's failed. This includes
re-staging the image on the other devserver as well as updating from it.

BUG=chromium:470581,chromium:471294
TEST=Moblab + Dynamic Suite + Instrumented Code to fail Autoupdate once to
check fallback + unittests in autoupdater.py + pyflakes/pylint on all
affected files.

Change-Id: I5b73a41db32ec832202f6f09f51604b62640b2b6
Reviewed-on: https://chromium-review.googlesource.com/267121
Reviewed-by: Chris Sosa <sosa@chromium.org>
Commit-Queue: Chris Sosa <sosa@chromium.org>
Tested-by: Chris Sosa <sosa@chromium.org>
ros/autoupdater.py
848953993452a7d0d8cc913093a14e7f281a171b 30-Apr-2015 J. Richard Barnette <jrbarnette@chromium.org> [autotest] Update servo based on the stable_version table.

This switches servo_host updates to use the afe_stable_versions
database table to select the target version for update. This is
the same table used for selecting repair images for DUTs.

Previously, selection was done by asking the devserver for the
latest staged image for beaglebone_servo. This would fail if the
devserver had not already staged the image.

Additionally, this removes some outstanding dead code that was
previously used to find the URL for a test image for use in servo
repair.

BUG=None
TEST=Force the flow on a local autotest instance; see servo update

Change-Id: I5cc4395c9b173e1dace13eee97f337b7f0a58b26
Reviewed-on: https://chromium-review.googlesource.com/268543
Tested-by: Richard Barnette <jrbarnette@chromium.org>
Reviewed-by: Fang Deng <fdeng@chromium.org>
Reviewed-by: Dan Shi <dshi@chromium.org>
Commit-Queue: Dan Shi <dshi@chromium.org>
ros/dev_server.py
7836d25b375a791ebc7b3d0d255c8732c4f35be2 28-Apr-2015 Dan Shi <dshi@chromium.org> [autotest] Add a generic config deployment module to handle configs for container.

For container to run a test, it needs some config files to be able to do
something like:
resolve hostname with dns configured in host.
ssh to dut.
ssh to devserver.

Currently we hard code to copy each file to container, and modify each file for
it to work within container.
This CL provides a generic way to manage a list of deploy config, each config
specifies what file needs to be copied to where and if the existing file should
be overwritten. For container to work in developer's workstation, the special
handling of some configure files is still available. For lab servers, puppet
should be used to push out the config files and shadow deploy config (
ssp_deploy_shadow_config).

BUG=chromium:481706
TEST=local test with and without shadow ssp deploy config
sudo python site_utils/lxc_functional_test.py -v -d chromeos1-dshi1.cros -r 172.17.40.27
also verify in moblab (python package install does not work in moblab yet due
to bug 483371)

Change-Id: I8bbe33a83262b7c746fbe0112cf61cea046931ea
Reviewed-on: https://chromium-review.googlesource.com/267569
Trybot-Ready: Dan Shi <dshi@chromium.org>
Tested-by: Dan Shi <dshi@chromium.org>
Reviewed-by: Simran Basi <sbasi@chromium.org>
Commit-Queue: Dan Shi <dshi@chromium.org>
ite_utils.py
385c10a611ee4307a3d5295513392fa49a406e86 28-Apr-2015 mukesh agrawal <quiche@chromium.org> iw_runner: parse channel flags in list_phys()

The network_WiFi_RegDomain test needs to know what
regulatory flags are set for a channel (e.g. 'disabled').
Help the new test out, by adding parsing of channel flags
to IwRunner.list_phys().

BUG=chromium:481737
TEST=network_WiFi_RegDomain (ath9k)
TEST=network_WiFi_RegDomain (brcm4354)

Change-Id: Id5e16ec886e7e1704d1d96c06d2ec9a5d489ac6d
Reviewed-on: https://chromium-review.googlesource.com/268658
Trybot-Ready: mukesh agrawal <quiche@chromium.org>
Tested-by: mukesh agrawal <quiche@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: mukesh agrawal <quiche@chromium.org>
ros/network/iw_runner.py
d4ee8ccbe2567a848be33817f3fbb2701a5fd980 21-Apr-2015 Paul Stewart <pstew@chromium.org> autotest: Report supported phy features in iw_runner

List the features listed as supported by iw in a new "features"
member of the IwPhy namedtuple.

BUG=chrome-os-partner:37850
TEST=wifi_matfunc for regressions

Change-Id: I8a74d48819c2646146f5cd03992c3df11acea5c3
Reviewed-on: https://chromium-review.googlesource.com/266598
Tested-by: Paul Stewart <pstew@chromium.org>
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Commit-Queue: Paul Stewart <pstew@chromium.org>
ros/network/iw_runner.py
75e7094c75b140e33c3b639b1519439d41a6b9bb 18-Apr-2015 Cheng-Yi Chiang <cychiang@chromium.org> Bluetooth: Add pairing and connection method in bluetooth server

Add methods to let Cros device pair legacy device with a known pin code.
Also add methods to connect/disconnect/remove a device.

BUG=chromium:476860
TEST=connect to bluetooth_device_xmlrpc_server and call the methods.

Change-Id: Ie6bc02815db66d44fb8f3bea71f07b773bc7e05b
Reviewed-on: https://chromium-review.googlesource.com/266421
Reviewed-by: Scott Remnant <keybuk@chromium.org>
Commit-Queue: Cheng-Yi Chiang <cychiang@chromium.org>
Tested-by: Cheng-Yi Chiang <cychiang@chromium.org>
ros/bluetooth/bluetooth_device_xmlrpc_server.py
0b023a7b8033a731c88c102477c450667071f224 24-Apr-2015 Richard Barnette <jrbarnette@chromium.org> Revert "Autotest: rewrite machine_install to be robust to devserver flakiness."

This reverts commit fe703e7073de95239d882e102d9a8d36caf9ac30.

This is suspected of breaking Repair jobs

BUG=chromium:481014
TEST=None

Change-Id: I91dab872587f9a23f784303d34d7dcf056dbe2c4
Reviewed-on: https://chromium-review.googlesource.com/267078
Reviewed-by: Richard Barnette <jrbarnette@chromium.org>
Tested-by: Richard Barnette <jrbarnette@chromium.org>
ros/autoupdater.py
fe703e7073de95239d882e102d9a8d36caf9ac30 08-Apr-2015 Chris Sosa <sosa@chromium.org> Autotest: rewrite machine_install to be robust to devserver flakiness.

This CL both simplifies machine_install as well as adds protections
when devservers are flaky to provisioning.

1) I simplified machine_install by entirely removing the repair option
which was only referenced internally to this module as well as by one
autoupdate job that is not used anymore. I have remove that job in a previous
CL. Repair basically didn't need to exist. There was redundancy for it and
it's cleaner to just have a clean slate before ANY update.

2) Added a loop around the actual full update. Basically, I've added a #
of attempts for update. If an update fails, I will run a health check against
its devserver and re-attempt on another devserver if it's failed. This includes
re-staging the image on the other devserver as well as updating from it.

BUG=chromium:470581,chromium:471294
TEST=Moblab + Dynamic Suite + Instrumented Code to fail Autoupdate once to
check fallback + unittests in autoupdater.py + pyflakes/pylint on all
affected files.

Change-Id: I9836399269427e00fb6ccbcc79a08e0b11ef8859
Reviewed-on: https://chromium-review.googlesource.com/265954
Reviewed-by: Chris Sosa <sosa@chromium.org>
Tested-by: Chris Sosa <sosa@chromium.org>
Commit-Queue: Chris Sosa <sosa@chromium.org>
ros/autoupdater.py
1f6171b27430783ad60fbb3c521c087dc11bae87 17-Apr-2015 Vitaly Buka <vitalybuka@chromium.org> Change manifest id to 5 chars

Buffet has CHECK if ID is 5 chars.

BUG=brillo:377,brillo:744
TEST=test_that -b $BOARD $HOST buffet_Registration
CQ-DEPEND=CL:266028

Change-Id: I7e490d4c200ba06f23e0039846ed184691b15858
Reviewed-on: https://chromium-review.googlesource.com/266085
Tested-by: Vitaly Buka <vitalybuka@chromium.org>
Reviewed-by: Alex Vakulenko <avakulenko@chromium.org>
Commit-Queue: Vitaly Buka <vitalybuka@chromium.org>
ros/tendo/buffet_config.py
ros/tendo/buffet_tester.py
22093e32603a2c850e8a15121f4718f15e435415 15-Apr-2015 Roshan Pius <rpius@chromium.org> chaos: Renaming the chaos_ap_configurator module to ap_configurator.

AP configurator module currently used by Chaos test suite can be used
for configuring AP's in the new Clique test suite as well. So, renaming
the module to a generic ap_configurator module so that it can be used by
both the suites.

BUG=chromium:477075
TEST=`test_that $host network_WiFi_ChaosConnectDisconnect.debug`

Change-Id: I87f0fed85c9426b5ca948dbc2c8140ab06479ff8
Reviewed-on: https://chromium-review.googlesource.com/265749
Reviewed-by: Roshan Pius <rpius@chromium.org>
Commit-Queue: Roshan Pius <rpius@chromium.org>
Tested-by: Roshan Pius <rpius@chromium.org>
ros/network/ap_constants.py
ros/network/chaos_constants.py
1889ca1f96b253d6054fd2c0e9b31e06a34d1035 15-Apr-2015 Dan Shi <dshi@chromium.org> [autotest] Force dut to update package if test run is from test_that

test_that set use_package to False to avoid the dut to pull packages from
job_repo_url, which is set in autotest database. On the dut, autotest may not
update local package if the checksum of local cached package does not change.
The checksum is cached in [autodir]/packages.checksum.

This causes an issue for test_that. When autotest runs in dut, the test started
by test_that does not have job_repo_url, thus no new packages.checksum can be
pulled. Then the test decides that the local cache of test package's checksum
matches the existing packages.checksum, and will not pull new package from
autoserv.

This CL forces dut to use the new package from autoserv by deleting
packages.checksum file in the dut, if autotest client code is not updated using
packaging.

BUG=chromium:475261
TEST=local test_that run, make sure local test code change is used in dut.

Change-Id: Iae6bc6e2b62f2800b8f6df1561fd1f2c49047c93
Reviewed-on: https://chromium-review.googlesource.com/265833
Tested-by: Dan Shi <dshi@chromium.org>
Reviewed-by: Puthikorn Voravootivat <puthik@chromium.org>
Reviewed-by: Dan Shi <dshi@chromium.org>
Commit-Queue: Dan Shi <dshi@chromium.org>
ase_packages.py
1550598af09f1768b53f526bbf26a85ca8152653 03-Apr-2015 harpreet <harpreet@google.com> Create a new test suite for hotrod

Create a new test suite for hotrod and edit RemoraRequisition test to
use crossystem cmd to clear the tpm by default. This change is necessary
because of crbug.com/468140.

BUG=None
TEST=Tested locally on panther CFM device.
CQ-DEPEND=CL:264102

Change-Id: I0f6fd449a60db372366ee36734b7555bdd0e6a9e
Reviewed-on: https://chromium-review.googlesource.com/264095
Tested-by: harpreet Grewal <harpreet@chromium.org>
Reviewed-by: Achuith Bhandarkar <achuith@chromium.org>
Commit-Queue: harpreet Grewal <harpreet@chromium.org>
ros/tpm_utils.py
5f6b233a9406b4b6b78c6b47c1e6fefa123ccd5e 11-Apr-2015 Prathmesh Prabhu <pprabhu@chromium.org> [autotest] Make push-to-prod sync more aggressive.

Before this CL, the push-to-prod git repo sync through build_externals
would try to 'pull' the relevant repos. This would fail to pull new
branches from the remote repo.

This CL re-works the sync code to make it more aggressive. It now goes
through the more reliable fetch-and-reset path.

While there: fix unittest for unset git_repo_url. There was duplicated
code that was obviously not testing the 'fetch' path at least.

BUG=chromium:476124
TEST=(1) Synced a new remote branch to an existing repo that used to
fail before this CL.
(2) (updated) unittests.

Change-Id: I6d5337532aed62afd270762f21d9f496a823f2d5
Reviewed-on: https://chromium-review.googlesource.com/265351
Reviewed-by: Prathmesh Prabhu <pprabhu@chromium.org>
Commit-Queue: Prathmesh Prabhu <pprabhu@chromium.org>
Tested-by: Prathmesh Prabhu <pprabhu@chromium.org>
evision_control.py
evision_control_unittest.py
33bec44544051a82f658569d61c80342e30abff7 02-Apr-2015 Peter Qiu <zqiu@chromium.org> network_WiFi_ChannelScanDwellTime: disable wifi device in shill

Disable wifi device in shill to prevent shill and wpa_supplicant
from managing it . This will stop shill and wpa_supplicant from
initiating scans on that device which could interfere with the scans
to be triggered by this test.

BUG=chromium:471792
TEST=Run network_WiFi_ChannelScanDwellTime test

Change-Id: I151da4e66f96d83ac457b2af6d480ea7a91cc140
Reviewed-on: https://chromium-review.googlesource.com/263559
Reviewed-by: Zeping Qiu <zqiu@chromium.org>
Tested-by: Zeping Qiu <zqiu@chromium.org>
Commit-Queue: Zeping Qiu <zqiu@chromium.org>
ros/network/interface.py
4fb0b06a481b343c283d15af5245efb45b2fd106 08-Apr-2015 Alex Vakulenko <avakulenko@chromium.org> autotest: Change "displayName" to "name" in device registration tests

To match the current state of GCD spec.

BUG=brillo:778
TEST=`test_that -b link --fast 100.96.48.244 e:buffet_.*`
CQ-DEPEND=CL:264577

Change-Id: Ib93267bf3554d07fc26e23cd7f081c1bf105ff38
Reviewed-on: https://chromium-review.googlesource.com/264751
Tested-by: Alex Vakulenko <avakulenko@chromium.org>
Reviewed-by: Vitaly Buka <vitalybuka@chromium.org>
Commit-Queue: Alex Vakulenko <avakulenko@chromium.org>
ros/tendo/buffet_tester.py
cc4bd9e0e1e62cc8cb6bd4f45b46cc24343e1941 07-Apr-2015 Peter Qiu <zqiu@chromium.org> autotest: add network_WiFi_LinkMonitorFailure test

This test checks how fast the DUT detects the link failure when the
network link goes down (restarting the local server with a different
gateway IP), and how fast it reconnects back after the failure.

BUG=chromium:469761
TEST=Run this test
CQ-DEPEND=CL:264459

Change-Id: Ibf8c74f0361798b6f099ba9c9282d96d4b0d741c
Reviewed-on: https://chromium-review.googlesource.com/264457
Reviewed-by: Zeping Qiu <zqiu@chromium.org>
Commit-Queue: Zeping Qiu <zqiu@chromium.org>
Tested-by: Zeping Qiu <zqiu@chromium.org>
ros/network/iw_event_logger.py
47f74e17c5603529fcd34775ffbfe61383baa64d 07-Apr-2015 Christopher Wiley <wiley@chromium.org> autotest: Disable XMPP support in Buffet during tests

BUG=brillo:769
TEST=buffet prints appropriate log messages during buffet_Registration

Change-Id: Ib76e09aeed16c8516d3d1b5dbb0826523af16d6b
Reviewed-on: https://chromium-review.googlesource.com/264394
Tested-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Alex Vakulenko <avakulenko@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
ros/tendo/buffet_config.py
13248c5b1b6978647bc8ae040db6b221f488a7e0 27-Mar-2015 Shuqian Zhao <shuqianz@chromium.org> [autotest] Modify control_data.py to parse ATTRIBUTES from control files

Modify control_data.py to parse ATTRIBUTES list from control files.
Also, add unittest for it.

BUG=chromium:470015
TEST=Test on moblab

Change-Id: I18c59fed948b76d86b5bde8e22c1a73e5faf93d2
Reviewed-on: https://chromium-review.googlesource.com/262931
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
Reviewed-by: Shuqian Zhao <shuqianz@chromium.org>
Tested-by: Shuqian Zhao <shuqianz@chromium.org>
Commit-Queue: Shuqian Zhao <shuqianz@chromium.org>
ontrol_data.py
ontrol_data_unittest.py
99be217ec6a37e487d3ccaf9f3a9e3dd199acb78 06-Apr-2015 Dan Shi <dshi@chromium.org> [autotest] Fix a bug in Elasticsearch query for list value.

BUG=None
TEST=/usr/local/autotest/site_utils/collect_host_stats.py --span 24
target to cautotest instance in metadata_index and set ES_HOST to production
instance.

Change-Id: I736a8e0eee7bf8d663852f7f493994195c724d03
Reviewed-on: https://chromium-review.googlesource.com/264134
Commit-Queue: Dan Shi <dshi@chromium.org>
Trybot-Ready: Dan Shi <dshi@chromium.org>
Tested-by: Dan Shi <dshi@chromium.org>
Reviewed-by: Fang Deng <fdeng@chromium.org>
ros/graphite/es_utils.py
4d505f16bcbe854c98e8d38003644566e4df80a6 04-Apr-2015 Peter Qiu <zqiu@chromium.org> SimpleConnect: test EAP-GTC authentication for PEAP and TTLS

Test client connection using EAP-GTC authentication inside a TLS tunnel created
by TTLS and PEAP.

BUG=chromium:472954
TEST=run network_WiFi_SimpleConnect.wifi_check1x_PEAP and
network_WiFi_SimpleConnect.wifi_check1x_TTLS

Change-Id: I574206cf225fb3072350caa1e6f6ba9c0900dd69
Reviewed-on: https://chromium-review.googlesource.com/264012
Trybot-Ready: Zeping Qiu <zqiu@chromium.org>
Tested-by: Zeping Qiu <zqiu@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Zeping Qiu <zqiu@chromium.org>
ros/network/xmlrpc_security_types.py
8b8d0ea923985dd39a01c64c79a15c4ca3f31372 31-Mar-2015 Dan Shi <dshi@chromium.org> [autotest] Check existance of lsb-release file before testing chromite lib.

To check if the process is running in moblab, try to use lsb-release file
before testing if chromite lib call IsInsideChroot.
This is to avoid confusion of the error message "Unable to determine if this
is a moblab system"

BUG=None
TEST=local call lsbrelease_utils.is_moblab.

Change-Id: Ie1c325971e6947ef300770c33150987abbed5759
Reviewed-on: https://chromium-review.googlesource.com/263284
Trybot-Ready: Dan Shi <dshi@chromium.org>
Tested-by: Dan Shi <dshi@chromium.org>
Reviewed-by: Simran Basi <sbasi@chromium.org>
Commit-Queue: Dan Shi <dshi@chromium.org>
sbrelease_utils.py
0942b1df911f6d78b0bc4277456de01ebbf9e5ec 31-Mar-2015 Dan Shi <dshi@chromium.org> [autotest] Add get_release_version method to servo_host

get_build_id method in autoupdater was removed. Add the new method for
servo_host to use.

BUG=chromium:472135
TEST=local servo test, confirm verify servo works

Change-Id: Ic255dce3b7bfa361204bd6dd7bb03b8f86ec6c5e
Reviewed-on: https://chromium-review.googlesource.com/263245
Trybot-Ready: Dan Shi <dshi@chromium.org>
Tested-by: Dan Shi <dshi@chromium.org>
Reviewed-by: Fang Deng <fdeng@chromium.org>
Commit-Queue: Dan Shi <dshi@chromium.org>
ros/autoupdater.py
36f638e1e0b3ec6613827e88724d7e45957d83f0 27-Mar-2015 David Zeuthen <zeuthen@chromium.org> buffet: Split buffet_Registration into multiple tests.

We add four new tests.

buffet_RestartWhenRegistered
buffet_RefreshAccessToken
buffet_InvalidCredentials
buffet_IntermittentConnectivity

and factor all the common bits into a BuffetTester base class.

BUG=brillo:656
TEST=All five buffet_* tests pass.

Change-Id: I9fd69d68854e9699d05c5a7eb926027239656afa
Reviewed-on: https://chromium-review.googlesource.com/262910
Reviewed-by: David Zeuthen <zeuthen@chromium.org>
Commit-Queue: David Zeuthen <zeuthen@chromium.org>
Tested-by: David Zeuthen <zeuthen@chromium.org>
ros/tendo/buffet_tester.py
1057bae99b76a521f491c09a2fc9c3409c0e6010 30-Mar-2015 Dan Shi <dshi@chromium.org> [autotest] Report cros-version label mismatch to metadb to track failures.

BUG=chromium:469895
TEST=local run verify

Change-Id: I7dd297774eb4af1cfd729ac072125868df4e20b4
Reviewed-on: https://chromium-review.googlesource.com/262976
Trybot-Ready: Dan Shi <dshi@chromium.org>
Tested-by: Dan Shi <dshi@chromium.org>
Reviewed-by: Fang Deng <fdeng@chromium.org>
Commit-Queue: Dan Shi <dshi@chromium.org>
ros/graphite/es_utils.py
95452c8811093db12613a08675932b0b087f3cad 26-Mar-2015 Samuel Tan <samueltan@chromium.org> autotest: add dark resume active scan autotest

Add autotest that tests that no active scans are launched during dark resume
wakes caused by RTC timers or wake on pattern.

Also, modify tcpdump_analyzer.get_frames so that it does not consider captured
frames without a bit rate field as invalid. This ensures that |get_frames| will
parse and return probe request frames.

BUG=chromium:463301
TEST=Run network_WiFi_DarkResuemActiveScans, network_WiFi_WoWLAN,
network_WiFi_WakeOnDisconnect, network_WiFi_WakeOnSSID, and
network_WiFi_LowInitialBitrates using test_that on samus servo wificell.

Change-Id: I9a76447ea76b5bab2bcc46b6d3085f3d7b87aedc
Reviewed-on: https://chromium-review.googlesource.com/262430
Tested-by: Samuel Tan <samueltan@chromium.org>
Reviewed-by: Eric Caruso <ejcaruso@chromium.org>
Commit-Queue: Samuel Tan <samueltan@chromium.org>
ros/network/tcpdump_analyzer.py
db83bfa5062129a22895cb347065ea51a77050db 13-Mar-2015 Eric Caruso <ejcaruso@chromium.org> autotest: Encapsulate dark_resume_utils, add DR counter

Currently, tests have no way of telling the difference between
full resumes and dark resumes, and dark resumes may be short enough
that wait_up isn't going to catch them. This adds a listener on the
DUT which counts DarkSuspendImminent DBus signals, which are sent
as soon as powerd notices we are in dark resume, and adds a function
which allows us to wait for some period of time and then ask the
listener how many signals it noticed.

dark_resume_utils now takes the form of a class instead of a bunch
of functions you call during intialization and teardown because there
is now state which needs to persist across those parts of the test.
It also exposes a better way to suspend for dark resume tests because
we can't rely on the RTC timer waking us up (since that will cause a
dark resume and resuspend), and makes sure that this doesn't put us
to sleep forever.

BUG=chromium:466731
TEST=convert WakeOnDisconnect/WoWLAN to use this, make sure
tests pass

Change-Id: Icb0d7b555685dad7673cbc81840e40eccd282f38
Reviewed-on: https://chromium-review.googlesource.com/260038
Trybot-Ready: Samuel Tan <samueltan@chromium.org>
Tested-by: Samuel Tan <samueltan@chromium.org>
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Samuel Tan <samueltan@chromium.org>
Commit-Queue: Samuel Tan <samueltan@chromium.org>
/external/autotest/client/cros/dark_resume_xmlrpc_server.py
74fb6981b49143bd2d9dd33712bd46ca08604539 27-Mar-2015 Roshan Pius <rpius@chromium.org> Perform a TDLS Discover before Setup in the TDLS ping test.

Change the sequence of TDLS operations to reflect what is being done by
Chrome now. Chrome does a TDLS "Discover" before "Setup" and hence
adding the same sequence in the test.

BUG=chromium:471021
TEST=`test_that ${host} network_WiFi_TDLSPing`

Change-Id: Id0dd1d587f607f4387c6d50bf5743973ac26c02a
Reviewed-on: https://chromium-review.googlesource.com/262729
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Roshan Pius <rpius@chromium.org>
Tested-by: Roshan Pius <rpius@chromium.org>
ros/network/shill_xmlrpc_server.py
549fb82f8dd7ad8031fa451cb19bb1f56355f08c 25-Mar-2015 Dan Shi <dshi@chromium.org> [autotest] Add code in verify and cleanup to remove cros-version label if it doesn't match

Make sure the dut's cros-version label matches the actual version stored in
lsb-release under attribute CHROMEOS_RELEASE_VERSION.

It's added to both cleanup and verify because:
1. If a test failed by dut issue or autoserv crash, cleanup will be queued.
the lab gets a chance to verify the cros-version label before the dut being
assigned to another test.
2. verify is called before each test, so confirming the cros-version label
there is necessary.

The check takes only one ssh call to the dut. Making a duplicated check (reset
calls both cleanup and verify) should not lead too much overhead.

BUG=chromium:469895
TEST=unittest, run local test
1. Add a cros-version label that matches lsb-release, run dummy test, confirm
the label is preserved.
2. Add a cros-version label doesn't match lsb-release, run dummy test, confirm
the label is removed by verify task, and verify job failed.

Change-Id: Ia4760967118f2aacfe5c7f378bb482df7995cef3
Reviewed-on: https://chromium-review.googlesource.com/262390
Trybot-Ready: Dan Shi <dshi@chromium.org>
Tested-by: Dan Shi <dshi@chromium.org>
Reviewed-by: Fang Deng <fdeng@chromium.org>
Commit-Queue: Dan Shi <dshi@chromium.org>
Reviewed-by: Chris Sosa <sosa@chromium.org>
ros/autoupdater.py
ros/autoupdater_unittest.py
sbrelease_utils.py
ite_utils.py
ite_utils_unittest.py
57020c094a377700b0ad4d558d70062a19f1370a 23-Mar-2015 Christopher Wiley <wiley@chromium.org> autotest: Confirm that fake GCD servers have started.

BUG=brillo:641
TEST=One class of errors, where we get bad responses from the server
on startup, no longer happens in 50 runs of buffet_Registration.

Change-Id: Ia9a80cfe9bfea3bb5856dc983a5053dd6d710aa9
Reviewed-on: https://chromium-review.googlesource.com/261806
Reviewed-by: David Zeuthen <zeuthen@chromium.org>
Tested-by: Christopher Wiley <wiley@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
ros/fake_device_server/client_lib/common_client.py
ros/fake_device_server/client_lib/meta.py
ros/fake_device_server/fake_gcd_helper.py
ros/fake_device_server/meta_handler.py
ros/fake_device_server/server.py
385620b87c63eeaa7a5d0085425671bb19839e2f 22-Mar-2015 Christopher Wiley <wiley@chromium.org> autotest: Fix ProcessWatcher behavior for arg-less processes

When no args are specified, ProcessWatcher tried to kill a process
like "command_name " rather than "command_name". This caused the
pgrep/pkill pattern to not match, and the proces to live on.

BUG=brillo:641
TEST=Fake GCD servers are properly killed after this change.

Change-Id: Ibcda63dfb220d1e8c70347adc37577f7da112a59
Reviewed-on: https://chromium-review.googlesource.com/261774
Tested-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: David Zeuthen <zeuthen@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
ros/process_watcher.py
c614a8866b14cff422d8a4d06a26033fa28afa36 19-Mar-2015 Bindu Mahadev <bmahadev@chromium.org> Autotest for Roaming with Suspend Resume

The test configures two APs with the same SSID but different
channel and mode and open security. The device initially
connects to the first AP. Servo is used to trigger suspend
-resume and in the meantime the initial AP is de-configured
and the second AP made active. Client side test verifies that
the DUT is able to Roam after resume.
These tests use Networking Private API as the underlying
interface to networking using shill.

BUG=chromium:466476
TEST=Ran the test in lab

Change-Id: Ia6d08acc8973b13cef3331694ddd645c807f638d
Reviewed-on: https://chromium-review.googlesource.com/259450
Tested-by: Bindu Mahadev <bmahadev@chromium.org>
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Kris Rambish <krisr@chromium.org>
Commit-Queue: Bindu Mahadev <bmahadev@chromium.org>
ros/network/chrome_net_constants.py
e24dba0976c3e97df4640c6b89502a430cc91ebb 19-Mar-2015 David Zeuthen <zeuthen@chromium.org> buffet: Check that buffet reconnects in case the server return an error.

We do this by making fake_device_server return HTTP Error 500 and then
check that buffet reverts to the CONNECTING state. Then we stop
failing requests and check that buffet reverts to CONNECTED. This is
intended to simulate the device losing connectivity to the server and
then reconnecting once connectivity has been restored.

TEST=buffet_Registration still passes.
BUG=brillo:593

Change-Id: I496120ad72d44c225c5a53dbf3bd92c437bdc8a8
Reviewed-on: https://chromium-review.googlesource.com/260842
Tested-by: David Zeuthen <zeuthen@chromium.org>
Reviewed-by: Vitaly Buka <vitalybuka@chromium.org>
Commit-Queue: David Zeuthen <zeuthen@chromium.org>
ros/fake_device_server/client_lib/fail_control.py
ros/fake_device_server/commands.py
ros/fake_device_server/commands_unittest.py
ros/fake_device_server/devices.py
ros/fake_device_server/devices_unittest.py
ros/fake_device_server/fail_control.py
ros/fake_device_server/oauth.py
ros/fake_device_server/registration_tickets.py
ros/fake_device_server/registration_tickets_unittest.py
ros/fake_device_server/server.py
73ac046a2b943b92c5f96384f12eeff09550f2e0 16-Mar-2015 Christopher Wiley <wiley@chromium.org> autotest: Add helper to configure the webserver

BUG=brillo:536
TEST=leaderd_Election consumes this functionality successfully.

Change-Id: If75be6361a1b411579a7eea1a9c2b59a664eb49e
Reviewed-on: https://chromium-review.googlesource.com/260710
Tested-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Alex Vakulenko <avakulenko@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
ros/tendo/webserver_config.py
48841e1228a3246199580e8e7bd16d1b40b2fea7 15-Mar-2015 Christopher Wiley <wiley@chromium.org> autotest: Expand functionality of ProcessWatcher

Change ProcessWatcher to kill processes based on the name and arguments
to a process. This allows us to run multiple copies of the binary with
slightly different arguments in parallel.

In some cases, failing to close output streams causes the
immediate death of the monitored process depending on what autotest
does next. Fix this while we're here.

Sometimes we would like to start a process as a particular user,
(e.g. DBus system configs limit the set of users that can claim a
well known name). Add MinijailConfig, which allows consumers to
start processes in a minijail.

BUG=brillo:535
TEST=n_faced_peerd starts up correctly inside a ProcessWatcher.

Change-Id: I30ae402425f3cb8174b51daba4e208dcdc6c0e79
Reviewed-on: https://chromium-review.googlesource.com/260588
Tested-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Alex Vakulenko <avakulenko@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
ros/process_watcher.py
3b858a2c432caad62403fa646508688e2d419a13 18-Mar-2015 Simran Basi <sbasi@google.com> Catch all errors when provisioning & make start_master_ssh multiprocess safe

Currently autoupdating.py only catches AutoservRunErrors when
updating the rootfs and stateful, thus allowing autotest
infrastructure errors to not be caught properly.

Updates start_master_ssh so that it protects against multiple
processes cleaning up the old connection and creating a new one
in parallel.

BUG=chromium:468062
TEST=provision still works on moblab.

Change-Id: I5a2c31ead5b15ca66c1f8035df27e9c3420b41a8
Reviewed-on: https://chromium-review.googlesource.com/260664
Trybot-Ready: Simran Basi <sbasi@chromium.org>
Tested-by: Simran Basi <sbasi@chromium.org>
Reviewed-by: Don Garrett <dgarrett@chromium.org>
Commit-Queue: Simran Basi <sbasi@chromium.org>
ros/autoupdater.py
d1eb033e1373dc4f878230897eaf39f6696f3a07 18-Mar-2015 Vitaly Buka <vitalybuka@chromium.org> buffet: Add DeviceId D-Bus property check during registration

CQ-DEPEND=CL:260303
BUG=brillo:572
TEST=run_remote_tests.sh --remote=IP buffet_Registration

Change-Id: I29fac7803c02effe49b1ac4cc6a0506eb537fe5d
Reviewed-on: https://chromium-review.googlesource.com/260681
Tested-by: Vitaly Buka <vitalybuka@chromium.org>
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Commit-Queue: Vitaly Buka <vitalybuka@chromium.org>
ros/tendo/buffet_config.py
49c7ad86cb4037abb0785724bb0f0d1aa57f59d3 18-Mar-2015 Vitaly Buka <vitalybuka@chromium.org> buffet: Updated buffet_Registration test to match state rename

BUG=brillo:572,brillo:571,brillo:592
CQ-DEPEND=CL:260302

TEST=run_remote_tests.sh --remote=IP buffet_Registration

Change-Id: Id88b1fb63bdec4901d8c8226446ab2ba461961ff
Reviewed-on: https://chromium-review.googlesource.com/260680
Tested-by: Vitaly Buka <vitalybuka@chromium.org>
Reviewed-by: David Zeuthen <zeuthen@chromium.org>
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Commit-Queue: Vitaly Buka <vitalybuka@chromium.org>
ros/tendo/buffet_config.py
9350c4efd2c6a97c92b064d4d5cc4a73f8919bd0 10-Mar-2015 Christopher Wiley <wiley@chromium.org> leaderd: Add NFacedPeerd

This fake version of peerd claims the same DBus service name, and
more or less implements the same interfaces. However, instead of
looking for remote peers, it just treats each process exposing a
service as a separate peer (it has N faces, one for each process
talking to NFacedPeerd).

We'll use this functionality to replace peerd and run N instances of
leaderd on the same system. Each leaderd instance will be told to
claim a slightly different DBus well known name, and expose handlers
on different ports. By faking out peerd, we'll be able to run a
bunch of scenarios with N peers negotiating leadership.

BUG=brillo:535
TEST=This code is used in follow on CLs successfully.

Change-Id: Ie838d8a83afaece5c5dffc29c29d5ca5961847cd
Reviewed-on: https://chromium-review.googlesource.com/260683
Tested-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: David Zeuthen <zeuthen@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
ros/dbus_send.py
ros/tendo/n_faced_peerd_helper.py
ros/tendo/peerd_config.py
6dd74606148adaf33f2d24d1055a7cf4e1d5f800 16-Mar-2015 Fang Deng <fdeng@chromium.org> [autotest] Identify stats with hostname

If SERVER is set to 'localhost' in shadow config,
the stats key will have a prefix of 'localhost', leading
to multiple hosts dumping data to the same bucket (e.g. shards).

This CL fixes the problem by using hostname as prefix.

TEST=Run scheduler, observer the prefix.
BUG=chromium:464537

Change-Id: I8eb83886dbe38c5380797546b6e4ac012bf08beb
Reviewed-on: https://chromium-review.googlesource.com/260432
Reviewed-by: Mungyung Ryu <mkryu@google.com>
Reviewed-by: Dan Shi <dshi@chromium.org>
Commit-Queue: Fang Deng <fdeng@chromium.org>
Tested-by: Fang Deng <fdeng@chromium.org>
ros/graphite/autotest_stats.py
767dced065c8918b5ff74c1347371a0f0f8d9c69 01-Feb-2015 Dan Shi <dshi@chromium.org> [autotest] Add a utility module to interact with LXC binaries.

Add a module (lxc.py) to interact with LXC binaries.

lxc_functional_test.py is a test script to test the module. It will
1. Set up base container in a tmp directory.
2. Create a test container from the base container.
3. Test site-packages and results directory can be mounted and shared between
host and test container.
4. Run autoserv in test mode.

Also add a utility function in client/common_lib/site_utils.py to get the value
of the given argument for the function. It's used in decorator to check function
parameters.

BUG=chromium:453621
CQ-DEPEND=CL:251140

TEST=unittest,
sudo python site_utils/lxc_functional_test.py
sudo python site_utils/lxc.py -s -p /tmp/container_123
sudo python site_utils/lxc.py -s -p /tmp/container_123 -f
sudo python site_utils/lxc.py -p /tmp/container_123 -f

Change-Id: Id7b259c4bc03977974af44d6d88420b220706589
Reviewed-on: https://chromium-review.googlesource.com/247271
Reviewed-by: Dan Shi <dshi@chromium.org>
Commit-Queue: Dan Shi <dshi@chromium.org>
Trybot-Ready: Dan Shi <dshi@chromium.org>
Tested-by: Dan Shi <dshi@chromium.org>
rror.py
ite_utils.py
ite_utils_unittest.py
052571d66001d353afc5dad46287ac983700aa8c 05-Mar-2015 Christopher Wiley <wiley@chromium.org> privetd: Whitelist WiFi devices in privetd_PrivetSetupFlow

BUG=brillo:445
TEST=This test continues to pass.

Change-Id: I93fceac7ba1f8bfe795b3c473bfc46eff2528877
Reviewed-on: https://chromium-review.googlesource.com/257074
Tested-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Alex Vakulenko <avakulenko@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
ros/tendo/privetd_helper.py
ec1d47d85cc83f30631518d8fbb6406036a3ac39 13-Feb-2015 Dan Shi <dshi@chromium.org> [autotest] Add support for scheduler to honor require_ssp attribute in control file

This CL adds changes to pipe require_ssp attribute in control file to autoserv
command. Following are the work flow:

1. The control file parser stores require_ssp attribute value in afe_jobs table.
2. QueueTask compiles command line list, --require-ssp option will be added to
the command line list if following conditions are met:
a. AUTOSERV/enable_ssp_container in global config is True
b. The test is a server-side test
c. require_ssp for the job entry is None or True.
3. When agent_task tries to call run method to run the command, it will check if
there is any drone supporting server-side packaging first. If no drone is found,
the agent task will will run the command in a drone without using server-side
packaging. A warning will be posted in the autoserv log.
4. If a drone without SSP supported is assigned to a test requires SSP, the test
will be run without ssp.

BUG=chromium:453624
TEST=unittest, local test:
set AUTOSERV/enable_ssp_container to True in shadow config;
Create a job for dummy_PassServer in AFE, check require SSP, confirm the job
succeeds but with a warning in the autoserv log.

Create a job for dummy_PassServer_nossp in AFE, uncheck require SSP, confirm
the job passes without warning in the autoserv log.

set AUTOSERV/enable_ssp_container to False in shadow config, restart scheduler.
Create a job for dummy_PassServer in AFE, check require SSP, confirm the job
succeeds without warning in the autoserv log.

also run test_that in local chroot to make sure test_that is not affected.

DEPLOY=apache,scheduler, db migrate must be done before push this CL to prod.

Change-Id: I02f3d137186676ae570e8380d975a1bcd9ffbb94
Reviewed-on: https://chromium-review.googlesource.com/249841
Reviewed-by: Dan Shi <dshi@chromium.org>
Commit-Queue: Dan Shi <dshi@chromium.org>
Trybot-Ready: Dan Shi <dshi@chromium.org>
Tested-by: Dan Shi <dshi@chromium.org>
ontrol_data.py
ontrol_data_unittest.py
704134ddfa2e1d67afbfabc7afcc24f849ac0e36 06-Mar-2015 Achuith Bhandarkar <achuith@chromium.org> Use telemetry.core.exceptions.Error everywhere.

BUG=chromium:460625
TEST=bots

Change-Id: I819b78ea402ee8bd8c669ec471c840106f35e548
Reviewed-on: https://chromium-review.googlesource.com/256740
Trybot-Ready: Achuith Bhandarkar <achuith@chromium.org>
Tested-by: Achuith Bhandarkar <achuith@chromium.org>
Reviewed-by: Wai-Hong Tam <waihong@chromium.org>
Commit-Queue: Achuith Bhandarkar <achuith@chromium.org>
ros/chrome.py
624d9d162b6145c9a9931d82942c813bd5b3a921 04-Mar-2015 David Zeuthen <zeuthen@chromium.org> buffet: Check status is invalid_credentials if unable to obtain access_token.

Specifically, we only transition into this state if the server-side
returns the invalid_grant error. IOW, transient errors (e.g. missing
network connectivity) will not trigger this state (we could add a test
to verify this).

BUG=brillo:275
TEST=The brillo_Registration autotest passes.

Change-Id: Ieda1ac571702cd3a89bc623c16ca2e0930722590
Reviewed-on: https://chromium-review.googlesource.com/255881
Commit-Queue: David Zeuthen <zeuthen@chromium.org>
Tested-by: David Zeuthen <zeuthen@chromium.org>
Reviewed-by: David Zeuthen <zeuthen@chromium.org>
ros/fake_device_server/client_lib/oauth.py
ros/fake_device_server/oauth.py
28c4689b8f25a7ddbff3d1c84d5e675994877b41 03-Mar-2015 David Zeuthen <zeuthen@chromium.org> buffet: Check that buffet refreshes its access token if getting a 401.

We do this by requesting fake_device_server to mark the access token
used by buffet as invalid so requests from the device will error
out. This actually exposed a bug in buffet which is fixed in the
dependent CL.

Also rename fake_oauth.py to oauth.py to make room for a fake and use
that in unit-tests where needed.

BUG=brillo:275
TEST=The brillo_Registration autotest passes.
CQ-DEPEND=CL:255590

Change-Id: I0e7afeb9d1ff11fa0acbe52d88f7685021d5329c
Reviewed-on: https://chromium-review.googlesource.com/255480
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Commit-Queue: David Zeuthen <zeuthen@chromium.org>
Tested-by: David Zeuthen <zeuthen@chromium.org>
ros/fake_device_server/client_lib/oauth.py
ros/fake_device_server/commands.py
ros/fake_device_server/commands_unittest.py
ros/fake_device_server/devices_unittest.py
ros/fake_device_server/fake_oauth.py
ros/fake_device_server/oauth.py
ros/fake_device_server/registration_tickets_unittest.py
ros/fake_device_server/server.py
ros/tendo/buffet_config.py
2a0a1ff986fc4fe0e817e2ce5745b4997b5eac27 05-Mar-2015 David Haddock <dhaddock@chromium.org> Update for image comparison tests

The initial checkin didn't have version control. This adds it.
A folder structure like <milestone>/<golden image> is now on Google Storage.

The Roboto font change broke everything so we need versioning.

This also adds a bigger timeout as the lab takes longer than my local testing.
This also adds a few fixes due to accessibility fixes in ChromeOS.

BUG=None
TEST=None

Change-Id: I33d994122bebe413344c8cb18d6341e3975a5747
Reviewed-on: https://chromium-review.googlesource.com/255751
Reviewed-by: Mussa Kiroga <mussa@chromium.org>
Reviewed-by: Kris Rambish <krisr@chromium.org>
Commit-Queue: David Haddock <dhaddock@chromium.org>
Tested-by: David Haddock <dhaddock@chromium.org>
sbrelease_utils.py
57f2ed1cddace69c180e956d12b56a60150112ce 27-Feb-2015 Nathan Bullock <nathanbullock@google.com> buffet: Handle authentication failures better

Previously the lack of an access token would raise a "list index out
of range" assertion, and cause a 500 response. This was causing buffet
to fail since it didn't realize it needed to reauthenticate.

TEST=test_that <ip_address> buffet_Registration
BUG=brillo:378

Change-Id: Ifdbc64c6a28cbedea7cd176b395666be975da71d
Reviewed-on: https://chromium-review.googlesource.com/254560
Reviewed-by: David Zeuthen <zeuthen@chromium.org>
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Commit-Queue: Nathan Bullock <nathanbullock@google.com>
Tested-by: Nathan Bullock <nathanbullock@google.com>
ros/fake_device_server/common_util.py
ros/fake_device_server/devices.py
fab82d1625836e41617794f6e2c64dfb019991af 26-Feb-2015 Achuith Bhandarkar <achuith@chromium.org> Remove references to util.TimeoutException

https://codereview.chromium.org/952693003 moved TimeoutException.

chrome.py will need to reference the new location of TimeoutException when the above CL lands.

BUG=chromium:460625
TEST=login_ChromeProfileSanitary, bots

Change-Id: I00a2a7fc9cffacf23b306043296c2b5d6dd895c1
Reviewed-on: https://chromium-review.googlesource.com/254220
Reviewed-by: Toni Barzic <tbarzic@chromium.org>
Commit-Queue: Achuith Bhandarkar <achuith@chromium.org>
Trybot-Ready: Achuith Bhandarkar <achuith@chromium.org>
Tested-by: Achuith Bhandarkar <achuith@chromium.org>
ros/chrome.py
9c77974dbd473535d6a4c11d70c2e067b044e870 23-Feb-2015 Peter Qiu <zqiu@chromium.org> network_WiFi_ChannelScanDwellTime: disable scheduled scan before test

When scheduled scan is enabled, drivers (such as Intel WP2) that
support it could be in the middle of scheduled scan when we ask
the drvier to perform a single-channel scan. In this case the driver
may actually perform the single-channel scan after the scheduled
scan is completed. This causes the returned scan results for the
single-channel scan to contain BSSes from both scans, which would
mess up the dwell time calculation.

By default, scheduled scan is enabled. Disable it for this test
and renable it after the test is complete.

BUG=chromium:461069
TEST=Run this test
CQ-DEPEND=CL:252220

Change-Id: I5eccece60f723f49b4fd9de301d22b4e8e619297
Reviewed-on: https://chromium-review.googlesource.com/252342
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Zeping Qiu <zqiu@chromium.org>
Tested-by: Zeping Qiu <zqiu@chromium.org>
ros/network/shill_xmlrpc_server.py
70daea0a0eedf6e46235306ba89a22077308244c 15-Feb-2015 Christopher Wiley <wiley@chromium.org> buffet: Check that buffet sets appropriate RegistrationStatus values

BUG=brillo:16
TEST=This is a test. It passes.
CQ-DEPEND=CL:250011

Change-Id: I9552258edd4e32a39cebab8eb2018baac73ef034
Reviewed-on: https://chromium-review.googlesource.com/250012
Tested-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: David Zeuthen <zeuthen@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
ros/tendo/buffet_config.py
64e4d34e0f030275db9a4d1332ed36ca91c8013a 19-Feb-2015 Christopher Wiley <wiley@chromium.org> peerd: Check that we remove services on DBus connection death

When processes registering services with peerd terminate peerd should
remove their services. Peerd detects remote process death by watching
for the closing of the DBus connection owned by the process. Add a
test, peerd_MonitorDBusConnections, that checks that this is done correctly.

BUG=brillo:13
TEST=This is a test, it passes.

Change-Id: Iae652f7264155812574571f7198bb9364b320254
Reviewed-on: https://chromium-review.googlesource.com/251200
Reviewed-by: Alex Vakulenko <avakulenko@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
Tested-by: Christopher Wiley <wiley@chromium.org>
ros/tendo/peerd_config.py
6690484d2568ae80600be06d4820a30e99323b89 20-Feb-2015 Vitaly Buka <vitalybuka@chromium.org> buffet: Test modelManifestId presence in device resource

CQ-DEPEND=CL:251141
TEST=run_remote_tests.sh --remote=IP buffet_Registration
BUG=brillo:295

Change-Id: I1117ddcccb5e3c6740ee72de21b4da12e3bd7805
Reviewed-on: https://chromium-review.googlesource.com/251381
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Commit-Queue: Vitaly Buka <vitalybuka@chromium.org>
Tested-by: Vitaly Buka <vitalybuka@chromium.org>
ros/tendo/buffet_config.py
a04aa7dc31f5eb3961145c7816bcee83ad8cff65 20-Feb-2015 Peter Qiu <zqiu@chromium.org> Update disconnect event signature for start of reassociation

On some devices (broadcom and marvell), the disconnect is triggered by
the driver instead of wpa_supplicant, which means there is only
a "disconnected" iw event during the disconnect attempt. Update
the disconnect event signature to this event for the start of
reassociation.

BUG=chromium:448155
TEST=Run network_WiFi_Reassociate on all types of wifi devices.

Change-Id: I8d0e86e85d8f956459210df393f800311d22419f
Reviewed-on: https://chromium-review.googlesource.com/251410
Trybot-Ready: Zeping Qiu <zqiu@chromium.org>
Tested-by: Zeping Qiu <zqiu@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Zeping Qiu <zqiu@chromium.org>
ros/network/iw_event_logger.py
01c974da4081c422551c369af8ebc2b76a6fb884 18-Feb-2015 Peter Qiu <zqiu@chromium.org> Update reassociate time calculation

Previously, the reassociation time is determined based on the time when
scan is started to the time when client is connected. However, in the newer
version (2.3) of wpa_supplicant, the device will first try to reconnect
(disconnect then connect) without scanning.

Update the reassociate time calculation to consider both scan attempt
and disconnect attempt as the start of reassociation, whichever appears
first in the iw event log is considered the start of reassociation.

BUG=chromium:448155
TEST=Run network_WiFi_Reassociate test for both version of wpa_supplicant

Change-Id: I9c2c71999e16b5f1eab7d902450deb1221bf8f93
Reviewed-on: https://chromium-review.googlesource.com/250840
Trybot-Ready: Zeping Qiu <zqiu@chromium.org>
Tested-by: Zeping Qiu <zqiu@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Zeping Qiu <zqiu@chromium.org>
ros/network/iw_event_logger.py
630d6b4de994abf65f393b9b598defdaebd4dbb6 14-Feb-2015 Ben Chan <benchan@chromium.org> Fix more I/O redirection issues.

Various command invocations in autotest use the bash-specific I/O
redirection syntax '&>', which doesn't work when dash is used. Under
dash, `ls foo &> /dev/null` is executed as `ls foo &` and `> /dev/null`
separately. As the latter always returns 0, the actual exit status of
the whole command isn't correctly determined.

This CL fixes the issues by using '>file 2>&1' instead.

BUG=chromium:458678
TEST=Manually going through the code.

Change-Id: I7dd22a5e898a18c7ff3d2fb43714e985eaa05c99
Reviewed-on: https://chromium-review.googlesource.com/249996
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Commit-Queue: Ben Chan <benchan@chromium.org>
Tested-by: Ben Chan <benchan@chromium.org>
ros/virtual_ethernet_pair.py
1e30026210e9cdccccefae2653de0691293cf5ae 12-Feb-2015 Christopher Wiley <wiley@chromium.org> autotest: Expand buffet_Registration to expect post registration actions

Among its post registration actions, we expect buffet to poll for new
outstanding commands. Test that buffet both detects new commands on
the server and exposes DBus representations of those commands.

BUG=brillo:15
TEST=This is a test, it passes.
CQ-DEPEND=249540

Change-Id: I22944bc32b254fc56581e8a0c7f90ff8e747a204
Reviewed-on: https://chromium-review.googlesource.com/249541
Tested-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Alex Vakulenko <avakulenko@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
ros/tendo/buffet_config.py
3c02dbac644d951bc264158d3f4efea577345b84 12-Feb-2015 Christopher Wiley <wiley@chromium.org> autotest: Support post Registration Buffet requests

Buffet tries to patch its device resource on startup, aborts
limbo commands, and then starts periodically polling for commands.

BUG=brillo:15
TEST=buffet_Registration passes with these changes after being
expanded to expect command polling to work.

Change-Id: I0e3cce44fdf088bf2d063a03ff07e5073624e03d
Reviewed-on: https://chromium-review.googlesource.com/249540
Tested-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Alex Vakulenko <avakulenko@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
ros/fake_device_server/client_lib/commands.py
ros/fake_device_server/commands.py
ros/fake_device_server/commands_unittest.py
ros/fake_device_server/common_util.py
ros/fake_device_server/devices.py
ros/fake_device_server/devices_unittest.py
ros/fake_device_server/fake_oauth.py
ros/fake_device_server/registration_tickets_unittest.py
ros/fake_device_server/resource_delegate.py
ros/fake_device_server/server.py
af2fe4d810e1cc2db02a3412af6989793b8527ac 13-Feb-2015 Ben Chan <benchan@chromium.org> Fix an I/O redirection issue.

autotest_lib.client.common_lib.cros.network.Interface.device_description
has an 'exists' lambda function, which uses `ls` to determine if a path
exists on a local or remote machine. However, the `ls` command uses a
bash specific I/O redirection syntax '&>', which doesn't work when dash
is used. Under dash, `ls foo &> /dev/null` is executed as `ls foo &` and
`> /dev/null` separately. As the latter command always returns 0, the
'exists' function returns True even if the given path doesn't exist.

This CL fixes the issue by using 'test -e' instead.

BUG=chromium:458678
TEST=Run network_WiFi_SimpleConnect.

Change-Id: Id93e3de12f5faaec2c31980249d71ebee03004b7
Reviewed-on: https://chromium-review.googlesource.com/249888
Tested-by: Ben Chan <benchan@chromium.org>
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Commit-Queue: Ben Chan <benchan@chromium.org>
ros/network/interface.py
15e81ec0fd7be8d8e661927df304d6a355255e23 13-Feb-2015 Christopher Wiley <wiley@chromium.org> privetd: Update privetd_PrivetSetupFlow for new webserverd

In particular, we were still hardcoding an HTTPS port incorrectly,
and not tolerating a timeout after calling setup/start. The timeout
happens when the DUT tears down the soft AP too fast for the webserver
to respond that the setup is in progress.

BUG=brillo:8
TEST=This test now passes again.

Change-Id: If8285f4d87075196472efe3cdeeabca8d06a9239
Reviewed-on: https://chromium-review.googlesource.com/249547
Tested-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Alex Vakulenko <avakulenko@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
ros/tendo/privetd_helper.py
275a2b309babaf95fd092bbf6dcfa4e857a6b80e 09-Feb-2015 Christopher Wiley <wiley@chromium.org> buffet: Add integration test for registration

BUG=brillo:172
TEST=This is a test that passes

Change-Id: I197176ac97348d401689955d5691f7dd9a8714fe
Reviewed-on: https://chromium-review.googlesource.com/247561
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
Tested-by: Christopher Wiley <wiley@chromium.org>
ros/process_watcher.py
ros/tendo/buffet_config.py
0f333af62f6f39a9cdc1bd0521345cd3a39c29e3 09-Feb-2015 Christopher Wiley <wiley@chromium.org> buffet: Bring fake_device_server up to speed with registation flow

The actual registration flow has changed a little bit. In particular,
now the client POSTs to create a ticket, the device PATCHes it, and
then the device POSTs to finalize the ticket.

BUG=brillo:172
TEST=A test consuming these APIs passes.

Change-Id: Ifd1d1c6e4bbd23ef34062c12529eca1e36e66713
Reviewed-on: https://chromium-review.googlesource.com/247560
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
Tested-by: Christopher Wiley <wiley@chromium.org>
ros/fake_device_server/client_lib/devices.py
ros/fake_device_server/client_lib/registration.py
ros/fake_device_server/devices.py
ros/fake_device_server/devices_unittest.py
ros/fake_device_server/fake_oauth.py
ros/fake_device_server/registration_tickets.py
ros/fake_device_server/registration_tickets_unittest.py
ros/fake_device_server/server.py
fa0aa9721b44a0062033c9ea5047fde9acc04405 06-Feb-2015 Christopher Wiley <wiley@chromium.org> Test that we load firmwareVersion in buffet_BasicDBusAPI

BUG=brillo:103
TEST=This is a passing test
CQ-DEPEND=CL:247234

Change-Id: Ia2184caa95df09969a5514c52c97af2ed53a4fbb
Reviewed-on: https://chromium-review.googlesource.com/247240
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Tested-by: Christopher Wiley <wiley@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
ros/dbus_send.py
ros/tendo/buffet_config.py
e8cef9501dbb580e1629d1d3ae93c3edbe2e294b 07-Feb-2015 Dan Shi <dshi@chromium.org> [autotest] Check if it's running in chroot when determining if the system is moblab

BUG=chromium:454583
TEST=test_that, confirm no error message:
"Unable to determine if this is a moblab system"

Change-Id: I3ae7e0ad47bc00f2098dde4342384dbdc7aa5dbe
Reviewed-on: https://chromium-review.googlesource.com/247408
Trybot-Ready: Dan Shi <dshi@chromium.org>
Tested-by: Dan Shi <dshi@chromium.org>
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Simran Basi <sbasi@chromium.org>
Commit-Queue: Dan Shi <dshi@chromium.org>
sbrelease_utils.py
b0cdf3b3cdda00ac6c2683ec3ad3e8b9ceadbad9 06-Feb-2015 Artem Rakhov <arakhov@chromium.org> BT Autotest: introduce BluetoothGATTServer class

BluetoothGATTServer uses btsocket module to accept incoming BLE
connection. It handles incoming requests in asyncronious way using
asyncore module. For now it just handles only Exchange MTU request,
which is used to initialize connection.

BUG=chromium:456329
TEST=manually test against btgatt-client

Change-Id: I7876a04d50ce94cb38f9a40f80f98f864b51b315
Reviewed-on: https://chromium-review.googlesource.com/247260
Tested-by: Artem Rakhov <arakhov@chromium.org>
Reviewed-by: Arman Uguray <armansito@chromium.org>
Commit-Queue: Artem Rakhov <arakhov@chromium.org>
ros/bluetooth/bluetooth_gatt_server.py
cc770d973deaa14aa614b19d1dd0cb4d673767a8 03-Feb-2015 Christopher Wiley <wiley@chromium.org> privetd: Complete end to end bootstrapping test

BUG=brillo:8
TEST=privet_PrivetSetupFlow passes 30/30 times.

Change-Id: Idab9495c52c7db2b9f43cf4f2f1fc81bd9c102bb
Reviewed-on: https://chromium-review.googlesource.com/246662
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Tested-by: Christopher Wiley <wiley@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
ros/avahi_utils.py
ros/tendo/privetd_helper.py
d6ccea12f7479d0994fe3d1d6912b74abda168eb 05-Feb-2015 Christopher Wiley <wiley@chromium.org> peerd: Refactor out PeerdConfig object

This will allow us to restart peerd with better verbosity setings
across server and client tests.

BUG=brillo:8
TEST=peerd_* tests pass.

Change-Id: Ia96cf669dbb7c3dbefe9539a97cfa8bc99ffd476
Reviewed-on: https://chromium-review.googlesource.com/246661
Tested-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Alex Vakulenko <avakulenko@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
ros/tendo/peerd_config.py
1e1c41b1b4a1b97c0b7086b8430856ed45e064d3 05-Feb-2015 Gabe Black <gabeblack@chromium.org> graphite: Separate out configuration from the statsd classes.

The new version of the statsd classes should be created using an instance of
the new Statsd class which sets up some defaults without having to specify
them over and over. This makes it essentially compatible with the existing
usage in autotest, but will allow chromite to configure things differently and
avoid having side effects from importing the module or global state.

BUG=chromium:446291
TEST=Ran unit tests, ran stats_es_functionaltest.py, ran the
stats_mock_unittest, ran a butterfly-paladin tryjob with --hwtest, testing by
fdeng.
DEPLOY=apache,scheduler,host-scheduler

Change-Id: I1071813db197c0e5e035b4d8db615030386f1c1c
Reviewed-on: https://chromium-review.googlesource.com/246428
Reviewed-by: Fang Deng <fdeng@chromium.org>
Reviewed-by: Dan Shi <dshi@chromium.org>
Commit-Queue: Gabe Black <gabeblack@chromium.org>
Tested-by: Gabe Black <gabeblack@chromium.org>
ros/dev_server.py
ros/graphite/autotest_stats.py
ros/graphite/es_test_utils.py
ros/graphite/stats.py
osts/base_classes.py
e9cf86d43ca52aa08683182f3df1f62b0e7ae703 03-Feb-2015 Alex Vakulenko <avakulenko@chromium.org> Updated tests with webserver's new open port configuration

privetd daemon used to run the webserver on ports 8080 and 8081.

Now that the web server functionality is moved into webservd
daemon and the port assignment has changed to 80 and 443,
update the tests to verify the new configuration.

BUG=brillo:10
TEST=test_that -b link 100.96.49.23 security_Firewall security_NetworkListeners
CQ-DEPEND=CL:245980

Change-Id: I9ec182a8b14904ac58cf28cf9764bc072a66666c
Reviewed-on: https://chromium-review.googlesource.com/245780
Reviewed-by: Jorge Lucangeli Obes <jorgelo@chromium.org>
Tested-by: Alex Vakulenko <avakulenko@chromium.org>
Commit-Queue: Alex Vakulenko <avakulenko@chromium.org>
ros/tendo/privetd_helper.py
ros/tendo/webservd_helper.py
b72f4fbcf1583da27f09f4abb9d8162530bf4559 21-Jan-2015 Gabe Black <gabeblack@chromium.org> graphite: Reorganize the elastic search code so we can put it in chromite.

This change reorganizes the elastic search integration code so that it's
separate from the code that, for instance, reads config information from the
autotest global config. That way, it can be moved from chromite without
breaking any dependencies.

BUG=chromium:446291
TEST=Ran stats_es_functionaltest.py. Ran unit tests. Ran a butterfly-paladin
tryjob with --hwtest.

Change-Id: I0dbf135c4f1732d633e5fc9d5edb9e1f4f7199d5
Reviewed-on: https://chromium-review.googlesource.com/242701
Reviewed-by: Dan Shi <dshi@chromium.org>
Tested-by: Gabe Black <gabeblack@chromium.org>
Commit-Queue: Gabe Black <gabeblack@chromium.org>
ros/graphite/autotest_es.py
ros/graphite/es_test_utils.py
ros/graphite/es_utils.py
ros/graphite/stats.py
ros/graphite/stats_es_functionaltest.py
c14bfc0f55ebf8a03fa4fdec109fd2557c0fdebb 05-Feb-2015 Christopher Wiley <wiley@chromium.org> Map AFE boards to servo boards in infra_ServoDiagnosis

We are growing a number of variations on boards that are irrelevent from
the servo perspective. Tolerate variations on board names coming from
the AFE for the purposed of servo validation.

Concretely, *_freon boards should map to their basic versions, and a
gizmo is just a panther.

BUG=None
TEST=unittest

Change-Id: Ifc9257df9132a8c2cc9cb387e5cf00ae36d5f169
Reviewed-on: https://chromium-review.googlesource.com/246373
Tested-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Richard Barnette <jrbarnette@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
ros/servo_afe_board_map.py
ros/servo_afe_board_map_unittest.py
a557d56a4a88324fd1bcb6008d6b761b84334c57 05-Feb-2015 Christopher Wiley <wiley@chromium.org> Fix pairing logic in privetd tests

We corrected our oversight in defaulting to pin codes in privetd, but
not in the tests. While we're here, clear out WiFi credential state
and make sure that we're bootstrapping only the WiFi interfaces.

BUG=None
TEST=This test passes again.

Change-Id: I4b959c5ddc81770135bc6bdaa42303a82fbb4dcc
Reviewed-on: https://chromium-review.googlesource.com/246301
Tested-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Alex Vakulenko <avakulenko@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
ros/tendo/privetd_helper.py
b1a5bdb56a234b4ed7c41aa9746a695f825be2e3 02-Feb-2015 Christopher Wiley <wiley@chromium.org> Refactor avahi_utils to be usable from server tests

This makes these utilities more broadly useful by allowing them
to be used from server tests, where we cannot call DBus methods
on the local host.

In order to do this, route DBus calls through dbus_send.py, a wrapper
around the dbus-send utility. This wrapper does some limited parsing
of dbus-send output in order to conver it to meaningful Python types.

While here, allow original errors from p2p setup to propagate upward.
This increases the meaningful content in test failures.

BUG=brillo:8
TEST=peerd_* tests pass, as to p2p related tests.

Change-Id: If98be716f2061b90d1fa9d4681d1e00152f4005a
Reviewed-on: https://chromium-review.googlesource.com/245545
Tested-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: David Zeuthen <zeuthen@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
ros/avahi_utils.py
ros/dbus_send.py
ros/dbus_send_unittests.py
ab3964fcc7d355e1c9d9de6be5ffe2b5583e52f1 26-Jan-2015 Christopher Wiley <wiley@chromium.org> privetd: Add end to end WiFi bootstrapping test

For now, this test merely sets up a router that we'll later attempt to
connect to, and confirms that the DUT is setting up its AP with an SSID
in the format that we expect. It ends by connecting the router to the
DUTs softAP as a client.

Some work is done to add additional configuration options for
the privetd device model, class, and name. This allows us
to pick out most of the characters in the SSID.

Some additional work is done to allow the router to connect to
the unencrypted bootstrapping network as a client.

BUG=brillo:8
TEST=This test passes up to the final TestNA indicating that it is
not complete. network_WiFi_TDLSPing still passes after changes to
add_connected_peer()

Change-Id: Ie46dad4c3442fadf38b7923334d522fb0113037d
Reviewed-on: https://chromium-review.googlesource.com/245462
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Tested-by: Christopher Wiley <wiley@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
ros/tendo/privetd_helper.py
cef4a3053623361bbaa94668cd4af1af42151ddc 05-Feb-2015 Christopher Wiley <wiley@chromium.org> privetd: Fix clean state handling

State files are overridden with flags, not configuration files.

BUG=None
TEST=privet_BasicDBusAPI passes against devices with some state.

Change-Id: If8ee7621b08a050faff6d26b1d9b6b8ba9d5e5fd
Reviewed-on: https://chromium-review.googlesource.com/246300
Tested-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Alex Vakulenko <avakulenko@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
ros/tendo/privetd_helper.py
3d9780e4991dd7efd0c38108feb0cd8643ecc7d1 04-Feb-2015 Tien Chang <tienchang@google.com> Mapping Glimmer's device info with Stonepeak

Got the hex pairs from error messages
while running/failing wifi_perf tests

BUG=None
TEST=Passed wifi_perf

Change-Id: I5763d2a7663d11ec55870c78bda6f6e3cd02cf9a
Reviewed-on: https://chromium-review.googlesource.com/245974
Tested-by: Tien Chang <tienchang@chromium.org>
Reviewed-by: Kris Rambish <krisr@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Tien Chang <tienchang@chromium.org>
ros/network/interface.py
9a63a8bd7e6c6cd49e673f40f1ae40234bea7321 03-Feb-2015 Peter Qiu <zqiu@chromium.org> apmanager: add autotest for bridge mode configuration

For testing configuration of the AP in bridge mode, a DHCP server is setup
on one end of the virtual ethernet pair, and the bridge interface is
configured on the othe end. hostapd will also add the AP interface to the
bridge interface, which allows the DHCP server configured on the virtual
etherenet pair to service all DHCP requests coming to the AP interface.

With this approach, the configuration support for virtual ethernet pair
and bridge mode interface are added to SiteLinuxSystem, where a linux
system will support at most one virtual ethernet pair and one bridge
mode interface.

Note that the current Stumpy router image (version b16) doesn't support
bridge mode interface in kernel (CONFIG_BRIDGE is not enabled).

BUG=chromium:448959
TEST=Run apmanager_SimpleConnect.bridge test

Change-Id: Ib462001ec7c4a9fd79ba59a2aa6ed8344a5c3d0b
Reviewed-on: https://chromium-review.googlesource.com/245756
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Commit-Queue: Zeping Qiu <zqiu@chromium.org>
Trybot-Ready: Zeping Qiu <zqiu@chromium.org>
Tested-by: Zeping Qiu <zqiu@chromium.org>
Reviewed-by: Zeping Qiu <zqiu@chromium.org>
ros/network/apmanager_constants.py
ros/network/interface.py
ros/virtual_ethernet_pair.py
55d758c5fa3a995112c3899f026039b3fc2824dc 02-Feb-2015 Peter Qiu <zqiu@chromium.org> apmanager: use dictionary for AP service configuration parameters

Update apmanager proxy to configure AP service using dictionary of
configuration parameters. This allows more flexibility on configuring
AP services through the proxy.

BUG=chromium:448959
TEST=Verify apmanager_CheckAPProcesses and apmanager_SimpleConnect.default
tests

Change-Id: Ic3c166896c2216d88f8575dc6954a292b6df0e2d
Reviewed-on: https://chromium-review.googlesource.com/245466
Trybot-Ready: Zeping Qiu <zqiu@chromium.org>
Tested-by: Zeping Qiu <zqiu@chromium.org>
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Commit-Queue: Zeping Qiu <zqiu@chromium.org>
ros/network/apmanager_constants.py
ros/network/apmanager_xmlrpc_server.py
9fd3eeb71901c140b2261f4bd93b311d44472bea 30-Jan-2015 Christopher Wiley <wiley@chromium.org> autotest: Tolerate spaces in SSIDs in iw_runner

BUG=brillo:8
TEST=wifi_matfunc passes with this change, not including
end to end tests involving Chrome and tests requiring servos.

Change-Id: Ibb39417c1eee3ea93aa313bd96d0d7a64c4bc9af
Reviewed-on: https://chromium-review.googlesource.com/245111
Tested-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
ros/network/iw_runner.py
60cf6a9294dc53a9fe11dc9b28eaaea1ee69ca92 30-Jan-2015 Dan Shi <dshi@chromium.org> [autotest] Add a moblab_config to override config value in global config when running in moblab.

The config value set in moblab_config.ini will override values in global
config only when running in moblab. Shadow config values can override
what's set in moblab config.

The config file can be used to disable particular function of autotest that
can be used in test lab but not moblab.

Also fix a bug in server management.

BUG=chromium:377210
TEST=unittest, local autoest setup to confirm shadow config not affected.
DEPLOY=apache

Change-Id: If199ba34f0047776ca8915a445b0d4fe5716e716
Reviewed-on: https://chromium-review.googlesource.com/244170
Tested-by: Dan Shi <dshi@chromium.org>
Reviewed-by: Simran Basi <sbasi@chromium.org>
Commit-Queue: Dan Shi <dshi@chromium.org>
lobal_config.py
lobal_config_unittest.py
sbrelease_utils.py
ite_utils.py
tils.py
21529ce4b0851467ae2ea18c93776b90d1b3a986 26-Jan-2015 Paul Stewart <pstew@chromium.org> Add MTU test for DHCP client

Ensure that the DHCP client imports the MTU parameter from the
DHCP config. Also ensure that this parameter modifies the state
of the interface.

BUG=chromium:450759
TEST=Run this test

Change-Id: I471b4c4f124d7400356a71624f09e3fda7aaf89d
Reviewed-on: https://chromium-review.googlesource.com/243315
Reviewed-by: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Paul Stewart <pstew@chromium.org>
ros/network/interface.py
db63b1eabf5f3df3dd504a2998534ed98258d923 29-Jan-2015 Peter Qiu <zqiu@chromium.org> Add remote host support for VirtualEthernetPair

This allows VirtualEthernetPair module to be used on the server
autotests. Also move the file to client/common_lib/cros to indicate
that it is usable by both client and server autotests.

BUG=chromium:448959
TEST=Run network_nightly suite

Change-Id: Ia8371372193ef634ab68184e336dc7f0caa86ac2
Reviewed-on: https://chromium-review.googlesource.com/244276
Tested-by: Zeping Qiu <zqiu@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Commit-Queue: Zeping Qiu <zqiu@chromium.org>
ros/virtual_ethernet_pair.py
d0409feabb2e243405557b1370ddc06e9ccdd1ec 28-Jan-2015 Christopher Wiley <wiley@chromium.org> privetd: Add PrivetdConfig helper

It turns out we had two different PrivetdHelper objects,
each exercising different parts of the privetd interface
and each with their own mechanism to restart privetd.
Refactor these to have their own names (PrivetdHelper and
PrivetdDBusHelper) and extract privetd configuring code into
a new object PrivetdConfig.

BUG=brillo:25
TEST=All affected privetd tests run as well as before with this code.

Change-Id: Iea598925db816cd18364ac660fcc087f2e1c6a8c
Reviewed-on: https://chromium-review.googlesource.com/243740
Reviewed-by: Alex Vakulenko <avakulenko@chromium.org>
Trybot-Ready: Christopher Wiley <wiley@chromium.org>
Tested-by: Christopher Wiley <wiley@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
ros/tendo/privetd_helper.py
16ee977e54886312024bb3c6f109ed1109754506 24-Jan-2015 Achuith Bhandarkar <achuith@chromium.org> Add devtools_http.DevToolsClientConnectionError to did_browser_crash.

Use did_browser_crash everywhere since telemetry exceptions seem to be growing.

BUG=chromium:450278
TEST=manual

Change-Id: I5b18a9c30880a2a1b89333af88d181beeb1596a5
Reviewed-on: https://chromium-review.googlesource.com/243398
Tested-by: Achuith Bhandarkar <achuith@chromium.org>
Reviewed-by: Dan Shi <dshi@chromium.org>
Commit-Queue: Achuith Bhandarkar <achuith@chromium.org>
ros/chrome.py
ros/enrollment.py
6176ca51fadc660fdc8b55e007c05f3f73f3d992 22-Jan-2015 Christopher Grant <cjgrant@google.com> Add a utility to return the prioritized default route

Returned is the route's interface name, gateway and routing metric
value.

BUG=None
TEST=Local testing

Change-Id: Iced3ec5b188d33fe22c08bedfabd42c1afef89bd
Reviewed-on: https://chromium-review.googlesource.com/242610
Commit-Queue: Christopher Grant <cjgrant@chromium.org>
Tested-by: Christopher Grant <cjgrant@chromium.org>
Reviewed-by: Christopher Wiley <wiley@chromium.org>
ros/network/interface.py
ae3c07f40dbf695cdb6e72c1c63ed0672a763558 21-Jan-2015 Ben Chan <benchan@chromium.org> Handle non-existent vendor/device file in sysfs.

cros.network.Interface.device_description expects the WiFi interface to
expose the 'vendor' and 'device' files via sysfs and throws an exception
if it fails to read the content of those files. This CL modifies
device_description to handle the file read error more gracefully.

BUG=None
TEST=Run network_WiFi_SimpleConnect.

Change-Id: I5c42bcb55f48274abcf66d871946ea18a0c01f45
Reviewed-on: https://chromium-review.googlesource.com/242120
Reviewed-by: Paul Stewart <pstew@chromium.org>
Tested-by: Ben Chan <benchan@chromium.org>
Commit-Queue: Ben Chan <benchan@chromium.org>
ros/network/interface.py
cf21a76dad82b32f78758a67395e71435258fd0c 21-Jan-2015 Christopher Grant <cjgrant@google.com> Expose shill service order in xmlrpc server

This change allows remote getting and setting of shill's network service
order string.

BUG=None
TEST=Local testing using separate test changes

Change-Id: I3441be276ba3b794d01528e3e57f4a2e3cd2d693
Reviewed-on: https://chromium-review.googlesource.com/242314
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Christopher Grant <cjgrant@chromium.org>
Tested-by: Christopher Grant <cjgrant@chromium.org>
ros/network/shill_xmlrpc_server.py
ed050caff2079a7fc08ef8a9b05b09d49a60127c 20-Jan-2015 Gabe Black <gabeblack@chromium.org> graphite: Fail if elasticsearch isn't available in es_test_utils.py.

If that module isn't found, the test isn't going to work anyway. Having
it pretend and soldier on only makes the later failures really
confusing.

BUG=chromium:446291
TEST=butterfly-paladin tryjob with --hwtest. Ran
stats_es_functionaltest.py and saw it fail because the elasticsearch
module couldn't be found.

Change-Id: I5d8c6f9baf3cb32a77cc1dd894a5dba716d68e29
Reviewed-on: https://chromium-review.googlesource.com/242011
Reviewed-by: Dan Shi <dshi@chromium.org>
Commit-Queue: Gabe Black <gabeblack@chromium.org>
Tested-by: Gabe Black <gabeblack@chromium.org>
ros/graphite/es_test_utils.py
7ced2b14c668e36d859037246f9cba7bed552bb4 16-Jan-2015 Gabe Black <gabeblack@chromium.org> Fix a bug in sequential_random_insert_ints which was introduced recently.

Elastic search host, port and index values are now passed in ESMetadata
instead of being passed invidually.

BUG=chromium:446291
TEST=Ran stats_es_functionaltest.py and saw that the previous python
error was gone.

Change-Id: Ib32120e3827e611cacfb5afc9f74300776df0fd5
Reviewed-on: https://chromium-review.googlesource.com/242010
Reviewed-by: Dan Shi <dshi@chromium.org>
Tested-by: Gabe Black <gabeblack@chromium.org>
Commit-Queue: Gabe Black <gabeblack@chromium.org>
ros/graphite/es_test_utils.py
3b39c821f3d5695c905242475c07c6a505c701fc 08-Jan-2015 Paul Stewart <pstew@chromium.org> Add assertion that SimpleConnect runs with no client disconnects

In addition to detecting client deauths from the AP side, also
use a new client context object to ensure that the client never
detects a disconnect using an iw logger. To do this, refactor
the IwEventLogger to separate parsing from processing so the
same parser can be used in get_association_time() and a new
get_disconnect_count() function.

BUG=chromium:447028
TEST=network_WiFi_SimpleConnect.wifi_check11b

Change-Id: I5415d7b8edd806cdc8f58f458752097bb3c20c22
Reviewed-on: https://chromium-review.googlesource.com/239265
Reviewed-by: Christopher Grant <cjgrant@chromium.org>
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Commit-Queue: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
ros/network/iw_event_logger.py
16e818f0836db03dd38dda2a6c3f624a8c7a22e4 09-Jan-2015 Paul Stewart <pstew@chromium.org> Add a space to path_utils to improve readability

Without this change errors look like:

ERROR: Unable to find /usr/sbin/hostapdon 192.168.0.101

which might have folks wondering what "hostapdon" is.

BUG=None
TEST=network_WiFi_VerifyRouter

Change-Id: I066d61271da55c1e47ae49b6263719c3fd419c19
Reviewed-on: https://chromium-review.googlesource.com/239981
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Commit-Queue: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
ros/path_utils.py
3eab70e78b26a4e0de263c7d5ecf4c4a6fef1519 08-Jan-2015 Gabe Black <gabeblack@chromium.org> graphite: Some clean up and streamlining.

This change gets rid of some redundancy in the statsd wrapper classes, and
some parameters that were never being changed from their defaults. It also
moves some things around so functions can have fewer parameters, and things
are a little more encapsulated in anticipation of parameterizing things and
moving the config reading code out of the graphite code proper. That will
make the code easier to move into chromite.

BUG=chromium:446291
TEST=Ran a butterfly-paladin tryjob with --hwtest.

Change-Id: I3891e7b1774995aaf90882fd325004822fc345a8
Reviewed-on: https://chromium-review.googlesource.com/239596
Trybot-Ready: Gabe Black <gabeblack@chromium.org>
Tested-by: Gabe Black <gabeblack@chromium.org>
Reviewed-by: Dan Shi <dshi@chromium.org>
Commit-Queue: Gabe Black <gabeblack@chromium.org>
ros/graphite/es_utils.py
ros/graphite/stats.py
64be230d05d10afc2fe8d79eb4619384354e2590 09-Jan-2015 Hung-ying Tyan <tyanh@chromium.org> Two fixes in ChameleonVideoInputFinder

(1) The finder should only depend on the detected output port on CrOS,
not on Chameleon input stability as Chameleon may need to reset rx to
make input stable.
(2) The finder should wait on connector change as it may take time to
react even when Chameleon input is stable.

Without this change, testing DP on link often fails initially at
detecting the connection.

BUG=chromium:429928
TEST=ran display_Resolution.extended on link over DP and saw it pass
the initial stage.

Change-Id: I46e01d20a67783b071a5b83a1f9432c57be978e7
Reviewed-on: https://chromium-review.googlesource.com/239833
Reviewed-by: Hung-ying Tyan <tyanh@chromium.org>
Commit-Queue: Hung-ying Tyan <tyanh@chromium.org>
Tested-by: Hung-ying Tyan <tyanh@chromium.org>
ase_utils.py
275ecaf0baf905cf69b0c144aac1ae905857cd9c 08-Jan-2015 Artem Rakhov <arakhov@chromium.org> Bluetooth Autotest: fix data transfer over XMLRPC

We transfer responses returned from Service Search/Attribute requests over
XML RPC. But some values (for example, 128-bit UUIDs) may exceed standard
XML's 64-bit long int. This CL adds json dumps/loads to serialize and
deserialize data, so that we will not have such types mismatch problems in
future.

BUG=chromium:446559
TEST=test_that -b $BOARD $HOST suite:bluetooth_qualification

Change-Id: I57f4207b46c7041d5f6dacbb68095340727636e9
Reviewed-on: https://chromium-review.googlesource.com/239314
Tested-by: Artem Rakhov <arakhov@chromium.org>
Reviewed-by: Scott Remnant <keybuk@chromium.org>
Commit-Queue: Artem Rakhov <arakhov@chromium.org>
ros/bluetooth/bluetooth_tester_xmlrpc_server.py
b8cf387c8a721668929d15ff506dc0b4a9747e64 30-Dec-2014 Christopher Wiley <wiley@chromium.org> autotest: Tolerate no IP address in interface.py

network_WiFi_DisconnectClearsIP expects that Interface will return None
when asked for an IP address on an interface that has None. This was
broken when netblock parsing was refactored to add validation logic.

BUG=chromium:433621
TEST=network_WiFi_DisconnectClearsIP now passes.

Change-Id: I1f302197b2cf37370bccc2fd9b76e3d61b93e4ef
Reviewed-on: https://chromium-review.googlesource.com/238040
Tested-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Kris Rambish <krisr@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
ros/network/interface.py
ros/network/netblock.py
659b56f331522190a53716115d60fd3262fc060e 12-Dec-2014 Paul Stewart <pstew@chromium.org> network_WlanDriver: Add Marvell 8887

Add a configuration for the Marvell 8887.

BUG=None
TEST=network_WlanDriver

Change-Id: I45be22037389ac63a07a61f60092f5e804ee7748
Reviewed-on: https://chromium-review.googlesource.com/235021
Reviewed-by: Peter Qiu <zqiu@chromium.org>
Commit-Queue: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
ros/network/interface.py
66e337d55be1cd21daf72170b66fa81835ef5557 06-Jan-2015 Gabe Black <gabeblack@chromium.org> graphite: Get rid of the unused ES_DEFAULT_INDEX config parameter.

This parameter is defined but not used.

BUG=chromium:446291
TEST=Ran a tryjob for butterfly-paladin with --hwtest.

Change-Id: Ic2d8253f21edd3e8c0990b09a5ad1b2b7264fbe5
Reviewed-on: https://chromium-review.googlesource.com/238831
Reviewed-by: Dan Shi <dshi@chromium.org>
Commit-Queue: Gabe Black <gabeblack@chromium.org>
Tested-by: Gabe Black <gabeblack@chromium.org>
ros/graphite/es_utils.py
e56271c1898aaae33231a206b1ea28c5e6afb529 06-Jan-2015 Scott James Remnant <keybuk@chromium.org> Bluetooth: Verify tester has a controller

BUG=None
TEST=rmmod btusb; check for error in log

Change-Id: I52ee2808171351a87db7668173470a935fdd7834
Reviewed-on: https://chromium-review.googlesource.com/238768
Tested-by: Scott James Remnant <keybuk@chromium.org>
Reviewed-by: Dan Shi <dshi@chromium.org>
Reviewed-by: Michael Janssen <jamuraa@chromium.org>
Commit-Queue: Scott James Remnant <keybuk@chromium.org>
ros/bluetooth/bluetooth_tester_xmlrpc_server.py
55bfe14a6c2cc2710593ecf4d461af64181915c0 05-Jan-2015 Gabe Black <gabeblack@chromium.org> graphite: Factor time_utils out of the es_utils module.

We're planning to move the graphite support code into chromite so it can be
used by autotest and by other infrastructure bits. To do that, we have to
remove dependencies on other bits of autotest, specifically time_utils and the
global configuration.

The time_utils module is used in essentially one spot where it converts a
function parameter into a particular format. To remove that use, the conversion
is pushed out to the callers. That's a bit clunky and cumbersome, but once the
code has been moved we can add a little wrapper function which will centralize
that again. I don't want to add the wrapper now because I'd want to put it
where the other code is currently.

BUG=chromium:446291
TEST=Ran a trybot for butterfly-paladin with --hwtest.

Change-Id: Iaf2ee2e664ff8040f4e143dfd32119c471d0bc43
Reviewed-on: https://chromium-review.googlesource.com/238526
Reviewed-by: Gabe Black <gabeblack@chromium.org>
Commit-Queue: Gabe Black <gabeblack@chromium.org>
Trybot-Ready: Gabe Black <gabeblack@chromium.org>
Tested-by: Gabe Black <gabeblack@chromium.org>
ros/graphite/es_utils.py
9cb0ca028fb02c1afc12a79e71c9bb61f5089032 23-Dec-2014 harpreet <harpreet@google.com> Power play data capturing and reporting utility.

Detect if power play is connected to the DUT over USB and start
recording serial data. Also do some formatting and save the data in a
text file to be uploaded to the test result logs directory as well as
report the momentary current data to the performance dashboard.

BUG=None
TEST=Tested locally.

Change-Id: Idc3c5fc76aca282c366073ef228aadba98d01caf
Reviewed-on: https://chromium-review.googlesource.com/237249
Reviewed-by: Kris Rambish <krisr@chromium.org>
Commit-Queue: harpreet Grewal <harpreet@chromium.org>
Trybot-Ready: harpreet Grewal <harpreet@chromium.org>
Tested-by: harpreet Grewal <harpreet@chromium.org>
owerplay_util.py
b9b4685558f47fc81da44641e425c6ec64b78f5b 20-Dec-2014 Kris Rambish <krisr@chromium.org> Create the first 802.11ac perf test

BUG=chrome-os-partner:34851,chromium:444622,chromium:444627
TEST=Ran it.

Change-Id: Ifd209fe23ad1b7be1a1c62d3279adbe34b32f07f
Reviewed-on: https://chromium-review.googlesource.com/236973
Reviewed-by: Kris Rambish <krisr@chromium.org>
Tested-by: Kris Rambish <krisr@chromium.org>
Commit-Queue: Kris Rambish <krisr@chromium.org>
Reviewed-by: Christopher Wiley <wiley@chromium.org>
ros/network/iw_runner.py
684878e13d16aa904a6045fca344782497738631 18-Dec-2014 Christopher Wiley <wiley@chromium.org> autotest: Validate netblock strings before parsing

Consolidate all construction paths into a single helper function and
do some limited validation of passed in arguments before attempting to
parse them. This should get us more meaningful messages when tests
attempt to use invalid netblock strings in logic.

BUG=chromium:433621
TEST=network_BasicProfileProperties still passes.

Change-Id: Ic5887ed72ddd46b6dd14cb97c8e2f9747eea10ab
Reviewed-on: https://chromium-review.googlesource.com/236656
Tested-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Peter Qiu <zqiu@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
ros/network/interface.py
ros/network/netblock.py
407d58af6334f930443f91cd415c4f6898169f2e 19-Dec-2014 Peter Qiu <zqiu@chromium.org> autotest: add xmlrpc server for apmanager dbus proxy

This will be used by server autotest for setting up ap services
using apmanager on the router or client.

BUG=chromium:442187
TEST=Run upcoming test apmanager_SimpleConnect

Change-Id: I0029942a63ddd07fe15c259088d7dcd64c715bb3
Reviewed-on: https://chromium-review.googlesource.com/236765
Tested-by: Peter Qiu <zqiu@chromium.org>
Trybot-Ready: Peter Qiu <zqiu@chromium.org>
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Commit-Queue: Peter Qiu <zqiu@chromium.org>
ros/network/apmanager_xmlrpc_server.py
3603922a2d0718a34eb4983663555ef9ed91a02b 14-Dec-2014 Christopher Wiley <wiley@chromium.org> autotest: Move path utilities out of wifi_test_utils

Refactor the utilities to be usable from a client context.

BUG=None
TEST=network_WiFi_SimpleConnect.wifi_checkWPA_TKIP passes.

Change-Id: If820921d777b0377f529ea40cc34c3377e192150
Reviewed-on: https://chromium-review.googlesource.com/236658
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
Tested-by: Christopher Wiley <wiley@chromium.org>
ros/path_utils.py
3988665743edec3f0f709e9be7928120fdcf4a47 17-Dec-2014 Artem Rakhov <arakhov@chromium.org> BT autotest: fix device class check for LE

In setup() method of BluetoothTesterXmlRpcDelegate class:

PROFILE_CLASS value is used to set device class (only for BR/EDR connections).
It is None for 'peripheral', and it is OK, as we should not use it for LE.

But later we check that device class that was set is equal to PROFILE_CLASS.
We should do this check only for BR/EDR, because we set device class only for BR/EDR.

BUG=chromium:443044
TEST=test_that -b $BOARD $HOST suite:bluetooth_sanity

Change-Id: I3852e61e9dc0eb64d196cf15d5bf21d1806999a6
Reviewed-on: https://chromium-review.googlesource.com/236200
Tested-by: Artem Rakhov <arakhov@chromium.org>
Reviewed-by: Scott James Remnant <keybuk@chromium.org>
Commit-Queue: Artem Rakhov <arakhov@chromium.org>
ros/bluetooth/bluetooth_tester_xmlrpc_server.py
29511e7d1711a16679c52ec2188438d6cbb18436 13-Dec-2014 Christopher Wiley <wiley@chromium.org> autotest: Check online status in privetd_CanConnectToWiFi

BUG=chromium:441568
TEST=This is an integration test that continues to pass.

Change-Id: I0cab9bb0cc95d90e8206cfab70cb713c2e227263
Reviewed-on: https://chromium-review.googlesource.com/235631
Reviewed-by: Vitaly Buka <vitalybuka@chromium.org>
Reviewed-by: Alex Vakulenko <avakulenko@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
Tested-by: Christopher Wiley <wiley@chromium.org>
ros/tendo/privetd_helper.py
c9864b65a425f8806d2400264e52899d2bcdad90 16-Dec-2014 Scott James Remnant <keybuk@chromium.org> bluetooth_tester: fix class of device setup

Move the setting of Class of Device and Local name to before powering
up the adapter, so they are configured automatically as a part of that.

This solves a race condition where after being setup once, a tester
fails to be initialized due to a 'Busy' condition.

BUG=chromium:442016
TEST=run a test twice in a row without rebooting tester

Change-Id: I43acdd9deb4b92e9d2d4bee71a91d4f72f43d497
Reviewed-on: https://chromium-review.googlesource.com/235877
Reviewed-by: Arman Uguray <armansito@chromium.org>
Commit-Queue: Scott James Remnant <keybuk@chromium.org>
Tested-by: Scott James Remnant <keybuk@chromium.org>
ros/bluetooth/bluetooth_tester_xmlrpc_server.py
6b47f360718a7ac4131f0ef1967af693cc4b311e 16-Dec-2014 Scott James Remnant <keybuk@chromium.org> bluetooth_device: wait for bluez to stop

There's a race condition in DUT initialization where we instruct
Upstart to stop the daemon, but D-Bus still temporarily returns an
owner for the name.

python-dbus therefore ends up sending commands to the previous owner
of the name, which fail, causing occasional "DUT cannot be initialized"
errors, especially after a test failure.

BUG=none
TEST=repeated runs of tests should no longer occasionaly fail

Change-Id: I403923288b9468550a376638f83b1364b32a78a1
Reviewed-on: https://chromium-review.googlesource.com/235881
Tested-by: Scott James Remnant <keybuk@chromium.org>
Reviewed-by: Arman Uguray <armansito@chromium.org>
Commit-Queue: Scott James Remnant <keybuk@chromium.org>
ros/bluetooth/bluetooth_device_xmlrpc_server.py
d18a22a69c052c703ee4b8e52d2f42759e063441 11-Dec-2014 Paul Stewart <pstew@chromium.org> Fix "iw list" parser

A recent addition for VHT parsing assumed that current_sectino was
already set. It also used a trailing '\' which doesn't tend to be
popular.

BUG=None
TEST=wifi_matfunc

Change-Id: I497263d38f84ddef3d93f957b1af9af7178baaf4
Reviewed-on: https://chromium-review.googlesource.com/234649
Reviewed-by: Ben Chan <benchan@chromium.org>
Tested-by: Ben Chan <benchan@chromium.org>
Commit-Queue: Ben Chan <benchan@chromium.org>
ros/network/iw_runner.py
893f3910858143afec6f2fa681a9f3b25904b947 10-Dec-2014 Gabe Black <gabeblack@chromium.org> graphite: Remove the unused carbon module.

BUG=None
TEST=Ran a butterfly-paladin tryjob with hwtest.

Change-Id: If58f01889d8e2ec667628bccae17ce0962ccfada
Reviewed-on: https://chromium-review.googlesource.com/234602
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Prathmesh Prabhu <pprabhu@chromium.org>
Commit-Queue: Gabe Black <gabeblack@chromium.org>
Tested-by: Gabe Black <gabeblack@chromium.org>
ros/graphite/carbon.py
9cc32239635428b1d9eb9e1bcbb8018dd8079f1b 11-Dec-2014 Christopher Wiley <wiley@chromium.org> autotest: Finish test for privetd WiFi connectivity

This test now passes against a suitably modified privetd.

BUG=chromium:437638
TEST=This is an integration test that passes.

Change-Id: I162b51dad7b0161d5484ecf90f69be5af34685be
Reviewed-on: https://chromium-review.googlesource.com/234588
Reviewed-by: Vitaly Buka <vitalybuka@chromium.org>
Commit-Queue: Vitaly Buka <vitalybuka@chromium.org>
Trybot-Ready: Vitaly Buka <vitalybuka@chromium.org>
Tested-by: Vitaly Buka <vitalybuka@chromium.org>
ros/tendo/privetd_helper.py
cde8d8b3c41ebe5c2f626ad555831f526ad25cc1 09-Dec-2014 Christopher Wiley <wiley@chromium.org> autotest: Add test for successful privetd based WiFi connection

BUG=chromium:437638
TEST=This is a test that correctly calls the proper privetd APIs,
but fails because WiFi credential handling is not working yet.

Change-Id: Idc720230ab0589e7de1458175b1e489c3b300cbc
Reviewed-on: https://chromium-review.googlesource.com/234189
Reviewed-by: Alex Vakulenko <avakulenko@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
Tested-by: Christopher Wiley <wiley@chromium.org>
ros/tendo/privetd_helper.py
d06a7a57cbf9e1fd254a6058684aa215448acd0b 07-Nov-2014 Ilja H. Friedel <ihf@chromium.org> autotest: perf upload higher_is_better defaults to None.

It was noted that ChromeOS telemetry always uploads with
higher_is_better=True. This prevents it from being processed
as on other platforms. Most pure autotests are already setting
this value. And the dashboard seems to still handle None
perfectly fine.

TEST=None.
BUG=chromium:431990

Change-Id: I4a3eae7686d98da5647d338aca6dd3fa8187f4b9
Reviewed-on: https://chromium-review.googlesource.com/228374
Tested-by: Ilja Friedel <ihf@chromium.org>
Reviewed-by: Fang Deng <fdeng@chromium.org>
Reviewed-by: Quinten Yearsley <qyearsley@chromium.org>
Commit-Queue: Ilja Friedel <ihf@chromium.org>
est.py
779b5edc1640d6fb7bbb1386e3109099afab8a35 09-Dec-2014 Christopher Wiley <wiley@chromium.org> autotest: Request URLs from privetd over localhost

Unfortunately, the lab firewall stops us from sending HTTP requests to
devices in the lab from dev stations. This impacts testing because WiFi
cells are inside the lab subnet. Work around this by requesting URLs
via curl against localhost on the DUT.

BUG=chromium:437640
TEST=privetd_WebServerSanity now passes against DUTs inside the lab
subnet.

Change-Id: Idbf47b1619f2eee60dee96a81c432a5b31ca3b73
Reviewed-on: https://chromium-review.googlesource.com/234059
Tested-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Alex Vakulenko <avakulenko@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Vitaly Buka <vitalybuka@chromium.org>
ros/tendo/privetd_helper.py
cf69da803074a3708cc2da829d28f65f2639a53a 08-Dec-2014 Alex Vakulenko <avakulenko@chromium.org> autotest: Add test for /privet/info request

Added a test to call /privet/info handler in privetd with a smoke
test validation of the returned JSON object.

Updated privetd_helper module to allow executing GET/POST REST
requests with custom request headers.

Added stub test for verifying auth-, pairing- and setup-flows, so
the corresponding tests can be added to autotest-tests-wifi-bootstrapping
ebuild once without having to go and change that ebuild each time
a new privetd test is added.

BUG=chromium:437640
TEST=test_that -b link --fast 100.96.48.40 e:privetd_.*

Change-Id: I918e2a7c90057457c4d91354d560d25e8a19e899
Reviewed-on: https://chromium-review.googlesource.com/233883
Tested-by: Alex Vakulenko <avakulenko@chromium.org>
Commit-Queue: Alex Vakulenko <avakulenko@chromium.org>
Reviewed-by: Christopher Wiley <wiley@chromium.org>
ros/tendo/privetd_helper.py
e686dcc4914aaf44164ce0cb9bd5dd243477fa76 06-Dec-2014 Scott James Remnant <keybuk@chromium.org> bluetooth: test LE Discovery

BUG=chromium:439654
TEST=test_that $IP bluetooth_Sanity_LEDiscovery

Change-Id: I677fa9e3cd9bd12b5bde280152549db9adcb8ec8
Reviewed-on: https://chromium-review.googlesource.com/233721
Reviewed-by: Scott James Remnant <keybuk@chromium.org>
Commit-Queue: Scott James Remnant <keybuk@chromium.org>
Tested-by: Scott James Remnant <keybuk@chromium.org>
ros/bluetooth/bluetooth_socket.py
ros/bluetooth/bluetooth_tester_xmlrpc_server.py
f719e2d8dfc2610974c44186fac641cd215b7460 06-Dec-2014 Scott James Remnant <keybuk@chromium.org> Bluetooth: add support for LE-only tester

BUG=chromium:439654
TEST=setup('peripheral') from test

Change-Id: I51040f850d0953777471b2155367adf41a0dd8ef
Reviewed-on: https://chromium-review.googlesource.com/233720
Reviewed-by: Michael Janssen <jamuraa@chromium.org>
Commit-Queue: Scott James Remnant <keybuk@chromium.org>
Tested-by: Scott James Remnant <keybuk@chromium.org>
ros/bluetooth/bluetooth_socket.py
ros/bluetooth/bluetooth_tester_xmlrpc_server.py
1b973e1f3645c7046c4f38d506d754ba82f2211e 05-Dec-2014 Christopher Wiley <wiley@chromium.org> autotest: Adjust ping retry timeout in privetd_helper

Increase by factor of 3.

BUG=None
TEST=With this change, privetd_WebserverSanity passes 100/100 rather
than 88/100 attempts.

Change-Id: Icd8b64a3693ecae5897398104d23718d63f8ea97
Reviewed-on: https://chromium-review.googlesource.com/233603
Tested-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Alex Vakulenko <avakulenko@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
ros/tendo/privetd_helper.py
c5922978ba624913d40fba06b0c4a49cd096e98e 05-Dec-2014 Eric Caruso <ejcaruso@chromium.org> autotest: Add TemporaryDBusProperty, clean up framework

Now that there's a generic dbus property manager, there's no need
for network_WiFi_RoamOnLowPower's ad-hoc context manager. Let's change
it to use TemporaryDBusProperty. Wake-on-WiFi features should do the
same.

TemporaryDBusProperty is an improved WakeOnWiFiFeatures which can
manage any property and gives a little more information about what
it's doing.

This change also removes some dead framework.

BUG=chromium:426222
TEST=run wake-on-wifi autotests

Change-Id: I803ad2e7c01df0e9e173d33d96daa835a74c5aea
Reviewed-on: https://chromium-review.googlesource.com/233054
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Commit-Queue: Eric Caruso <ejcaruso@chromium.org>
Trybot-Ready: Eric Caruso <ejcaruso@chromium.org>
Tested-by: Eric Caruso <ejcaruso@chromium.org>
ros/network/shill_xmlrpc_server.py
f77198b6b71c701b719bf28fc122c56116bc3a98 18-Nov-2014 David James <davidjames@google.com> Abort child process groups with SIGKILL.

Currently we unnecessarily sleep for 12 seconds every time we kill a process.
Here's how it works:
- Send SIGCONT to all processes.
- If any are still running, wait 6 seconds.
- Send SIGTERM to all processes.
- If any are still running, wait 6 seconds.
- Send SIGKILL to all processes.

There are several problems with the above algorithm:
- SIGCONT doesn't cause processes to exit, so waiting 6 seconds after
that is pointless.
- After sending SIGTERM, we check for whether any of the processes are
present immediately. This doesn't give children enough time to
actually clean up.
- We sleep for 6 seconds unconditionally without considering the fact
that the processes might exit early.

Instead of doing this, I've just updating it to send SIGKILL to the
entire process group and not have any sleep statements.

BUG=chromium:432191
DEPLOY=scheduler
TEST=Set up local scheduler, verified timeouts still work.

Change-Id: Ie41d10d0605851df61dd07789d0d4afffd9eef01
Reviewed-on: https://chromium-review.googlesource.com/230323
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Reviewed-by: Prashanth B <beeps@chromium.org>
Commit-Queue: David James <davidjames@chromium.org>
Tested-by: David James <davidjames@chromium.org>
ite_utils.py
5240742bbdeeb9773968d2922a6b9e06abad1604 05-Dec-2014 Christopher Wiley <wiley@chromium.org> autotest: Add privetd_helper

We can use this as a central place to write operations against privetd

BUG=chromium:437640
TEST=privetd_WebServerSanity continues to pass.

Change-Id: Ica7482b53df917e71d4d27484919e17d3c04b482
Reviewed-on: https://chromium-review.googlesource.com/233590
Tested-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Alex Vakulenko <avakulenko@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
ros/tendo/__init__.py
ros/tendo/common.py
ros/tendo/privetd_helper.py
21125c840703717b39627bff432d7b78af7b1667 04-Dec-2014 Eric Caruso <ejcaruso@chromium.org> autotest: Framework improvements for WiFi tests

We're going to start twiddling with many dbus properties on the
WiFi devices, and it would be nice to have a more generic interface
for them so we don't have to add methods to the shill server
every time we do it.

BUG=chromium:426222
TEST=run wake-on-wifi tests

Change-Id: I709bffd4e86f075f7000367959d2a3678c48e698
Reviewed-on: https://chromium-review.googlesource.com/233053
Trybot-Ready: Eric Caruso <ejcaruso@chromium.org>
Tested-by: Eric Caruso <ejcaruso@chromium.org>
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Commit-Queue: Eric Caruso <ejcaruso@chromium.org>
ros/network/shill_xmlrpc_server.py
ros/xmlrpc_server.py
589b7fff8391bc20acc748c2a5de63c773599077 03-Dec-2014 Scott James Remnant <keybuk@chromium.org> bluetooth_tester: Fix Intel WP2 as Tester

It seems that Intel WP2 in general does not like settings being changed
while powered on, so reorganize the setup to set the basic settings first,
then power on the adapter, then finally set the fast-connectable setting
(which does require adapter power).

In addition, force power off the adapter even if already powered off; this
somehow fixes the AP-Mode variant of WP2 to accept settings.

With these changes, the HS mode can actually be toggled on/off, so revert
the previous patch that kept it on if already on.

BUG=chrome-os-partner:33379
TEST=test_that suite:bluetooth_sanity

Change-Id: Idacb6e1b36eabeaf00ebea33c33e0cb02364c7da
Reviewed-on: https://chromium-review.googlesource.com/232776
Reviewed-by: Katherine Threlkeld <kathrelkeld@chromium.org>
Reviewed-by: Michael Janssen <jamuraa@chromium.org>
Reviewed-by: Arman Uguray <armansito@chromium.org>
Commit-Queue: Scott James Remnant <keybuk@chromium.org>
Tested-by: Scott James Remnant <keybuk@chromium.org>
ros/bluetooth/bluetooth_tester_xmlrpc_server.py
4164d1d6174802673e3841974758a5242607784e 03-Dec-2014 J. Richard Barnette <jrbarnette@chromium.org> Enforce a minimum number of free i-nodes in verify_software().

This adds a check in CrosHost.verify_software to enforce a
minimum number of i-nodes available in the stateful file
system. The initial minimum is selected to be twice as large
as the number of entries in a typical stateful.tgz.

BUG=chromium:438456
TEST=Verify a broken host in a local autotest instance.

Change-Id: I2c126e5f317bc53eab089413a3da2f0d2e074253
Reviewed-on: https://chromium-review.googlesource.com/232817
Commit-Queue: Richard Barnette <jrbarnette@chromium.org>
Tested-by: Richard Barnette <jrbarnette@chromium.org>
Reviewed-by: Richard Barnette <jrbarnette@chromium.org>
rror.py
osts/base_classes.py
071af2ec2c7712ec53a97640695451c52645aaf5 02-Dec-2014 Scott James Remnant <keybuk@chromium.org> bluetooth_socket: expect reply to MGMT_OP_CONFIRM_NAME

On all our kernels, except 3.4, the kernel replies to this command now;
ignoring it was causing spurious debugging messages at bad times, so
deal with the reply properly.

BUG=none
TEST=test_that bluetooth_Sanity_Discovery

Change-Id: Ia9f91193f360b785bdbc689eccaa148c1597f00a
Reviewed-on: https://chromium-review.googlesource.com/232515
Tested-by: Scott James Remnant <keybuk@chromium.org>
Reviewed-by: Michael Janssen <jamuraa@chromium.org>
Reviewed-by: Arman Uguray <armansito@chromium.org>
Commit-Queue: Scott James Remnant <keybuk@chromium.org>
ros/bluetooth/bluetooth_socket.py
0d47c9a41c3b555f2226f1daa0b32b89058eb6bd 03-Dec-2014 Achuith Bhandarkar <achuith@chromium.org> TabCrashException renamed to DevtoolsTargetCrashException.

BUG=chromium:423954
TEST=enterprise_RemoraRequisition

Change-Id: Ie7a3e66e046e3cb7b1ec05a7429e2807d7e3b520
Reviewed-on: https://chromium-review.googlesource.com/232811
Commit-Queue: Achuith Bhandarkar <achuith@chromium.org>
Tested-by: Achuith Bhandarkar <achuith@chromium.org>
Reviewed-by: Kalin Stoyanov <kalin@chromium.org>
Reviewed-by: Ned Nguyen <nednguyen@google.com>
ros/enrollment.py
c7fd7a47c0ccb7da2bea83ba070e7350bf591c80 02-Dec-2014 Scott James Remnant <keybuk@chromium.org> bluetooth_Sanity_DefaultState: handle BR/EDR whitelist

Recent kernels change the way they manage the "connectable" state of the
adapter. Instead of making the computer connectable to anything (which is
what this flag implies), instead the kernel uses the device whitelist to
determine what can connect.

The result is that the "connectable" flag remains off on systems running
3.10 or 3.14

Handle this in the autotest by checking whether the kernel supports the
"Add Device" management command and checking the opposite value of
"connectable" for those that do.

In addition, actually look at the raw HCI flags to check the PSCAN flag
and make sure that toggles on/off as we expect by adding and removing
a device.

BUG=chromium:433561
TEST=test_that bluetooth_Sanity_DefaultState

Change-Id: Ia43be23a8a1b0b5f7e14ae5aa8bd43fa2234e47e
Reviewed-on: https://chromium-review.googlesource.com/232514
Tested-by: Scott James Remnant <keybuk@chromium.org>
Reviewed-by: Michael Janssen <jamuraa@chromium.org>
Reviewed-by: Arman Uguray <armansito@chromium.org>
Commit-Queue: Scott James Remnant <keybuk@chromium.org>
ros/bluetooth/bluetooth_device_xmlrpc_server.py
ros/bluetooth/bluetooth_socket.py
8316318f409a01e1b7d1e96b447bb6942a2d7752 02-Dec-2014 Scott James Remnant <keybuk@chromium.org> bluetooth_tester: don't turn HS off

Intel-based testers have the HS flag on, and cannot be turned off,
while Atheros-based testers have it turned off by default.

Deal with this difference by turning HS on if the profile demands it,
but not turning it off if the profile doesn't.

BUG=chrome-os-partner:33379
TEST=use a panther tester

Change-Id: Ic1b27fddbd66e71479ddc378119db3db929a1d4f
Reviewed-on: https://chromium-review.googlesource.com/232523
Tested-by: Scott James Remnant <keybuk@chromium.org>
Reviewed-by: Katherine Threlkeld <kathrelkeld@chromium.org>
Reviewed-by: Michael Janssen <jamuraa@chromium.org>
Commit-Queue: Scott James Remnant <keybuk@chromium.org>
ros/bluetooth/bluetooth_tester_xmlrpc_server.py
4eb3878c79335c391ccc46a769ee148d721698a0 27-Nov-2014 Simran Basi <sbasi@google.com> [autotest]: Fix revision_control_unittests for hostname-less Systems.

The revision_control_unittests create a local checkout and tests
manipulating it. However it does not set the user name or email,
therefore in most cases the commit test automatically generates
the author info. This however fails on systems that don't set
the hostname.

Therefore the unittests now set up a dummy user name and email for
the test checkout.

BUG=chromium:436739
TEST=Autotest unittests now pass on mobbuild.

Change-Id: I6b0f32de70f24e6e64c934519afcf9844a19a5ac
Reviewed-on: https://chromium-review.googlesource.com/232140
Reviewed-by: Dan Shi <dshi@chromium.org>
Commit-Queue: Simran Basi <sbasi@chromium.org>
Tested-by: Simran Basi <sbasi@chromium.org>
evision_control_unittest.py
abea37c34ea732b1c8c14cf3d4ecf5cf595c9f24 01-Dec-2014 Scott James Remnant <keybuk@chromium.org> bluetooth_socket: add commands to add & remove device from action list

BUG=chromium:433561
TEST=test with an autotest

Change-Id: I110d2d1dd1a934f78de29de54c50cec79650821d
Reviewed-on: https://chromium-review.googlesource.com/232491
Tested-by: Scott James Remnant <keybuk@chromium.org>
Reviewed-by: Arman Uguray <armansito@chromium.org>
Commit-Queue: Scott James Remnant <keybuk@chromium.org>
ros/bluetooth/bluetooth_device_xmlrpc_server.py
ros/bluetooth/bluetooth_socket.py
50915ad3a231755ce430e032272346adf7a3e472 01-Dec-2014 Scott James Remnant <keybuk@chromium.org> bluetooth_device: add other management info commands

Add commands to read the version of the management interface, the set
of supported commands and the list of controller indexes available.

BUG=chromium:433561
TEST=call from an autotest

Change-Id: I2e8afa51ff32d0cbd436a3af286c2d158cc05655
Reviewed-on: https://chromium-review.googlesource.com/232445
Tested-by: Scott James Remnant <keybuk@chromium.org>
Reviewed-by: Michael Janssen <jamuraa@chromium.org>
Reviewed-by: Arman Uguray <armansito@chromium.org>
Commit-Queue: Scott James Remnant <keybuk@chromium.org>
ros/bluetooth/bluetooth_device_xmlrpc_server.py
6556b7d1e9dc9f613cd97bf4ed92cac47aee8232 01-Dec-2014 Scott James Remnant <keybuk@chromium.org> bluetooth_socket: sync to mgmt version 1.7

BUG=none
TEST=none

Change-Id: I423eb569697f36c83b11c26a4fc25e23ca2a223e
Reviewed-on: https://chromium-review.googlesource.com/232441
Reviewed-by: Arman Uguray <armansito@chromium.org>
Reviewed-by: Michael Janssen <jamuraa@chromium.org>
Commit-Queue: Scott James Remnant <keybuk@chromium.org>
Tested-by: Scott James Remnant <keybuk@chromium.org>
ros/bluetooth/bluetooth_socket.py
f2fba24bb24ef2563d0e393c8c135c83fbc5977f 01-Dec-2014 Scott James Remnant <keybuk@chromium.org> bluetooth_socket: fix wrong controller index error

When making a command to the kernel, rather than the controller, e.g.
"version" or "read supported commands" we supply an index of 0xffff
and expect that in the response just as we expect 0x0 for the first
controller.

However the kernel may be reporting events for the controller itself
inbetween the command and the response, which will trip this error
check.

Move the error check inside the check for the command complete/status
events to fix that.

BUG=none
TEST=add a version check after a reset() call

Change-Id: I23eebceafbff8ef04dae29f79e475b13d0525c17
Reviewed-on: https://chromium-review.googlesource.com/232440
Reviewed-by: Arman Uguray <armansito@chromium.org>
Reviewed-by: Michael Janssen <jamuraa@chromium.org>
Commit-Queue: Scott James Remnant <keybuk@chromium.org>
Tested-by: Scott James Remnant <keybuk@chromium.org>
ros/bluetooth/bluetooth_socket.py
f7a4fe5aded0aee5120b975414fc5be0f150a562 10-Nov-2014 Bindu Mahadev <bmahadev@chromium.org> Autotest to test the Roaming feature.

The test configures two AP with the same SSID but different
channel and mode and open security. The device initially
connects to the first AP. We then configure a second AP and
tear down the first AP instance and verify that the DUT is able
to Roam/Connect to the second AP instance successfully. Also
re-factored the tests, moving all the common logic between
ChromeEndtoEnd and RoamEndtoEnd into a common module called
ChromeNetworkProvider. These tests use Networking Private API
as the underlying interface to networking using shill.

TEST=Ran all tests on peppy in wificell
BUG=chromium:419555

Change-Id: I689c9edf86746312bb8eb8b6aae90ed37f354c92
Reviewed-on: https://chromium-review.googlesource.com/228889
Tested-by: Bindu Mahadev <bmahadev@chromium.org>
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: harpreet Grewal <harpreet@chromium.org>
Commit-Queue: Bindu Mahadev <bmahadev@chromium.org>
ros/network/chrome_net_constants.py
6edaaf9f5d10cda21d1c7f2401eb1d0bef2192fa 25-Nov-2014 Prashanth Balasubramanian <beeps@google.com> [autotest] Disallow frontend jobs on hosts given to shards.

TEST=Ran jobs and checked exceptions.
Ran jobs on non-shard hosts.
BUG=chromium:431789
DEPLOY=apache
Change-Id: Ide385ed1db135a7e98ab0385df1f9a64d97bd631
Reviewed-on: https://chromium-review.googlesource.com/231735
Tested-by: Prashanth B <beeps@chromium.org>
Reviewed-by: Dan Shi <dshi@chromium.org>
Reviewed-by: Fang Deng <fdeng@chromium.org>
Commit-Queue: Prashanth B <beeps@chromium.org>
ite_utils.py
9a535c9f3144690cf85d88a51e07b98c21454159 24-Nov-2014 Dan Shi <dshi@chromium.org> [autotest] Add server database to django model.

Server database is added to store information about servers running in an
Autotest instance. This is the first CL to implement it. Design doc:
go/chromeos-lab-serverdb-design

django model uses db_router to rout database calls to different database
connections:
local: All AFE table calls.
global: All TKO table calls.
readonly: Calls from web frontend.

This CL adds another router for all calls to server database to `server`.

DEPLOY=migrate_server_db
CQ-DEPEND=CL:230814
BUG=chromium:424778
TEST=unitest, part of the test is done by atest code that'll be in another cl.
Test server database migration:
./database/migrate.py sync 0 -d AUTOTEST_SERVER_DB
./database/migrate.py sync 1 -d AUTOTEST_SERVER_DB
./database/migrate.py sync 2 -d AUTOTEST_SERVER_DB
./database/migrate.py sync 3 -d AUTOTEST_SERVER_DB
python frontend/health/utils_unittest.py

Change-Id: I84be386c8f5b7efd53ae1ecbd6293eae4326f19f
Reviewed-on: https://chromium-review.googlesource.com/231671
Tested-by: Dan Shi <dshi@chromium.org>
Reviewed-by: Fang Deng <fdeng@chromium.org>
Commit-Queue: Dan Shi <dshi@chromium.org>
rror.py
25e7a922e3f5283539ed9a2f232299d02bc2df30 31-Oct-2014 Simran Basi <sbasi@google.com> [autotest] Support for new autotest artifacts.

This change updates dynamic_suites and provisioning to support the new
autotest build artifacts: control_files.tar and autotest_packages.tar.

In case these artifacts do not exist, it will then attempt to stage the
old autotest.tar artifact, thus still supporting older builds.

BUG=chromium:421122
TEST=Custom moblab build that successfully ran smoke suite against
2 images: 1 with autotest.tar and the other with the new artifacts.
CQ-DEPEND=CL:226822

Change-Id: I67898347d40c55a3ab1df89469bcc933b0b765b8
Reviewed-on: https://chromium-review.googlesource.com/231990
Reviewed-by: Simran Basi <sbasi@chromium.org>
Commit-Queue: Simran Basi <sbasi@chromium.org>
Tested-by: Simran Basi <sbasi@chromium.org>
ros/dev_server.py
c9c0c3ff2e8800bfad3f0c79fe5879be0ec78489 27-Oct-2014 MK Ryu <mkryu@google.com> [autotest] Post processing script for suite time breakdown

This script measures nine stats for a suite run.
1. Net suite runtime.
2. Suite scheduling overhead.
3. Average scheduling overhead.
4. Average Queuing time.
5. Average Resetting time.
6. Average provisioning time.
7. Average Running time.
8. Average Parsing time.
9. Average Gathering time.

BUG=chromium:426118
TEST=run ./site_utils/collect_suite_time_stats.py on local machine

Change-Id: I8e4cd30cd0ce4fbb1801f277824a0c652f933f08
Reviewed-on: https://chromium-review.googlesource.com/227467
Reviewed-by: Fang Deng <fdeng@chromium.org>
Tested-by: Mungyung Ryu <mkryu@google.com>
Commit-Queue: Mungyung Ryu <mkryu@google.com>
ros/graphite/es_utils.py
ime_utils.py
0bd6d39d2656f41c4822d05736add26f4d6ff9be 17-Nov-2014 Eric Caruso <ejcaruso@chromium.org> autotest: move wake-on-WiFi features to new shill API

Wake-on-packet is now configured on a per-device basis, so we
should move it out of Manager. Additionally, the service order
context manager is no longer necessary. Instead, there is a
manager for the wake-on-WiFi features to prevent us from
modifying global state across multiple tests.

This also updates the WoWLAN test to use the new API.

BUG=chromium:426222
TEST=test_that with panther AP

Signed-off-by: Eric Caruso <ejcaruso@chromium.org>
Change-Id: I4c6ba1b743a50f023a68bfa499b65e872a6d5811
Reviewed-on: https://chromium-review.googlesource.com/230261
Reviewed-by: Christopher Wiley <wiley@chromium.org>
ros/network/shill_xmlrpc_server.py
d5dde48725dae3292fac669a93d4ab53285a3262 20-Nov-2014 Tom Wai-Hong Tam <waihong@chromium.org> Remove the non-client dependency from the retry module

The client module retry depends on a non-client module, i.e. the proxy module
of frontend.afe.json_rpc. This dependency prevents any client-side code
from importing the retry module.

Searching for the entire code base of Autotest, this proxy thing is used
only by the frontend_wrappers. So moved it to the frontend_wrappers.

Also fixed its unit test.

BUG=chromium:434943
TEST=retry_unittest.py passed.

Change-Id: Id9963068ea328ce357df6521d186fd9fa6d0a72b
Reviewed-on: https://chromium-review.googlesource.com/231152
Tested-by: Wai-Hong Tam <waihong@chromium.org>
Reviewed-by: Dan Shi <dshi@chromium.org>
Commit-Queue: Wai-Hong Tam <waihong@chromium.org>
ros/retry.py
ros/retry_unittest.py
dc8c25da3dcb4a6d6356f1e950299b3b472a531b 18-Nov-2014 Fang Deng <fdeng@chromium.org> Revert "[autotest] Support for new autotest artifacts."

This reverts commit 747854e979de7b52f8a91883e8b5e1d78132e499.

can't figure out the root cause. reverting for now to save paladin builds. crbug.com/434168

Change-Id: Ie115b90a2a74a8daca28ecfe1e164b38320f74aa
Reviewed-on: https://chromium-review.googlesource.com/230345
Reviewed-by: Fang Deng <fdeng@chromium.org>
Commit-Queue: Fang Deng <fdeng@chromium.org>
Tested-by: Fang Deng <fdeng@chromium.org>
ros/dev_server.py
747854e979de7b52f8a91883e8b5e1d78132e499 31-Oct-2014 Simran Basi <sbasi@google.com> [autotest] Support for new autotest artifacts.

This change updates dynamic_suites and provisioning to support the new
autotest build artifacts: control_files.tar and autotest_packages.tar.

In case these artifacts do not exist, it will then attempt to stage the
old autotest.tar artifact, thus still supporting older builds.

BUG=chromium:421122
TEST=Custom moblab build that successfully ran smoke suite against
2 images: 1 with autotest.tar and the other with the new artifacts.
CQ-DEPEND=CL:226822

Change-Id: If66026b46f77aaccaa83996e20a6749bad2b1625
Reviewed-on: https://chromium-review.googlesource.com/226823
Reviewed-by: Simran Basi <sbasi@chromium.org>
Commit-Queue: Simran Basi <sbasi@chromium.org>
Tested-by: Simran Basi <sbasi@chromium.org>
ros/dev_server.py
4301e9410a5873b450ae935ad55c44a41781103c 15-Nov-2014 Achuith Bhandarkar <achuith@chromium.org> autotest-chrome: Update path to cros_interface

BUG=chromium:433519
TEST=enterprise_RemoraRequisition

Change-Id: I002c92b231bcd50b6d1406cf4e631be71990e7f2
Reviewed-on: https://chromium-review.googlesource.com/229930
Commit-Queue: Achuith Bhandarkar <achuith@chromium.org>
Tested-by: Achuith Bhandarkar <achuith@chromium.org>
Reviewed-by: Kalin Stoyanov <kalin@chromium.org>
ros/enrollment.py
a2bceaf98f62646fd2218dc04b038fee3f2b0021 14-Nov-2014 Achuith Bhandarkar <achuith@chromium.org> autotest-chrome: Support for default apps.

Also, get rid of a temporary hack to support a change in the api of PossibleBrowser.Create()

BUG=chromium:428568
TEST=None

Change-Id: I86cf225aa15508e00b3eb71cdba2dc34596415d6
Reviewed-on: https://chromium-review.googlesource.com/229875
Commit-Queue: Achuith Bhandarkar <achuith@chromium.org>
Tested-by: Achuith Bhandarkar <achuith@chromium.org>
Reviewed-by: Katherine Threlkeld <kathrelkeld@chromium.org>
ros/chrome.py
13372b17e81e16243b50a4c73384a86f31fed802 11-Nov-2014 Peter Qiu <zqiu@chromium.org> Fix certificate/key id references for wifi services

TPM maintains two slots for certficates/keys now, with slot 0 for system
specific and slot 1 for user specific. This means slot ID is required in
order to retrieve certificate/key from the TPM.

Prepend TPM slot ID to the certificate/key ID "slot_id:key_id" when specifying
certificate for WiFi services, so wpa_supplicant can retrieve the certificate
from the TPM.

BUG=chromium:431831
TEST=Run network_WiFi_SimpleConnect.wifi_check1x_WPA

Change-Id: Iec3c53861e137a1f92e2f51ba7dc05f582120bfe
Reviewed-on: https://chromium-review.googlesource.com/228955
Tested-by: Peter Qiu <zqiu@chromium.org>
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Peter Qiu <zqiu@chromium.org>
ros/network/xmlrpc_security_types.py
baabef2eae533784f861b33ab41711616d399f04 04-Nov-2014 Prashanth Balasubramanian <beeps@google.com> [autotest] Puppy lab testing environment.

This is the first commit for a more reliable testing
environment for ChromeOS lab infrastructure. It creates
a class capable of mocking out job results without
turning the parsing operation into a no-op. This allows
us to schedule tests against fake DUTs without actually
needing to ssh-into them, which is pretty much all that
dummy_Pass actually does.

The cl also sneaks in a fix to hide the exception stack trace
from run_pylint.

TEST=Ran bvt.
BUG=chromium:423225,chromium:425347

Change-Id: I5ecbcf1ff08bf9f45af26333c2ccb4c4022a97d6
Reviewed-on: https://chromium-review.googlesource.com/227783
Reviewed-by: Prashanth B <beeps@chromium.org>
Commit-Queue: Prashanth B <beeps@chromium.org>
Tested-by: Prashanth B <beeps@chromium.org>
ime_utils.py
ef243fecf5fa3634efc0191aa44f59ecd4641d90 31-Oct-2014 Achuith Bhandarkar <achuith@chromium.org> autotest: Signature of PossibleBrowser.Create() is changing.

This CL handles the situation before and after the change.

BUG=chromium:428967
TEST=login_LoginSuccess, before and after the patch

Change-Id: Iea4b274ef2559fd76481ed3ed3a05ce4cfed1941
Reviewed-on: https://chromium-review.googlesource.com/226815
Reviewed-by: Achuith Bhandarkar <achuith@chromium.org>
Tested-by: Achuith Bhandarkar <achuith@chromium.org>
Commit-Queue: Achuith Bhandarkar <achuith@chromium.org>
ros/chrome.py
ef5a458439a763afa1937837cdf5b6d7065be74d 30-Oct-2014 Artem Rakhov <arakhov@chromium.org> Bluetooth SDP autotest: ServiceSearchAttribute invalid requests

This CL adds 2 tests to check invalid Service Search Attribute requests.
One test sends a request with intentionally invalid syntax, the other one
sends requests with wrong PDU size.

BUG=chromium:417931
TEST=test_that --board ${BOARD} ${HOSTNAME} bluetooth_SDP_ServiceSearchAttributeRequest

Change-Id: If38e2d48381f08022eeaa8cfb54c96d8c1206795
Reviewed-on: https://chromium-review.googlesource.com/226381
Tested-by: Artem Rakhov <arakhov@chromium.org>
Reviewed-by: Michael Janssen <jamuraa@chromium.org>
Reviewed-by: Arman Uguray <armansito@chromium.org>
Commit-Queue: Artem Rakhov <arakhov@chromium.org>
ros/bluetooth/bluetooth_sdp_socket.py
ros/bluetooth/bluetooth_tester_xmlrpc_server.py
221f5f0775f7f1c35ebf58ee08131cf256bf8cb0 31-Oct-2014 Achuith Bhandarkar <achuith@chromium.org> Implement LoggingFile.isatty

BUG=388256
TEST=manual

Change-Id: I677fa8333e48f81feb4c74a5806fb0103e62f869
Reviewed-on: https://chromium-review.googlesource.com/226673
Commit-Queue: Achuith Bhandarkar <achuith@chromium.org>
Tested-by: Achuith Bhandarkar <achuith@chromium.org>
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
ogging_manager.py
410d1f623534a74596cad823be275c141cca7415 30-Oct-2014 Achuith Bhandarkar <achuith@chromium.org> Allow default apps for autotests.

BUG=chromium:428568
TEST=manual

Change-Id: I3ef7475c4b048f6cb056fd2c614c8104eaba25e6
Reviewed-on: https://chromium-review.googlesource.com/226422
Reviewed-by: Katherine Threlkeld <kathrelkeld@chromium.org>
Commit-Queue: Achuith Bhandarkar <achuith@chromium.org>
Tested-by: Achuith Bhandarkar <achuith@chromium.org>
ros/chrome.py
042c1479b8df4f2d87586815d7ad0646cc39abeb 23-Oct-2014 Fang Deng <fdeng@chromium.org> [autotest] record autoserv run time in metadata db.

Measure autoserv run time and send it to metadata db.
The job id (or special task id) is extracted from the
result directory path using regular expression.

TEST=1)locally run autoserv. 2) Run run_suite.
Made sure that all the special tasks have been excercised.
3) run test_that
BUG=chromium:426105,chromium:422581

Change-Id: I16b119dbcf9b163967abed09a303d86568ea1394
Reviewed-on: https://chromium-review.googlesource.com/225236
Reviewed-by: Fang Deng <fdeng@chromium.org>
Commit-Queue: Fang Deng <fdeng@chromium.org>
Tested-by: Fang Deng <fdeng@chromium.org>
ost_states.py
6285f6acffd9ed3176cdc89544944a87340ac0b1 09-May-2014 Prashanth B <beeps@google.com> [autotest] Retry when staging a control files fails in run-suite.

The cl also adds some stats for reporting run_suite failures, and
sneaks in some autoserv testing changes.

TEST=Ran run_suite against a bad devserver, raised the exception.
BUG=chromium:418928, chromium:359741, chromium:371644

Change-Id: If49a3b96c053432cb26a01a02e160176be37c037
Reviewed-on: https://chromium-review.googlesource.com/220973
Reviewed-by: Prashanth B <beeps@chromium.org>
Tested-by: Prashanth B <beeps@chromium.org>
Commit-Queue: Prashanth B <beeps@chromium.org>
rror.py
3ef31f03bdf5a2f4ac34711e82d9a94d7511a93f 17-Oct-2014 Peter Qiu <zqiu@chromium.org> autotest: Add test support for 802.11ac

Update hostapd_config to support 802.11ac, and add a SimpleConnect test
for it as well. For routers without 802.11ac support, TEST_NA will be
raised.

Test is performed using Panther router with WP2, which only supports
channel width of 80MHz.

The support for 802.11ac AP for Panther requires test-ap-group build #10
or newer.

BUG=chromium:419930
TEST=Run network_WiFi_SimpleConnect.wifi_check5VHT80

Change-Id: I3fd6bc834a18d0b33af79061a8a3c2f35d0f88ec
Reviewed-on: https://chromium-review.googlesource.com/224118
Reviewed-by: Peter Qiu <zqiu@chromium.org>
Tested-by: Peter Qiu <zqiu@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Peter Qiu <zqiu@chromium.org>
ros/network/iw_runner.py
f571aa6b964930e4cd7ea0569105bebe06b97070 14-Oct-2014 Prashanth Balasubramanian <beeps@google.com> [autotest] Teach suite scheduler about Tot versions.

In an attempt to get suite scheduler out of the way so the team can
focus on higher priority demands over the next few months, this cl
drops all suites to run tot nightly and older branches weekly by
introducing a couple of new suite scheduler idioms.

TEST=Ran suite scheduler and checked that nightly suites are
scheduled against localhost.
BUG=chromium:417131,chromium:423847
DEPLOY=suite_scheduler

Change-Id: Ib3f01ac1e6c710ec969cf777d2c872e74a93058a
Reviewed-on: https://chromium-review.googlesource.com/223811
Reviewed-by: Dan Shi <dshi@chromium.org>
Tested-by: Prashanth B <beeps@chromium.org>
Commit-Queue: Prashanth B <beeps@chromium.org>
utotemp.py
eddedd3f9cb74e954b0c4b5a45947741285f1ff8 13-Oct-2014 Eric Caruso <ejcaruso@chromium.org> autotest: Add autotest for WoWLAN functionality

This is an important building block for some features, so we want
to make sure we don't regress here.

BUG=chrome-os-partner:32267
TEST=test_that using panther as AP with e.g. swanky

Change-Id: I582e05502eb5544947d007704fc14995651bdad1
Reviewed-on: https://chromium-review.googlesource.com/223390
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Commit-Queue: Eric Caruso <ejcaruso@chromium.org>
Tested-by: Eric Caruso <ejcaruso@chromium.org>
ros/network/shill_xmlrpc_server.py
de104cb90ac17267a5a045fa1de4754a8c54d711 17-Oct-2014 J. Richard Barnette <jrbarnette@chromium.org> [autotest] Don't complain about non-site implementations.

Autotest likes to log a debug message when import_site_symbol()
doesn't find a site-specific implementation. The message is
obnoxious, so remove it.

BUG=None
TEST=Run cli/atest, don't see the message

Change-Id: I0827fd6a454f9bd77007cefc3c258c7e7941219a
Reviewed-on: https://chromium-review.googlesource.com/224087
Tested-by: Richard Barnette <jrbarnette@chromium.org>
Reviewed-by: Simran Basi <sbasi@chromium.org>
Commit-Queue: Richard Barnette <jrbarnette@chromium.org>
ase_utils.py
31e84847d75008feffe2c89da4ec290adc904156 17-Oct-2014 Ilja H. Friedel <ihf@chromium.org> autotest: Remove screenshot from common_lib/test.py.

1) It is not at the right place for capturing server tests causing
exceptions.
2) It is not at the right place for capturing non-trivial (not black
or login) screens.

BUG=chrome-os-partner:33045, chromium:424120
TEST=None.

Change-Id: Ia578434d84799f08d50533be8ed8eb5d63507b36
Reviewed-on: https://chromium-review.googlesource.com/223834
Reviewed-by: Wai-Hong Tam <waihong@chromium.org>
Tested-by: Ilja Friedel <ihf@chromium.org>
est.py
a5ab166f36554278718e4b0c1412c49276ce1e25 16-Oct-2014 Ilja H. Friedel <ihf@chromium.org> autotest: move more X code to graphics_utils.

Move xrandr to graphics_utils.
Also add assert to functions that are still setting DISPLAY etc.

BUG=chromium:413127, chromium:422414
TEST=Check that output from command below looks reasonable.
test_that link_freon|nyan_big hardware_Resolution hardware_Xrandr
hardware_ch7036 power_BacklightControl platform_EvdevSynDropTest
hardware_TouchScreenPowerCycles hardware_VideoDecodeCapable
hardware_Trackpad

Change-Id: I029b706bec7d4e7a1d9f904e5f2b0f9e8d7fb193
Reviewed-on: https://chromium-review.googlesource.com/223632
Tested-by: Ilja Friedel <ihf@chromium.org>
Reviewed-by: Haixia Shi <hshi@chromium.org>
Commit-Queue: Ilja Friedel <ihf@chromium.org>
ase_utils.py
ros/chromedriver.py
f9c43d1e95e3c8375f62f1ae914d44d826e28a81 15-Oct-2014 Jakob Juelich <jakobjuelich@chromium.org> [autotest] Allow lookups with failovers in global_config.

With this one can lookup a key in global_config, and if
it doesn't exist, get a value for a second specified key.

This allows `failovers`.

BUG=None
DEPLOY=
TEST=Ran suites.

Change-Id: Ia88200d77328033707aa292ff00924b677d0108f
Reviewed-on: https://chromium-review.googlesource.com/223376
Reviewed-by: Mungyung Ryu <mkryu@google.com>
Reviewed-by: Dan Shi <dshi@chromium.org>
Commit-Queue: Jakob Jülich <jakobjuelich@chromium.org>
Tested-by: Jakob Jülich <jakobjuelich@chromium.org>
lobal_config.py
lobal_config_unittest.py
35d661e09666d315325f8942d06949ca7283666f 26-Sep-2014 MK Ryu <mkryu@google.com> [autotest] Integrate crashlog collection into repair workflow.

When a DUT goes offline before logs are gathered, we lose those
logs if the DUT is re-imaged.
To grab such logs as much as we can, we integrate crashlog
collection into the repair workflow.

BUG=chromium:215160
TEST=./server/autoserv -R -m <DUT ip> -r ~/tmp/repair
CQ-DEPEND=CL:221510

Change-Id: Ifd562bfd539b133381572aeec503d9a3940ab448
Reviewed-on: https://chromium-review.googlesource.com/219999
Reviewed-by: Fang Deng <fdeng@chromium.org>
Commit-Queue: Mungyung Ryu <mkryu@google.com>
Tested-by: Mungyung Ryu <mkryu@google.com>
rror.py
5e8b63d7361f7af35fcff7674a65bf423f05a707 14-Oct-2014 Mattias Nissler <mnissler@chromium.org> Properly re-arm session_manager.SignalListener

Previously, the listener would pick up any stale signals that haven't
been fully consumed. This adds a new reset() function that will
guarantee only signals received *after* reset() will be picked up. Stale
signals get ignored.

BUG=chromium:422948
TEST=This improves test infrastructure, existing tests should remain functional. Ran all tests that use session_manager.SignalListener manually to verify they still work.

Change-Id: Ied8ea744f87d0b9d93b30d7b4761fad38454f83b
Reviewed-on: https://chromium-review.googlesource.com/223083
Tested-by: Mattias Nissler <mnissler@chromium.org>
Reviewed-by: Chris Masone <cmasone@chromium.org>
Commit-Queue: Mattias Nissler <mnissler@chromium.org>
ros/session_manager.py
8753d83937751e6d2eb2646ea5af68979bb76312 08-Oct-2014 Ilja H. Friedel <ihf@chromium.org> autotest: refactor graphics_utils.

Move screenshot code to graphics_utils.
Move xsystem et al to cros_ui.py.
Fail if X is used under freon.
Make pylint happy.

TODO: write a (unit/auto)test for graphics_utils.

BUG=chromium:422414
TEST=Ran graphics_GLMark2 power_Consumption power_Backlight ui_SystemTray
on nyan_big, verified that code got exercised and is not broken.
Ran camera_V4L2 desktopui_GmailLatency graphics_GLAPICheck graphics_Gbm
graphics_Piglit graphics_SanAngeles hardware_VideoOutSemiAuto on
link_freon and nyan_big and made sure we got reasonable pass/fail.

Change-Id: I31f49d8c7b7a4e899bf47ba0b3543fc8755eecb8
Reviewed-on: https://chromium-review.googlesource.com/222990
Reviewed-by: Haixia Shi <hshi@chromium.org>
Commit-Queue: Ilja Friedel <ihf@chromium.org>
Tested-by: Ilja Friedel <ihf@chromium.org>
ite_utils.py
est.py
17ecbbf63319dabd5514827a34f04b5a0b724352 06-Oct-2014 Dan Shi <dshi@chromium.org> [autotest] Redesign how host history is queried to avoid any DB access

The host list is retrieved from metaDB for given board and label.

BUG=chromium:419043
TEST=local run
host_history.py --board peppy -l 240
host_history.py -l 240 --hosts 172.27.213.193

Change-Id: I63595534f167b1676f62e03e0c1643479e1e1f12
Reviewed-on: https://chromium-review.googlesource.com/221743
Tested-by: Dan Shi <dshi@chromium.org>
Reviewed-by: Fang Deng <fdeng@chromium.org>
Commit-Queue: Dan Shi <dshi@chromium.org>
ros/graphite/es_test_utils.py
ros/graphite/es_utils.py
3270e189d5da845d034231a6eb75c5bd4e37ac97 13-Oct-2014 Jakob Juelich <jakobjuelich@chromium.org> Revert "[autotest] Always use tko tables on master from shards."

This reverts commit e2bf396b7d3870f7565b2b10018087ab7fa6256e.

BUG=422637
CQ-DEPEND=CL:223065

Change-Id: I0513889a3acfc3a189843e79030da9bbd551999d
Reviewed-on: https://chromium-review.googlesource.com/223072
Reviewed-by: Fang Deng <fdeng@chromium.org>
Commit-Queue: Jakob Jülich <jakobjuelich@chromium.org>
Tested-by: Jakob Jülich <jakobjuelich@chromium.org>
lobal_config.py
lobal_config_unittest.py
54682e7d8b47ec91788bad71520437e2734082db 08-Oct-2014 Dan Shi <dshi@chromium.org> Revert "Revert "[autotest] Save host labels information to metaDB""

This reverts commit 22e873896ce087265403f996b227453669d3b22f.

Change-Id: I4dbfbb5ea67860f4bfd86eb372c108f0b6e5dd58
Reviewed-on: https://chromium-review.googlesource.com/222103
Reviewed-by: Dan Shi <dshi@chromium.org>
Tested-by: Dan Shi <dshi@chromium.org>
Commit-Queue: Dan Shi <dshi@chromium.org>
ros/graphite/es_utils.py
22e873896ce087265403f996b227453669d3b22f 08-Oct-2014 Michael Spang <spang@chromium.org> Revert "[autotest] Save host labels information to metaDB"

To fix broken AUTests.

This reverts commit 60b07a5a6b134f572451698e676ff91ed5538b66.

BUG=chromium:419043
TEST=none

Change-Id: I0ad02656efae955497b228998576c908cee6d9d2
Reviewed-on: https://chromium-review.googlesource.com/222190
Reviewed-by: Michael Spang <spang@chromium.org>
Commit-Queue: Michael Spang <spang@chromium.org>
Tested-by: Michael Spang <spang@chromium.org>
ros/graphite/es_utils.py
60b07a5a6b134f572451698e676ff91ed5538b66 04-Oct-2014 Dan Shi <dshi@chromium.org> [autotest] Save host labels information to metaDB

Add a utility to save all host labels to metaDB. Will need to setup a daily
cron job to run the script.

The script also supports a query action to search for hosts and labels.

BUG=chromium:419043
TEST=run the tool to collect host labels, and query it:
./site_utils/host_labels_utils.py collect
./site_utils/host_labels_utils.py query -n 172.27.213.193 -l peppy

TODO: After this is in production, ES mapping needs to be updated to stop
indexing hostname and labels. refer to the end of document:
https://docs.google.com/a/google.com/document/d/1GpTe9TwMRc5lQFrFWXfB5eyCgaYIkSSjPS2fyLcP8yQ/edit#

Change-Id: I294466e5033cfe207ab072297edbb64dfd07771a
Reviewed-on: https://chromium-review.googlesource.com/221520
Reviewed-by: Dan Shi <dshi@chromium.org>
Commit-Queue: Dan Shi <dshi@chromium.org>
Tested-by: Dan Shi <dshi@chromium.org>
ros/graphite/es_utils.py
e2bf396b7d3870f7565b2b10018087ab7fa6256e 02-Oct-2014 Jakob Juelich <jakobjuelich@chromium.org> [autotest] Always use tko tables on master from shards.

tko/db.py was changed to always use settings for the global database.
This added configuration overhead for non-shard machines. This adds
the normal, old settings as a failover.

Also, this adds the global database to django.
A django database router is added to determine to which database
should be used for which models. All tko models are always taken or
written from or into the global database while all other objects
remain unchanged.

BUG=chromium:419435
TEST=Ran suites and manually tried rpcs.
DEPLOY=apache,tko

Change-Id: I675b064ffdcb0440cd33835b9a83e3858f826ca7
Reviewed-on: https://chromium-review.googlesource.com/221018
Tested-by: Jakob Jülich <jakobjuelich@chromium.org>
Reviewed-by: Fang Deng <fdeng@chromium.org>
Commit-Queue: Jakob Jülich <jakobjuelich@chromium.org>
lobal_config.py
lobal_config_unittest.py
c9b79339b9792de002e9524e5303c475857c7192 22-Sep-2014 J. Richard Barnette <jrbarnette@chromium.org> [autotest] Add a new dut_status command.

This adds a new dut_status command that can report on whether a DUT
was working or broken at a given time. Status is determined by
looking backwards in time for a job result (e.g. a failed Repair
job) that indicates the DUT's working or broken status.

BUG=None
TEST=Run against various DUTs with a known status, run new unit tests

Change-Id: I54558fec39d6be2988c2802e969f05a9fdf04642
Reviewed-on: https://chromium-review.googlesource.com/219349
Commit-Queue: Richard Barnette <jrbarnette@chromium.org>
Tested-by: Richard Barnette <jrbarnette@chromium.org>
Reviewed-by: Richard Barnette <jrbarnette@chromium.org>
ime_utils.py
ime_utils_unittest.py
f53eeec1740214b1838f577559ba0acd856e996c 25-Sep-2014 Artem Rakhov <arakhov@chromium.org> Bluetooth SDP autotest: Bluetooth Tester to support Service Search Attribute

This CL adds Service Search Attribute Request method to BluetoothTester and
BluetoothTesterXmlRpcDelegate classes.

BUG=chromium:416168
TEST=pylint; use methods on stumpy and peppy

Change-Id: Idb8adfe35424c9697fab5ed9dd72c704da56f272
Reviewed-on: https://chromium-review.googlesource.com/219886
Tested-by: Artem Rakhov <arakhov@chromium.org>
Reviewed-by: Michael Janssen <jamuraa@chromium.org>
Reviewed-by: Arman Uguray <armansito@chromium.org>
Commit-Queue: Artem Rakhov <arakhov@chromium.org>
ros/bluetooth/bluetooth_tester_xmlrpc_server.py
3c654f35bb6b91a7f1a1e33a6ee98ba3d76f7157 29-Sep-2014 Achuith Bhandarkar <achuith@chromium.org> Enable gaia services.

BUG=chromium:416803
TEST=enterprise_PowerManagement

Change-Id: I78a1357bd78f09158c089779bf6dec9ea5b45f7d
Reviewed-on: https://chromium-review.googlesource.com/220209
Reviewed-by: Prabhu Kaliamoorthi <kaliamoorthi@chromium.org>
Reviewed-by: Dan Shi <dshi@chromium.org>
Commit-Queue: Achuith Bhandarkar <achuith@chromium.org>
Tested-by: Achuith Bhandarkar <achuith@chromium.org>
ros/chrome.py
5ae96efdb7ebefc06afbd363b9c327599a646ba5 30-Sep-2014 Peter Qiu <zqiu@chromium.org> Do not raise failure when a link property is not found.

get_link_value should not raise a failure when a link property is not
found. It should be the caller's responsibility for checking the return
value and act accordingly.

This eliminates the timing issue where the DUT might still be connected
to the undesired AP at the time wait_for_connection is called, and is
disconnected when the iw link command is issued to retrieve the frequency
information. Instead of failing right away because no frequency information
is found, recheck the frequency information when DUT is connected to the
desired AP.

BUG=chromium:418194
TEST=Run wifi_matfunc suite
DEPLOY=test_importer

Change-Id: I38865b79cd491d26f80915256f6065253e5f2876
Reviewed-on: https://chromium-review.googlesource.com/220561
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Tested-by: Peter Qiu <zqiu@chromium.org>
Commit-Queue: Peter Qiu <zqiu@chromium.org>
ros/network/iw_runner.py
2a9a2bbe07f25c95a5243fd4588d8ca8a33e761f 11-Sep-2014 Alex Miller <milleral@chromium.org> [autotest] Add a high-level descirption to logging_manager.

BUG=None
TEST=None

Change-Id: I87e92289f6d0ab178b24ea5c6cd75d62693e82a6
Reviewed-on: https://chromium-review.googlesource.com/220173
Reviewed-by: Alex Miller <milleral@chromium.org>
Commit-Queue: Alex Miller <milleral@chromium.org>
Tested-by: Alex Miller <milleral@chromium.org>
ogging_manager.py
36f024f623d60a084f883f514457e1df4e7b0b1b 26-Sep-2014 Dan Shi <dshi@chromium.org> [autotest] Fix time_utils_unittest to work in machine using none PST timezone

The unittest assumes time is in PST, thus it fails if the machine is not using
PST as its timezone. Add a helper function to change timezone to PST for test
temporarily.

BUG=chromium:418066
TEST=change local timezone to none PST, run the unittest, make sure it passes.

Change-Id: I52a5de627afc9b2a134a0aafc7a61c4550869936
Reviewed-on: https://chromium-review.googlesource.com/220143
Commit-Queue: Dan Shi <dshi@chromium.org>
Tested-by: Dan Shi <dshi@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Reviewed-by: Timothy Jennison <tjennison@google.com>
ime_utils_unittest.py
dd129979e8227c960f4c7a3d2a1665007f8a424e 11-Sep-2014 Simran Basi <sbasi@chromium.org> gs_offloader: Add Moblab support to gs_offloader.

Updates the gs_offloader to offload to a subdirectory of the
image_storage_server for Moblab devices. This subdirectory is
determined by the MAC address of the Moblab device and a UUID
stored on the stateful partition.

BUG=chromium:413383
TEST=Manually ran on Moblab, unittests. Ran locally to ensure
non-moblab usecase still works as expected.

Change-Id: Id4dc2a8b03eb6b174cb157e4d72f183dfaa39733
Reviewed-on: https://chromium-review.googlesource.com/217822
Reviewed-by: Simran Basi <sbasi@chromium.org>
Commit-Queue: Simran Basi <sbasi@chromium.org>
Tested-by: Simran Basi <sbasi@chromium.org>
ite_utils.py
a94efe60bc94c9aa10ecfe40bddf97518985c7c2 19-Sep-2014 Jakob Juelich <jakobjuelich@chromium.org> [autotest] Endpoints for syncing jobs and hqes back to master

The status of jobs that were completed on a shard should be visible
in the master AFE, so a human can easily see which jobs have been run in one
central place.

This adds the functionality to the AFE to retrieve newer versions of
jobs and hqes from shards.

This is a newer version of CL:213901 which was reverted because of
http://crbug.com/418022.

BUG=418022
DEPLOY=apache, afe
TEST=Ran Suites

Change-Id: I3c9a35c78585a43d193874decbb7b16216b2c69a
Reviewed-on: https://chromium-review.googlesource.com/220141
Reviewed-by: Fang Deng <fdeng@chromium.org>
Tested-by: Jakob Jülich <jakobjuelich@chromium.org>
Commit-Queue: Jakob Jülich <jakobjuelich@chromium.org>
rror.py
e5482e5614e47a1eda238902eaa83e16a0f5475d 26-Sep-2014 Owen Lin <owenlin@chromium.org> Revert "[autotest] Endpoints for syncing jobs and hqes back to master"

This reverts commit 1b22ff2921c65b45e3727a8aaa852325f0f0cfb4.

BUG=418022

Change-Id: I30473d21d16911f620ee7f06917c13e6017f20fb
Reviewed-on: https://chromium-review.googlesource.com/219918
Reviewed-by: Owen Lin <owenlin@chromium.org>
Commit-Queue: Owen Lin <owenlin@chromium.org>
Tested-by: Owen Lin <owenlin@chromium.org>
rror.py
217cf40f22a10b768ea4dd590890255a3fa8ddf4 25-Sep-2014 Achuith Bhandarkar <achuith@chromium.org> Browser.Start() has been removed.

BUG=chromium:417528
TEST=None

Change-Id: I663d41bce4963fb9f7b33948397d26c1cc3eafd1
Reviewed-on: https://chromium-review.googlesource.com/219930
Tested-by: Achuith Bhandarkar <achuith@chromium.org>
Reviewed-by: Dan Shi <dshi@chromium.org>
Commit-Queue: Achuith Bhandarkar <achuith@chromium.org>
ros/chrome.py
1b22ff2921c65b45e3727a8aaa852325f0f0cfb4 19-Sep-2014 Jakob Juelich <jakobjuelich@chromium.org> [autotest] Endpoints for syncing jobs and hqes back to master

The status of jobs that were completed on a shard should be visible
in the master AFE, so a human can easily see which jobs have been run in one
central place.

This adds the functionality to the AFE to retrieve newer versions of
jobs and hqes from shards.

BUG=None
DEPLOY=apache, afe
TEST=Ran Suites

Change-Id: I04c3401921a3f54bae6070639af805904952bf6a
Reviewed-on: https://chromium-review.googlesource.com/213901
Reviewed-by: Fang Deng <fdeng@chromium.org>
Commit-Queue: Jakob Jülich <jakobjuelich@chromium.org>
Tested-by: Jakob Jülich <jakobjuelich@chromium.org>
rror.py
2508c265d6ad361745191416e7a39f4d7b3c30c0 24-Sep-2014 Artem Rakhov <arakhov@chromium.org> Bluetooth SDP autotest: SDP Socket to support Service Search Attribute

Added a method to support Service Search Attribute transactions in our
BluetoothSDPSocket class. The method packs its arguments into raw binary packet
and sends it over L2CAP to the IUT, then parses the response and returns
everything in python list format.

BUG=chromium:416165
TEST=upload the class to a tester, send requests to IUT using python shell

Change-Id: I9901b91f453e00792180495da9eeea7bd171ce97
Reviewed-on: https://chromium-review.googlesource.com/219632
Tested-by: Artem Rakhov <arakhov@chromium.org>
Reviewed-by: Arman Uguray <armansito@chromium.org>
Commit-Queue: Artem Rakhov <arakhov@chromium.org>
ros/bluetooth/bluetooth_sdp_socket.py
3b27dbc2358aef655e050a92510ff8e9e080bf81 04-Sep-2014 Jakob Juelich <jakobjuelich@chromium.org> [autotest] Fetching jobs from global AFE to moblab

To scale autotest with sharding jobs and hosts need to be fetched by
the shards. This adds the fetching-functionality on the shard side.

TEST=Ran suites and tried scheduling dummy on global and fetching it
DEPLOY=apache

Change-Id: I54ac73e07027e36982e18eb606cdf5958c8c6c89
Reviewed-on: https://chromium-review.googlesource.com/212725
Reviewed-by: Fang Deng <fdeng@chromium.org>
Commit-Queue: Jakob Jülich <jakobjuelich@chromium.org>
Tested-by: Jakob Jülich <jakobjuelich@chromium.org>
rror.py
cbdd198200ab7ffa27b14fe5bcff450f52bc43b6 03-Sep-2014 Hung-ying Tyan <tyanh@chromium.org> Move dns_zone from CROS section to CLIENT in the global_config.ini

to make host_is_in_lab_zone() of client/common_lib/site_utils.py work.
For details, refer to the bug.

BUG=chromium:408458
TEST=manually print out fqdn in host_is_in_lab_zone(), run the
display_ClientChameleonConnection test and observe that the
retrieved dns_zone value is correct.

Change-Id: I7caa6a5e06af59bde8373ef3d10339bed3c6e85a
Reviewed-on: https://chromium-review.googlesource.com/216091
Tested-by: Hung-ying Tyan <tyanh@chromium.org>
Reviewed-by: Dan Shi <dshi@chromium.org>
Commit-Queue: Hung-ying Tyan <tyanh@chromium.org>
ite_utils.py
21bf562287827708a3acc2843fca33f3d0876500 09-Sep-2014 Ilja H. Friedel <ihf@chromium.org> Clean strings before upload to perf dashboard.

platform_MemoryMonitor is currently failing and not reporting perf
values to the dashboard due to bad characters in the string. This
is a common mistake and usually corrected by replacing bad
characters. We use as default '_' but allow a test to override this.

Furthermore, remove unused variables and do some pylint housekeeping.

BUG=None.
TEST=pylint

Change-Id: I833e08724a9b5b8f684117807ad8d25101f7c5c5
Reviewed-on: https://chromium-review.googlesource.com/217139
Commit-Queue: Ilja Friedel <ihf@chromium.org>
Tested-by: Ilja Friedel <ihf@chromium.org>
Reviewed-by: Fang Deng <fdeng@chromium.org>
est.py
f8b71d1c0d37ed681b1fc129468a9c2e2d0ecbdb 03-Sep-2014 Dan Shi <dshi@chromium.org> [autotest] Add a utility to query devserver requests and load.

Add a script to check the history of stage calls made to devserver.
Following are some sample use cases:

1. Find all stage request for autotest and image nyan_big-release/R38-6055.0.0
in the last 10 days across all devservers.
./site_utils/devserver_history.py --image_filters nyan_big 39 6260 -l 240 \
--artifact_filters autotest -v
output:
================================================================================
172.19.140.2
================================================================================
Number of calls: 140
Number of unique images: 1
2014-09-12 14:06:29 nyan_big-release/R39-6260.0.0 autotest, test_suites
2014-09-12 14:06:44 nyan_big-release/R39-6260.0.0 autotest, test_suites

2. Find all duplicated stage request for the last 10 days.
./site_utils/devserver_history.py -d -l 240
output:
Detecting artifacts staged in multiple devservers.
==============================================================================
nyan_big-release/R38-6055.0.0
==============================================================================
170.21.64.22: 23 requests 2014-09-04 22:44:28 -- 2014-09-05 00:03:23
170.21.64.23: 6 requests 2014-09-04 22:48:58 -- 2014-09-04 22:49:42

Count of images with duplicated stages on each devserver:
170.21.64.22 : 22
170.21.64.23 : 11

BUG=chromium:404475
TEST=local setup

Change-Id: Ic8eb35c4239ca08663a28ad5410596b2dcdbac62
Reviewed-on: https://chromium-review.googlesource.com/216282
Reviewed-by: Dan Shi <dshi@chromium.org>
Commit-Queue: Dan Shi <dshi@chromium.org>
Tested-by: Dan Shi <dshi@chromium.org>
ros/graphite/es_utils.py
ime_utils.py
dfea368e5c830b1d7950ced5ee7b191e3b141ca3 11-Aug-2014 Dan Shi <dshi@chromium.org> [autotest] Add RPC get_host_history to get host history.

The RPC takes in arguments like board, pool or a list of hosts, and return the
history of specified hosts. The history is a dictionary of each host and its
history of status. For example:
{'172.22.33.51': [{'status': 'Resetting'
'start_time': '2014-08-07 10:02:16',
'end_time': '2014-08-07 10:03:16',
'log_url': 'http://autotest/reset-546546/debug',
'task_id': 19441991},
{'status': 'Running'
'start_time': '2014-08-07 10:03:18',
'end_time': '2014-08-07 10:13:00',
'log_url': 'http://autotest/reset-546546/debug',
'job_id': 14995562}
]
}

Add a client util module time_utils to handle common task to do time string
and epoch time conversion.

BUG=chromium:394451
TEST=local setup
from autotest_lib.client.common_lib import global_config
from autotest_lib.server.cros.dynamic_suite import frontend_wrappers
instance_server = global_config.global_config.get_config_value(
'SERVER', 'hostname', type=str)
afe = frontend_wrappers.RetryingAFE(
server=instance_server, timeout_min=60, delay_sec=0)
result = afe.run('get_host_history', board='lumpy', pool='bvt',
start_time='2014-08-05 14:00:00',
end_time='2014-08-06 14:00:00')
import pprint
pprint.pprint(result)
rebuild local afe, test run_suite and create job from afe.

Change-Id: I66ecc5bb69a4a1fdb33437520288ed08e562ed00
Reviewed-on: https://chromium-review.googlesource.com/211772
Tested-by: Dan Shi <dshi@chromium.org>
Reviewed-by: Richard Barnette <jrbarnette@chromium.org>
Reviewed-by: Prashanth B <beeps@chromium.org>
Commit-Queue: Dan Shi <dshi@chromium.org>
ros/graphite/es_utils.py
ime_utils.py
ime_utils_unittest.py
c0183714144022fcf8adf24aa709b50fc307b0ae 17-Sep-2014 Dan Shi <dshi@chromium.org> [autotest] Add a new setting to specify which index metadata should be saved.

We changed Autotest prod instance today, which led to all metadata being
reported to a new index. We want to keep the index as a constant while the
autotest prod instance is switched.

Add the setting under CLIENT to allow metadata being uploaded from DUT in the
future.

Another puppet CL will make change in shadow config in prod.

BUG=None
TEST=local autotest run, make sure nothing breaks.
DEPLOY=apache,scheduler,host_scheduler

Change-Id: Iea88c45d8b5334da412e83f70c105eb6ab005932
Reviewed-on: https://chromium-review.googlesource.com/218682
Reviewed-by: Fang Deng <fdeng@chromium.org>
Commit-Queue: Dan Shi <dshi@chromium.org>
Tested-by: Dan Shi <dshi@chromium.org>
ros/graphite/es_utils.py
f6c65bd150f50771145545b58b89b88ca97bb250 30-Aug-2014 Dan Shi <dshi@chromium.org> [autotest] Add a --production argument to stop scheduler from starting with database set to remote server

This is the first CL to add the option. Once this CL is merged and pushed to
prod. A second CL will update the upstart job in puppet to use the option.
Once puppet change is populated to prod, a third CL will remove the override
of production argument and make it effective in prod.

BUG=chromium:409091
TEST=local setup, change host in AUTOTEST_WEB to various settings and verify
the option works.
DEPLOY=scheduler,host-scheduler

Change-Id: I0b3b961db3ae7a95b887f5ae32b73c3a33b6e82c
Reviewed-on: https://chromium-review.googlesource.com/215672
Tested-by: Dan Shi <dshi@chromium.org>
Reviewed-by: Prashanth B <beeps@chromium.org>
Commit-Queue: Dan Shi <dshi@chromium.org>
ite_utils.py
e48476e58da359087b8a3d7e9968df43e3e0ec73 31-Jul-2014 J. Richard Barnette <jrbarnette@chromium.org> Remove PyAuto, cros_ui_test, and dependent tests.

The PyAuto framework code, the cros_ui_test module, and the tests
that depend on it are deprecated, obsolete, and generally
non-functional. So, delete them.

BUG=chromium:224072
TEST=cros_run_bvt

Change-Id: I3ec9145dca1afae4b2f0a68015b71cfdc222fdc8
Reviewed-on: https://chromium-review.googlesource.com/210581
Reviewed-by: Simran Basi <sbasi@chromium.org>
Reviewed-by: Achuith Bhandarkar <achuith@chromium.org>
Commit-Queue: Richard Barnette <jrbarnette@chromium.org>
Tested-by: Richard Barnette <jrbarnette@chromium.org>
erf_expectations/expectation_checker_unittest.py
45745d81cc3c2c403092d1c320356fb47f660365 27-Aug-2014 Mussa <mussa@chromium.org> Add verification to ui_SystemTray tests.

Initially, we had the 'test' only collect screenshots of the
system tray with the intent to watch how the tray varies and
assess the general viability of image comparison based tests
in this area.

After watching the screenshots for a number of builds, it makes
sense to start with just the language indicator portion of the
tray.

This change collects this particular portion of the system tray,
pulls down a golden version of it and runs the comparison.

Comparisons are done locally first with a simple pixel by pixel
array walk. Failures are uploaded to bp for later viewing.

BUG=chromium:374981
TEST=Ran tests against a local link.
TEST=Ran video glitch detection tests also.

Change-Id: Ic5316d4d17a125b878c3c22b86568c554cf41186
Reviewed-on: https://chromium-review.googlesource.com/214380
Reviewed-by: Tracy Turchetto <tturchetto@chromium.org>
Tested-by: Mussa Kiroga <mussa@chromium.org>
Commit-Queue: Mussa Kiroga <mussa@chromium.org>
ile_utils.py
ite_utils.py
e4cb9e23709425fcbb5faec40bfe824b818bd106 29-Aug-2014 Dan Shi <dshi@chromium.org> [autotest] Change devserver stats call to log data only for staging artifacts.

File names are different as they have build information included. Recording
stats for each file will create too many counters in graphite and lead to disk
space issue.

BUG=chromium:404475
TEST=local setup.
To verify metadata:
visit http://172.25.61.45:9200/_plugin/elastic-hammer/
update search url with index of local setup: dshi.mtv/_search
search for:
{
"query": {"bool": {"minimum_should_match": 1,
"should": [{"term": {"_type": "devserver"}}
]}},
"size": 10000,
"sort": [{"time_recorded": "asc"}]}

Confirm the data.

Change-Id: Ic11f76c3ef6fbf8cf5d25312d3285e1e9b87a178
Reviewed-on: https://chromium-review.googlesource.com/215640
Tested-by: Dan Shi <dshi@chromium.org>
Reviewed-by: Fang Deng <fdeng@chromium.org>
Commit-Queue: Dan Shi <dshi@chromium.org>
ros/dev_server.py
ros/graphite/es_utils.py
ros/graphite/stats.py
882a8ab7d53869673759fc50703c9d3c3fafdc3d 27-Aug-2014 Achuith Bhandarkar <achuith@chromium.org> Support for dont_override_profile.

BUG=chromium:407844
TEST=manual

Change-Id: I4bf0d7807607ff2ca2da22bcb756d69866bff01a
Reviewed-on: https://chromium-review.googlesource.com/214319
Reviewed-by: Achuith Bhandarkar <achuith@chromium.org>
Commit-Queue: Achuith Bhandarkar <achuith@chromium.org>
Tested-by: Achuith Bhandarkar <achuith@chromium.org>
ros/chrome.py
d84e18ffa85a603e735663cdabca3b5a40c5800c 14-Aug-2014 Prashanth B <beeps@google.com> [autotest] Prevent signals from interrupting bgjob select polling.

We monitor the progress of a bg job by select polling. If the process
has a signal handler setup to ignore a signal like sigterm (which
upstart sends by default) and it's waiting on a background job, it
will still die because the select system call was interrupted thereby
raising an exception.

This cl enables processes that monitor bgjobs to decide if the
polling should continue through the signal handler.

TEST=Sent signals mid-poll and confirmed that polling continues.
Added a unittest for the same.
BUG=chromium:403495

Change-Id: I26630b5cc3c980ffd2768b2c69c9eb6af44f0acf
Reviewed-on: https://chromium-review.googlesource.com/212376
Tested-by: Prashanth B <beeps@chromium.org>
Reviewed-by: Fang Deng <fdeng@chromium.org>
Commit-Queue: Prashanth B <beeps@chromium.org>
ase_utils.py
ase_utils_unittest.py
7cf3d84fda609f6402543bb7e0bf3e3b7f93d539 13-Aug-2014 Dan Shi <dshi@chromium.org> [autotest] Record more metadata to include more job related information.

For host history rpc to return more info like job name/owner, we added a new
attribute metadata_info to host object. metadata_info is a dictionary
containing information such as task_id, task_name, job_id, job_name,
parent_job_id.
When host status is changed, metadata_info will be reported to metaDB.

Examples of metadata_info are:

{"hostname": "192.96.48.88", "task_name": "Verify", "task_id": 6551}
{"job_name": "dummy_pass", "hostname": "192.96.48.88", "task_name": "Reset", "task_id": 6552, "job_id": 4133, "parent_job_id": 4132}
{'owner': 'debug_user', 'parent_job_id': null, 'job_id': 4140, 'job_name': 'dummy_pass'}

BUG=chromium:394451
TEST=local setup,
site_utils/host_history.py --hosts 100.96.48.196
test output with visiting page: http://172.25.61.45:9200/_plugin/elastic-hammer/
Enter following in filter, then click search to see results.
{"query": {"bool": {"minimum_should_match": 3,
"should": [{"term": {"_type": "host_history"}},
{"term": {"hostname": "100.96.48.196"}},
{"range": {"time_recorded": {"gte": 1408121317,
"lte": 1409007215}}}]}},
"size": 10000,
"sort": [{"time_recorded": "asc"}]}

Change-Id: Icddc27fb39529924d0030dbec97176a2d8b683fc
Reviewed-on: https://chromium-review.googlesource.com/212304
Reviewed-by: Dan Shi <dshi@chromium.org>
Tested-by: Dan Shi <dshi@chromium.org>
Commit-Queue: Dan Shi <dshi@chromium.org>
ros/graphite/es_utils.py
28c1eaf350f761d7e46a06ff2d6b7135bd3c096e 08-Aug-2014 MengHuan Yu <menghuan@chromium.org> Fix a typo of set_fast_connectable() in BluetoothControlSocket

BUG=None
TEST=None

Change-Id: I75d2a8477895becdb6746738fd9df6219a3b3f34
Reviewed-on: https://chromium-review.googlesource.com/212899
Tested-by: MengHuan Yu <menghuan@chromium.org>
Reviewed-by: Scott James Remnant <keybuk@chromium.org>
Commit-Queue: MengHuan Yu <menghuan@chromium.org>
ros/bluetooth/bluetooth_socket.py
ac1a4c528813a69cb7c2f9a41e0b7b0aaf1b33fa 21-Aug-2014 Prathmesh Prabhu <pprabhu@chromium.org> autotest: Log errors raised by tests early.

Autotest catches exceptions raised by tests and raises them later, after it has
run some cleanup code. This CL adds logging at the point where the exception is
caught. This eases correlating the error with other (non-autotest) logs because
the timestamp on the log message is closer to the actual error.

BUG=chromium:403470
TEST=Run a faulty client test and observe the log message before messages logged
by the cleanup code.

Change-Id: I47837c92755090b04393c6368ab82f035c33ed5f
Reviewed-on: https://chromium-review.googlesource.com/213350
Reviewed-by: Prashanth B <beeps@chromium.org>
Commit-Queue: Prathmesh Prabhu <pprabhu@chromium.org>
Tested-by: Prathmesh Prabhu <pprabhu@chromium.org>
est.py
2ce1ca5b31250354183250892f937465b8922c66 15-Aug-2014 Fang Deng <fdeng@chromium.org> [autotest] Add logging and stats in dynmaic suite and provisioning

Add logging/stats to suite:find_and_parse_tests,
dev_server:stage_artificats, and provision_AutoUpdate.py

BUG=chromium:404202
TEST=run suite.

Change-Id: I99414651b75c828f5d2ae6b3531c85845a3f91db
Reviewed-on: https://chromium-review.googlesource.com/212727
Reviewed-by: Prashanth B <beeps@chromium.org>
Commit-Queue: Fang Deng <fdeng@chromium.org>
Tested-by: Fang Deng <fdeng@chromium.org>
ros/dev_server.py
ros/dev_server_unittest.py
71206ef92012e5a5c36bbd1ae47e9176be04036d 13-Aug-2014 Simran Basi <sbasi@chromium.org> [MobLab] Moblab Setup page.

* Adds a new page located at /moblab_setup
* 2 are on this page: 1 to upload a Boto Key and 1 to edit the config values.
* Link to /moblab_setup is visible only on a moblab system.
* RPC's that execute moblab_setup's actions are gated by a decorator that
limits them to only run on a moblab_system.
* Unittests for new RPC's.
* Editting the config values, writes the full config to shadow_config.ini and
reboots the system so changes takes effort.
* Resetting the config values, makes shadow_config.ini an empty file and
reboots the system so it is restored.
* Uploading the boto key uses shutil.copyfile to write in the new boto file's
contents to the boto file location.

BUG=chromium:396694
TEST=unittests, Uploaded a boto key and successfully ran a suite, editted
config and ensured changes were written into shadow_config, & reset config
and ensured that the default settings were restored.
DEPLOY=afe,apache
CQ-DEPEND=CL:212322
CQ-DEPEND=CL:212323
CQ-DEPEND=CL:212295

Change-Id: Ie354a2df310393045f3116e93004f58ea671de36
Reviewed-on: https://chromium-review.googlesource.com/209685
Reviewed-by: Simran Basi <sbasi@chromium.org>
Commit-Queue: Simran Basi <sbasi@chromium.org>
Tested-by: Simran Basi <sbasi@chromium.org>
lobal_config.py
ab583045d1e3e21da15eeb5152c2f808f4aea8ff 11-Aug-2014 Nathan Stoddard <nstoddard@chromium.org> Add basic Chrome Web Store tests.

These tests include: a basic sanity test, 5 tests that verify that free
items can be installed, and 3 tests that verify that free trial items
can be installed.

BUG=chromium:403498
TEST=These tests pass

Change-Id: Id7aa76b4e23e5059652dbdb84f5976dcd2b0a3f5
Reviewed-on: https://chromium-review.googlesource.com/211835
Reviewed-by: Dan Shi <dshi@chromium.org>
Tested-by: Nathan Stoddard <nstoddard@chromium.org>
Commit-Queue: Dan Shi <dshi@chromium.org>
ros/chromedriver.py
62b5fdf5e27786c2c1ca23797c8dc50944444c8b 14-Aug-2014 Mike Frysinger <vapier@chromium.org> get_arch_userspace: dereference /bin/sh

Rather than rely on coreutils (and whatever weirdness it might try),
poke at /bin/sh. That's a pretty reliable path for always existing.

BUG=chromium:392021
TEST=`cbuildbot x86-generic-full` passes

Change-Id: Id2ae24626bb038f294b20f74299c1b12a1db195a
Reviewed-on: https://chromium-review.googlesource.com/212208
Reviewed-by: Ben Chan <benchan@chromium.org>
Commit-Queue: Mike Frysinger <vapier@chromium.org>
Tested-by: Mike Frysinger <vapier@chromium.org>
ase_utils.py
56b94dfee71960e880a6fb0e331d07511e24f018 14-Aug-2014 Mussa <mussa@chromium.org> Remove colorspace RGB flag from screen capture command.

This flag was intended to ensure that we always end up with RGB images.

However, it had unintended consequences because the test images had a
somewhat different profile that their golden counterparts.

We individually investigate cases where we don't end up with
RGB images.

BUG=chromium:393684
TEST=Ran local test.

Change-Id: Ifba6d0ae8d43a891042b7325eccefa43e3439280
Reviewed-on: https://chromium-review.googlesource.com/212345
Reviewed-by: Rohit Makasana <rohitbm@chromium.org>
Commit-Queue: Mussa Kiroga <mussa@chromium.org>
Tested-by: Mussa Kiroga <mussa@chromium.org>
ite_utils.py
40adf8893728144e89da20ebac1b351e836cd9e1 13-Aug-2014 Mussa <mussa@chromium.org> Crop images to desired dimensions before comparison.

Images contain a text label showing the time at which the video was sampled.
This was left to assist later analysis. However, it takes a dependency on
text rendering that changes and breaks the tests.

We are cropping the images to exclude this label when doing a local RGB
comparison. If the comparison is successful then we return, if it is not
then we upload to bp as before.

** Together with this change, force images collected to be RGB.

BUG=chromium:393684
TEST=Ran local test. Should get more coverage from lab.

Change-Id: Ia95679066fc44a3970ff014cee1c113b032a1145
Reviewed-on: https://chromium-review.googlesource.com/212190
Reviewed-by: Rohit Makasana <rohitbm@chromium.org>
Commit-Queue: Mussa Kiroga <mussa@chromium.org>
Tested-by: Mussa Kiroga <mussa@chromium.org>
ite_utils.py
7a0aec9890b6fb1ac7c0af130b68d66760ad7078 11-Aug-2014 J. Richard Barnette <jrbarnette@chromium.org> Don't log failed imports of statsd and elasticsearch.

Various scripts in autotest may log debug messages about failing
import either statsd or elasticsearch. The messages don't seem to
add value, and they something of a nuisance. So, delete them.

BUG=None
TEST=run contrib/servo-stat, and see the messages gone

Change-Id: Ifdbac37a82ae966a14103e52dbeb3a4bdaae424d
Reviewed-on: https://chromium-review.googlesource.com/211895
Tested-by: Richard Barnette <jrbarnette@chromium.org>
Reviewed-by: Dan Shi <dshi@chromium.org>
Commit-Queue: Richard Barnette <jrbarnette@chromium.org>
ros/graphite/es_utils.py
ros/graphite/stats.py
cf731e31a5a63f1d795286330afb87038093f795 11-Aug-2014 Prashanth B <beeps@google.com> [autotest] Scheduler, drone_manager, drone_utility stats.

Adds some useful stats to drone manager, handle agents and
drone utility. These stats should help us track processes,
figure out where the drone_manager latency is coming from
and draw correlations between the number of agents scheduled
and drone refresh time.

This cl also moves site_drone_utility's kill_process method
into drone_utility, and modifies the nuke_pids function to only
wait on and kill processes that haven't already died.

TEST=Ran suites.
BUG=chromium:400486
DEPLOY=scheduler

Change-Id: I56e6ee05fa2ae1935435dbc2055d7f99a9a89e5e
Reviewed-on: https://chromium-review.googlesource.com/211769
Reviewed-by: Prashanth B <beeps@chromium.org>
Commit-Queue: Prashanth B <beeps@chromium.org>
Tested-by: Prashanth B <beeps@chromium.org>
ite_utils.py
0675a2ea9969cbfddb3305411350b9ae3a61c9fa 31-Jul-2014 Michael Liang <michaelliang@chromium.org> [autotest] Fix small bug where variable is referenced before assignment

range_list = [] should be set before we check for range constraints,
otherwise when we are doing len(range_list) that variable will be
undefined.

BUG=None
TEST=Ran stats_es_functionaltest.py

Change-Id: I1e398f56c3efde0027fd3f4900dca1d4a1ad5a13
Reviewed-on: https://chromium-review.googlesource.com/210691
Tested-by: Michael Liang <michaelliang@chromium.org>
Reviewed-by: Dan Shi <dshi@chromium.org>
Commit-Queue: Michael Liang <michaelliang@chromium.org>
ros/graphite/es_utils.py
28a3f36c0c6c8b9d69c9d32a637cac3ca6251560 31-Jul-2014 Michael Liang <michaelliang@chromium.org> [autotest] Log _type field in metadata when reporting reboot times

Before _type is defaulted to stats_metadata, but it's not very useful for
filtering what type of reboot metric the entry represents. Override the
default is useful for filtering data in es, since that is mixed with
other such as host_history, hqe_status.

The reason I choose to create three different types for reboot time
(reboot_up, reboot_down, reboot_total) is that it is simpler to filter
than base off of the graphite key Reboot.<board>wait_up/wait_down/total
This also needed refactor is es_util.post to override _type.

BUG=None
TEST=Ran generic_RebootTest on local DUT, verified posted on es.

Change-Id: Idd156d24a31496e4e3f919f0006d5e775e659710
Reviewed-on: https://chromium-review.googlesource.com/210582
Reviewed-by: Dan Shi <dshi@chromium.org>
Tested-by: Michael Liang <michaelliang@chromium.org>
Commit-Queue: Michael Liang <michaelliang@chromium.org>
ros/graphite/es_utils.py
osts/base_classes.py
2d09970d172f20558d3d1ba40379cbe03ffc7d66 25-Jul-2014 Christopher Wiley <wiley@chromium.org> Wait up to 2 minutes for ping results

We've seen recent issues where ping/arping commands time out because
of overly strict timeouts on SSH processes. Given that we're not trying
to test the reliability of the lab network, give ourselves tons of room
for error.

TEST=network_WiFi_SimpleConnect.wifi_checkWPA_TKIP still passes.
network_WiFi_GTK also passes.
BUG=chromium:393359

Change-Id: I243cf4fff6be329098db93ab847c840c0866427b
Reviewed-on: https://chromium-review.googlesource.com/209856
Tested-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
ros/network/ping_runner.py
d9a0924ab5b65852942b1dec5a021d0371dc95e2 29-Jul-2014 Michael Liang <michaelliang@chromium.org> [autotest] Move non-test-only functions to es_utils.py

Some functions such as execute_query and create_range_eq_query_multiple
are not used in the host_history script in contrib/host_history{_utils}.py

BUG=None
TEST=python stats_es_functionaltest.py --all --es_host=prod
TEST=python host_history.py --index=cautotest --type=host_history -n 10000 \
-l 24 --board=daisy

Change-Id: I6bf8039ea18441c14d6a106669cd4f584f582e89
Reviewed-on: https://chromium-review.googlesource.com/210144
Tested-by: Michael Liang <michaelliang@chromium.org>
Reviewed-by: Dan Shi <dshi@chromium.org>
Reviewed-by: Michael Liang <michaelliang@chromium.org>
Commit-Queue: Michael Liang <michaelliang@chromium.org>
ros/graphite/es_test_utils.py
ros/graphite/es_utils.py
ros/graphite/stats_es_functionaltest.py
dac0a2ce8be69f8e311f80e6cbe80bd5725475b4 29-Jul-2014 Daniel Kim <dekim@broadcom.com> autotest: Correct Broadcom 4356 device ID

Update the device ID of Broadcom 4356 PCIE with correct value(0x43ec).

BUG=chrome-os-partner:30066
TEST=Run this test on 4356-equipped system.

Change-Id: I6fb818d8e19e1547561dc81d92256f2c37623f7e
Reviewed-on: https://chromium-review.googlesource.com/210092
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Commit-Queue: Daniel Kim <dekim@broadcom.com>
Tested-by: Daniel Kim <dekim@broadcom.com>
ros/network/interface.py
3eeab769e44fd18139235b8b2d354296748405d4 24-Jul-2014 Mussa <mussa@chromium.org> Add utility function to find DUT's resolution.

We have two nyan_big devices one with standard definition
and one with high definition.

The only way to distinguish them is by querying for their resolution.

BUG=chromium:393678
TEST=Called the function on a nyan_big, got the right resolution.

Change-Id: I63c3d34c90aee459a252ea5b709e117726be9a26
Reviewed-on: https://chromium-review.googlesource.com/209706
Reviewed-by: Dan Shi <dshi@chromium.org>
Reviewed-by: Rohit Makasana <rohitbm@chromium.org>
Tested-by: Mussa Kiroga <mussa@chromium.org>
ite_utils.py
0d7474640b6a6e4334d16921fe0df79418007af9 17-Jul-2014 Michael Liang <michaelliang@chromium.org> [autotest] Log host history and categorize metadata in es by _type

Log hostname, status, time stamp, along with a debug string which
has job_id and hqe id to metadata db under the _type='host_history'.
I also modified scheduler_models to have log with _type='hqe_status'.
es_utils index now defaults to autotest instance, i.e. 'cautotest'.

BUG=None
TEST=Ran generic_RebootTest locally and verified status logged in esdb.
TEST=python stats_es_functionaltest.py --all --es_port=prod
Change-Id: I64223ed12c45c5e2adeca7630cd9d2ffd28dd2c2
DEPLOY=scheduler
Reviewed-on: https://chromium-review.googlesource.com/208711
Reviewed-by: Michael Liang <michaelliang@chromium.org>
Tested-by: Michael Liang <michaelliang@chromium.org>
Reviewed-by: Dan Shi <dshi@chromium.org>
Commit-Queue: Michael Liang <michaelliang@chromium.org>
ros/graphite/es_utils.py
ros/graphite/stats.py
e95a0eb4a4f9df2c7f569d35caed9532c9c7b974 18-Jul-2014 Michael Liang <michaelliang@chromium.org> [autotest] Support multiple equality/range constraints in es query.

Create create_range_eq_query_multiple which can take in
multiple range and equality constraints and apply them in a query
to es. Cleaned up some TODOs that no longer applied.

BUG=chromium:394451
TEST=python stats_es_functionaltest.py --all --es_host=prod

Change-Id: If765fbb7c84866194b6009c32cd4131dde585f05
Reviewed-on: https://chromium-review.googlesource.com/208893
Reviewed-by: Michael Liang <michaelliang@chromium.org>
Commit-Queue: Michael Liang <michaelliang@chromium.org>
Tested-by: Michael Liang <michaelliang@chromium.org>
Reviewed-by: Dan Shi <dshi@chromium.org>
ros/graphite/es_test_utils.py
9c881a39d8137783c769848482b88156ef0888b6 16-Jul-2014 Dan Shi <dshi@chromium.org> [autotest] Change path to /usr/local/autotest/result to relative path

The updated path is relative to mounted stateful partition during
chromeos-install.

BUG=chromium:336967
TEST=None

Change-Id: Ieb02cf6642329b8743f58f750f482f333a8cb5bc
Reviewed-on: https://chromium-review.googlesource.com/208216
Tested-by: Dan Shi <dshi@chromium.org>
Reviewed-by: Fang Deng <fdeng@chromium.org>
Commit-Queue: Dan Shi <dshi@chromium.org>
ogs_to_collect
fad8250a82a68f338e7d207ab79093c00e154195 16-Jul-2014 Michael Liang <michaelliang@chromium.org> [autotest] Log metadata along with reboot time for host

When a host reboots, we will not log reboot time in
elasticsearch db. The time recorded is the time the
stats.timer object was initialized. Included in the
metadata is the time in seconds of between
timer.start() and timer.stop(). Also refactored stats.py and
es_utils.py so that the default index for anything logged in stats
is formatted: <autotest_instance>_stats_metadata.
BUG=None
TEST=Ran generic_RebootTest, verfied results in elasticsearch db.
Change-Id: Icda3fd6d91a2808a949b9c2894a893c4bf0eadd0
Reviewed-on: https://chromium-review.googlesource.com/208142
Tested-by: Michael Liang <michaelliang@chromium.org>
Reviewed-by: Dan Shi <dshi@chromium.org>
Commit-Queue: Michael Liang <michaelliang@chromium.org>
Reviewed-by: Fang Deng <fdeng@chromium.org>
ros/graphite/es_utils.py
ros/graphite/stats.py
osts/base_classes.py
41acbf89080501db1b554c6919e1e0b3593585ff 12-Jul-2014 Derek Basehore <dbasehore@chromium.org> Add close method for Chrome

This adds a close method for the Chrome class and calls it during cleanup in
power_LoadTest. This makes power_LoadTest close Chrome when it finishes.

BUG=chromium:393027
TEST=run power_LoadTest

Change-Id: Ic3511a3c1908040a5b90e99645980b4bd35a9a68
Reviewed-on: https://chromium-review.googlesource.com/207688
Reviewed-by: Achuith Bhandarkar <achuith@chromium.org>
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Commit-Queue: Derek Basehore <dbasehore@chromium.org>
Tested-by: Derek Basehore <dbasehore@chromium.org>
ros/chrome.py
607319ac3ad78457ae7f324f7fb00acba8562463 12-Jul-2014 Christopher Wiley <wiley@chromium.org> Increase margin for ping timeouts in WiFi tests

BUG=chromium:393359
TEST=None

Change-Id: I9249f3b62b060f1107be0ce08dec2c175355d2eb
Reviewed-on: https://chromium-review.googlesource.com/207696
Tested-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
ros/network/ping_runner.py
d2d294c83fe8355d432f84771a651b1c99029bcf 25-Jun-2014 Michael Liang <michaelliang@chromium.org> [autotest] Add capability to log metadata stats module to esdb

Adds functionality to stats objects to take in optional metadata that
is reported to elasticsearch. This change also includes a functional
test script that verifies stats objects correctly report metadata
to elasticsearch. This involves adding an external package for
wrapping a connection to es. Also added mock for elasticsearch
which resulted in refactor of statsd_mock.

TEST=python stats_es_functionaltest.py --all --es_port=prod
for both http and udp (by changing shadow config)
TEST=python elasticsearch_mock_unittest.py
TEST=python statsd_mock_unittest.py
BUG=None

Change-Id: I5971e39623e465a42a46dafc61fb26a1fb129391
Reviewed-on: https://chromium-review.googlesource.com/205776
Tested-by: Michael Liang <michaelliang@chromium.org>
Reviewed-by: Dan Shi <dshi@chromium.org>
Commit-Queue: Michael Liang <michaelliang@chromium.org>
ros/graphite/elasticsearch_mock.py
ros/graphite/elasticsearch_mock_unittest.py
ros/graphite/es_test_utils.py
ros/graphite/es_utils.py
ros/graphite/stats.py
ros/graphite/stats_es_functionaltest.py
ros/graphite/stats_es_mock.py
ros/graphite/statsd_mock.py
142554e3a0e8a3a46eca032667d5bc704fd1081f 08-Jul-2014 Christopher Wiley <wiley@chromium.org> Avoid PMKSA confirmation race in network_WiFi_PMKSACaching

Some drivers report a change in frequency of the PHY before associations
are complete. Wait for the driver to report that we're on a different
BSS and ping to confirm that EAP negotiations have completed.

BUG=chromium:391810
TEST=This test continues to pass.

Change-Id: I50daf1f5f95e93eaae8dd0da7556ba19a88b3e87
Reviewed-on: https://chromium-review.googlesource.com/207036
Tested-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Peter Qiu <zqiu@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
ros/network/iw_runner.py
81691d47a355b57fbc42c111a97f804fe9b042fd 08-Jul-2014 Ben Chan <benchan@chromium.org> Modify get_arch_userspace to handle coreutils being single binary.

When coreutils is compiled as a single binary, get_arch_userspace()
previously didn't properly read the architecture information from
/bin/true using the `file` command. This CL fixes get_arch_userspace()
to properly dereference /bin/true if it's a symlink, or to read
architecture information from /bin/coreutils if /bin/true is a shebang
script.

BUG=chromium:392021
TEST=`emerge-$BOARD autotest autotest-tests`
TEST=Run security_Minijail_seccomp on daisy with CL:205886.

Change-Id: I7895e21d8503dde14ad1cf6b9ad7bd31a8e0a104
Reviewed-on: https://chromium-review.googlesource.com/206943
Reviewed-by: Alex Deymo <deymo@chromium.org>
Tested-by: Ben Chan <benchan@chromium.org>
Commit-Queue: Ben Chan <benchan@chromium.org>
ase_utils.py
772a8d6f90ca00e6d9d7c1365f1e2fcac870bdb1 01-Jul-2014 Christopher Wiley <wiley@chromium.org> Tolerate slightly different WP2 part number in network_WlanDriver

This seems to be a functioning part number, although it is unclear why
it is slightly different from the rest of our boards.

TEST=network_WlanDriver passes against leon (not affected by this
change).
BUG=chromium:387349

Change-Id: I3c5079ed15ca19fab9c7eb95e35d9f955e96386d
Reviewed-on: https://chromium-review.googlesource.com/206162
Tested-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: mukesh agrawal <quiche@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
ros/network/interface.py
0138fa681700b164747016bc276ca4384d6c6b74 28-Jun-2014 Christopher Wiley <wiley@chromium.org> Log WiFi device type to server logs in every WiFi test

This costs us nothing and makes debugging a little easier.
To enable this, make not recognizing a device not be a fatal
error until we hit network_WlanDriver, since some devices (Android)
might not have cards we recognize.

TEST=network_WlanDriver still passes. Normal WiFi tests also pass.
BUG=None

Change-Id: Ic38ca04af9dee69511f3adfaebb87a0a46e7846d
Reviewed-on: https://chromium-review.googlesource.com/206015
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Tested-by: Christopher Wiley <wiley@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
ros/network/interface.py
9adeb2a17deb873553f654beddfa5750de80434d 19-Jun-2014 Christopher Wiley <wiley@chromium.org> Allow creation of WiFi router proxies outside of WiFi Tests

This enables us to construct just a LinuxRouter, instead of depending on
the WiFiTestContextManager and LinuxRouter to handle this process.

TEST=network_WiFi_SimpleConnect.wifi_checkWPA_TKIP still passes
BUG=chromium:365879

Change-Id: I3d79b84aafb7262801b3b93125025cab0ad17488
Reviewed-on: https://chromium-review.googlesource.com/204744
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Tested-by: Christopher Wiley <wiley@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
ros/network/ping_runner.py
f53fffb46c83431ad30c6aed8ca4b6a23bbdc69c 27-Jun-2014 Daniel Kim <dekim@broadcom.com> autotest: Add Broadcom 4356 PCIE to network_WlanDriver

Add vendor/product IDs and associate it with the kernel 3.10(wireless-3.8)
driver.
BUG=chrome-os-partner:30066
TEST=Run this test on 4356-equipped system.

Change-Id: I9ad311a6263b4a7d140c40af50b0af83cd41b18b
Reviewed-on: https://chromium-review.googlesource.com/205837
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Commit-Queue: Daniel Kim <dekim@broadcom.com>
Tested-by: Daniel Kim <dekim@broadcom.com>
ros/network/interface.py
da3a19c0e2e16112ce18ecd2caf2f42d58967744 12-Jun-2014 Alexander Alekseev <alemate@chromium.org> desktopui_ScreenLocker telemetry test should listen to DBUS ScreenLocked event.

BUG=chromium:338740
TEST=manual

Change-Id: I2018494d3813c29263cc05ce16a959de2991bac0
Reviewed-on: https://chromium-review.googlesource.com/203550
Reviewed-by: Alexander Alekseev <alemate@chromium.org>
Tested-by: Alexander Alekseev <alemate@chromium.org>
Reviewed-by: Chris Masone <cmasone@chromium.org>
Commit-Queue: Alexander Alekseev <alemate@chromium.org>
ros/session_manager.py
1d8803b92bb74d3c9cf6eb17fa3ee8eee112357e 19-Jun-2014 Dan Shi <dshi@chromium.org> [autotest] Take a screenshot when a test fails.

If X is not running, no screenshot will be taken.

BUG=chromium:383605
TEST=test_that 172.22.30.146 dummy_Fail
confirm screenshot is created, e.g.,
/tmp/test_that_results_rQiKvU/results-1-dummy_Fail/dummy_Fail.Fail/debug/dummy_Fail.Fail-fail-0.png

Change-Id: Ic044f611ab6f5d65d8ca973f9847346b3599891c
Reviewed-on: https://chromium-review.googlesource.com/204689
Commit-Queue: Dan Shi <dshi@chromium.org>
Tested-by: Dan Shi <dshi@chromium.org>
Reviewed-by: Dan Shi <dshi@chromium.org>
ite_utils.py
est.py
faaecd89e5cf05d2292bd7515178f759b818eebb 29-May-2014 Christopher Wiley <wiley@chromium.org> Don't set antenna mask for devices that don't support it

Newer iwlwifi parts don't support this antenna mask, and
attempting to set it causes test to fail when the command
errors out complaining about this. Work around this by
not setting the antenna mask if that operation is not supported.

BUG=chromium:377044
TEST=iwlwifi based parts can set up APs in the 2.4Ghz range after
this patch.

Change-Id: Ife691640c8961d7c19d8a1688718fecd4abe9e04
Reviewed-on: https://chromium-review.googlesource.com/203960
Reviewed-by: Peter Qiu <zqiu@chromium.org>
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Tested-by: Christopher Wiley <wiley@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
ros/network/iw_runner.py
4e1d6e94ad5ba2bc32a4f48523db5ff7fed1b706 18-Jun-2014 Christopher Wiley <wiley@chromium.org> Refactor logic to detect DUT WiFi chip type to be usable remotely

BUG=chromium:385942
TEST=network_WlanDriver still passes against my lumpy.

Change-Id: I13c82651178b8deb3069b3a2066051d1804a58e8
Reviewed-on: https://chromium-review.googlesource.com/204394
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Tested-by: Christopher Wiley <wiley@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
ros/network/interface.py
7a61d2f7b1c221ddd30b60e9b8d90d3052fc60e4 23-May-2014 Gwendal Grignou <gwendal@chromium.org> Add suspend method.

Add method to be able to suspend machines from server side
without calling a client test: this way, we can suspend for hours.

Remove dummy_Suspend.

TEST=Run hardware_StorageStress/control.suspend
Run hardware_StorageStress/control.quick
Run kernel_MemoryRamoop/control

BUG=chromium:376881

Change-Id: Ic7e6624485e4473a90d575ed53ea89bb164724e0
Reviewed-on: https://chromium-review.googlesource.com/201385
Reviewed-by: Gwendal Grignou <gwendal@chromium.org>
Commit-Queue: Gwendal Grignou <gwendal@chromium.org>
Tested-by: Gwendal Grignou <gwendal@chromium.org>
rror.py
osts/base_classes.py
dc0daf27c5058e6e619fcc5f9526b506505279dd 18-Jun-2014 Scott Zawalski <scottz@chromium.org> Revert "Take a screenshot when a test unexpectedly fails."


This addition makes the assumption that we will always be running tests with X.


BUG=chromium:383605

This reverts commit 1b61f49389c5d690e942748398cd8fbd01a7ce91.

Change-Id: I959de731104714e21a411e9faa009bb7ef097377
Reviewed-on: https://chromium-review.googlesource.com/204411
Reviewed-by: Scott Zawalski <scottz@chromium.org>
Tested-by: Scott Zawalski <scottz@chromium.org>
est.py
236582492318a34649350ffc34752dbf310a59c9 11-Jun-2014 Achuith Bhandarkar <achuith@chromium.org> Attempt to clear the TPM with clear_tpm_owner_request.

If we don't find a TPM password, try clear_tpm_owner_request as well.
Also add IsTPMAvailable() so tests can check if ClearTPMServer was successful.

BUG=chromium:342884
TEST=enterprise_RemoraRequisition

Change-Id: Ib767ac58c2088f9ec0fef6c040f3b8f560e336e2
Reviewed-on: https://chromium-review.googlesource.com/203478
Reviewed-by: Bartosz Fabianowski <bartfab@chromium.org>
Reviewed-by: Darren Krahn <dkrahn@chromium.org>
Commit-Queue: Achuith Bhandarkar <achuith@chromium.org>
Tested-by: Achuith Bhandarkar <achuith@chromium.org>
ros/tpm_utils.py
1b61f49389c5d690e942748398cd8fbd01a7ce91 17-Jun-2014 Achuith Bhandarkar <achuith@chromium.org> Take a screenshot when a test unexpectedly fails.

BUG=chromium:383605
TEST=manual

Change-Id: Id4dd636644b0cbff2abab8a8b6058ad752ac9cde
Reviewed-on: https://chromium-review.googlesource.com/204380
Tested-by: Achuith Bhandarkar <achuith@chromium.org>
Reviewed-by: Rohit Makasana <rohitbm@chromium.org>
Commit-Queue: Achuith Bhandarkar <achuith@chromium.org>
est.py
af4e4a6932ecbb6744e48f4f9e2dcc12f3ba9d50 12-Jun-2014 Artem Rakhov <arakhov@chromium.org> Bluetooth SDP autotest: tests for invalid Service Attribute Requests

This CL adds tests for invalid Service Attribute Requests:
TP/SERVER/SA/BI-01-C - invalid record handle
TP/SERVER/SA/BI-02-C - invalid syntax of request
TP/SERVER/SA/BI-03-C - invalid size of request in header

It also adds corresponding parameters to service_attribute_request()
method of bluetooth_sdp_socket() to be able to send intentionally
invalid requests.

BUG=chromium:329044
TEST=test_that --board ${BOARD} ${HOSTNAME} bluetooth_SDP_ServiceAttributeRequest

Change-Id: Idd8d7fcc5ff807af03d4d5f50a8927501f402ac9
Reviewed-on: https://chromium-review.googlesource.com/203560
Tested-by: Artem Rakhov <arakhov@chromium.org>
Reviewed-by: Scott James Remnant <keybuk@chromium.org>
Reviewed-by: Prashanth B <beeps@chromium.org>
Reviewed-by: Arman Uguray <armansito@chromium.org>
Commit-Queue: Artem Rakhov <arakhov@chromium.org>
ros/bluetooth/bluetooth_sdp_socket.py
ros/bluetooth/bluetooth_tester_xmlrpc_server.py
a8e6dab06e55499d3c9671a9657650fbdc845a9a 29-May-2014 Charlie Mooney <charliemooney@chromium.org> Add a metric for measuring how long host.reboot takes

1. Add three metrics: total_time, wait_up, wait_down.
2. Metrics are configured to report to graphite backend under the path
Reboot.<boardname> This happens everytime host.wait_for_restart() is called.
3. Importing statsd causes error in VMTest, so I reversed ordering in stats.py
4. Added default value to statsd server and port, since VMTest doesn't actually use statsd package.

BUG=chromium:237255
TEST=Ran generic_RebootTest locally and verified stats were reported graphite in chromeos-stats.

Change-Id: I047339852035abad5614121e60786fdd446fc745
Reviewed-on: https://chromium-review.googlesource.com/203148
Tested-by: Michael Liang <michaelliang@chromium.org>
Reviewed-by: Dan Shi <dshi@chromium.org>
Commit-Queue: Dan Shi <dshi@chromium.org>
ros/graphite/stats.py
osts/base_classes.py
c861752763c8cb0d780a2933996e53af419d6fa3 10-Jun-2014 Chris Sosa <sosa@chromium.org> Re-land "Rollback: check for can_rollback before performing rollback."

This CL is a re-land of 4acbaa6864842f3464cf8816b01faf92424ead06.
In addition to re-landing it adds a build number check and unittests
that verify this functionality.

BUG=chromium:366508
TEST=Unittests

Change-Id: I6fbed8ca9d627526e35a189e2cdae037ae2d3ed1
Reviewed-on: https://chromium-review.googlesource.com/203162
Tested-by: Chris Sosa <sosa@chromium.org>
Reviewed-by: Alex Vakulenko <avakulenko@chromium.org>
Commit-Queue: Chris Sosa <sosa@chromium.org>
ros/autoupdater.py
ros/autoupdater_unittest.py
6cb16168061928cda805d1093ac52763cb0f28e5 05-Jun-2014 Achuith Bhandarkar <achuith@chromium.org> enterprise_RemoraRequisitionServer.

Clearing the tpm and rebooting is handled by the server-side test.
Saving the tpm password is handled by the client test.
Also added utility methods to remotely access TPM status,
fetch the TPM password, clear the TPM, remove state from the DUT,
reboot the machine.

BUG=chromium:342884
TEST=manual

Change-Id: Ib56dd3352b429b1a131d260eecf6d970c90a8ef8
Reviewed-on: https://chromium-review.googlesource.com/202637
Reviewed-by: Achuith Bhandarkar <achuith@chromium.org>
Tested-by: Achuith Bhandarkar <achuith@chromium.org>
Commit-Queue: Achuith Bhandarkar <achuith@chromium.org>
ros/enrollment.py
ros/tpm_utils.py
5e561e1a0f40647dbc5b5b6994952881d28d8f17 06-Jun-2014 Artem Rakhov <arakhov@chromium.org> Bluetooth SDP autotest: tests for existing attributes

This CL adds the support for continuation state in Service Attribute
Requests and a test for it. It also adds some tests for existing
attributes of existing services.

BUG=chromium:329044
TEST=test_that --board ${BOARD} ${HOSTNAME} bluetooth_SDP_ServiceAttributeRequest

Change-Id: Ica7626be9b46ebb238e169ee0efea091761a35d1
Reviewed-on: https://chromium-review.googlesource.com/202788
Tested-by: Artem Rakhov <arakhov@chromium.org>
Reviewed-by: Fang Deng <fdeng@chromium.org>
Reviewed-by: Arman Uguray <armansito@chromium.org>
Commit-Queue: Artem Rakhov <arakhov@chromium.org>
ros/bluetooth/bluetooth_sdp_socket.py
9f6a0ae94b7e8739ced5931241fe9e482e142628 05-Jun-2014 mussa <mussa@google.com> Add method to get the chromeos release version.

BUG=chromium:374981
TEST=Used the api and appended result to a filename. Checked that filename
contained the expected build number.

Change-Id: I10446b6d050a14d59f77b1eb793a1fc0d9bc9ade
Reviewed-on: https://chromium-review.googlesource.com/202774
Reviewed-by: Alex Miller <milleral@chromium.org>
Reviewed-by: Rohit Makasana <rohitbm@chromium.org>
Commit-Queue: Rohit Makasana <rohitbm@chromium.org>
Tested-by: Rohit Makasana <rohitbm@chromium.org>
ite_utils.py
da8c60af1e1e3ee97170c700d0b72991687e35a2 03-Jun-2014 Michael Liang <michaelliang@chromium.org> [autotest] Migrate graphite directory to client/common_lib/cros

This change allows us to report stats in client tests.
1. Change import paths for all files that import modules from graphite
2. Clean up some unused modules
Related CL: https://chromium-review.googlesource.com/#/c/202467/
BUG=chromium:237255
TEST=Ran scheduler locally, scheduled reboot jobs, verified stats such as monitor_db_cleanup.user_cleanup._cleanup were reported on chromeos-stats.
DEPLOY = apache, scheduler, host_scheduler
Change-Id: Iebfe3b8acc1c363a0b70ea555744e85d1367cb67
Reviewed-on: https://chromium-review.googlesource.com/202727
Reviewed-by: Dan Shi <dshi@chromium.org>
Commit-Queue: Michael Liang <michaelliang@chromium.org>
Tested-by: Michael Liang <michaelliang@chromium.org>
ros/dev_server.py
ros/graphite/__init__.py
ros/graphite/carbon.py
ros/graphite/common.py
ros/graphite/stats.py
ros/graphite/statsd_mock.py
ros/graphite/statsd_mock_unittest.py
osts/base_classes.py
4f8df4306022e5805fa0092dd32373abcc1a7d67 07-Jun-2014 Prashanth B <beeps@chromium.org> Revert "[autotest] Add helper functions to log contents of a directory."

This reverts commit 55e9cd187f20097b163b2ef36434df1e84235e77.

Change-Id: I132f7c2b738cbfaa0871a9e0422b4ca9a62e5061
Reviewed-on: https://chromium-review.googlesource.com/202976
Reviewed-by: Prashanth B <beeps@chromium.org>
Commit-Queue: Prashanth B <beeps@chromium.org>
Tested-by: Prashanth B <beeps@chromium.org>
ase_packages.py
ase_utils.py
5f8c43f20c62fb6e4e3f487c5de73172b7c3cdfb 04-Jun-2014 Dan Shi <dshi@chromium.org> [autotest] Move logs_to_collect to client/common_lib

This file needs to be on test image for chromeos_install to read, thus move it
to client/common_lib.

BUG=chromium:336978
TEST=None

Change-Id: Ie6b9d45b4fcaca3fe8947ee936f6021dabd145c6
Reviewed-on: https://chromium-review.googlesource.com/202584
Commit-Queue: Dan Shi <dshi@chromium.org>
Tested-by: Dan Shi <dshi@chromium.org>
Reviewed-by: Fang Deng <fdeng@chromium.org>
ogs_to_collect
43090857c12c68e30cde9741283c32d4d6d7a516 05-Jun-2014 Daniel Kurtz <djkurtz@chromium.org> client/base_utils: fix 'str' and 'int' concat issue

Previously we would get a python exception if a nuke_subprocess() returned
None:
TypeError: cannot concatenate 'str' and 'int' objects

I'm still not sure how/why that would happen, but this fixes the obvious
conversion issue.

Signed-off-by: Daniel Kurtz <djkurtz@chromium.org>

BUG=chromium:379603
TEST=none

Change-Id: Ibde3dc3ba9c8eae8086349835c2003a51aab6cf8
Reviewed-on: https://chromium-review.googlesource.com/202652
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Commit-Queue: Daniel Kurtz <djkurtz@chromium.org>
Tested-by: Daniel Kurtz <djkurtz@chromium.org>
ase_utils.py
8b811e05e984afbdbdba57d0695279e3f28430de 02-Jun-2014 Puthikorn Voravootivat <puthik@chromium.org> fio_util: Change description and graph name in perf_measurements

We send FIO result perf data to chrome perf dashboard but the
data from same platform with different internal disk (Example:
falco 16G and 32G) get mixed in the same graph which makes
the results to be not meaningful. This patch fixes that by
separate each disk model/size to its own graph.

Also move util to where it should be
- Move fio_util from client/common_lib to client/bin
- Move get_disk_size() from site_utils to base_utils

BUG=chromium:379468
TEST=Run in falco/peach_pit. Get desired result in perf_measurements

Change-Id: I50518ce541cb4b2fc21b67db1bbd5de82ddecc6d
Reviewed-on: https://chromium-review.googlesource.com/202331
Reviewed-by: Gwendal Grignou <gwendal@chromium.org>
Commit-Queue: Puthikorn Voravootivat <puthik@chromium.org>
Tested-by: Puthikorn Voravootivat <puthik@chromium.org>
io_util.py
fc81be792d4e44542aacd7b41d0c1bce16d3cb2a 03-Jun-2014 Kris Rambish <krisr@chromium.org> Return None if the scan returns an empty list.

If the None if scan returns an empty list. We have seen where if the
interface is down it returns a status_code of 0. This is what the
output looks like:
14:01:06 INFO | autoserv| Scan exit status: 0
14:01:06 INFO | autoserv| Scan stdout:
14:01:06 INFO | autoserv| Scan stderr: 3.94

BUG=None
TEST=Manual; ran connect/disconnect

Change-Id: I455e5c182502497c7829cf999cbb7ceb3ce5f4c2
Reviewed-on: https://chromium-review.googlesource.com/202466
Tested-by: Kris Rambish <krisr@chromium.org>
Reviewed-by: Tien Chang <tienchang@chromium.org>
Reviewed-by: Bindu Mahadev <bmahadev@chromium.org>
Commit-Queue: Kris Rambish <krisr@chromium.org>
ros/network/iw_runner.py
feedba871f9ea080e3562f7d9875f09e63468c55 08-May-2014 Chris Sosa <sosa@chromium.org> Add auth support to client_lib and test to be able to use against the live server.

In this CL I've added various oauth helpers to convert codes to auth tokens
for use when interacting with our actual servers. In order to facilitate quick
testing I've modified this test script to either test against the fake
server OR the live server based on whether you pass in an auth code
to the command line (see usage).

There's still a couple issues (left as TODO's here) but this seems like
a good point for review.

BUG=chromium:361204
TEST=Tested up to command insertion with live server + fake server + unittests

Change-Id: Ic7166ddaa50d171dbf9a8cbb4b50b736f79a32b6
Reviewed-on: https://chromium-review.googlesource.com/198784
Tested-by: Chris Sosa <sosa@chromium.org>
Reviewed-by: Alex Vakulenko <avakulenko@chromium.org>
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Commit-Queue: Chris Sosa <sosa@chromium.org>
ros/fake_device_server/README
ros/fake_device_server/client_lib/client_lib_test.py
ros/fake_device_server/client_lib/commands.py
ros/fake_device_server/client_lib/common_client.py
ros/fake_device_server/client_lib/devices.py
ros/fake_device_server/client_lib/oauth_helpers.py
ros/fake_device_server/client_lib/registration.py
ros/fake_device_server/commands.py
ros/fake_device_server/devices.py
ros/fake_device_server/registration_tickets.py
ros/fake_device_server/server.py
b7d2116ad62dd09c52791c8f27dfa61b9df186b9 22-May-2014 Simran Basi <sbasi@chromium.org> [autotest] Be able to specify LATEST build as target build.

This change allows the user to specify running a suite against
a build name in the format [builder]/LATEST. This allows for users
to just use the latest build without looking it up.

BUG=chromium:375354
TEST=Tested running from run_suite, and afe. Then created a recurring
job that worked as desired.
DEPLOY=apache
CQ-DEPEND=Iddc2ab2b0675591b53311ebe9e1692d0c0859377

Change-Id: I5c0cd9ad06bd016b539902248e193115704ae243
Reviewed-on: https://chromium-review.googlesource.com/200822
Reviewed-by: Simran Basi <sbasi@chromium.org>
Tested-by: Simran Basi <sbasi@chromium.org>
Commit-Queue: Simran Basi <sbasi@chromium.org>
ros/dev_server.py
5fec82c7a2f6315874629f7c0fed46364cecd9ee 27-May-2014 mussa <mussa@google.com> Fix minor issues in video screenshot tests.

Ran tests only on boards we care about, for the rest raise TestNAError

We had splitted our CL to multiple smaller changelists. We fixed issues
in those CLs iteratively.

This CL makes minor fixes so that the whole things works again.

BUG=chromium:363815
TEST=Ran test locally that use the whole code.

Change-Id: I155acb6992f2449c8b20596eb5c83c620da20c76
Reviewed-on: https://chromium-review.googlesource.com/201698
Reviewed-by: Rohit Makasana <rohitbm@chromium.org>
Reviewed-by: Kris Rambish <krisr@chromium.org>
Commit-Queue: Rohit Makasana <rohitbm@chromium.org>
Tested-by: Rohit Makasana <rohitbm@chromium.org>
ile_utils.py
9867b761b75821cb1e0c12a2f0879dd7c948264e 22-May-2014 Puthikorn Voravootivat <puthik@chromium.org> fio_utils: Don't send useless data to dashboard

We send write/read bandwitch/latency to perf dashboard but
for job that have only write workload. There is no need result
for read IO and vice versa. Also there is no need to send perf
for job with only trim workload.

BUG=chromium:373556
TEST=Run the test. Verify the perf_measurements result file.

Change-Id: I7be587f1b451ac29aa5798076d9cfcef4bae8d1c
Reviewed-on: https://chromium-review.googlesource.com/201131
Reviewed-by: Gwendal Grignou <gwendal@chromium.org>
Commit-Queue: Puthikorn Voravootivat <puthik@chromium.org>
Tested-by: Puthikorn Voravootivat <puthik@chromium.org>
io_util.py
9a5b9856e2ad6cbf4f929bc58d7d90316298c041 22-May-2014 Kees Cook <keescook@chromium.org> get_arch: restore remote execution capability

I880424f05518fdfcce81666fd813bb5a5394d2ad changed "get_arch" and removed
the ability to run on remote machines (but left the API). This was causing
security_kASLR to misdetect architecture. Instead, leave the
short-circuit path and add the alternate run_function path back.

BUG=chromium:327040
TEST=nyan correctly XFAILs security_kASLR again

Change-Id: I3df2238823bf8da72e2fb2f32dfd0c05e32b34a7
Signed-off-by: Kees Cook <keescook@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/201137
Reviewed-by: Jorge Lucangeli Obes <jorgelo@chromium.org>
Reviewed-by: Julius Werner <jwerner@chromium.org>
ase_utils.py
06b98e260ffbabbd07a8169bcff1316707cb4279 13-May-2014 Achuith Bhandarkar <achuith@chromium.org> Support for Remora enrollment.

* Methods for enterprise enrollment of Remora devices.
* Methods to save TPM password and clear TPM.
* utility function to read credentials from a file.
* sample test that exercises enrollment.

BUG=chromium:342884
TEST=enterprise_RemoraRequisition

Change-Id: Ie872e9ba0702474d9f605c5520577cf4e0ad21d2
Reviewed-on: https://chromium-review.googlesource.com/199560
Tested-by: Achuith Bhandarkar <achuith@chromium.org>
Commit-Queue: Mattias Nissler <mnissler@chromium.org>
Reviewed-by: Achuith Bhandarkar <achuith@chromium.org>
Commit-Queue: Achuith Bhandarkar <achuith@chromium.org>
ros/enrollment.py
4238478cce8e1c0ddd29748be570abba5b6e9fc6 09-May-2014 J. Richard Barnette <jrbarnette@chromium.org> Remove support for EXPERIMENTAL tests.

With this change, setting EXPERIMENTAL in a control file typically
causes an error message. Additionally, the presubmit hook for
control files will fail if there is a setting for EXPERIMENTAL.

BUG=None
TEST=Run dummy suite, test upload with an experimental test

Change-Id: Ie83c59321dcc19e51725c79a57799c751ac8f328
Reviewed-on: https://chromium-review.googlesource.com/200112
Tested-by: Richard Barnette <jrbarnette@chromium.org>
Reviewed-by: Dan Shi <dshi@chromium.org>
Commit-Queue: Richard Barnette <jrbarnette@chromium.org>
ontrol_data.py
425b1a76ed02ab0d74d8841b1322432c74c2bd60 15-May-2014 Puthikorn Voravootivat <puthik@chromium.org> fio_parser: Add bandwidth and 99% lat to perf dashboard

BUG=chromium:373556
TEST=manual. Run test with test_that and check perf_mersurements
TEST=run perf_uploader_unittest.py

Change-Id: I891c7d99377ba16f55e2f48db750bf69cfe4bdb0
Reviewed-on: https://chromium-review.googlesource.com/199953
Commit-Queue: Puthikorn Voravootivat <puthik@chromium.org>
Tested-by: Puthikorn Voravootivat <puthik@chromium.org>
Reviewed-by: Gwendal Grignou <gwendal@chromium.org>
io_util.py
169613678a67b5603c50699de8c02c896c02a945 08-May-2014 Puthikorn Voravootivat <puthik@chromium.org> fio_util: Add code generate chart from log file

Parse fio log file and put it in javascript to generate
graph using Google Charts API. developers.google.com/chart

BUG=chrome-os-partner:27472
TEST=Tested in falco. manually check graph

Change-Id: I17ec8e15e8d33995b0bf1a46e68624e77b9af79f
Reviewed-on: https://chromium-review.googlesource.com/198762
Reviewed-by: Puthikorn Voravootivat <puthik@chromium.org>
Tested-by: Puthikorn Voravootivat <puthik@chromium.org>
Commit-Queue: Puthikorn Voravootivat <puthik@chromium.org>
io_util.py
8e4231ad6e828363fc554c7f87c94a27705a3687 13-May-2014 Richard Barnette <jrbarnette@chromium.org> Revert "Remove support for EXPERIMENTAL tests."

This reverts commit d16217ee78da7f0ffcf5b6fb5e67fdaccfd25264.

This change will break testing in prod until we remove references
to EXPERIMENTAL from all branch builds. So, we need to go merge
to branches before we make this change.

Change-Id: Icde22ded9fbb32a7b25b43bae94a079ea609c653
Reviewed-on: https://chromium-review.googlesource.com/199416
Commit-Queue: Richard Barnette <jrbarnette@chromium.org>
Tested-by: Richard Barnette <jrbarnette@chromium.org>
Reviewed-by: Richard Barnette <jrbarnette@chromium.org>
ontrol_data.py
d16217ee78da7f0ffcf5b6fb5e67fdaccfd25264 09-May-2014 J. Richard Barnette <jrbarnette@chromium.org> Remove support for EXPERIMENTAL tests.

With this change, setting EXPERIMENTAL in a control file typically
causes an error message. Additionally, the presubmit hook for
control files will fail if there is a setting for EXPERIMENTAL.

BUG=None
TEST=Run dummy suite, test upload with an experimental test

Change-Id: I328f8416eb84b1b09d848bfc93a2816018f649d9
Reviewed-on: https://chromium-review.googlesource.com/199059
Reviewed-by: Dan Shi <dshi@chromium.org>
Tested-by: Richard Barnette <jrbarnette@chromium.org>
Commit-Queue: Richard Barnette <jrbarnette@chromium.org>
ontrol_data.py
fd5b805a7c4b2ede054a7b82f8be2d0ba8200baf 06-May-2014 mussa <mussa@google.com> Add file utilities to support screenshot capturing.

Adds a file_utils.py file which provides methods to create and remove file/dirs.
These are wrappers around python utilies, however, the create method for example,
will not fail if the file/directory already exists.

BUG=chromium:363815
TEST=Ran local tests that use file_utils.py. Need to run existing tests that use site_utils.py

Adds a method in site_utils.py to take a cropped screenshots. We are only cropping
by height, adjusting width to retain aspect ratio.
We don't need a crop by width method at this time and so we do not provide it with this change.

Change-Id: I9f0943dc518c7ad96044d0a314c4422bba0a087f
Reviewed-on: https://chromium-review.googlesource.com/198395
Reviewed-by: Kris Rambish <krisr@chromium.org>
Reviewed-by: Rohit Makasana <rohitbm@chromium.org>
Commit-Queue: Rohit Makasana <rohitbm@chromium.org>
Tested-by: Rohit Makasana <rohitbm@chromium.org>
ile_utils.py
ite_utils.py
009fe7f1829841e3d13fa544550d805738487105 07-May-2014 J. Richard Barnette <jrbarnette@chromium.org> [autotest] Shorten the wget timeout to 20 minutes.

We're suffering from excessively long 'wget' commands trying to
download the packages.checksum file. This changes all 'wget'
commands for package fetching to time out after 20 minutes,
instead of the default 1 hour. The 20 minute value is selected
since tests in the lab generally time out after that much time
anyway.

BUG=chromium:346312
TEST=None

Change-Id: Ib8d6fb15a4127d062ebc930526530bfb72b42cf7
Reviewed-on: https://chromium-review.googlesource.com/198761
Tested-by: Richard Barnette <jrbarnette@chromium.org>
Commit-Queue: Richard Barnette <jrbarnette@chromium.org>
Reviewed-by: Prashanth B <beeps@chromium.org>
ase_packages.py
04be2bd5e4666a5c253e9c30ab20555e04286032 08-May-2014 Ilja H. Friedel <ihf@chromium.org> Autotest: Change logging.warn() to logging.warning().

logging.warn() is deprecated. See
http://bugs.python.org/issue13235

Substitution was performed via
~/cros/src/third_party/autotest/files$ find ./ -type f | xargs sed -i 's/logging.warn(/logging.warning(/'

BUG=None.
TEST=There should be one-- and preferably only one --obvious way to do it.

Change-Id: Ie5665743121a49f7fbd5d1f47896a7c65e87e489
Reviewed-on: https://chromium-review.googlesource.com/198793
Commit-Queue: Ilja Friedel <ihf@chromium.org>
Tested-by: Ilja Friedel <ihf@chromium.org>
Reviewed-by: Alex Miller <milleral@chromium.org>
ase_barrier.py
ase_utils.py
ase_utils_unittest.py
ros/autoupdater.py
osts/base_classes.py
756c63a55efb4464f0d48693e0e0409ee046ce12 06-May-2014 Kris Rambish <krisr@chromium.org> Return an empty list if a SSID is not found.

There are three states we are looking for when performing a scan:
SSID is found, returned in a list
SSID is not found, iw scan is working correctly, return []
SSID is not found, iw scan is broken, return None

This fix handles the second scenario.

BUG=None
TEST=Ran connect disconnect test.

Change-Id: I0b4bd267bd617719b12ccb475be2b40facc3e402
Reviewed-on: https://chromium-review.googlesource.com/198431
Commit-Queue: Kris Rambish <krisr@chromium.org>
Tested-by: Kris Rambish <krisr@chromium.org>
Reviewed-by: Bindu Mahadev <bmahadev@chromium.org>
ros/network/iw_runner.py
29d2af50857a52736cfa625c6f96321198747a89 02-May-2014 Gwendal Grignou <gwendal@chromium.org> Fix platform_CryptohomeFio test

Useful for testing ecryptfs performance.
Move fio related function to common_lib.

BUG=chromium:369537
TEST=Ran hardware_StorageFio.hwqual and platform_CryptohomeFio

Change-Id: Ifba163637338a8c19910314cab2cd5b3de4f6dff
Reviewed-on: https://chromium-review.googlesource.com/198041
Reviewed-by: Puthikorn Voravootivat <puthik@chromium.org>
Reviewed-by: Gwendal Grignou <gwendal@chromium.org>
Commit-Queue: Gwendal Grignou <gwendal@chromium.org>
Tested-by: Gwendal Grignou <gwendal@chromium.org>
io_util.py
12dd813c417478dffb4bf66994eebbb125db7a27 29-Apr-2014 Chris Sosa <sosa@chromium.org> Add a small Python client library to communicate with the buffet server.

This CL adds a small client library for interacting with the
fake_device_server. Currently it does not support the actual service
as I do not pass all the necessary HEADERS to auth needed (which I will
add later).

I've also added an integration test script that runs through all the common
client methods / server interactions for testing this library.

BUG=chromium:361204
TEST=Ran integration test.

Change-Id: Ieb0c4d594557fabbc3871f549e932c87f73afb05
Reviewed-on: https://chromium-review.googlesource.com/197430
Tested-by: Chris Sosa <sosa@chromium.org>
Reviewed-by: Alex Vakulenko <avakulenko@chromium.org>
Commit-Queue: Alex Vakulenko <avakulenko@chromium.org>
ros/fake_device_server/README
ros/fake_device_server/client_lib/__init__.py
ros/fake_device_server/client_lib/client_lib_test.py
ros/fake_device_server/client_lib/commands.py
ros/fake_device_server/client_lib/common.py
ros/fake_device_server/client_lib/common_client.py
ros/fake_device_server/client_lib/devices.py
ros/fake_device_server/client_lib/registration.py
ros/fake_device_server/commands.py
ros/fake_device_server/devices.py
ros/fake_device_server/registration_tickets.py
ros/fake_device_server/registration_tickets_unittest.py
ros/fake_device_server/server.py
9f85240d78a0144f741987e64f795972bd7d0dfc 15-Apr-2014 Owen Lin <owenlin@chromium.org> common_lib/test.py - Make tmpdir and resultsdir writable for all.

BUG=chromium:362220
TEST=run video_VDAPerf on an arm chromebook

We may write to those directly as chronos instead of root.

Change-Id: I485a712af57442c7e719477fd4b20b5e92eb23e0
Reviewed-on: https://chromium-review.googlesource.com/195121
Reviewed-by: Yuli Huang <yuli@chromium.org>
Tested-by: Owen Lin <owenlin@chromium.org>
Commit-Queue: Owen Lin <owenlin@chromium.org>
est.py
eb6f4814bb25a18dd14e6d73870646aecb43729e 30-Apr-2014 Todd Broch <tbroch@chromium.org> Re-enable debug logging for autotests using telemetry.

BUG=chromium:360890
TEST=run any telemetry test and see debug messages in debug/<test>.DEBUG
logfile after instantiation of chrome.

Change-Id: Ib1eeeb38c0a040974f995c84aadf0c97c3482774
Reviewed-on: https://chromium-review.googlesource.com/197565
Reviewed-by: Derek Basehore <dbasehore@chromium.org>
Tested-by: Todd Broch <tbroch@chromium.org>
Reviewed-by: Achuith Bhandarkar <achuith@chromium.org>
Commit-Queue: Todd Broch <tbroch@chromium.org>
ros/chrome.py
5d6c26c05b32147f01e053a60e9af4a29df0be5d 25-Apr-2014 Achuith Bhandarkar <achuith@chromium.org> Do not clear enterprise policy for login_OwnershipNotRetaken.

BUG=chromium:367005,chromium:358728
TEST=manual

Change-Id: I218ed450135628d9654f211ee2beda20d12236eb
Reviewed-on: https://chromium-review.googlesource.com/197054
Tested-by: Achuith Bhandarkar <achuith@chromium.org>
Reviewed-by: Chris Masone <cmasone@chromium.org>
Commit-Queue: Achuith Bhandarkar <achuith@chromium.org>
ros/chrome.py
ebf3df32a3bfa32782ffdc8e0ce5bf6d65734d5d 01-Apr-2014 Artem Rakhov <arakhov@chromium.org> Bluetooth SDP autotest: basic Service Attribute Request

Service Attribute Request is used to retrieve specified attribute values from
a specific service record. The service record handle of the desired service
record and a list of desired attribute IDs to be retrieved from that service
record are supplied as parameters.

This CL adds Service Attribute Request support to SDP Socket class,
as well as to all classes that are used to expose it's methods for autotest.
The CL also implements the very basic test for this type of request,
which is 'TP/SERVER/SA/BV-01-C' from SDP test specification.

BUG=chromium:329044
TEST=test_that --board ${BOARD} ${HOSTNAME} bluetooth_SDP_ServiceAttributeRequest

Change-Id: I4b236a331fea661584c396a2c3ff937bf91c2102
Reviewed-on: https://chromium-review.googlesource.com/196404
Tested-by: Artem Rakhov <arakhov@chromium.org>
Reviewed-by: Scott James Remnant <keybuk@chromium.org>
Commit-Queue: Artem Rakhov <arakhov@chromium.org>
ros/bluetooth/bluetooth_sdp_socket.py
ros/bluetooth/bluetooth_tester_xmlrpc_server.py
4acbaa6864842f3464cf8816b01faf92424ead06 24-Apr-2014 Chris Sosa <sosa@chromium.org> Revert "Rollback: check for can_rollback before performing rollback."

This reverts commit 4c50c54c3cd1b4c9360b27b31aa276b215dcaab9.

Due to: https://code.google.com/p/chromium/issues/detail?id=366508

can_rollback was added in R36. I need to gate this (can_rollback) with a version check.

BUG=chromium:366508
TEST=revert

Change-Id: Id2f6201fd01652895ccfbc6eded3a2356c582fdc
Reviewed-on: https://chromium-review.googlesource.com/196805
Reviewed-by: Chris Sosa <sosa@chromium.org>
Tested-by: Chris Sosa <sosa@chromium.org>
ros/autoupdater.py
e3bc24b7b77480d4bb0b1562bb30ea79eff85626 17-Mar-2014 Fang Deng <fdeng@chromium.org> [autotest] Dyanamic suite schedule retries

Make dynamic schedule a new job for a test that
requires retry if the original job failed.
Maximum times of retry can be speicified in control file.

No retry will be scheduled if
a) Job is aborted before it starts.
b) Job is not scheduled because dependencies are not
satisfied.

Major changes:
1) Add a new field 'job_retries' in ControlData
2) Add RetryHandler in suite.py which handles retry state.
3) Suite.wait schedules retry job if necessary.
4) job_status.wait_for_children and wait_for_results
are modified so that they can handle newly added jobs properly.
6) Retry feature can be enabled/disabled at suite level by passing
job_retry=True/False to dynamic_suite.reimage_and_run.
7) Added unittests for job retry.
This is a part of the implemenation of test retry.

CQ-DEPEND=CL:191002
TEST=unittests; dummy_suite runs ok with both run_suite and test_that.
And integration test as following
1) cherry-pick cl 188365, 191002
2) Add "JOB_RETRIES=2" to dummy_Fail/control and
dummy_Pass/control.
Create a trybot image that has the change.
3) run_suite.py -b lumpy -s dummy -i
trybot-lumpy-release/R35-5653.0.0-b1948
4) Observe that dummy_Fail is retried twice, and
'invalid' and 'invalidates_job_id' are properly set
in tko_tests.
Observe that dummy_Pass is not retried.
5) Test the same flow but dependencies are not satisfied
Observed no retry was scheduled
6) Test the same flow but abandon dummy_Fail from frontend
before the job started. Observed no retry was scheduled.
And test for bug filing:
1) Test bug is filed as normal when no retry is needed
2) Test bug is filed for the last retry job if retry is needed

BUG=chromium:348677
Change-Id: I80878ce959948ae51b759c2c58632f9de4d8b035
Reviewed-on: https://chromium-review.googlesource.com/190585
Reviewed-by: Fang Deng <fdeng@chromium.org>
Commit-Queue: Fang Deng <fdeng@chromium.org>
Tested-by: Fang Deng <fdeng@chromium.org>
ontrol_data.py
4c50c54c3cd1b4c9360b27b31aa276b215dcaab9 18-Apr-2014 Chris Sosa <sosa@chromium.org> Rollback: check for can_rollback before performing rollback.

This CL also removes the list_dir_contents calls as rollback
doesn't actually stage anything itself nor require something
on the devserver (it's call client-side).

BUG=chromium:356898
TEST=Tryjob + rollback test.

Change-Id: I1ac19dd40fecbc31b9d3c5ff001332b116856f68
Reviewed-on: https://chromium-review.googlesource.com/195449
Reviewed-by: Alex Vakulenko <avakulenko@chromium.org>
Reviewed-by: Prashanth B <beeps@chromium.org>
Tested-by: Chris Sosa <sosa@chromium.org>
Commit-Queue: Chris Sosa <sosa@chromium.org>
ros/autoupdater.py
8e9f21c005c170c5868576d86870bc175af8c610 17-Apr-2014 Chris Sosa <sosa@chromium.org> Remove complex autotest common code.

So the autotest imports make it really hard to install fake_device_server
as a standalone server. This CL removes that and just requires that the
Python code be installed in a directory called fake_device_server since
we have no Autotest dependencies.

BUG=chromium:361204
TEST=Started server + ran all unittests.

Change-Id: Iefcb5105cb96f07a99c919a1d3d41bf5ff3cb46f
Reviewed-on: https://chromium-review.googlesource.com/195454
Tested-by: Chris Sosa <sosa@chromium.org>
Reviewed-by: Alex Vakulenko <avakulenko@chromium.org>
Commit-Queue: Chris Sosa <sosa@chromium.org>
ros/fake_device_server/commands.py
ros/fake_device_server/commands_unittest.py
ros/fake_device_server/common.py
ros/fake_device_server/common_util.py
ros/fake_device_server/common_util_unittest.py
ros/fake_device_server/devices.py
ros/fake_device_server/devices_unittest.py
ros/fake_device_server/registration_tickets.py
ros/fake_device_server/registration_tickets_unittest.py
ros/fake_device_server/resource_delegate.py
ros/fake_device_server/resource_method.py
ros/fake_device_server/resource_method_unittest.py
ros/fake_device_server/server.py
626d491db01f46f7ac9943a2508b1e8e9844d39c 17-Apr-2014 Chris Sosa <sosa@chromium.org> Buffet server: upgraded cherrpy to 3.2, use @tools.json_out to return json properly.

Cherrypy provides good tooling for auto-converting dictionaries to json and
setting the return header correctly. Let's use it!

BUG=chromium:364138
TEST=Unittests + curl and expected return types.
CQ-DEPEND=CL:195241

Change-Id: I1ab95a3f4cc606313c7412e2c582c3b9ea873469
Reviewed-on: https://chromium-review.googlesource.com/195332
Reviewed-by: Chris Sosa <sosa@chromium.org>
Commit-Queue: Chris Sosa <sosa@chromium.org>
Tested-by: Chris Sosa <sosa@chromium.org>
ros/fake_device_server/commands.py
ros/fake_device_server/commands_unittest.py
ros/fake_device_server/devices.py
ros/fake_device_server/devices_unittest.py
ros/fake_device_server/registration_tickets.py
ros/fake_device_server/registration_tickets_unittest.py
ros/fake_device_server/resource_method.py
ros/fake_device_server/resource_method_unittest.py
9a2e80c01120abd0f4ffa25bfc1e3e59efaad349 15-Apr-2014 Paul Stewart <pstew@chromium.org> Fix access to the prefix of the netblock

Trivial typo fix.

BUG=chromium:363492
TEST=Visual

Change-Id: I3a129125715abe184dca7e2a3f2daf110319d0ca
Reviewed-on: https://chromium-review.googlesource.com/194941
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Commit-Queue: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
ros/network/interface.py
3d68fe8213ef86684d7911f889d56d1345bf3272 26-Mar-2014 Chris Masone <cmasone@chromium.org> Listen for ownership-taken signal on DBus

Many tests that touch on device Ownership were using a
function that simply watched for the presence of policy
and owner key files to indicate that the session_manager
had completed the ownership-taking process on the sign-in
of the first user. This could be tricked, though, in the
case of the UI being restarted between the test clearing
these files and then checking for them again. Stop using
this and switch to watching for signals announcing that
ownership has been taken, which the session_manager has
sent all along anyhow.

BUG=chromium:355664
TEST=login_*Ownership*

Change-Id: I54000c426cfb1aef8fd1518f9cdadec2b42c6500
Reviewed-on: https://chromium-review.googlesource.com/194142
Reviewed-by: Chris Masone <cmasone@chromium.org>
Commit-Queue: Chris Masone <cmasone@chromium.org>
Tested-by: Chris Masone <cmasone@chromium.org>
ros/policy.py
ros/session_manager.py
fb08e82e29ad2232361c6662c3842f5617f4032a 04-Apr-2014 Chris Sosa <sosa@chromium.org> Buffet server: add support for both devices and commands.

This CL adds both the device and commands methods to buffet's
fake_device_server.

For devices:
- Devices are created when either registration tickets are finalized
OR a device INSERT method (via a POST) is called.

For commands:
- Commands are associated to devices by deviceId which is required
whenever creating a new command. I store the mapping between devices
and their commands in a dictionary. The only reason I need to keep a
mapping is I need to map a device to its commands for the listing
method i.e. GET on commands without an id.

I have also made a small common class used by devices/commands that
implements PATCH/PUT as they are indentical for both. I almost did the
same for registration but I couldn't find a good way to deal with the
"claim" part of it.

I have left a couple pieces left TODO as they will require a bit more
thinking and we won't likely need them immediately. These are:
1) The upload API i.e. commands that require uploading a blob of data
to give to a device e.g. storage.writeFile.
2) A couple specific fields like owner in devices which don't seem
to matter yet.

BUG=chromium:358277
TEST=See README + unittests

Change-Id: I0eb11a2f1bdb31b5d3dc4f17a72499f5160eafc2
Reviewed-on: https://chromium-review.googlesource.com/193529
Tested-by: Chris Sosa <sosa@chromium.org>
Reviewed-by: Alex Vakulenko <avakulenko@chromium.org>
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Commit-Queue: Chris Sosa <sosa@chromium.org>
ros/fake_device_server/README
ros/fake_device_server/commands.py
ros/fake_device_server/commands_unittest.py
ros/fake_device_server/constants.py
ros/fake_device_server/devices.py
ros/fake_device_server/devices_unittest.py
ros/fake_device_server/registration_tickets.py
ros/fake_device_server/registration_tickets_unittest.py
ros/fake_device_server/resource_delegate.py
ros/fake_device_server/resource_method.py
ros/fake_device_server/resource_method_unittest.py
ros/fake_device_server/server.py
85f4c36b14448d8fd707b34107c7688f13f258f2 08-Apr-2014 Simran Basi <sbasi@chromium.org> Moblab: Display 'moblab' user as default in AFE.

Currently there are 2 separate users for Moblab: 'default_user' for
kicking off jobs from the AFE and 'moblab' for kicking off jobs from
the run_suite command.

This change defaults the AFE to use 'moblab'. And allows jobs to be
aborted from the AFE.

BUG=chromium:358579
TEST=Moblab AFE defaults to 'moblab' user and is able to abort jobs
created by run_suite. Also verified get_current_board() still works
on a moblab.

Change-Id: Ic9a0a7bfc745a670796863629d070056e1dfd69f
Reviewed-on: https://chromium-review.googlesource.com/193657
Reviewed-by: Prashanth B <beeps@chromium.org>
Tested-by: Simran Basi <sbasi@chromium.org>
Commit-Queue: Simran Basi <sbasi@chromium.org>
ite_utils.py
ee70731b31f66ecf8043b9fa6d1f86a52753a22f 31-Mar-2014 Prashanth B <beeps@google.com> [autotet] Pipe bug_template through control data.

Teach the control file parser to understand a new type of control
file variable, the bug template.

BUG=chromium:310859
TEST=Ran a suite and verified that control_data is available
in dynamic_suites.

Change-Id: I91be1ff9b7f9771ec26f734f70386e7f7f8a3c2c
Reviewed-on: https://chromium-review.googlesource.com/192534
Tested-by: Prashanth B <beeps@chromium.org>
Reviewed-by: Dan Shi <dshi@chromium.org>
Reviewed-by: Alex Miller <milleral@chromium.org>
Commit-Queue: Prashanth B <beeps@chromium.org>
ontrol_data.py
ontrol_data_unittest.py
c927d5825c831e0372a75b500a57cb545f06bcf7 31-Mar-2014 Chris Sosa <sosa@chromium.org> GCD: Refactor device resource code so it can be reused by other methods.

Started working on implementing the devices / commands methods and realized
that many of the components were identical. Specifically every method
has a json-based representation that can be identified given some id
/ api_key.

So with this CL, there are 2 changes:
1) Data manipulation has been moved to a resource delegate class rather than
a dedicated tickets dict.
2) Common arg parsing has been moved to common_util.

BUG=chromium:358277
TEST=All existing unittests + local integration testing.

Change-Id: I126fd88146741cfb981475a9f8fde9f6a0a57b8b
Reviewed-on: https://chromium-review.googlesource.com/192360
Tested-by: Chris Sosa <sosa@chromium.org>
Reviewed-by: Alex Vakulenko <avakulenko@chromium.org>
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Commit-Queue: Chris Sosa <sosa@chromium.org>
ros/fake_device_server/README
ros/fake_device_server/common_util.py
ros/fake_device_server/common_util_unittest.py
ros/fake_device_server/registration_tickets.py
ros/fake_device_server/registration_tickets_unittest.py
ros/fake_device_server/resource_delegate.py
ros/fake_device_server/server.py
2bff39b1c4212ab37787e529bd934614606dd948 28-Mar-2014 Dan Shi <dshi@chromium.org> [autotest] Fix ChromeDriver wrapper class

Close tabs opened by Telemetry for ChromeDriver to reuse remote debugging port.
Open a tab using Chrome remote debugging for ChromeDriver remote to work.

It requires a change in Telemetry to allow to close tabs[0]

BUG=chromium:355075
TEST=local test_that

Change-Id: Ib8a56e5cca09cfa5b5e740060c4e0ee5b4c16fed
Reviewed-on: https://chromium-review.googlesource.com/192133
Reviewed-by: Dan Shi <dshi@chromium.org>
Commit-Queue: Dan Shi <dshi@chromium.org>
Tested-by: Dan Shi <dshi@chromium.org>
Reviewed-by: Achuith Bhandarkar <achuith@chromium.org>
ros/chromedriver.py
3875e0c321381be0c814cc8d1400fb5f983b8a59 20-Mar-2014 Achuith Bhandarkar <achuith@chromium.org> Support for gaia login.

BUG=chromium:308747
TEST=trybot

Change-Id: I3f4d1f13a3586f55ffe5462c012efeece3b18209
Reviewed-on: https://chromium-review.googlesource.com/192405
Reviewed-by: Achuith Bhandarkar <achuith@chromium.org>
Commit-Queue: Achuith Bhandarkar <achuith@chromium.org>
Tested-by: Achuith Bhandarkar <achuith@chromium.org>
ros/chrome.py
f1ae89b79ccbb46e433ad97fbc39a4f60ed2d8ca 29-Mar-2014 Chris Sosa <sosa@chromium.org> Buffet: Update registration protocol to remove claim.

Claim has been deprecated and they now use OAuth2 token ids.
I should have caught this originally.

BUG=chromium:357832
TEST=See readme + unittests

Change-Id: I7197bc39dbb6b8d37681ea7f9ac5a3546f5f0a07
Reviewed-on: https://chromium-review.googlesource.com/192185
Reviewed-by: Chris Sosa <sosa@chromium.org>
Commit-Queue: Chris Sosa <sosa@chromium.org>
Tested-by: Chris Sosa <sosa@chromium.org>
ros/fake_device_server/README
ros/fake_device_server/common_util.py
ros/fake_device_server/registration_tickets.py
ros/fake_device_server/registration_tickets_unittest.py
3b4712cc3f0a77cfa7851fb73fb03fcb0c4e6318 14-Mar-2014 Ilja Friedel <ihf@chromium.org> Start monitoring temperature during tests.

There are two parts to this:
1) Added infrastructure to site_utils.py to get machine into defined state
and keep tests honest.
2) Change glbench binary to base its wait times on currently observed
temperatures.

This should make the test faster, as we can cut down on blind sleep times.
But I don't expect on its own to change the numbers.

BUG=chromium:344766
TEST=1) Ran graphics_GLBench on link.
2) Ran hardware_SsdDetection and firmware_TouchMTB on link to ensure
get_board() still works for them.

Change-Id: I3cb908a35d911a3f9ca6ef194aa5a3d1ac3e2152
Reviewed-on: https://chromium-review.googlesource.com/190290
Reviewed-by: Ilja Friedel <ihf@chromium.org>
Commit-Queue: Ilja Friedel <ihf@chromium.org>
Tested-by: Ilja Friedel <ihf@chromium.org>
ase_utils.py
c4beba05d7e439bfb9e9c7bd28e7d248782a4531 24-Mar-2014 Peter Qiu <zqiu@chromium.org> Channel scan dwell time test

This test instructs a router to continually send beacon frames for a
predefined set of BSSes at a specific interval. The BSSes are named
with an index suffix in hex numerical order. The device under test is
instructed to perform a single channel scan while the beacon frames are
being sent by the router. Based on the SSIDs in the scan results, we
can estimate the device dwell time.

BUG=chromium:354685
TEST=Run this test

Change-Id: Ib8034a112b37ba6584a2b1d8009b2126f2dbd5e4
Reviewed-on: https://chromium-review.googlesource.com/191287
Reviewed-by: Paul Stewart <pstew@chromium.org>
Tested-by: Peter Qiu <zqiu@chromium.org>
Commit-Queue: Peter Qiu <zqiu@chromium.org>
ros/network/iw_runner.py
67d4de0fd871c5c14bdb2e18034991bc6b9c7400 18-Mar-2014 Chris Sosa <sosa@chromium.org> Buffet: Initial commit of device test service.

This initial commit supports all aspects of the registration process.
Specifically it implements registrationTicket's:
insert,post,patch,update, and get operations.

Internally I represent tickets in a dictionary which I update with
patch/update requests. I don't bother currently with anything
complex in claim (technically this could be a full oauth2 method),
and claim the device directly to a hard-coded email address.

Finally, finalize doesn't do anything besides add some dummy robot
info.

BUG=None
TEST=Tested with a combo of curl -X POST operations and web requests
through the browser. Also ran unittests which covers all functionality.

Change-Id: I50d675df6fd954db51209ad30bd8f4329b32ffa4
Reviewed-on: https://chromium-review.googlesource.com/190421
Reviewed-by: Chris Sosa <sosa@chromium.org>
Commit-Queue: Chris Sosa <sosa@chromium.org>
Tested-by: Chris Sosa <sosa@chromium.org>
ros/fake_device_server/README
ros/fake_device_server/__init__.py
ros/fake_device_server/common.py
ros/fake_device_server/common_util.py
ros/fake_device_server/common_util_unittest.py
ros/fake_device_server/registration_tickets.py
ros/fake_device_server/registration_tickets_unittest.py
ros/fake_device_server/server.py
ros/fake_device_server/server_errors.py
82ef3df9b6cdb0cf94c3a21edd1d58bc569d317d 26-Mar-2014 Alex Miller <milleral@chromium.org> [autotest] Make caching decorator per-instance and not per-class.

One would greatly expect this to be per-instance.

BUG=chromium:356187
TEST=unit

Change-Id: Ia458c95af4dde63cf3ea47715093be1b4ae155d8
Reviewed-on: https://chromium-review.googlesource.com/191577
Tested-by: Alex Miller <milleral@chromium.org>
Reviewed-by: Prashanth B <beeps@chromium.org>
Commit-Queue: Alex Miller <milleral@chromium.org>
ecorators.py
ecorators_unittest.py
b7ef5e5be246a7905c7c3eb3cdcec54f7b14255b 20-Mar-2014 Achuith Bhandarkar <achuith@chromium.org> Retry when login fails due to Handshake error.

BUG=chromium:349447
TEST=manual

Change-Id: Ibe870ad99fbea601c3c566c73cbc1d0c7ab9e1d8
Reviewed-on: https://chromium-review.googlesource.com/190891
Tested-by: Achuith Bhandarkar <achuith@chromium.org>
Reviewed-by: Dan Shi <dshi@chromium.org>
Commit-Queue: Achuith Bhandarkar <achuith@chromium.org>
ros/chrome.py
0998e1837a6ffe651d4a8697a39e25430e03ad50 18-Mar-2014 Achuith Bhandarkar <achuith@chromium.org> Catch timeout exception and continue.

This fixes a flake in login_ChromeProfileSanitary.

BUG=chromium:350941
TEST=manual

Change-Id: I964fdd455259a6a25314049b71606e65363a0fd0
Reviewed-on: https://chromium-review.googlesource.com/190420
Tested-by: Achuith Bhandarkar <achuith@chromium.org>
Reviewed-by: Dan Shi <dshi@chromium.org>
Commit-Queue: Achuith Bhandarkar <achuith@chromium.org>
ros/chrome.py
594570dc4b2a3445054b58e50545416e4bc48f36 15-Mar-2014 Christopher Wiley <wiley@chromium.org> Wait for correct IP subnet changes during roaming

This allows roaming tests to pass when run against drivers
that do roaming without involving userspace. In these situations
we're briefly associated with the roaming target before we detect
that our DHCP lease is invalid and re-negotiate the lease. Tolerate
that window by also waiting for the IP address on the WiFi interface
to move to the correct subnet.

Add a library to make common netblock->mask/subnet/broadcast address
calculations. Pull duplicate logic to do this out of interface.py
and site_linux_router.py.

BUG=chromium:352847
TEST=wifi_matfunc continues to pass with this change.

Change-Id: I2e6786514aee533e36eb84e1329f19891d3744ba
Reviewed-on: https://chromium-review.googlesource.com/190173
Tested-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
ros/network/interface.py
ros/network/netblock.py
5c0a6316d962234409dde66402d42bda05972e9a 10-Mar-2014 Alex Miller <milleral@chromium.org> [autotest] Add a caching property decorator.

I've wanted this a few times, so I'm finally writing it.

TEST=unit
BUG=None

Change-Id: I97a9310c4c9505c62e51b981ef9b27b6aac55462
Reviewed-on: https://chromium-review.googlesource.com/189514
Reviewed-by: Alex Miller <milleral@chromium.org>
Tested-by: Alex Miller <milleral@chromium.org>
Commit-Queue: Alex Miller <milleral@chromium.org>
ecorators.py
ecorators_unittest.py
23b7366d80488198d1ceab57d3b2d8b2509bc28a 10-Mar-2014 Alex Miller <milleral@chromium.org> [autotest] Make a dumping ground for useful decorators.

There are no references to in_context in our codebase, so there's
nothing to fix up.

BUG=None
TEST=unit

Change-Id: Ib4f3f3406679915807ebe7ea5cc8d4f89b86db65
Reviewed-on: https://chromium-review.googlesource.com/189513
Reviewed-by: Alex Miller <milleral@chromium.org>
Tested-by: Alex Miller <milleral@chromium.org>
Commit-Queue: Alex Miller <milleral@chromium.org>
ros/in_context.py
ros/in_context_unittest.py
ecorators.py
ecorators_unittest.py
64170f8e7053f92f4bbad501c61a352fdabf6d82 14-Mar-2014 Chris Masone <cmasone@chromium.org> Update all login_* tests to use CryptohomeProxy

Instead of shelling out to a command-line tool, we should
talk to crypthomed directly over DBus.

BUG=chromium:344862
TEST=login_*

Change-Id: I3a57d8158638cab60e8a7e0dd5c72293e87a87ac
Reviewed-on: https://chromium-review.googlesource.com/190343
Tested-by: Chris Masone <cmasone@chromium.org>
Reviewed-by: Chris Masone <cmasone@chromium.org>
Commit-Queue: Chris Masone <cmasone@chromium.org>
ros/session_manager.py
32baa9b16e50144dfb5b59f3be46581b88890e66 13-Mar-2014 Prashanth B <beeps@google.com> [autotest] Thread list_image_dir calls through the updater.

Adds a few utility methods to the autoupdater module to list contents
of a devservers directory

TEST=Invoked the new calls to list image dir contents.
BUG=chromium:348097, chromium:349044, chromium:349047
CQ-DEPEND=CL:189674, CL:189672

Change-Id: I23100771c3bc6d70ddb2a9abeeaeb01d6d241ee7
Reviewed-on: https://chromium-review.googlesource.com/189883
Reviewed-by: Prashanth B <beeps@chromium.org>
Tested-by: Prashanth B <beeps@chromium.org>
Commit-Queue: Prashanth B <beeps@chromium.org>
ros/autoupdater.py
bd39ed3d82ed78ed86f7a79b6f0c4e857fa8170d 06-Mar-2014 Prashanth B <beeps@google.com> [autotest] Client devserver call to list contents of a staged image.

Usage:
ds = dev_server.ImageServer.resolve(1)
ds.list_image_dir('<board>-<branch>/R<Milestone>-<buildno>')

TEST=Executed the call against a local devserver.
BUG=chromium:348097, chromium:349044, chromium:349047
CQ-DEPEND=CL:189672
Change-Id: I8f60585253d61c779383f1a2ab71cfa8e3d0a0b6
Reviewed-on: https://chromium-review.googlesource.com/189674
Reviewed-by: Prashanth B <beeps@chromium.org>
Commit-Queue: Prashanth B <beeps@chromium.org>
Tested-by: Prashanth B <beeps@chromium.org>
ros/dev_server.py
f42dc83292497e95cf4f41c6463f697b840826e2 03-Mar-2014 Artem Rakhov <arakhov@chromium.org> Bluetooth SDP autotest: Service Search Request with invalid syntax

This CL adds the last test for SDP Service Search Request, which checks if
response for request with invalid syntax is correct. It is implementation of
test case 'TP/SERVER/SS/BI-02-C' from SIG Bluetooth Test Specification.
However, the specification itself doesn't specify the format of invalid request
(it's not clear, what exactly should be invalid). So testers are free to send
any invalid request. This implementation sends requests without continuation
state parameter, so that the requests are invalid, but still are very close to
valid format. The latest BlueZ unit-tests also do the same invalid requests.

BUG=chromium:329044
TEST=test_that --board ${BOARD} ${HOSTNAME} bluetooth_SDP_ServiceSearchRequestBasic

Change-Id: I4fbd9eae20d440d75849286cdd80ac157e4bb1bb
Reviewed-on: https://chromium-review.googlesource.com/189243
Tested-by: Artem Rakhov <arakhov@chromium.org>
Reviewed-by: Scott James Remnant <keybuk@chromium.org>
Commit-Queue: Artem Rakhov <arakhov@chromium.org>
ros/bluetooth/bluetooth_sdp_socket.py
ros/bluetooth/bluetooth_tester_xmlrpc_server.py
1e31090a7b43c30f2d18cd3da1aba9894470af6e 04-Mar-2014 Peter Qiu <zqiu@chromium.org> wpa_supplicant reassociate timing test

Test to benchmark the performance of wpa_supplicant reassociate operation.
Specifically the time taken from the start of the scan to being connected.

BUG=chromium:348673
TEST=Run this test

Change-Id: I079d75cc8ac96a9fbcd6dc2112e2b0b787d975ce
Reviewed-on: https://chromium-review.googlesource.com/188780
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Tested-by: Peter Qiu <zqiu@chromium.org>
Commit-Queue: Peter Qiu <zqiu@chromium.org>
ros/network/iw_event_logger.py
ros/network/iw_runner.py
6f5752e3e3a10f9efca6f517cce84e8b7139505f 15-Feb-2014 Peter Qiu <zqiu@chromium.org> Added timed_scan function

timed_scan function is added to enable performance testing for wifi scan operation

Added timed_scan function in iw_runner to time the scan operation
on the DUT instead of host, to eliminate the SSH overhead in the
time calculation. Also updated the timed_scan function in wifi_client
to adhere to the coding standard.

Increased scan timeout to 10 seconds.

Fixed unit test to account for time output in stderr

BUG=chromium:344028
TEST=None
Change-Id: I6b208b93ec5982b81d0b39b3234563bd7617d804
Reviewed-on: https://chromium-review.googlesource.com/186732
Tested-by: Peter Qiu <zqiu@chromium.org>
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Peter Qiu <zqiu@chromium.org>
ros/network/iw_runner.py
ros/network/iw_runner_unittest.py
ad7e9a36381cb16d621b6a9176c6306c71ca61a1 28-Feb-2014 mukesh agrawal <quiche@chromium.org> autotest (wifi): improve diagnostics for LowInitialBitrates

When we find a frame with an unexpectedly high bitrate, output
the timestamp of that frame (in local time). This will help
to find the same frame in wireshark.

To support this, change the tcpdump_analyzer code, to use
absolute times. This is because relative times are tricky
to get right, when combined with filters.

In particular, when given a filter expression, tcpdump -ttttt
will print frame times relative to the first matching frame.
This is not so useful when loading the same file in wireshark.

BUG=chromium:347690
TEST=manual (see below)

Manual test
1. ran test on peach_pi, where it currently fails
2. checked that the failure message included a timestamp for
the frame, and that wireshark showed the referenced frame
as being sent at a high bitrate
3. also ran network_WiFi_HiddenScan, network_WiFi_VisibleScan

Change-Id: I8c0b1a99c4a4b57293da597dbab176235c8fb563
Reviewed-on: https://chromium-review.googlesource.com/188215
Tested-by: mukesh agrawal <quiche@chromium.org>
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Commit-Queue: mukesh agrawal <quiche@chromium.org>
ros/network/tcpdump_analyzer.py
ba130384b49108dcfa91ad7751b825c0d0128963 27-Feb-2014 Artem Rakhov <arakhov@chromium.org> Bluetooth SDP autotest: Service Search Request with invalid PDU size

Added new SDP autotest, which implements test case 'TP/SERVER/SS/BI-01-C' from
Bluetooth SIG Test Spec. It verifies that the IUT behaves correctly when it
receives a request with invalid PDU size. The correct behaviour is to respond
with SDP_ErrorResponse PDU, with the error code 0x0004 (Invalid PDU Size).
In order to support invalid PDU size, forced_pdu_size parameter was added to all
the service_search_request() methods (equals None by default, which means
"calculate from resulting sequence's size").

This CL also adds handling of error responses to BluetoothSDPSocket class: so
service_search_request() method should return error code (as int) in case of
error, and list of found services' records otherwise.

BUG=chromium:329044
TEST=test_that --board ${BOARD} ${HOSTNAME} bluetooth_SDP_ServiceSearchRequestBasic

Change-Id: I93c072b8986498b1464d336fd51f47312d359f09
Reviewed-on: https://chromium-review.googlesource.com/188118
Tested-by: Artem Rakhov <arakhov@chromium.org>
Reviewed-by: Scott James Remnant <keybuk@chromium.org>
Commit-Queue: Artem Rakhov <arakhov@chromium.org>
ros/bluetooth/bluetooth_sdp_socket.py
ros/bluetooth/bluetooth_tester_xmlrpc_server.py
2f973257222dfdb62e760d6a3cd860b756c99375 21-Feb-2014 Peter Qiu <zqiu@chromium.org> Antenna verification test for router

Added tests to verify each antenna in the router is working.

BUG=chromium:343184
TEST=1. Verify no connection failure when running this test.
2. To induce a "failure" with this test, manually put a terminator on one antenna in the router.
Run this test.
Verify connection failure or connected with weak signal (signal leak from terminator) when the terminated antenna is the only one active

Change-Id: I47e9e01ee6489b013b29d8f36238da9d1e425268
Reviewed-on: https://chromium-review.googlesource.com/187337
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Commit-Queue: Peter Qiu <zqiu@chromium.org>
Tested-by: Peter Qiu <zqiu@chromium.org>
ros/network/iw_runner.py
b144dcec000ff483bb6d287e2de36be81392a637 21-Feb-2014 Artem Rakhov <arakhov@chromium.org> Bluetooth SDP autotest: Service Search Request with continuation state

Added new SDP test for Service Search Request, which is an implementation of
'TP/SERVER/SS/BV-03-C' from SDP test specification. It verifies the correct
behaviour of continuation state functionality.

Continuation state is used when the whole response data to the request is too
big to fit into single response message. When this happens, the SDP server
generates a partial response along with a continuation state parameter.
The SDP client should supply this parameter to retrieve the next portion of the
complete response, and so on, until the continuation state parameter becomes
equal to zero.

Client-side support of continuation state was already implemented before in
BluetoothSDPSocket class. In order to force the DUT to actually use the
continuation state, the lower tester needs to send a request, which refers to
many services. As by default the DUT doesn't have so many services running,
the test has to create some fake services, and then request for their Class ID.
So this CL also adds a method to create Bluetooth services on the DUT, which is
done by BlueZ 5 D-Bus API.

BUG=chromium:329044
TEST=test_that --board ${BOARD} ${HOSTNAME} bluetooth_SDP_ServiceSearchRequestBasic

Change-Id: I2977617070ed6dd6fc0dbd2cfa08fd87e51c3c47
Reviewed-on: https://chromium-review.googlesource.com/187363
Tested-by: Artem Rakhov <arakhov@chromium.org>
Reviewed-by: Scott James Remnant <keybuk@chromium.org>
Commit-Queue: Artem Rakhov <arakhov@chromium.org>
ros/bluetooth/bluetooth_device_xmlrpc_server.py
2461fe8a58dc190725be5b34d0e984edf9a5ce72 20-Feb-2014 Christopher Wiley <wiley@chromium.org> WiFi Attenuators are optional equipment for WiFi tests

Fix PingRunner to tolerate bad DNS names being passed for hostnames.
Fix WiFiTestContextManager to tolerate missing attenuator address
parameters when outside a test context.

BUG=chromium:345421
TEST=SimpleConnect tests pass in a lab context. When the check for
"is this host in a lab" is hacked to return False (and the router
address passed in via the command line), tests still pass.

Change-Id: Ie7b7347d85573513a98aaf02d485b1cb2d0bd887
Reviewed-on: https://chromium-review.googlesource.com/187309
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
Tested-by: Christopher Wiley <wiley@chromium.org>
ros/network/ping_runner.py
8193956f199813f8dd0662acddc4aca8dfc20698 14-Feb-2014 Gwendal Grignou <gwendal@chromium.org> Autotest: Fix failure retrieving logs with rsync

BUG=chromium:343991
TEST=emerged

Change-Id: Icbd642a657e68e133fae20cb994330282382a6aa
Reviewed-on: https://chromium-review.googlesource.com/186660
Reviewed-by: Chris Sosa <sosa@chromium.org>
Reviewed-by: Gwendal Grignou <gwendal@chromium.org>
Commit-Queue: Gwendal Grignou <gwendal@chromium.org>
Tested-by: Gwendal Grignou <gwendal@chromium.org>
ros/autoupdater.py
56714f7b7badd91d7ba900d9ace6be245e609ab8 14-Feb-2014 mukesh agrawal <quiche@chromium.org> tcpdump_analyzer: use "-n" option of tcpdump

By default, tcpdump attempts to resolve IP addresses to hostnames
for display. Since the hosts in the lab don't have reverse DNS
entries, this will never succeed. Avoid the useless work by
specifying the "-n" option.

BUG=chromium:343789
TEST=network_WiFi_LowInitialBitrates, manual

Manual test
-----------
- ran network_WiFi_LowInitialBitrates on a board where it is
known to fail (due to high bitrates frames being present
in pcap file)
- saw that the test successfully analyzed the pcap, and found
the bad frames
- checked network_WiFi_LowInitialBitrates.DEBUG, to ensure that
tcpdump was run with "-n"

Change-Id: I8d77340ec1baced1e754cbeabda2d1eb1048083d
Reviewed-on: https://chromium-review.googlesource.com/186607
Tested-by: mukesh agrawal <quiche@chromium.org>
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Commit-Queue: mukesh agrawal <quiche@chromium.org>
ros/network/tcpdump_analyzer.py
a618b1222a65809bc10660403bb13598f2cb587d 14-Feb-2014 Paul Stewart <pstew@chromium.org> iw_runner: Add compatibility for newer iw

Newer versions of iw have scan output like:

BSS 02:00:01:02:03:04(on wlan0)

instead of:

BSS 02:00:01:02:03:04 (on wlan0)

Use a regular experession that will terminate at the end
of the BSS address.

BUG=chromium:343971
TEST=network_WiFi_PMKSACaching, network_WiFi_BeaconInterval,
network_WiFi_ChannelHop, network_WiFi_RateControl,
network_WiFi_DTIMPeriod, network_WiFi_SSIDSwitchBack,
network_WiFi_Prefer5Ghz, network_WiFi_BgscanBackoff
(basically all the tests that use iw_runner on the DUT)

Change-Id: I691bf501e4ec6940ebe66d1ea1ed55455d8b9614
Reviewed-on: https://chromium-review.googlesource.com/186581
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
ros/network/iw_runner.py
2440644ff260ac865b2d674707454e40d271f768 13-Feb-2014 Paul Stewart <pstew@chromium.org> Add test for successul operation of the "iw" command

Make sure that the system can successfull change regulatory
domains using the "iw reg" utility.

BUG=chromium:343170
TEST=Run this test

Change-Id: Idd82b4770213ed0c76374c7df198ad80af0c6348
Reviewed-on: https://chromium-review.googlesource.com/186358
Reviewed-by: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Paul Stewart <pstew@chromium.org>
ros/network/iw_runner.py
895897788bb0af56fb6e1ffb584dd9636e2aa890 07-Feb-2014 Paul Stewart <pstew@chromium.org> Fix list_phys() to return an empty list

If "iw list" returns an nothing (if no wireless interfaces are
reported), list_phys() should return an empty list. This CL
fixes the current implementation so this is the case.

BUG=chromium:341892
TEST=Do "rmmod <wifi_module>" on a DUT, then run a WiFi test.
Observe that the test fails with "No interfaces managed by shill"
and attempts a reboot of the DUT.

Change-Id: I4ab2ef6fd50b93b29b011576f834e38e9bea4cff
Reviewed-on: https://chromium-review.googlesource.com/185342
Reviewed-by: mukesh agrawal <quiche@chromium.org>
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Commit-Queue: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
ros/network/iw_runner.py
3628d66f4fdf896acd8ae979a841f179624a844c 10-Feb-2014 Christopher Wiley <wiley@chromium.org> Ignore ping timeouts in WiFi tests

There appear to be situations where pings will timeout in WiFi
tests when every ping fails and ping waits for those failures.
Tolerate this by allowing timeouts and treating them as total
loss events.

While here, remove legacy method calls for old style WiFi tests.

TEST=network_WiFi_SimpleConnect.wifi_checkWPA_TKIP still passes.
BUG=chromium:342413

Change-Id: I138e16ad86b90083ef7eacedba42138f4b585ee3
Reviewed-on: https://chromium-review.googlesource.com/185953
Reviewed-by: Paul Stewart <pstew@chromium.org>
Tested-by: Christopher Wiley <wiley@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
ros/network/ping_runner.py
ca31191b5cf1564571eaef3b8c6071415c9988fe 12-Feb-2014 bmahadev <bmahadev@chromium.org> Add the missing constant in chaos_constants

BUG=None
TEST=None

Change-Id: I620fc0919c4987404a46c27dc4de56d0f284cc14
Reviewed-on: https://chromium-review.googlesource.com/185959
Reviewed-by: Kris Rambish <krisr@chromium.org>
Commit-Queue: Bindu Mahadev <bmahadev@chromium.org>
Tested-by: Bindu Mahadev <bmahadev@chromium.org>
ros/network/chaos_constants.py
26d3d4d699070320ad45c28749518373422f759d 11-Feb-2014 bmahadev <bmahadev@chromium.org> Detect if PDU goes down

This aims at mitigating the time taken to bail out of
a running test if we have any PDUs that are down, by checking
their status before sending down any requests and maintaining
and making use of this state information through out the test
to quarantine APs that may be attached to this PDU. It makes
use of a global list that would be queried by all the threads
created across cartridges, across the runner for each spec, so
that no thread has to re-discover a broken PDU.

BUG=chromium:331914
TEST=ChaosPSK

Change-Id: If8d2df6d17634db2bfef7ec566f2d7d3e7442164
Reviewed-on: https://chromium-review.googlesource.com/184553
Reviewed-by: Bindu Mahadev <bmahadev@chromium.org>
Commit-Queue: Bindu Mahadev <bmahadev@chromium.org>
Tested-by: Bindu Mahadev <bmahadev@chromium.org>
ros/network/chaos_constants.py
73efa2b6cdd7e85caefdd0905171271af92118c1 06-Feb-2014 Chris Masone <cmasone@chromium.org> Add login_ChromeProfileSanitaryTelemetry to regression suite

This test hasn't been run automatically, yet, so let's start
running it experimentally to verify that it's ready to replace
login_ChromeProfileSanitary. Also, fix a bug that was causing it
to be unrunnable

BUG=chromium:339976
TEST=login_ChromeProfileSanitaryTelemetry

Change-Id: I278b5f3a7657ba2426a452befcffbeac06fddefd
Reviewed-on: https://chromium-review.googlesource.com/185256
Reviewed-by: Chris Masone <cmasone@chromium.org>
Tested-by: Chris Masone <cmasone@chromium.org>
Commit-Queue: Chris Masone <cmasone@chromium.org>
ros/chrome.py
4c504325f52db357228ef99cda845ae756104daa 06-Feb-2014 Dan Shi <dshi@chromium.org> [autotest] change owner/group of unpacked test folder to the same user untar package

BUG=chromium:333114
TEST=test_that 172.22.14.6 dummy_Pass --board lumpy
verify owner and group of /usr/local/autotest/tests/dummy_Pass are both root.

Change-Id: I2a30e2461630fdbd85f50c33981467469c9e8b4d
Reviewed-on: https://chromium-review.googlesource.com/185076
Tested-by: Dan Shi <dshi@chromium.org>
Reviewed-by: Alex Miller <milleral@chromium.org>
Commit-Queue: Dan Shi <dshi@chromium.org>
ase_packages.py
07a4f9a2fa5492c1503ba03811584d8d71c3a993 06-Feb-2014 Christopher Wiley <wiley@chromium.org> autotest: Rewrite attenuator control logic

Now all control logic runs on the remote server rather than being split
between the server and beaglebone. This makes the code generally more
readable since concerns are not split across files.

Updated the attenuator verification test and the RvR tests to reflect
a slightly changed interface.

TEST=RvR and verification tests work as expected.
BUG=chromium:340868

Change-Id: I68db3f41ca6fde4e385a3cc0f90ac2e43bfe9387
Reviewed-on: https://chromium-review.googlesource.com/185247
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
Tested-by: Christopher Wiley <wiley@chromium.org>
ros/site_attenuator/attenuator_config.py
ros/site_attenuator/attenuator_init.py
ros/site_attenuator/attenuator_util.py
ros/site_attenuator/constants.py
a3effac3fccddab79ff0b8a962ab8b457620180c 05-Feb-2014 Christopher Wiley <wiley@chromium.org> autotest: Add a test to verify correct attenuator operation

This test sets up APs on available router phys, then measures signal
levels as observed by the client at various attenuation levels. The
user is assumed to inspect these values for linear trends.

TEST=Test passes on chromeos1-grover-host2, which is the sole
remaining correctly configured grover setup. Once the attenuator
control code is updated to handle 4 attenuators per router,
we can test against these new setups.
BUG=chromium:340868

Change-Id: I996f5313313d3b8e2c5b4881daa4388b0c082dc8
Reviewed-on: https://chromium-review.googlesource.com/185246
Tested-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
ros/network/iw_runner.py
1cce9dc6c335923d61d72ee023299d3c8db6e93d 05-Feb-2014 Achuith Bhandarkar <achuith@chromium.org> Add options for auto_login, username, password to chrome.py.

BUG=chromium:340395
TEST=manual

Change-Id: Ie688d5872c1fcc99b5eccc65e8ecf5eb39238013
Reviewed-on: https://chromium-review.googlesource.com/185028
Reviewed-by: Chris Masone <cmasone@chromium.org>
Commit-Queue: Chris Masone <cmasone@chromium.org>
Tested-by: Chris Masone <cmasone@chromium.org>
ros/chrome.py
2b758eed44b2061bfa430be68bcace5c9edca348 28-Jan-2014 mukesh agrawal <quiche@chromium.org> iw_runner: add parsing of max_scan_ssids

We'd like to test that WiFi hardware truly supports scanning
for the number of SSIDs that it reports to support via nl80211.

Accordingly, add code to iw_runner, to parse the bit of iw's
output that provides this information.

While there: refactor list_phys, so that the IwPhy namedtuple
is constructed after we've finished reading all the data for
a phy. This is necessary because the fields in a tuple can't
be reassigned.

BUG=chromium:338521
TEST=manual

Manual testing: ran a test which calls list_phys, verified that
it returned the same values as iw list for ath9k and mwifiex.
(The values were 4 and 10, respectively.)

Change-Id: Ief27ea4f270acea954456736d97cc1bcc206f80c
Reviewed-on: https://chromium-review.googlesource.com/184043
Reviewed-by: mukesh agrawal <quiche@chromium.org>
Tested-by: mukesh agrawal <quiche@chromium.org>
Commit-Queue: mukesh agrawal <quiche@chromium.org>
ros/network/iw_runner.py
9bcc710d6997af01db3d71f4895bd2ec5908068b 04-Feb-2014 Chris Masone <cmasone@chromium.org> Generalize session_manager.SignalListener

People will want to listen for more than just ownership-related
signals. This change generalizes SignalListener and adds useful
derived classes.

BUG=None
TEST=login_GuestAndActualSession

Change-Id: Ie3ffd7b4c27afdc7a1a6e515fdb787bc073de974
Reviewed-on: https://chromium-review.googlesource.com/184737
Reviewed-by: Chris Masone <cmasone@chromium.org>
Tested-by: Chris Masone <cmasone@chromium.org>
Commit-Queue: Chris Masone <cmasone@chromium.org>
ros/session_manager.py
7bf5d460a10c0ac9c1c22e3e23b898d9792a1af4 17-Jan-2014 Ashok Nagarajan <asnagarajan@chromium.org> chaos DUT hold connection to the AP

This patch will introduce a new test namely network_WiFi_ChaosLongConnect and
add a new test case in chaos lab, where the DUT would maintain connection with
AP and perform periodic ping to the work client (a packet capturer) to check
the liveliness of the connection.

Now that all packet captures in chaos lab has dual NIC, dedicate phy1 for work
client

TEST=ran control.long and check if DUT is pinging the packet capturer after
establishing connection with AP
BUG=chromium:308214

Change-Id: I6488e5d2c61bd96bd7a82eca8ec4a5de38e5eb80
Signed-off-by: Ashok Nagarajan <asnagarajan@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/176967
ros/network/chaos_constants.py
b8706b548bc4c956ec7a831db9defd0b0825232a 28-Jan-2014 mukesh agrawal <quiche@chromium.org> autotest (wifi): add network_WiFi_HiddenScan test

If we have a hidden SSID configured, we should probe for both the hidden
SSID, and the broadcast SSID.

This tests starts a packet capture, and connects to a hidden network.
The test then verifies that a) the packet capture contains probe
request(s) for the hidden SSID and the broadcast SSID, and b) the
packet capture does not contain probes for other SSIDs.

While there: refactor some code, so that we can share it between
this test, and network_WiFi_VisibleScan.

BUG=chromium:338519
TEST=ran test, saw it pass

Change-Id: Icf8ca49e2806f035329aa7e7ca8a761f49f117c6
Reviewed-on: https://chromium-review.googlesource.com/184013
Reviewed-by: mukesh agrawal <quiche@chromium.org>
Tested-by: mukesh agrawal <quiche@chromium.org>
Tested-by: Aviv Keshet <akeshet@chromium.org>
Commit-Queue: mukesh agrawal <quiche@chromium.org>
ros/network/tcpdump_analyzer.py
72596b1a366fc52aadcd0c0e5b8792c28cb2e5c8 25-Jan-2014 mukesh agrawal <quiche@chromium.org> tcpdump_analyzer: add parsing of SSIDs in probe requests

We'd like to write some tests that verify that we scan for the
correct SSIDs. So give tcpdump_analyzer the ability to parse SSIDs
out of probe requests.

This CL also restructures the existing code a bit. The optional
matching group for MCS info is broken out of the main regexp.
The idea is that each of the optional fields can be parsed
independently, rather than constructing one giant regexp to
rule them all.

BUG=chromium:334721
TEST=network_WiFi_RateControl, manual

Manual testing
--------------
- Generated pcap containing broadcast probes, directed probes, and
other traffic.
- Ran analyzer, printed out returned frames, and observed that the
frames had the appropriate value for the probe_ssid field. (None
for "other traffic", the empty string for broadcast probes, and
the SSID for directed probes.)

Change-Id: I8f95c520f3fb27d4c5a693c4157435fc65fd8083
Reviewed-on: https://chromium-review.googlesource.com/183852
Tested-by: mukesh agrawal <quiche@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Commit-Queue: mukesh agrawal <quiche@chromium.org>
ros/network/tcpdump_analyzer.py
5e8c45adeeaaa493462262a1138e53d42caae014 18-Dec-2013 beeps <beeps@chromium.org> [autotest] Give servo hosts the ability to update.

Since we're now staging the latest beaglebone build on the devservers
we can update all servo_hosts that are running chromeos via update engine.
This cl forces the beaglebone to check for new updates on each reset/verify,
and if one is available, download and apply it.

TEST=Update a beaglebone with and without servo(v2).
Confirmed servod came up after the update.
BUG=chromium:272354
CQ-DEPEND=CL:178534

Change-Id: I09d0b85b81f0f60318c02e44f42b2daabe1cead4
Reviewed-on: https://chromium-review.googlesource.com/180562
Tested-by: Prashanth B <beeps@chromium.org>
Reviewed-by: Dan Shi <dshi@chromium.org>
Reviewed-by: Richard Barnette <jrbarnette@chromium.org>
Commit-Queue: Prashanth B <beeps@chromium.org>
ros/autoupdater.py
bff9f9d0c4bf77f09a41262061d1a9310d94db2f 06-Dec-2013 beeps <beeps@chromium.org> [autotest] Adds chromecast deps, server, client test for sonic.

Adds an autotest dependency that installs the freshest
version of the chromecast extension as an autotest dep.

Also adds a server and client test for sonic that installs the
extension and performs a tab cast, and starts the youtube/netflix apps.
The tests will only work when the DUT and the sonic device are on
the same subnet.

TEST=emerge-lumpy autotest-deps, ran a test that uses it.
Ran the tests, visually verified results.
BUG=chromium:321177, chromium:321179, chromium:292640

Change-Id: I48a6149a11d3bb8167a1c766873e672b3523d769
Reviewed-on: https://chromium-review.googlesource.com/179407
Commit-Queue: Prashanth B <beeps@chromium.org>
Tested-by: Prashanth B <beeps@chromium.org>
Reviewed-by: Dan Shi <dshi@chromium.org>
ros/chromedriver.py
ite_utils.py
40b7d0d8a5da83d695903bd49c8deaa4572d309f 18-Jan-2014 Luis Lozano <llozano@chromium.org> Add current chrome version to generated AFDO perf data

Add the chrome version of the name of the generated AFDO perf.data
file. Had to add necessary support in cros_host class and in the
process commonized some code with site_sysinfo.py

BUG=None
TEST=Tested through test_that.

Change-Id: I4d6537c78f21febadc566b7ea8b3238dc809e135
Reviewed-on: https://chromium-review.googlesource.com/183132
Reviewed-by: Luis Lozano <llozano@chromium.org>
Commit-Queue: Luis Lozano <llozano@chromium.org>
Tested-by: Luis Lozano <llozano@chromium.org>
ite_utils.py
696a8aa1f2719b66e636ec2ec1c91c76f0586430 22-Jan-2014 Achuith Bhandarkar <achuith@chromium.org> Replace chrome.LOGIN_USER with chrome.username.

BUG=chromium:308757
TEST=trybot

Change-Id: I2d0d9baa9a0548da0d49a41f1128fc28ac1bb8ee
Reviewed-on: https://chromium-review.googlesource.com/183371
Tested-by: Achuith Bhandarkar <achuith@chromium.org>
Reviewed-by: Dan Shi <dshi@chromium.org>
Commit-Queue: Achuith Bhandarkar <achuith@chromium.org>
ros/chrome.py
ca443b518bfe8457c73d9a0cddadf8f6972a4c64 11-Jan-2014 Artem Rakhov <arakhov@chromium.org> Bluetooth SDP autotest: support for 16, 32, 128 UUIDs

Bluetooth Test Specification document says that the tests shall be performed
using 128 bits UUID, 32 bits UUID and 16 bits UUID. So this CL adds an optional
parameter called preferred_size for Service Search Request method. For every
single UUID, if it fits into preferred_size bits, then this size will be used
for request. Otherwise the UUID will be casted to 128 bits format.

BUG=chromium:329044
TEST=use the following command to run it:
test_that --board ${BOARD} ${HOSTNAME} bluetooth_SDP_ServiceSearchRequestBasic
Probably, 'failed_attempts' variable will always be 0

Change-Id: I3dfb3539578182f933c4c650e564c03a97cd8916
Reviewed-on: https://chromium-review.googlesource.com/182251
Tested-by: Artem Rakhov <arakhov@chromium.org>
Reviewed-by: Scott James Remnant <keybuk@chromium.org>
Commit-Queue: Artem Rakhov <arakhov@chromium.org>
ros/bluetooth/bluetooth_sdp_socket.py
ros/bluetooth/bluetooth_tester_xmlrpc_server.py
299dad5b2a0cd35e27719d730231ccafb0226385 15-Jan-2014 Kris Rambish <krisr@chromium.org> Perform pre-scan on capturer, abort scan failures.

Move the pre-scan to run on the packet capture device. Give the scan
30 seconds to return. If it does not return, abort the test early.

BUG=None
TEST=network_WiFi_ChaosConnectDisconnect/control.debug$

Change-Id: I6d181f513e99185acef9a1af02ca117b188f84f8
Reviewed-on: https://chromium-review.googlesource.com/182884
Reviewed-by: Kris Rambish <krisr@chromium.org>
Commit-Queue: Kris Rambish <krisr@chromium.org>
Tested-by: Kris Rambish <krisr@chromium.org>
ros/network/iw_runner.py
ba5df3ecf6c5cda20439633bb19aac4f33d835db 15-Jan-2014 Christopher Wiley <wiley@chromium.org> autotest: Pick WiFi interfaces for WiFiClient by asking shill

Test code wants to reason about the WiFi interface that shill
is controlling. To do this, just ask shill which interface
it is controlling rather than duplicating shill's heuristics
for picking interfaces.

While here, remove some deprecated fields that are no longer used.

BUG=chromium:334109
TEST=Tests now pass when the interface managed by shill is an
IBSS interface rather than a managed interface.

Change-Id: If00db60b517bf124d6edd05b57f74a29065ecb3c
Reviewed-on: https://chromium-review.googlesource.com/182734
Tested-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
ros/network/shill_xmlrpc_server.py
604a3503bffe812463887335aabb750cff545512 14-Jan-2014 Christopher Wiley <wiley@chromium.org> autotest: Perform WiFi related operations on managed interfaces

WiFi drivers in newer kernels create multiple interfaces for p2p and AP
modes at boot time. Tolerate this behavior by searching for the managed
interface rather than taking the first interface.

BUG=chromium:334109
TEST=network_WiFi_SimpleConnect.wifi_checkWPA_TKIP passes with this
change on DUTs with newer drivers, and on DUTs with older drivers.

Change-Id: I26d1c9ada6402b26daa305cedf9f666a68342acf
Reviewed-on: https://chromium-review.googlesource.com/182356
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
Tested-by: Christopher Wiley <wiley@chromium.org>
ros/network/iw_runner.py
ros/network/shill_xmlrpc_server.py
719570228c2cdf0f6e69a2d5c5818914ed2ecc0c 08-Jan-2014 Christopher Wiley <wiley@chromium.org> autotest: Remove WiFi entries from the default profile in tests

Prevent WiFi entries from previous tests from interfering with future
tests by removing them from default profiles. Other sources of WiFi
entries are already addressed by popping and removing other profiles.

TEST=Manually added a WiFi entry to the default profile in a DUT, then
ran network_WiFi_SimpleConnect.wifi_checkWPA_TKIP, which removed that
entry from the default profile.
BUG=chromium:332421

Change-Id: Ia3832fada48fefbaf682e643b99754eb577fb34f
Reviewed-on: https://chromium-review.googlesource.com/181891
Tested-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
ros/network/shill_xmlrpc_server.py
5689d3618fd41cb5951a5fc2cc5f772c8997dab9 08-Jan-2014 Christopher Wiley <wiley@chromium.org> autotest: Only expect BSS's on current SSID from background scans

johannes.berg@intel.com notes that background scans are used in the
context of roaming in wpa_supplicant, and results from background scans
are restricted to BSSes on the SSID we're currently associated with.
Fix our tests to reflect this by putting the BSS we're checking for
on the same SSID as the BSS we're associated with.

While here, refactor the code for retrieving hostapd MAC addresses so
that it uses shared ip addr parsing code.

BUG=chromium:332250
TEST=This is a test that continues to pass on ath9k parts, and now seems
to pass against mwifiex parts.

Change-Id: I7069a5caf29248cca766eed0bdcb186c2e95b26d
Reviewed-on: https://chromium-review.googlesource.com/181813
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
Tested-by: Christopher Wiley <wiley@chromium.org>
ros/network/iw_runner.py
f671a5ac963909c63ff577754925a79a602fbb4e 14-Dec-2013 Christopher Wiley <wiley@chromium.org> autotest: Make WiFiClient an instance of LinuxSystem

This lets us consolidate some packet capture code and enables
us to use dual radio stumpies as both packet capture machines
and WiFiClients at the same time.

BUG=chromium:308214
TEST=wifi_matfunc still passes with these changes.
Taking packet captures with this modified WiFiClient still works.

Change-Id: Id143357f63be5ef2c8914cf0ff295408ab9b143b
Reviewed-on: https://chromium-review.googlesource.com/180097
Reviewed-by: Paul Stewart <pstew@chromium.org>
Tested-by: Christopher Wiley <wiley@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
ros/network/iw_runner.py
ros/network/shill_xmlrpc_server.py
1f89fd2f9f2010e732a87ed3c8f7f25777862c59 20-Dec-2013 Christopher Wiley <wiley@chromium.org> autotest: Migrate shill_proxy and dependencies to autotest

These files were installed as part of the shill test scripts when
the autotest client package was not installed in test images. Now that
the client package is installed at build time, we should move these
scripts into autotest.

The moved files were cut at 2b79b706f3d16f6f26dc29afd94b8a3dbf1d27e2
from the shill repository.

BUG=chromium:328169
TEST=WiFi tests (wifi_matfunc/network_nightly) still pass with these
changes. grepping for instances of '^import .*_proxy' and '^import
shill_context' returns no hits in autotest.

CQ-DEPEND=CL:181271
Change-Id: Ieb864f265fd9a6adee0863ec0e56969f3c389e43
Reviewed-on: https://chromium-review.googlesource.com/181360
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Tested-by: Christopher Wiley <wiley@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
ros/network/shill_xmlrpc_server.py
d4a6e8c9c608e201570d40dd438156f05ffd6b58 06-Jan-2014 Paul Stewart <pstew@chromium.org> Fix iw parsing of MCS rates

The "current_section" changes in
https://chromium-review.googlesource.com/176716 caused MCS parsing
to fail since lines like "HT TX/RX MCS rate indexes supported: 0-15, 32"
were considred a section header. We should not consider lines with
trailing non-space characters after the ':' to be a section header.

BUG=None
TEST=wifi_check11b where the all_phys is logged

Change-Id: I40515725e1d70b49ae689f0707bb97a979b21d1a
Reviewed-on: https://chromium-review.googlesource.com/181541
Reviewed-by: Johannes Berg <johannes.berg@intel.com>
Tested-by: Johannes Berg <johannes.berg@intel.com>
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Commit-Queue: Paul Stewart <pstew@chromium.org>
ros/network/iw_runner.py
eada904504e23f528cd851f096326bb9850ee3fa 03-Dec-2013 Dan Shi <dshi@chromium.org> [autotest] beaglebone: devserver staging script

Script to stage servo image in all devservers.

This script should be executed in a server running autotest scheduler. It is
used to accomplish following tasks:
1. Get the latest staged build in devserver as the build that's currently used
by servo.
2. Stage the latest or a specific beaglebone-release build from Google Storage
in all devservers.

BUG=chromium:272351
TEST=in local setup of autotest and devserver. Confirm:
1. File chromiumos_base_image.bin and image.zip are staged in all devservers.
e.g., in folder images/beaglebone-release/R33-5045.0.0/
2. Test with trybot build trybot-beaglebone-release/R33-5060.0.0-b17
confirm update.gz is staged.
For a full coverage test, try following cases:
1. run site_utils/stage_servo_image.py, which stages the latest build
2. run |site_utils/stage_servo_image.py -i [some old build]|, confirm error
message about newer build found on devservers is shown.

CQ-DEPEND=CL:178850

Change-Id: I4eba5d5da1f985a14a5ff9a553430c073ffa4c46
Reviewed-on: https://chromium-review.googlesource.com/178534
Tested-by: Dan Shi <dshi@chromium.org>
Reviewed-by: Chris Sosa <sosa@chromium.org>
Reviewed-by: Prashanth B <beeps@chromium.org>
Commit-Queue: Dan Shi <dshi@chromium.org>
ros/dev_server.py
df8aef7430bc92d8ee63c9e460be9605dc7fad6b 16-Dec-2013 Don Garrett <dgarrett@google.com> Improve the standard error message in the lab if an update fails.

Produce a more meaningful (but still generic) error message in the lab
if an update fails to apply.

Take 2!

BUG=chromium:246779
TEST=New unittest + trybots

Change-Id: I9f481e9c4143d66de1d7a91f1436e9d1155aa8ab
Reviewed-on: https://chromium-review.googlesource.com/180255
Tested-by: Don Garrett <dgarrett@chromium.org>
Reviewed-by: Richard Barnette <jrbarnette@chromium.org>
Commit-Queue: Don Garrett <dgarrett@chromium.org>
ros/autoupdater.py
ros/autoupdater_unittest.py
83e6b54fa090935000130fd1786422d34717d055 13-Dec-2013 Richard Barnette <jrbarnette@chromium.org> Revert "Improve the standard error message in the lab if an update fails."

This reverts commit 71fe97fe10f6979e7db628e28ef0de087b79c021.

BUG=chromium:328522

Change-Id: Iec595fa3094a8079056786db88c8639209896fec
Reviewed-on: https://chromium-review.googlesource.com/180046
Reviewed-by: Richard Barnette <jrbarnette@chromium.org>
Commit-Queue: Richard Barnette <jrbarnette@chromium.org>
Tested-by: Richard Barnette <jrbarnette@chromium.org>
ros/autoupdater.py
ros/autoupdater_unittest.py
rror.py
71fe97fe10f6979e7db628e28ef0de087b79c021 11-Dec-2013 Don Garrett <dgarrett@google.com> Improve the standard error message in the lab if an update fails.

Produce a more meaningful (but still generic) error message in the lab
if an update fails to apply.

BUG=chromium:246779
TEST=New unittest + trybots

Change-Id: Ib3be5fe27d7fd60732f9d20db4a08d1994358939
Reviewed-on: https://chromium-review.googlesource.com/179543
Reviewed-by: Richard Barnette <jrbarnette@chromium.org>
Commit-Queue: Don Garrett <dgarrett@chromium.org>
Tested-by: Don Garrett <dgarrett@chromium.org>
ros/autoupdater.py
ros/autoupdater_unittest.py
rror.py
9a2859facab9d1c32ca1bfd59951bddf8a5c20b3 06-Dec-2013 Christopher Wiley <wiley@chromium.org> autotest: Remove remaining site_wifitest functionality

After an enormous amount of work, we can remove the last remants of this
framework to rest.

BUG=None
TEST=No more references should exist to the code. git grepping for
references yields no hits.

Change-Id: I51e5bfa57002ebfbbdbcd3a4f7ce77e956f3577d
Reviewed-on: https://chromium-review.googlesource.com/179173
Tested-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
ros/site_wlan/__init__.py
ros/site_wlan/constants.py
ros/site_wlan/site_wlan_connect.py
ros/site_wlan/site_wlan_dbus_setup.py
ros/site_wlan/site_wlan_disconnect.py
ros/site_wlan/site_wlan_profiles.py
ros/site_wlan/site_wlan_statistics.py
ros/site_wlan/site_wlan_wait_state.py
56b1cc83e6475b8aee1e104f28316cce6d0dfa0f 07-Dec-2013 Don Garrett <dgarrett@google.com> Report kernel crashes in debug info if we rollback after update attempt.

We dump assorted debug info if an update fails and we perform a rollback.
This includes information about kernel crashes stored on stateful, if
present.

These crashes will NOT be present if the kernel crashed early in the boot
and didn't have the file system mounted.

BUG=chromium:326305
TEST=pyflakes, ran unittests.

Change-Id: I52185ef88399840e8a907d1c05d39c56ee9c959d
Reviewed-on: https://chromium-review.googlesource.com/179254
Reviewed-by: Don Garrett <dgarrett@chromium.org>
Tested-by: Don Garrett <dgarrett@chromium.org>
Commit-Queue: Don Garrett <dgarrett@chromium.org>
ros/autoupdater.py
448d52cd25de24ffd96a882a4445fc7c8326e413 04-Dec-2013 Artem Rakhov <arakhov@google.com> BluetoothTester: add support for basic SDP methods

BluetoothTester and BluetoothTesterXmlRpcDelegate classes are used to
expose tester-side bluetooth functionality (BluetoothSocket) so that it
could be accessed in autotests. BluetoothTester runs on the server and
basically represents the tester as an object for autotests.
BluetoothTesterXmlRpcDelegate runs on the tester and is generally a
proxy for BluetoothTester.

This CL adds connect() and service_search_request() methods to these
classes.

BUG=none
TEST=use added methods in autotests

Change-Id: I28671d2ad76d7a3e95f299c9622a6856a41ed941
Reviewed-on: https://chromium-review.googlesource.com/179167
Tested-by: Artem Rakhov <arakhov@chromium.org>
Reviewed-by: Fang Deng <fdeng@chromium.org>
Commit-Queue: Artem Rakhov <arakhov@chromium.org>
ros/bluetooth/bluetooth_tester_xmlrpc_server.py
8c5ae9abe9e6c13f983bc495a730d0ef480108cc 04-Dec-2013 Christopher Wiley <wiley@chromium.org> autotest: Migrate network_WiFiRoaming.011PMKSACaching

BUG=chromium:325924
TEST=wifi_matfunc passes with this test added.

Change-Id: I62ded27a8242f4d58ae090846b9c0893e981033a
Reviewed-on: https://chromium-review.googlesource.com/179375
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
Tested-by: Christopher Wiley <wiley@chromium.org>
ros/network/shill_xmlrpc_server.py
ros/network/xmlrpc_security_types.py
99e9c4a2011cce9eb32750cb0f99fc8daeb2fdb0 09-Dec-2013 Christopher Wiley <wiley@chromium.org> autotest: Refactor logic to access iw link values into iw_runner

This lets us easily reuse this logic.

BUG=chromium:325924
TEST=wifi_matfunc still passes.

Change-Id: Iaa18e16645733952a5192b90cda565120be85e11
Reviewed-on: https://chromium-review.googlesource.com/179374
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
Tested-by: Christopher Wiley <wiley@chromium.org>
ros/network/iw_runner.py
f800edf5197e27062b70585b86c12f79ab18077b 06-Dec-2013 Achuith Bhandarkar <achuith@chromium.org> Also retry LoginExceptions.

BUG=None
TEST=trybot

Change-Id: I34ee0f7c1ea6c32b73d6da60fbda00621133a004
Reviewed-on: https://chromium-review.googlesource.com/179150
Tested-by: Achuith Bhandarkar <achuith@chromium.org>
Reviewed-by: Simran Basi <sbasi@chromium.org>
Commit-Queue: Achuith Bhandarkar <achuith@chromium.org>
ros/chrome.py
2eb84088fe6c556245e0e300c424c97545a945ca 19-Nov-2013 Christopher Wiley <wiley@chromium.org> autotest: Migrate network_WiFiRoaming.009ConnectOnResume

TEST=This is a test that passes.
BUG=chromium:321334
CQ-DEPEND=CL:178611

Change-Id: I20f2b8da42b80be3e2ee4ba07235146756b33156
Reviewed-on: https://chromium-review.googlesource.com/178612
Tested-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
ros/network/shill_xmlrpc_server.py
47a5129545db2ad42740968b8c20e93cb04bf5ae 20-Nov-2013 beeps <beeps@chromium.org> [autotest] Enable input and extensions with chromedriver.

Enables form filling via chromedriver by enabling xauthority
and setting the correct display variable for the chromedriver
server. Also adds a test for setting fields through chromedriver.

TEST=Ran the included test that sets input, loaded a component
extension.
BUG=chromium:321440

Change-Id: Ife548fdda770322a1b4c83e57750fbb829ac9097
Reviewed-on: https://chromium-review.googlesource.com/178722
Commit-Queue: Prashanth B <beeps@chromium.org>
Tested-by: Prashanth B <beeps@chromium.org>
Reviewed-by: Dan Shi <dshi@chromium.org>
ros/chromedriver.py
edb26bf0efd528c0f00dd16affac5154b05550f5 03-Dec-2013 Christopher Wiley <wiley@chromium.org> autotest: Remove ancient config files from client package

These files haven't been touched since 2010 and have no references in
the autotest codebase.

BUG=chromium:324963
TEST=None
CQ-DEPEND=CL:178608

Change-Id: I453fb2442ab226801b73b4abf2689635105c64f5
Reviewed-on: https://chromium-review.googlesource.com/178564
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
Tested-by: Christopher Wiley <wiley@chromium.org>
ase_job.py
ase_job_unittest.py
3cbd76b06c383d8bc3e4ba959659a0bd04180761 27-Nov-2013 J. Richard Barnette <jrbarnette@chromium.org> Move certain content from client/ to server/site_utils.py

This moves the lab status functions and ParseBuildName(). They
were out of place in client/common_lib, as they're only needed/
meaningful in server side code.

BUG=None
TEST=run driver_unittest.py

Change-Id: I756291f27d7b041f0a907dee4004c3b447def929
Reviewed-on: https://chromium-review.googlesource.com/178306
Reviewed-by: Richard Barnette <jrbarnette@chromium.org>
Commit-Queue: Richard Barnette <jrbarnette@chromium.org>
Tested-by: Richard Barnette <jrbarnette@chromium.org>
rror.py
ite_utils.py
fa9b542863860667bb1b173da2819d32a73a9c92 27-Nov-2013 Christopher Wiley <wiley@chromium.org> autotest: Configure WiFi bgscan during connect

This allows us to configure bgscan at connect time, which is a boon
for systems which use wpa_supplicant directly. wpa_supplicant expects
bgscan parameters as part of the netblock, which is given at initial
connection time. In shill, these settings are persisted as properties
of the device, and given for each new association.

As a pleasant side effect, this ends the risk of an improper bgscan
configuration persisting in shill state and possibly interfering with
future test results.

While here, remove a number of bgscan related methods that have no
remaining callsites.

BUG=chromium:313959
TEST=network_WiFi_SimpleConnect.wifi_checkWPA_TKIP passes with these
changes. network_WiFi_BgscanBackoff also passes.

Change-Id: I2b463ad00c8edc59945519ba8647e48bd1a7429a
Reviewed-on: https://chromium-review.googlesource.com/178098
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
Tested-by: Christopher Wiley <wiley@chromium.org>
ros/network/shill_xmlrpc_server.py
ros/network/xmlrpc_datatypes.py
944405a751a3ef0f1ae7ac8cf9e03f2f73ba715d 21-Nov-2013 Achuith Bhandarkar <achuith@chromium.org> Allow for extensions to be loaded as non-component extensions.

More comments for Chrome.__init__

BUG=chromium:312509
TEST=manual.

Change-Id: I80a952f9d8889b82000760272dab492c79553408
Reviewed-on: https://chromium-review.googlesource.com/177642
Reviewed-by: Tomasz Mikolajewski <mtomasz@chromium.org>
Tested-by: Achuith Bhandarkar <achuith@chromium.org>
Commit-Queue: Achuith Bhandarkar <achuith@chromium.org>
ros/chrome.py
c5a46214e6c984f93a9a163fcbf36d814a71280b 26-Nov-2013 Artem Rakhov <arakhov@chromium.org> BluetoothSDPSocket class

BluetoothSDPSocket wraps the btsocket.socket() class to implement the
necessary send and receive methods for the SDP protocol, and to provide
the interface for different types of requests. Only the Service Search
Request type is supported so far.

BUG=none
TEST=create an instance of BluetoothSDPSocket and run different service
search requests

Change-Id: Ie9d0818f9492f32036a359f254ee14a6dbd4f943
Reviewed-on: https://chromium-review.googlesource.com/177950
Reviewed-by: Dan Shi <dshi@chromium.org>
Tested-by: Artem Rakhov <arakhov@chromium.org>
Commit-Queue: Artem Rakhov <arakhov@chromium.org>
ros/bluetooth/bluetooth_sdp_socket.py
2ca9777726b79bae8c4d14ed16a39338a6890992 22-Oct-2013 Dan Shi <dshi@chromium.org> [autotest] Force to collect all logs if test failed.

The default behavior is to save only new data in /var/log. This CL changes that
behavior so that, if a test failed, all files in /var/log will be collected.

BUG=chromium:303352
TEST=test_that 172.22.75.225 dummy_Fail
check results folder that contains all files in /var/log:
/tmp/test_that_results_0JCjJZ/results-1-dummy_Fail/dummy_Fail.Fail/sysinfo/var/log/
If the test passed, the folder should be var/log_diff.

Change-Id: I4c876c4a25a129841ff82763412aec2b317825a1
Reviewed-on: https://chromium-review.googlesource.com/174058
Tested-by: Dan Shi <dshi@chromium.org>
Reviewed-by: Simran Basi <sbasi@chromium.org>
Commit-Queue: Dan Shi <dshi@chromium.org>
est.py
881ffca91e971b38c7530ea22a56d8c7d0210b62 15-Nov-2013 Paul Stewart <pstew@chromium.org> Add a test for TDLS connectivity

Add a test that associates the DUT with an AP, then attaches a
peer client to the same AP. After enabling a TDLS link from the
DUT to the attached peer, we should see in the over-the-air packets
that a ping between these devices does not use the AP as a relay
any more.

CQ-DEPEND=CL:176720,CL:177082
BUG=chromium:318166
TEST=This is a test

Change-Id: Ia743aea8ad2970a10c536f42804dc3402d614ca2
Reviewed-on: https://chromium-review.googlesource.com/177083
Reviewed-by: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Paul Stewart <pstew@chromium.org>
ros/network/shill_xmlrpc_server.py
b12e2ee0fb8d54e963d513c6da808a98ab5fa518 19-Nov-2013 Dean Liao <deanliao@chromium.org> Accept extra_browser_args when initializing Chrome object.

Sometimes tests need to set extra_browser_args to use specific Telemetry
method. It provides an interface for users to do so.

BUG=None
TEST=manual

Change-Id: Ib2a7f89d93f6dd35064d469faeb621d788415688
Reviewed-on: https://chromium-review.googlesource.com/177321
Reviewed-by: Dean Liao <deanliao@chromium.org>
Commit-Queue: Dean Liao <deanliao@chromium.org>
Tested-by: Dean Liao <deanliao@chromium.org>
ros/chrome.py
6ddeba733cfdb86ae4399159a2d8c1b71ed54fa6 18-Nov-2013 Paul Stewart <pstew@chromium.org> Add router method for adding a connected peer

Add a method that attaches a client to a running hostap instance.
In a typical testbed configuration, this means that one wireless
radio in the server instance connects to the other radio. This
allows testing operations that the DUT may perform with other
devices connected to the same AP.

BUG=chromium:318166
TEST=Upcoming TDLS autotest

Change-Id: I1469d6a3e14e5fde33e53f05ff5bfd46420c6bc6
Reviewed-on: https://chromium-review.googlesource.com/177211
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Paul Stewart <pstew@chromium.org>
ros/network/iw_runner.py
20867c4172a0b01e131599f8848944e0b2e0cdb3 14-Nov-2013 Paul Stewart <pstew@chromium.org> WiFi test that disables and enables WiFi while connected

This tests to make sure that the client successfully disconnects
and re-connects to a known AP if the WiFi device is disabled and
enabled.

BUG=chrome-os-partner:24053
TEST=This is a test

Change-Id: I91ac81a3e3a20f096c990784b22b87ee674352b5
Reviewed-on: https://chromium-review.googlesource.com/176870
Reviewed-by: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Paul Stewart <pstew@chromium.org>
ros/network/shill_xmlrpc_server.py
b0e99075c0eeb3fd37efb4e7d9e276abcd81c26f 19-Nov-2013 Achuith Bhandarkar <achuith@chromium.org> Add a retry for logging into chrome.

BUG=chromium:304442
TEST=trybot

Change-Id: Icd672a7afb82cab92ac651af3f1e7234556dd2d7
Reviewed-on: https://chromium-review.googlesource.com/177249
Reviewed-by: Simran Basi <sbasi@chromium.org>
Commit-Queue: Achuith Bhandarkar <achuith@chromium.org>
Tested-by: Achuith Bhandarkar <achuith@chromium.org>
ros/chrome.py
96c77cba384edd7befc85530ab6f809cef429625 19-Nov-2013 Dan Shi <dshi@chromium.org> [autotest] ignore import error from selenium

Ignore import error, as this can happen when builder tries to call the setup
method of test that imports chromedriver.

BUG=None
TEST=None

Change-Id: Icf60e05cba11031746030cd6ce50e7d5cf31eda1
Reviewed-on: https://chromium-review.googlesource.com/177341
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
Commit-Queue: Dan Shi <dshi@chromium.org>
Tested-by: Dan Shi <dshi@chromium.org>
ros/chromedriver.py
27ecc5d02e488fbe2605048f5a5e805cf94036d5 14-Nov-2013 Paul Stewart <pstew@chromium.org> Report whether DUT supports TDLS capabilities

This adds to the "capabilities" set for a linux system if any phy
on the system reports the ability to perform TDLS operations or
TDLS management frames.

BUG=chromium:314201
TEST=Use network_WiFi_SimpleConnect.wifi_checkWPA_TKIP and pored
through the messages for the "client system capabilities" message.

Change-Id: I417a21a816443712c72a289bc89b6c9935c13467
Reviewed-on: https://chromium-review.googlesource.com/176716
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
ros/network/iw_runner.py
e689e71e9057f5d1f1d878588e56b3aa360228c3 14-Nov-2013 Fang Deng <fdeng@chromium.org> [autotest] telemetry_Benchmarks upload perf data using output_perf_value

telemetry_Benchmarks now upload perf data using output_perf_value.
It will not write to the keyval file anymore.

After the change lands, we should stop the scripts extract_perf.py
and generate_perf_graphs that are currently kicked off
by cron to upload the perf data.

Also makes output_perf_value accept empty unit.

CQ-DEPEND=I0b746f4ab3162eb7ba4aefa12294b7a60e326513
TEST=1)Locally kicked off the tests from the AFE,
confirmed that the perf data was uploaded to the testing
perf dashboard.
2)test_unittest.py telemetry_runner_unittest.py
BUG=chromium:280634

Change-Id: Icf6dca08cab0268b41f8359eb73084dfee3e4b9d
Reviewed-on: https://chromium-review.googlesource.com/176746
Reviewed-by: Fang Deng <fdeng@chromium.org>
Tested-by: Fang Deng <fdeng@chromium.org>
Commit-Queue: Fang Deng <fdeng@chromium.org>
est.py
7f24f0bfe69b2f36ba74350fba9ad547ac55571c 12-Nov-2013 Fang Deng <fdeng@chromium.org> [autotest] test can output graph name when calling output_perf_value

Previously, if we want to group several perf measurements together
to be displayed on the same graph, we need to specify the mapping
information in perf_dashbaord_config.json. However, some tests
like telemetry_Benchmarks output many metrics. We would end up
with a very huge config file if we specify them all. It would require
much efforts if those metrics change in the future.
This change is to allow test to output graph names dynamically.

1) output_perf_value now takes a new arg 'graph'. This value is
written to the json file perf_measurements.
2) a new column 'graph' is added to the database table
tko_iteration_perf_value.
3) the tko parser is modified to store the value of 'graph' from
perf_measurements to the database.
4) perf_uploader is modified to upload a perf measurement to the
specific graph if 'graph' is set.

Example:
Previously, if we wanted to specify group "metric1" and "metric2"
to the same graph "metricGroupA", and group "metric3" and "metric4"
to "metricGroupB", the json needed to look like:
{
“autotest_name”: “myTest”,
“master_name”: “myMaster”,
“dashboard_test_name”: “myCoolTest”
“graphs”: [
{
“graph_name”: “metricGroupA”,
“descriptions”: [“metric1”, “metric2”]
},
{
“graph_name”: “metricGroupB”,
“descriptions”: [“metric3”, “metric4”]
},

]
}
After this change list lands, the json file will not
take "graphs" configuration. It will look like.
{
“autotest_name”: “myTest”,
“master_name”: “myMaster”,
“dashboard_test_name”: “myCoolTest”
}
Meanwhile, the test should call
output_perf_value(description="metric1", units=.., higher_is_better=..,
graph='metricGroupA')
output_perf_value(description="metric2", units=.., higher_is_better=..,
graph='metricGroupA')
output_perf_value(description="metric3", units=.., higher_is_better=..,
graph='metricGroupB')
output_perf_value(description="metric4", units=.., higher_is_better=..,
graph='metricGroupB')

BUG=chromium:315274
TEST=1) Verified all unit tests passed: version_1_unittest.py,
perf_uploader_unittest.py
2) Modify perf_uploader.py to use staging perf dashboard server
_DASHBOARD_UPLOAD_URL =
'https://chrome-perf.googleplex.com/add_point'
Modify platform_BootPerfServer to output graph name.
Invoked platform_BootPerfServer from local AFE.
Verify that the perf_measurements file have the graph name.
Verify that the data was displayed correctly in the dashboard.
3) python migrate.py sync 82, to verify column 'graph' get created
python migrate.py sync 81, to verify column 'graph' is dropped
DEPLOY=migrate (/usr/local/autotest/database$ python migrate.py sync 82)

Change-Id: I0b746f4ab3162eb7ba4aefa12294b7a60e326513
Reviewed-on: https://chromium-review.googlesource.com/176575
Reviewed-by: Richard Barnette <jrbarnette@chromium.org>
Commit-Queue: Fang Deng <fdeng@chromium.org>
Tested-by: Fang Deng <fdeng@chromium.org>
est.py
8703a44abffde3cbec9e38dce6acdb39783f2b0b 08-Nov-2013 Christopher Wiley <wiley@chromium.org> autotest: Migrate network_WiFiManager.095 to new framework

Since this test manipulates an entry and intends for it to autoconnect,
add an autoconnect that controls this function.
Remove the network_WiFiManager directory since it has no tests
remaining.

TEST=This is a passing test. suite:wifi_matfunc continues to pass.
BUG=chromium:316406

Change-Id: I61ea0f49e04d010760e3c52961182b9c5b753eef
Reviewed-on: https://chromium-review.googlesource.com/176403
Tested-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
ros/network/shill_xmlrpc_server.py
ros/network/xmlrpc_datatypes.py
f91c9dd271c0827498a04c0788febacec2bf5d2b 07-Nov-2013 Christopher Wiley <wiley@chromium.org> autotest: Migrate network_WiFiManager.09[2-4] to new test framework

TEST=This is a test, and it passes.
BUG=chromium:316406

CQ-DEPEND=CL:176117

Change-Id: Iaa16601ddfb052e9f2ae4805376b24f099f1b534
Reviewed-on: https://chromium-review.googlesource.com/176149
Tested-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
ros/network/shill_xmlrpc_server.py
8d2cbf363de4aace06c65ddd20ec862431ce928c 12-Nov-2013 Scott James Remnant <keybuk@chromium.org> Bluetooth: rename BluetoothClient to BluetoothDevice

The BluetoothClient class, and BluetoothClientXmlRpcServer, were named
to match the WiFiClient class that they were based on. However for
Bluetooth tests, the DUT can actually behave as either a Client or a
Server depending on the requirements of the test - with the Tester
likewise behaving as a Server or Client appropriately.

This becomes confusing, so instead rename BluetoothClient to
BluetoothDevice so it's clear it refers to the DUT rather than its role.

BUG=chromium:256771
TEST=test_that suite:bluetooth_sanity

Change-Id: I75864de27325f3a74394a092ce7e538d8161f8a8
Reviewed-on: https://chromium-review.googlesource.com/176468
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Simran Basi <sbasi@chromium.org>
Commit-Queue: Scott James Remnant <keybuk@chromium.org>
Tested-by: Scott James Remnant <keybuk@chromium.org>
ros/bluetooth/bluetooth_client_xmlrpc_server.py
ros/bluetooth/bluetooth_device_xmlrpc_server.py
33fc2990540d640854188e98ba68c191433d40d3 10-Sep-2013 Wade Guthrie <wdg@chromium.org> autotest: Migrates 003SSIDMultiSwitchBack (low signal) to new method.

Replaces 'low signal' portion of
network_WiFiRoaming/00SSIDMultiSwitchBack test with script and control
file in network_WiFi_SSIDMultiSwitchBackLowPower directory.

New code conforms to test infrastructure changes provided to address
crbug.com/224443.

This roaming test configures 2 radios (different frequencies and BSSIDs)
on the same SSID, connects to one, and lowers its power. It then
verifies that the DUT discovers this and connects to the other radio.
This test changes the following things from the original test in order
to reduce flake:

- Uses BeagleBone-connected RF attenuators (original test requires a
specific setup: chromeos1-grover-host1) to change the AP's transmit
power rather than the previous 'iw' command that didn't work,
anyway.

- Modifies the roam threshold in supplicant to ensure that a DUT's
poor signal measurement ability doesn't mess with the test's
robustness.

- Clears supplicant's blacklist so that running the test twice in a
row won't cause the second iteration to fail.

BUG=chromium:263887
TEST=autotest (this one).
CQ-DEPEND=I7353d742d949778eb50bd754a0054055726831e0
CQ-DEPEND=I99f64404d54efd94b64bd8a96c092cf878e04ef0
CQ-DEPEND=I0d7d2c39496cf60fd3919fdb61034a96175e8a85
CQ-DEPEND=Id633bb69ad8abb82f207c27043c2ddbbdddaf332

Change-Id: I7bf3257d5e4bab265273e367d0123f460fb6d6f6
Reviewed-on: https://chromium-review.googlesource.com/173248
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Wade Guthrie <wdg@chromium.org>
Commit-Queue: Wade Guthrie <wdg@chromium.org>
Tested-by: Wade Guthrie <wdg@chromium.org>
ros/network/shill_xmlrpc_server.py
04cced6097195aec700976e9c7134cfacc2ba3cd 04-Nov-2013 Fang Deng <fdeng@chromium.org> [autotest] Do not use call_and_wait on devserver rpc call 'setup_telemetry'

Currently, client.common_lib.cros.dev_server:setup_telemetry is broken.
It calls call_and_wait with arg
artifacts=_ARTIFACTS_TO_BE_STAGED_FOR_IMAGE. However, setup_telemetry
rpc method won't stage all artifacts specified in the constant. The
client will wait forever for those artifacts to be staged.

Because setup_telemetry method in platform/dev/dev_server.py won't
respect 'async' arg, there is simply no need to wait for this call
as it will always be a synchronous call. So the fix would
be just not using call_and_wait for setup_telemetry.

BUG=chromium:314213
TEST=setup a local devserver, make sure nothing was staged,
run a test in telemetry_Benchmarks with atest;
confirm that the test does not stuck at setup_telemetry any more.
Run perf_v2 suite, confirm that setup_telemetry succeeds.

Change-Id: I203bbd41da5c8c692cb15302746ed344cba3023f
Reviewed-on: https://chromium-review.googlesource.com/175650
Reviewed-by: Chris Sosa <sosa@chromium.org>
Tested-by: Fang Deng <fdeng@chromium.org>
Commit-Queue: Fang Deng <fdeng@chromium.org>
ros/dev_server.py
c1d263b436976b7516f77e84386ec0fbe2b3cfbe 05-Oct-2013 Dan Shi <dshi@chromium.org> [autotest] add a wrapper for client side chrome driver based test

client/common_lib/cros/chromedriver.py
|chromedriver| is a wrapper class for any client side test that wants to use
Chrome Driver to interact with the browser. The wrapper class handles log in
with Telemtry when an instance of chrome_driver is instantiated. It exposes a
property |driver| for test to call methods of Chrome Driver.

|chromedriver_server| is a wrapper class to start/stop chromedriver server in
remote mode. That is, ChromeOS logged in with debugging port opened using
Telemetry, Chrome Driver started by specifying the remote debug port of Chrome
browser.

client/site_tests/desktopui_UrlFetchWithChromeDriver
A sample test that use Chrome Driver/Selenium to test browser url and cookie.
This test takes following test as an example, which uses pyauto.
client/site_tests/desktopui_UrlFetch

related CL that adds Chrome Driver to test image:
https://chromium-review.googlesource.com/#/c/173183/

TODO(dshi)> another CL will be added to add desktopui_UrlFetchWithChromeDriver
to ebuild: chromeos-base/autotest-chrome/autotest-chrome-9999.ebuild

BUG=chromium:289702
TEST=test_that 172.22.75.225 desktopui_UrlFetchWithChromeDriver
trybot build: Tested in build trybot-lumpy-paladin/R32-4831.0.0-b1336

Change-Id: I8d3ec8a8bd3e14cdc4cc5d9c76f19a422ad0e00b
Reviewed-on: https://chromium-review.googlesource.com/172082
Reviewed-by: Scott Zawalski <scottz@chromium.org>
Tested-by: Dan Shi <dshi@chromium.org>
Commit-Queue: Dan Shi <dshi@chromium.org>
ros/chromedriver.py
4b01f86e1e01a758c7aa21356782e16eb6320e0e 01-Nov-2013 Christopher Wiley <wiley@chromium.org> autotest: Fix WiFiClient.scan() method to retry when device is busy

On the way, change the logic to reuse logic from iw_runner rather than
reimplement it.

BUG=chromium:314116
TEST=The given test passes. We occationally see flake in
the network_WiFi_MaskedBSSID test, and
this attempts to address one cause of flake.

Change-Id: I61c722884cb3e1d3738ec5e5a7d532abd46c4f8d
Reviewed-on: https://chromium-review.googlesource.com/175367
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
Tested-by: Christopher Wiley <wiley@chromium.org>
ros/network/iw_runner.py
f9cb09248401599e3b82aa2dbf84ede201e514d5 01-Nov-2013 Christopher Wiley <wiley@chromium.org> autotest: Move iw runner into client library

We may find it useful to use iw related logic in client tests. To
enable this, make the host parameter optional and run the commands on
localhost if no remote host is specified.

On the way, fix a missing error import in chaos_runner.py.

TEST=Interop debug test with 2 APs still works.
BUG=None

Change-Id: I41289fc8390873c73ac3474d37f4c89a0bc6368f
Reviewed-on: https://chromium-review.googlesource.com/175366
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Tested-by: Christopher Wiley <wiley@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
ros/network/iw_runner.py
ros/network/iw_runner_unittest.py
e1e4f2295e949b89961938167ea622dd51053151 23-Oct-2013 Fang Deng <fdeng@chromium.org> [autotest] platform_BootPerfServer uploads perf data to new perf dashboard

Read the perf data from keyval file. Call output_perf_value()
to upload the perf data to chromeos perf dashboard.

Uploading is controlled by a tag 'upload_perf' passed from control file.
Only control.perfalearts will be uploading perf data.

Also make client/common_lib/base_utils:read_keyval
respect type_tag in the key noted in '{}', e.g. 'seconds_reboot_time{perf}'.

BUG=chromium:280634;chromium:314167
TEST=Ran the test locally, confirmed that the file "perf_measurements"
with correct perf data was outputted to the result dir.
run_suite works with dummy suite.

Change-Id: Iaf17872467dedb72878c43e563caa28cdadc9b5d
Reviewed-on: https://chromium-review.googlesource.com/175507
Tested-by: Fang Deng <fdeng@chromium.org>
Reviewed-by: Richard Barnette <jrbarnette@chromium.org>
Commit-Queue: Fang Deng <fdeng@chromium.org>
ase_utils.py
ase_utils_unittest.py
c3d2c3be7067be9d321c441fd33d668d74043b88 29-Oct-2013 bmahadev <bmahadev@chromium.org> Add parsing for RSN and WPA to the iw_runner
Also includes a new file chaos_constants.py that has
the contants for error strings and more such in the future
and fixed the failing iw_runner_unittest

BUG=chromium:310346
TEST=ChaosPSK/iw_runner_unittest

Change-Id: I9e850b877c92effb5873664cc361375fbfe8bc8f
Reviewed-on: https://chromium-review.googlesource.com/174919
Reviewed-by: Kris Rambish <krisr@chromium.org>
Reviewed-by: Bindu Mahadev <bmahadev@chromium.org>
Commit-Queue: Bindu Mahadev <bmahadev@chromium.org>
Tested-by: Bindu Mahadev <bmahadev@chromium.org>
ros/network/chaos_constants.py
5d82d54c3172d73417816396e8b9869b502b1808 01-Nov-2013 Richard Barnette <jrbarnette@chromium.org> Revert "[autotest] platform_BootPerfServer uploads perf data to new perf dashboard"

This reverts commit a52a3b6be3c1fcf1df1bffb67fc359477387a7ce.

BUG=chromium: 314167
TEST=None

Change-Id: Ie832739cec7a8752cb4f6693cec7b876714e0ea2
Reviewed-on: https://chromium-review.googlesource.com/175407
Reviewed-by: Richard Barnette <jrbarnette@chromium.org>
Commit-Queue: Richard Barnette <jrbarnette@chromium.org>
Tested-by: Richard Barnette <jrbarnette@chromium.org>
ase_utils.py
a52a3b6be3c1fcf1df1bffb67fc359477387a7ce 23-Oct-2013 Fang Deng <fdeng@chromium.org> [autotest] platform_BootPerfServer uploads perf data to new perf dashboard

Read the perf data from keyval file. Call output_perf_value()
to upload the perf data to chromeos perf dashboard.

Uploading is controlled by a tag 'upload_perf' passed from control file.
Only control.perfalearts will be uploading perf data.

Also make client/common_lib/base_utils:read_keyval
respect type_tag in the key noted in '{}', e.g. 'seconds_reboot_time{perf}'.

BUG=chromium:280634
TEST=Ran the test locally, confirmed that the file "perf_measurements"
with correct perf data was outputted to the result dir.

Change-Id: Id71624ea344c69e4b2efc9535436ecb0af88a187
Reviewed-on: https://chromium-review.googlesource.com/174413
Reviewed-by: Richard Barnette <jrbarnette@chromium.org>
Tested-by: Fang Deng <fdeng@chromium.org>
Commit-Queue: Fang Deng <fdeng@chromium.org>
ase_utils.py
d9a056fe72b1a6aa2ccf9acbc3a1918dbbe07028 29-Oct-2013 Fang Deng <fdeng@chromium.org> [autotest] Server side job uses /tmp as tmpdir

Currently server/tmp is used for server job's tmpdir.
server/tmp doesn't come with autotest repo. We are hitting
the following error if server/tmp doesn't exist on server side:

MissingDirectoryException: Directory /usr/local/autotest/server/tmp
does not exist

This CL tries to fix the problem by using system temporary directory
for server job's tmpdir.

BUG=chromium:276552
TEST= 1) Without the fix, delete server/tmp, run
/usr/local/autotest/server/autoserv '-r' '/tmp/1038-fdeng' '-s'
-m LOCAL_MACHINE A_SERVER_SIDE_CONTROL_FILE
Confirm the exception is raised.
2) Apply the fix, confirm that autoserv runs successfully.
3) Confirm client side test still works.
4) unittest

Change-Id: I7906546cc0dbd0ddd121adb7345b38f89f135f48
Reviewed-on: https://chromium-review.googlesource.com/174987
Reviewed-by: Fang Deng <fdeng@chromium.org>
Tested-by: Fang Deng <fdeng@chromium.org>
Commit-Queue: Dan Shi <dshi@chromium.org>
ase_job.py
ase_job_unittest.py
b429b973aa8ba7956152189db1889aa0653f7817 23-Oct-2013 Christopher Wiley <wiley@chromium.org> autotest: Refactor out tcpdump frame parsing code

This lets us reuse this code to make other assertions about packet
captures. It didn't seem like a delegate class was really justified, so
we have just the method.

TEST=network_WiFi_RateControl still passes and fails appropriately.
BUG=chromium:309779

Change-Id: I4151c713da8540ab9582e650fdfa0596fa0011c7
Reviewed-on: https://chromium-review.googlesource.com/174924
Tested-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
ros/network/tcpdump_analyzer.py
e92d1ac577d5707b64beb6dbac3a0fecd53298f4 23-Oct-2013 Scott Zawalski <scottz@google.com> Disable barrier_unittest it is flaky.

BUG=chromium:309832
TEST=unittest_suite.py

Change-Id: I5922d3d3f375fab7296b56227e165122829b178e
Reviewed-on: https://chromium-review.googlesource.com/174272
Reviewed-by: Scott Zawalski <scottz@chromium.org>
Tested-by: Scott Zawalski <scottz@chromium.org>
arrier_unittest.disabled
arrier_unittest.py
c193217c55a11367708be5c25bd1c8e1857ab6ff 16-Oct-2013 Chris Sosa <sosa@chromium.org> Add rollback integration test autoupdate_Rollback.

This CL adds a rollback test that updates the DUT to a new image
and verifies that we can rollback to whatever we had installed
by inspecting the kernel state at each phase.

BUG=chromium:260568
TEST=Ran it several times.

Change-Id: Ie7f3c8ee7f0cfb4889989735f17870da19368da3
Reviewed-on: https://chromium-review.googlesource.com/173320
Reviewed-by: Chris Sosa <sosa@chromium.org>
Commit-Queue: Chris Sosa <sosa@chromium.org>
Tested-by: Chris Sosa <sosa@chromium.org>
ros/autoupdater.py
29f8765bf67b08016f321e9e350ae294f568248f 26-Sep-2013 Wade Guthrie <wdg@chromium.org> autotest: Adds 'clear_supplicant_blacklist'

wpa_supplicant adds a BSSID to its blacklist (i.e., it won't roam to the
BSS) if supplicant gets a DEAUTH for the BSSID. This happens, for
example, when if (like most of our tests) a router is deconfigured
without the currently-connected ssid having been disconnected. For
single radio tests, this isn't a big deal: supplicant clears the
blacklist if a scan finds no available non-blacklisted BSSes. For
two radio tests, though, this leaves one BSSID blacklisted and unusable.
This provides an API to clear the blacklist.

BUG=None
TEST=autotest and maunal. For the manual test, do the following:

For all work on the DUT, below, you can either
* ssh to the DUT
or:
* use a crosh tab on the dut (ctrl-alt-T)
* > shell
* > sudo bash

Verify that things work OK with when clearing the blacklist:

* On the DUT:
* > echo '' > /var/log/net.log

* On the workstation (in a chroot):
* > test_that --fast -b ${BOARD} chromeos1-grover-host1.cros \
network_WiFi_SSIDMultiSwitchBackLowPower
* Verify that the test passes.

* On the DUT:
* > grep "Removed BSSID .* from blacklist (clear)" /var/log/net.log
* Verify that at least one entry appears with a MAC address that is
not 00:00:00:00:00:00

Verify that things do not work when not clearing the blacklist:

* On the workstation:
* In this file:
src/third_party/autotest/files/server/site_tests/
network_WiFi_SSIDMultiSwitchBackLowPower/
network_WiFi_SSIDMultiSwitchBackLowPower.py

Comment out the following line:
self.context.client.clear_supplicant_blacklist()

* On the DUT:
* > echo '' > /var/log/net.log

* On the workstation (in a chroot):
* > test_that --fast -b ${BOARD} chromeos1-grover-host1.cros \
network_WiFi_SSIDMultiSwitchBackLowPower
* If the test passes the first time (and it might), re-clear
/var/log/net.log (as above) and rerun the test.
* Verify that the test fails.

* On the DUT:
* > grep "Removed BSSID .* from blacklist (clear)" /var/log/net.log
* Verify that at no entry appears with a MAC address that is
not 00:00:00:00:00:00

CQ-DEPEND=I1274c3fed10e93386ffc49e7a3e0b45c3e98856b

Change-Id: Id633bb69ad8abb82f207c27043c2ddbbdddaf332
Reviewed-on: https://chromium-review.googlesource.com/170696
Tested-by: Wade Guthrie <wdg@chromium.org>
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Wade Guthrie <wdg@chromium.org>
Commit-Queue: Wade Guthrie <wdg@chromium.org>
ros/network/shill_xmlrpc_server.py
6542508ae5099864ebb88ccae0bf6cceb4e142ae 16-Oct-2013 Chris Sosa <sosa@chromium.org> Refactor verification of booted partition logic so it's reusable.

The verification logic doesn't really belong to cros_host.py and putting
it there makes it difficult to re-use across server-side tests. In
a follow-up CL I plan to use verify_kernel_boot alone (to verify we
switched partitions in an update the test controls). This CL makes it
easy to do that.

BUG=chromium:260468
TEST=Ran with new test, pylint, pyflakes.

Change-Id: If81a65b3cb388e8ac5a55dbb83ba2e1617d326a2
Reviewed-on: https://chromium-review.googlesource.com/173219
Reviewed-by: Richard Barnette <jrbarnette@chromium.org>
Tested-by: Chris Sosa <sosa@chromium.org>
Commit-Queue: David James <davidjames@chromium.org>
ros/autoupdater.py
2ea08b613d0c283d357fd92735e87aac6909ee04 15-Oct-2013 Jason Abele <jabele@chromium.org> autotest: chaos: generate AssociationParameters in ChaosRunner

StaticAPConfigurators can not change the security/SSID/etc settings of
the AP they represent. Allow StaticAPConfigurators to choose their
SSID and psk from the config file.

Make APSpec's immutable by computing ssid in the DynamicAPConfigurator,
instead of the APSpec.

Allow all this to work by generating the AssociationParameters in
ChaosRunner.run() after AP configuration is complete and available.

Passing AssociationParameters to network_WiFi_ChaosConnectDisconnect
instead of APSpec leaves no frequency information for packet_capturer,
pass capturer_frequency and capturer_ht_type.

BUG=chromium:307577
TEST=test_that HOST network_WiFi_ChaosConnectDisconnect.local \
test_that HOST network_WiFi_ChaosConnectDisconnect.debug

Change-Id: I5e5546dded1175415be37110dcc74b1ae97227c2
Reviewed-on: https://chromium-review.googlesource.com/173061
Tested-by: Jason Abele <jabele@chromium.org>
Reviewed-by: Kris Rambish <krisr@chromium.org>
Commit-Queue: Jason Abele <jabele@chromium.org>
ros/network/xmlrpc_datatypes.py
c4526e4eb149bed6d751deadeb1ec3be81999231 15-Oct-2013 Simran Basi <sbasi@chromium.org> Autotest: Fix server-side profilers and support telemetry_Crosperf

Server-side profiler support was written back in 2010 and there does
not seem to be any recent usages of it thus it no longer worked.
Discovered this is due to chrome-os not allowing incoming connections
on the port the barrier's listening server uses.

This change adds the command to open the port and make server side
profilers work as expected. It also fixes us the arg parsing of
telemetry_Crosperf so the profiler runs properly.

BUG=chromium:303925
TEST=test_that --board=link --args="iterations=1 test=octane
profiler=custom_perf profiler_args='record -a -a -e cycles,instructions'"
172.22.75.140 telemetry_Crosperf

Change-Id: I35952faaaa7aa829653898f852216b4ffe3d6342
Reviewed-on: https://chromium-review.googlesource.com/173086
Reviewed-by: Simran Basi <sbasi@chromium.org>
Commit-Queue: Simran Basi <sbasi@chromium.org>
Tested-by: Simran Basi <sbasi@chromium.org>
arrier_unittest.py
ase_barrier.py
3e5051df7e6f9026915e7052f763902409d527bd 16-Oct-2013 Achuith Bhandarkar <achuith@chromium.org> Info level logging in telemetry for autotests.

BUG=chromium:307287
TEST=manual

Change-Id: I412b724f803f8c7b06a17cc0de93a2761f07dc6c
Reviewed-on: https://chromium-review.googlesource.com/173150
Reviewed-by: Simran Basi <sbasi@chromium.org>
Commit-Queue: Achuith Bhandarkar <achuith@chromium.org>
Tested-by: Achuith Bhandarkar <achuith@chromium.org>
ros/chrome.py
9fd7f46552205dc17e1d888632658bdf1a97d603 11-Oct-2013 Christopher Wiley <wiley@chromium.org> autotest: Add tag to XMLRPC log messages

These logs end up in /var/log/messages, and it would be nice to see
messages be given a meaningful tag. Since we don't call syslog
directly, we need to do this with a Python formatter.

BUG=None
TEST=tag appears in output for shill xmlrpc server.

Change-Id: I6a37d4229f099f4510c81065fc729c391fde4f8c
Reviewed-on: https://chromium-review.googlesource.com/172832
Tested-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
ros/bluetooth/bluetooth_client_xmlrpc_server.py
ros/bluetooth/bluetooth_tester_xmlrpc_server.py
ros/interactive_xmlrpc_server.py
ros/network/shill_xmlrpc_server.py
a2df47b3e23fa06a279cdf1f30150173bb684c71 10-Oct-2013 Achuith Bhandarkar <achuith@chromium.org> Move login_status_ext to autotest_private_ext.

A number of tests need access to autotestPrivate-
now chrome.py provides access to an extension with this api by simply setting a boolean.
A number of tests could use login_status as well, so add a property for this.
Add support for oobe access.
Refactor telemetry_LoginTest to use the new properties.

BUG=chromium:233834
TEST=telemetry_LoginTest

Change-Id: Ia6474ff9b280a7bbda2ebeb9edbdc8c20169cfde
Reviewed-on: https://chromium-review.googlesource.com/172507
Reviewed-by: Achuith Bhandarkar <achuith@chromium.org>
Commit-Queue: Achuith Bhandarkar <achuith@chromium.org>
Tested-by: Achuith Bhandarkar <achuith@chromium.org>
ros/autotest_private_ext/background.js
ros/autotest_private_ext/manifest.json
ros/chrome.py
cb4e4553e96c01a77429e7b50421357cb0028c71 10-Oct-2013 Dean Liao <deanliao@chromium.org> Improve get_xrandr_output_state comment and fix a tiny bug.

At first I was confused why a "connected" display is marked as False (off).
Later I realized that it returns the status of all connected display with
status of active/inactive.

Also, (line[0:5] == 'Screen') is always False, though it doesn't bring any
harm. Anyway, fixed.

BUG=none
TEST=manual

Change-Id: I1d4f580aa851edb0f402c0bcd7cf57521f58c41c
Reviewed-on: https://chromium-review.googlesource.com/172614
Commit-Queue: Dean Liao <deanliao@chromium.org>
Tested-by: Dean Liao <deanliao@chromium.org>
Reviewed-by: Simon Que <sque@chromium.org>
ase_utils.py
a5bb3f677cd8071bab016893476fe8d683a7ccf1 10-Oct-2013 Achuith Bhandarkar <achuith@chromium.org> Remove instances of chrome.is_logged_in

In desktopui_AudioFeedback, don't need to wait for browser to come up or check is_logged_in.
Remove is_logged_in, and add a comment to wait_for_browser_to_come_up.

BUG=chromium:233834
TEST=these are the tests

Change-Id: Ib4c5c4d32c00442d43664066b1775ffdf5a0f7bd
Reviewed-on: https://chromium-review.googlesource.com/172633
Reviewed-by: Dean Liao <deanliao@chromium.org>
Commit-Queue: Achuith Bhandarkar <achuith@chromium.org>
Tested-by: Achuith Bhandarkar <achuith@chromium.org>
ros/chrome.py
f130c4039b0facaceb3b9db6e39c65184541cfe1 11-Sep-2013 Achuith Bhandarkar <achuith@chromium.org> Support for enabling component extensions.

BUG=chromium:266438
TEST=manual

Change-Id: I07e290a22d4ac0f3b2d257be77045d9a6fcdfa09
Reviewed-on: https://chromium-review.googlesource.com/171819
Reviewed-by: Dan Shi <dshi@chromium.org>
Commit-Queue: Achuith Bhandarkar <achuith@chromium.org>
Tested-by: Achuith Bhandarkar <achuith@chromium.org>
ros/chrome.py
3188188f0bc16ef3febe6a922f06292c387946bc 25-Sep-2013 Christopher Wiley <wiley@chromium.org> autotest: Add WEP support for WpaCliProxy

While here, add support for spaces in WPA passphrases.

TEST=wifi_checkWPA2 and wifi_checkWEP104 both pass on WpaCliProxy
and XmlrpcProxy hosts.
BUG=chromium:302855

Change-Id: I5b75ebcc4bd990de9512cbb60173fc47dd3f3752
Reviewed-on: https://chromium-review.googlesource.com/171808
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Tested-by: Christopher Wiley <wiley@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
ros/network/xmlrpc_security_types.py
aa6155496d62c3936d97aca094739b835e9b9812 04-Oct-2013 Christopher Wiley <wiley@chromium.org> autotest: Make interop tests work on WpaCliProxy hosts

Since wpa_cli hosts don't have profiles, we can't manipulate profiles to
create a clean test context. Add a method init_test_network_state which
abstracts these details into platform specific operations.

The shill XMLRPC delegate simply returns False when it is unable to
disconnect from a given ssid. WpaCliProxy should do likewise rather
than complaining about missing keys in its created networks list.

TEST=Interop tests work against WpaCliProxy based hosts.
check11b still passes on a normal host.
BUG=chromium:302855

Change-Id: I5886df8154f46e3e1b43b325d2ac1a857cbaebc2
Reviewed-on: https://chromium-review.googlesource.com/171923
Tested-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
ros/network/shill_xmlrpc_server.py
0338ff3b754d52b41ca2d0432164a757daa1112d 02-Oct-2013 Gilad Arnold <garnold@chromium.org> autoupdate_EndToend: improved output; robust event verification logic

This change aims at improving the quality of output during the AU
end-to-end test. In doing so, we're also robustifying the logic for
creating expected events and verifying actual events during an update
process. More specifically:

* We now use symbolic constants for specifying event type and event
result values. This means that such values are defined in one place
and there's much less room for error due to typos etc.

* Event type/result is stored in its raw form, rather than a readable
string form. The mechanism for converting a raw value to
a human-readable form is dong internally by the event class itself.

* Event verification success/failure now prints both raw and beautified
forms of both the expected and actual results. This makes it easy to
map event related info to information logged elsewhere (e.g. when new
events are consumed).

* Rootdev change message more informative (good vs bad outcome).

* We now log the fact that a test has completed all steps; this helps
a reader figure out when the test has completed successfully, and
where that point is in the logs (without this it's quite hard to
distinguish this from the rest of autotest's boilerplate logging).

* Capitalized and improved logging and exception strings.

* Rounded time differences to bounded decimal fractions (one tenth of
a second is enough).

BUG=None
TEST=Test runs successfully; logs as described.

Change-Id: Ie66677765a11778071aeaf0ad8593c5b65217d06
Reviewed-on: https://chromium-review.googlesource.com/171651
Reviewed-by: Gilad Arnold <garnold@chromium.org>
Commit-Queue: Gilad Arnold <garnold@chromium.org>
Tested-by: Gilad Arnold <garnold@chromium.org>
ros/autoupdater.py
b838b292c5c079c55ca40611244c6772a211c728 26-Sep-2013 Wade Guthrie <wdg@chromium.org> autotest: Adds a couple very minor fixes.

BgscanConfiguration's set_auto_signal method wouldn't work as written
since it wasn't written as a full class method but a 'self' parameter
was required. Fixed that.

Reordered WiFiTestContextManager.wait_for_connection's checks because it
seemed to make more sense to verify all the connection's parameters
before taking the time to ping.

BUG=None
TEST=autotest

Change-Id: I5be309179bfee26dbc789a3f5be8ab4a5058b05e
Reviewed-on: https://chromium-review.googlesource.com/170695
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Wade Guthrie <wdg@chromium.org>
Commit-Queue: Wade Guthrie <wdg@chromium.org>
Tested-by: Wade Guthrie <wdg@chromium.org>
ros/network/xmlrpc_datatypes.py
ef7cda0869049ef94031ce2cdf9dbb31de79aa8c 26-Sep-2013 Wade Guthrie <wdg@chromium.org> Autotest: Adds wifi_noise_level method to wifi_client.

This new method returns the noise level for a specified frequency on
the DUT. Currently, this method only returns valid values for versions
of ChromeOS with drivers that report the value. On other devices, this
method returns None.

While I was there (and due to an excellent code review comment), I
did a tiny refactor to keep from repeating the 'iw' command that checks
a device to see if it's a wifi device.

BUG=None
TEST=manual:

* add a line in an autotest that looks like:
log.logging('NOISE: %r',
self.context.client.wifi_noise_level(frequency))
'frequency' needs to be a valid WiFi frequency.
* on the DUT in a separate window, type 'ifconfig -a'
* Then, using the wifi interface reported by ifconfig, type:
'iw dev <wifi-xface> survey dump'
* Verify that the noise value under the frequency used in the autotest
is about the same (it will vary a little from call to call) as that
reported by the autotest.

Change-Id: I028cd1d0440c6a3ea67245856d0a80b84c9a6223
Reviewed-on: https://chromium-review.googlesource.com/170682
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Wade Guthrie <wdg@chromium.org>
Commit-Queue: Wade Guthrie <wdg@chromium.org>
Tested-by: Wade Guthrie <wdg@chromium.org>
ros/network/interface.py
c0023989d5be284173381b996e94a2f124d6e9fd 25-Sep-2013 Christopher Wiley <wiley@chromium.org> autotest: Use WiFiClient in Chaos tests

This aids in code reuse and moves us closer to removing the site_wlan_*
scripts.

TEST=Tested against a static AP with jabele@'s patch set
Also tested with network_WiFiChaosPSK/control.debug
BUG=chromium:302855
Change-Id: I0e903147f2c0815884c0c9a925518935b2b2a2bb
Reviewed-on: https://chromium-review.googlesource.com/171647
Reviewed-by: Kris Rambish <krisr@chromium.org>
Reviewed-by: Jason Abele <jabele@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
Tested-by: Christopher Wiley <wiley@chromium.org>
ros/network/shill_xmlrpc_server.py
7c97ded5679b96d013c02be61ea77da2cb5f7b99 25-Sep-2013 Christopher Wiley <wiley@chromium.org> autotest: Add time syncing logic for ADB hosts

On ADB hosts, the date command always complains about failure but works
anyway with the right arguments. Adapt WiFiClient to expect this
behavior and customize sync_host_times to make sense for both WiFiClient
and the router/server. Do this by delegating down to an implementation
specific layer.

TEST=network_WiFi_Powersave exercises this code and passes.
BUG=chromium:297998

Change-Id: I49c8987efbbd3037a32de0e8ee01cf2957041e51
Reviewed-on: https://chromium-review.googlesource.com/170561
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
Tested-by: Christopher Wiley <wiley@chromium.org>
ros/network/shill_xmlrpc_server.py
c25e967e1eb60d423f8f3f855fd06e4963efc0fd 16-Sep-2013 Christopher Wiley <wiley@chromium.org> autotest: Add wpa_cli_proxy.py

This file provides a class WpaCliProxy which acts like an XMLRPC proxy
for WiFi tests. Underneath however, this object just runs in the local
python process and interacts with the DUT through shell commands.

TEST=We are able to run network_WiFi_SimpleConnect.wifi_check11b
successfully against an ADBHost.
BUG=chromium:269134
CQ-DEPEND=CL:169884

Change-Id: I2b43b032dec26337623940544a43447c3f5853af
Reviewed-on: https://chromium-review.googlesource.com/170033
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Tested-by: Christopher Wiley <wiley@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
ros/network/xmlrpc_security_types.py
431010f31bceddcf92f36e1b82397b9a56ffee54 04-Sep-2013 Simran Basi <sbasi@chromium.org> Autotest: Add ADBHost and simple server side test.

This change adds a ADBHost, which represents a machine running ADB
with an android device connected. ADBHost may be either the local
machine or a repote IP addressable host with adb installed. In
either setup, all the ADB interactions can be done via USB or TCP/IP
though USB is more stable and the perferred interaction.

So far ADBHost only allows for server-side testing of the android
device. Included is a simple reboot test. Note interacting with the
device over TCP/IP after rebooting multiple times can run into
some flake. This should be resolved with verify/repair methods to
ensure/get us to a good state.

Also refactored ignore_timeout all the way into base_utils.

BUG=chromium:294308
TEST=$ ./autoserv -s site_tests/adb_Reboot/control -m localhost
--disable_sysinfo --no_collect_crashinfo Ran with localhost, remote
beaglebone running as an ADB Host and both over usb/tcpip. Tests
for tcp_ip used --args="device_hostname=172.22.50.232"
Also works with test_that --board=daisy [ip] adb_Reboot --fast

Change-Id: I504492ff3fb67c97d37b5e4376b7257ed1dd4ca5
Reviewed-on: https://chromium-review.googlesource.com/169884
Tested-by: Simran Basi <sbasi@chromium.org>
Reviewed-by: Fang Deng <fdeng@chromium.org>
Reviewed-by: Alex Miller <milleral@chromium.org>
Reviewed-by: Simran Basi <sbasi@chromium.org>
Commit-Queue: Simran Basi <sbasi@chromium.org>
ase_utils.py
dafc9a544c9ca534c0f1fd5b4f771a7e369b89c9 24-Sep-2013 Achuith Bhandarkar <achuith@chromium.org> Parse telemetry options in autotests.

This is a follow-up to crrev.com/224639
This is done to ensure BrowserOptions.UpdateFromParseResults is called.
We don't want to actually parse the command line (which is used by autotest),
so we pass in args=[].

BUG=chromium:269131
TEST=trybot

Change-Id: Ifbe702b18e024c5727e6aa6a720bab3836fc8b5a
Reviewed-on: https://chromium-review.googlesource.com/170460
Reviewed-by: Rohit Makasana <rohitbm@chromium.org>
Tested-by: Achuith Bhandarkar <achuith@chromium.org>
Commit-Queue: Achuith Bhandarkar <achuith@chromium.org>
ros/chrome.py
f70725ed81d946fccd3e016752c214525811c26f 16-Sep-2013 Christopher Wiley <wiley@chromium.org> autotest: XMLRPC type support for WpaCliProxy

Provide a serialize method in xmlrpc types so that WpaCliProxy
can serialize its return types to fake being a real xmlrpc proxy.

BUG=chromium:294856
TEST=check11b still passes

Change-Id: I4e4a421d2e79083b10f1d035b3a684e98e3f7e4b
Reviewed-on: https://chromium-review.googlesource.com/170224
Tested-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
ros/xmlrpc_types.py
2e73cec6e73d636e429fb2740fbfc98a4ef80c15 16-Sep-2013 Christopher Wiley <wiley@chromium.org> autotest: Add WPA network support for WpaCliProxy

Return a dict of options suitable for wpa_cli from
the appropriate security setting struct.

TEST=Associations to WPA networks works with WpaCliProxy.
BUG=chromium:269134

Change-Id: Ib6d6cecc572646ff8bf285bf008b645d7c1e4604
Reviewed-on: https://chromium-review.googlesource.com/170012
Tested-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
ros/network/xmlrpc_security_types.py
66d74078caa789f80d4a43c82b61d6016a0cf430 19-Sep-2013 Chris Sosa <sosa@chromium.org> Clean up short timeouts that are causing flakes during testing.

BUG=chromium:269824
TEST=Visual + pyflakes

Change-Id: Ia96e701b80aa56223afd2b0c7956aea25b637942
Reviewed-on: https://chromium-review.googlesource.com/170025
Tested-by: Chris Sosa <sosa@chromium.org>
Reviewed-by: Don Garrett <dgarrett@chromium.org>
Commit-Queue: Chris Sosa <sosa@chromium.org>
ros/autoupdater.py
12c0a3cef9611d155d157651af7ca7afa9a90c96 03-Sep-2013 beeps <beeps@chromium.org> [autotest] Stage factory artifacts from the canary branch.

This cl enables us to stage artifacts form either the normal
release branch, or a canary branch, based on the type of artifact.

BUG=chromium:280889
TEST=Staged factory images from the canary branch.

Change-Id: If9a959d0847fecf4aded600974cf45e6e05c9ac5
Reviewed-on: https://chromium-review.googlesource.com/167884
Reviewed-by: Prashanth B <beeps@chromium.org>
Tested-by: Prashanth B <beeps@chromium.org>
Commit-Queue: Prashanth B <beeps@chromium.org>
ros/dev_server.py
cd69dc0d26c44dd7d8b61c972cc962e2cb786ef2 09-Sep-2013 Christopher Wiley <wiley@chromium.org> autotest: Ignore ssh command timeouts on request

Add a flag to SSHHost.run() that allows callers to ignore command
timeouts. Upon SSH command timeouts, we get None instead of a result
value. Callers must be prepared to expect this.

TEST=Add a host parameter to dummy_PassServer and add:
host.run('sleep 10', timeout=1, ignore_timeout=True)
Observe that the test still passes, unlike before.
BUG=chromium:282471

Change-Id: I2bf64fb3f06b57d44ee7f13ad51ca2b19707891e
Reviewed-on: https://chromium-review.googlesource.com/168651
Tested-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Simran Basi <sbasi@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
ase_utils.py
rror.py
1752ea1f8b94bdb1979a96fd6767c916dfd03f5e 05-Sep-2013 Alex Miller <milleral@chromium.org> [autotest] Add an enum of priorities.

This is the definition of priorities that will be used across the rest
of the codebase.

BUG=chromium:250583
TEST=None

Change-Id: I718d221e5e533a4b60eac46231aa1c75490f055e
Reviewed-on: https://chromium-review.googlesource.com/168142
Reviewed-by: Alex Miller <milleral@chromium.org>
Tested-by: Alex Miller <milleral@chromium.org>
Commit-Queue: Alex Miller <milleral@chromium.org>
riorities.py
ef446dd987a5bfe501dc0ae872f87648e83eade1 05-Sep-2013 Alex Miller <milleral@chromium.org> [autotest] Add ability for enum to not only increment by 1.

Because I want this feature, and every other enum everywhere lets you
control the actual values given.

TEST=unit
BUG=chromium:250583

Change-Id: Ie88efb3c4394209be84234308a7d1d5be6ffd7f1
Reviewed-on: https://chromium-review.googlesource.com/168141
Reviewed-by: Alex Miller <milleral@chromium.org>
Tested-by: Alex Miller <milleral@chromium.org>
Commit-Queue: Alex Miller <milleral@chromium.org>
num.py
958a1f590e22ce581ae579d89daa865f847a57fb 19-Jul-2013 Wade Guthrie <wdg@chromium.org> autotest: Migrates network_WiFiRoaming/002Suspend to new method.

Replaces network_WiFiRoaming/002Suspend test with script and control
file in network_WiFi_RoamSuspend directory. New code conforms to test
infrastructure changes provided to address crbug.com/224443.

Required migrating do_suspend and do_suspend_bg to new XMLRPC methods.
These commands use the power manager to suspend the DUT for a
specified number of seconds. The '_bg' command returns control to the
caller immediately.

The test (in new and old implementations) does the following:
- setup AP
- suspend DUT for 10 seconds
- verify that the DUT is still connected after resume

- suspend DUT for 20 seconds
- change AP frequency and BSSID
- verify that DUT roams to new BSSID/frequency after resume

BUG=chromium:256895
TEST=autotest

Change-Id: I44af2fea27e8e723b2e72cf490f5ab3b332361b8
Reviewed-on: https://chromium-review.googlesource.com/62882
Reviewed-by: Wade Guthrie <wdg@chromium.org>
Commit-Queue: Wade Guthrie <wdg@chromium.org>
Tested-by: Wade Guthrie <wdg@chromium.org>
ros/network/shill_xmlrpc_server.py
aec4edd340e914885cb1fe26e9b8766788009f2f 27-Aug-2013 Scott James Remnant <keybuk@chromium.org> Bluetooth: implement bluetooth_Sanity_Discovery

This test is another example of a Bluetooth test with a separate
tester device (stumpy with testbed-ap profile), and is the mirror of
bluetooth_Sanity_Discoverable.

BUG=chromium:256771
TEST=run_remote_tests

Change-Id: I00142fc5183af8466638ef7b1bc64cae4a6c87fb
Reviewed-on: https://chromium-review.googlesource.com/67010
Reviewed-by: Scott James Remnant <keybuk@chromium.org>
Commit-Queue: Scott James Remnant <keybuk@chromium.org>
Tested-by: Scott James Remnant <keybuk@chromium.org>
ros/bluetooth/bluetooth_client_xmlrpc_server.py
ros/bluetooth/bluetooth_tester_xmlrpc_server.py
ros/interactive_xmlrpc_server.py
10e992b5dd263d6bbb313655ef02f2e14893770d 30-Aug-2013 Dan Shi <dshi@chromium.org> [autotest] Collect update engine log even if run_update failed.

BUG=chromium:279299
TEST=run_suite to force a machine install, interrupt the update by rebooting
DUT, confirm update_engine.log content is shown in autoserv.DEBUG

Change-Id: I97440face937a8c6bb4f009030aef01f02fe2f18
Reviewed-on: https://chromium-review.googlesource.com/167672
Reviewed-by: Chris Sosa <sosa@chromium.org>
Tested-by: Dan Shi <dshi@chromium.org>
Commit-Queue: Dan Shi <dshi@chromium.org>
ros/autoupdater.py
7fb57f7459ae98f5b96cc159c4f62dd17808ffa6 30-Aug-2013 Achuith Bhandarkar <achuith@chromium.org> BrowserOptions has been renamed to BrowserFinderOptions.

The rename was done in crrev.com/219909

BUG=chromium:281385
TEST=trybot

Change-Id: I673fdc6b1063e69412f7e4ebcfa5cdbdccfbbfe2
Reviewed-on: https://chromium-review.googlesource.com/167511
Tested-by: Achuith Bhandarkar <achuith@chromium.org>
Reviewed-by: Achuith Bhandarkar <achuith@chromium.org>
Commit-Queue: Achuith Bhandarkar <achuith@chromium.org>
ros/chrome.py
46250750c649237074dfada83582d743afd33cca 28-Aug-2013 Aviv Keshet <akeshet@chromium.org> [autotest] add a no_pipes argument to BgJob constructor

This CL introduces an alternative type of BgJob, to match the master-ssh
connection use case. The new type of BgJob is created by specifying
no_pipes=True when calling BgJob's constructor. BgJobs constructed in
this way do not expect to ever be joined with a join_bg_jobs call, and
do not interact via their stdout/stderr with other BgJobs.

This CL also causes the master ssh connection BgJob to be created with
this flag.

This CL only addresses flaw #2 in the "Problems with current semantics"
section of the referenced bug.

BUG=chromium:279312
TEST=Unit tests pass. Running an autoserv tests with ssh verbosity
turned up to 3 no longer causes a deadlock.

Change-Id: I1a6861501eb4fc8439add213c79eaa3777978df0
Reviewed-on: https://chromium-review.googlesource.com/167173
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
Tested-by: Aviv Keshet <akeshet@chromium.org>
Commit-Queue: Aviv Keshet <akeshet@chromium.org>
ase_utils.py
rror.py
53a216a5ae9cf732330846e652dff8d0ad29bd2a 27-Aug-2013 Aviv Keshet <akeshet@chromium.org> [autotest] add a nickname parameter to BgJob

This CL adds an optional nickname parameter to BgJob. If provided, the
nickname is used in any logging messages that a BgJob sends to the
logging manager. The parameter is only specified by the
master-ssh-connection call to BgJob at the moment, but in a future CL
that will be extended to more BgJobs.

BUG=None
TEST=None

Change-Id: Iee7722b55cc5e7497888ee86154c3ddb3b7bdf6e
Reviewed-on: https://chromium-review.googlesource.com/167172
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
Tested-by: Aviv Keshet <akeshet@chromium.org>
Commit-Queue: Aviv Keshet <akeshet@chromium.org>
ase_utils.py
7234d54a30f5421ec0eb34e255bc08fe3241cbee 27-Aug-2013 Aviv Keshet <akeshet@chromium.org> [autotest] add docstrings and fix undefined behavior in BgJob

This CL adds a bunch of docstrings and a bit of logging to BgJob. It
also changes BgJob's behavior in a few previously undefined cases, but
without changing any of the semantics of BgJob for its current use.

BUG=chromium:279312
TEST=Unit tests pass

Change-Id: Ib92d7491eb45f50e0b95b4e9e32e72778d002b08
Reviewed-on: https://chromium-review.googlesource.com/167120
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
Tested-by: Aviv Keshet <akeshet@chromium.org>
Commit-Queue: Aviv Keshet <akeshet@chromium.org>
ase_utils.py
db16beb49dd1a4bcf98793635d63226019338f8d 22-Aug-2013 Christopher Wiley <wiley@chromium.org> autotest: Add WiFi signal level property to WiFi client

TEST=A test that consumes this property is able to do so effectively on
daisy.
BUG=chromium:279395

Change-Id: I916492df83e61cedd0fbbaf273c94970bf03e2dd
Reviewed-on: https://chromium-review.googlesource.com/66713
Tested-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
ros/network/interface.py
e539be0567f5159e11107580df4d55c292577e15 01-Aug-2013 beeps <beeps@chromium.org> [autotest] Teach the devserver to stage factory images.

To stage a factory image the client request needs to
be made with the url to the canary-channel.

CQ-DEPEND=CL:I51f710996e63b4a8d3a772688cdc5643a423b511
TEST=Staged images from the factory branch.
BUG=chromium:252503

Change-Id: I34e5a6db44ee3de0705115ea8c665aae7fb5b416
Reviewed-on: https://chromium-review.googlesource.com/64155
Reviewed-by: Dan Shi <dshi@chromium.org>
Tested-by: Prashanth Balasubramanian <beeps@chromium.org>
Commit-Queue: Prashanth Balasubramanian <beeps@chromium.org>
ros/dev_server.py
4a193695bd3038f0d44f039584fc5c5015b13404 21-Aug-2013 Alex Miller <milleral@chromium.org> [autotest] create_job should fail if the metahost cannot run the job

If one passes a specific list of hosts into `create_job`, then those
hosts are vetted to make sure they satisfy the dependencies of the job.

If one passes in a metahost, no checking is done. This is unfortunate,
as it means one needs to be very careful when scheduling jobs with
metahosts to make sure that it is actually possible for the job to run.
Instead, let's just do the checking in the RPC and raise an
easy-to-identify Exception if we do hit this case.

BUG=chromium:250586
DEPLOY=apache
TEST=unit, Scheduled a job with a metahost and DEPENDENCIES that did not
exist. Got an error.NoEligibleHostException. Both dummy and bvt still
run (testing provisionable labels and tests with unsatisfyable
dependencies).

Change-Id: I020be2607867fafd04194b9c17d3052b006f60e0
Reviewed-on: https://chromium-review.googlesource.com/66603
Tested-by: Alexander Miller <milleral@chromium.org>
Reviewed-by: Dan Shi <dshi@chromium.org>
Reviewed-by: Prashanth Balasubramanian <beeps@chromium.org>
Commit-Queue: Alexander Miller <milleral@chromium.org>
rror.py
15ebb06f3254603f77e1099bea66a2e7fa95e95c 19-Aug-2013 Dan Shi <dshi@chromium.org> [autotest] raise DevServerException in wait_for_artifacts_staged.

When devserver responds with HTTPError, the rpc call is failed with exception.
The exception should be raised to prevent caller waiting indefinitely. When the
caller runs into connection problem, URLError that's not HTTPError may be
thrown. In such case, caller should retry the devserver call.

This CL must be work together with the CL in devserver:
https://gerrit.chromium.org/gerrit/66239

BUG=chromium:273981
DEPLOY=must repo sync devserver first (CL: 66239)
TEST=test with three different cases:
1. run_suite for a legit build, e.g.,
./run_suite.py --build=lumpy-release/R30-4501.0.0 --board=lumpy --suite=dummy
wait for artifactions to download, suite job just be created successfully.
2. run_suite for a legit build, e.g.,
./run_suite.py --build=lumpy-release/R30-4501.0.0 --board=lumpy --suite=dummy
simulate connection problem by killing devserver right after downloading starts.
Restart devserver after 30 seconds or so. Artifacts should be successfully
downloaded and suite job should be created.
3. run_suite for a non-existing build, e.g.:
./run_suite.py --build=lumpy-release/R30-no_such_build --board=lumpy --suite=dummy
run_suite command should fail with following error in 5-10 seconds:
GSUtilError: Failed to list payloads. GSUTIL cmd gsutil ls gs://chromeos-image-archive/lumpy-release/R30-no_such_build/* failed with return code 1:
CommandException: One or more URIs matched no objects.

Change-Id: I7bcefce648d77cbd72b067a45f078df61d3e7082
Reviewed-on: https://gerrit.chromium.org/gerrit/66240
Reviewed-by: Dan Shi <dshi@chromium.org>
Tested-by: Dan Shi <dshi@chromium.org>
Commit-Queue: Dan Shi <dshi@chromium.org>
ros/dev_server.py
5abf60b7c6bda5bd01f78e2c29885e32bab22af2 01-Aug-2013 Achuith Bhandarkar <achuith@chromium.org> logging_AsanCrashTelemetry.

BUG=chromium:266476

TEST=trybot run

Change-Id: I09d5d5e8b2cc454262c5a4b93dd09374f64f5e5a
Reviewed-on: https://gerrit.chromium.org/gerrit/66121
Commit-Queue: Achuith Bhandarkar <achuith@chromium.org>
Reviewed-by: Achuith Bhandarkar <achuith@chromium.org>
Tested-by: Achuith Bhandarkar <achuith@chromium.org>
ros/chrome.py
da9f43cc5c84691d82b1dd9222fea37234cb9a0a 08-Aug-2013 Scott James Remnant <keybuk@chromium.org> Bluetooth: implement bluetooth_Sanity_Discoverable

This test is the first example of a Bluetooth test with a separate
tester device (a stumpy with the testbed-ap profile is the intent).
It can be run two ways:

1. as bluetooth_Sanity_Discoverable - in which case the Tester will
be used to perform a device discovery and verify that the DUT
was detected in the process.

2. as bluetooth_Sanity_Discoverable.manual - in which case only the
DUT is used, and instructions presented on screen for use with
a third-party Tester (such as the Bluetooth PTS).

BUG=chromium:256771
TEST=run_remote_tests

Change-Id: I851a05acff3ca3edba32bb2f0cd043d8042d162d
Reviewed-on: https://gerrit.chromium.org/gerrit/65074
Commit-Queue: Scott James Remnant <keybuk@chromium.org>
Reviewed-by: Scott James Remnant <keybuk@chromium.org>
Tested-by: Scott James Remnant <keybuk@chromium.org>
ros/bluetooth/bluetooth_client_xmlrpc_server.py
ros/bluetooth/bluetooth_socket.py
ros/bluetooth/bluetooth_tester_xmlrpc_server.py
ros/interactive_xmlrpc_server.py
2f1ae9f1f2464ebbeb226a6669fa90ef211a179c 13-Aug-2013 Chris Sosa <sosa@chromium.org> Add new files logic to devserver and clean up AU E2E test to use it.

There's a couple nested things here:

1) Pipe files through the autotest-side of the devserver logic. I've gone ahead
and added 5 unittests to test this new workflow with various combos of
artifacts. The main thing here is the optional pass of archive_url + files to
the stage_artifacts methods. I've also added a convenience function to return
the url to any staged file on the devserver if you know the filename (which you
would if you are using files= API).

2) Use the new logic in AU E2E API and figure out the right URL's to pass to
stage artifacts from. This was a bit of refactoring to get right.
In order to allow me to serve any artifact I had to change a bit of of the
source version installation logic to allow me to update from any static url
(rather than one that must end in update.gz). This actually makes the
OmahaDevserver much more flexible and more Omaha-y.

BUG=chromium:267896
TEST=Unittests + tested with both an nmo + npo full run.

Change-Id: Ic490c7c0e7d76eb8c0416accefbe113b9c0bba32
Reviewed-on: https://gerrit.chromium.org/gerrit/65732
Reviewed-by: Chris Sosa <sosa@chromium.org>
Tested-by: Chris Sosa <sosa@chromium.org>
Commit-Queue: Chris Sosa <sosa@chromium.org>
ros/autoupdater.py
ros/dev_server.py
ros/dev_server_unittest.py
b03ea9d5209ff5096556d6dc85b9a2cc1c38e417 16-Aug-2013 Dan Shi <dshi@chromium.org> [autotest] Force to collect /var/log if test is failed with device error.

When test running in DUT is aborted and does not get a chance to run post test
hooks, diff of /var/log can not be copied to resuts folder and autoserv will
not be able to collect any log from the DUT.

This CL saves the device error failure flag to job.failed_with_device_error.
Autoserv uses this flag to determine whether to collect crash info (through
server/control_segments/crashinfo), which will collect all files in /var/log.

BUG=chromium:271703
TEST=run autoserv in local setup. Manually reboot DUT during the middle of a
test, then confirm the results collected has content in crashinfo.[DUT name].

Change-Id: I1a3757b8933fe60deea75728e867033eeb86c7cd
Reviewed-on: https://gerrit.chromium.org/gerrit/66013
Commit-Queue: Dan Shi <dshi@chromium.org>
Reviewed-by: Dan Shi <dshi@chromium.org>
Tested-by: Dan Shi <dshi@chromium.org>
ase_job_unittest.py
36bf74a318bf182573ee8d7e0a389293f172c3ff 16-Aug-2013 Aviv Keshet <akeshet@chromium.org> [autotest] server-side test dirs do not need to be writable

This CL causes autoserv to no longer assert that a server side tests's
test directory is writable (since at no point does autoserv actually
need to write to it). Removing this assertion allows test_that to run
VMTests on the builders (run_remote_tests.sh, which previously ran those
tests, has the obscure side-effect of chmodding the server side test
directories).

BUG=chromium:274014
TEST=This patch allowed VMTest to get passed the directory-writable
assertion failure referenced in the bug.

Change-Id: I1b3aa0460f56a13452a22807a22b12adfb86aaaa
Reviewed-on: https://gerrit.chromium.org/gerrit/66003
Tested-by: Aviv Keshet <akeshet@chromium.org>
Reviewed-by: Alex Miller <milleral@chromium.org>
Commit-Queue: Aviv Keshet <akeshet@chromium.org>
ase_job.py
0c865033c1cd2614036e83d57bb03a2c04f2b7af 30-Jul-2013 beeps <beeps@chromium.org> [autotest] Don't swap devservers when verifying repo_url.

Since we're seeing more flake than we would like when
checking the health of a devserver we end up swapping
devservers and restaging contents, even when the initial
devserver is healthy. This leads to more load, which
further exacerbates the problem of flakyness, leading to
a vicious cycle. This cl restages autotest on the
job_repo_url devserver, and fails verification if the
devserver embedded in the url is down.

BUG=None
TEST=set job_repo_url and deleted directories on local
devserver, checked that we re-stage. Didn't start
up local devserver and checked that we received
an URLError. Killed the devserver in the middle
of a request and checked that the test Failed.

Change-Id: I18843d3047122b9ffea3b2b1305fb0332172b19d
Reviewed-on: https://gerrit.chromium.org/gerrit/63758
Tested-by: Prashanth Balasubramanian <beeps@chromium.org>
Reviewed-by: Alex Miller <milleral@chromium.org>
Commit-Queue: Prashanth Balasubramanian <beeps@chromium.org>
ros/dev_server.py
45554f34c287f48b3d8f4911a8ad77be5e4074e3 14-Aug-2013 Alex Miller <milleral@chromium.org> [autotest] Add logging surrounding PIDs.

The scheduler thinks autoserv instances are dieing before they really
are, so here's some logging surrounding this to try and help figure
things out.

BUG=chromium:262005
DEPLOY=scheduler
TEST=Only logging.

Change-Id: I3322fa24a564f817bc13bac076320a374bbc2af2
Reviewed-on: https://gerrit.chromium.org/gerrit/65781
Tested-by: Alex Miller <milleral@chromium.org>
Reviewed-by: Simran Basi <sbasi@chromium.org>
Commit-Queue: Alex Miller <milleral@chromium.org>
idfile.py
61a0e5b9bd692fd76e34f974a5cef400b51ed775 07-Aug-2013 Christopher Wiley <wiley@chromium.org> autotest: Fix network_BasicProfileProperties flake

This will now work when the device has multiple ethernet devices.

TEST=Ran this test on a device with multiple ethernet devices. It
passes.
BUG=chromium:268662

Change-Id: I8a74ed82e7a8f7656fcd50cc23c2def8be1c4b0e
Reviewed-on: https://gerrit.chromium.org/gerrit/64972
Tested-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: mukesh agrawal <quiche@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
ros/network/interface.py
e9be01e817f8ad0824bc37c0d930876c1b3c043b 09-Aug-2013 Dan Shi <dshi@chromium.org> [autotest] Fix setup_telemetry call

Fix the missing argument in call_and_wait.

BUG=none
TEST=./run_suite.py --build=trybot-lumpy-release/R30-4514.0.0-b1415 --board=lumpy --suite=push_to_prod -u 4

Change-Id: I543591768e8ce8b43d4fafaa642a99af37fecb15
Reviewed-on: https://gerrit.chromium.org/gerrit/65255
Reviewed-by: Alex Miller <milleral@chromium.org>
Commit-Queue: Dan Shi <dshi@chromium.org>
Tested-by: Dan Shi <dshi@chromium.org>
ros/dev_server.py
b81d24f51d4b7b8d4b7142fe7b0ba53bea988508 08-Aug-2013 Dan Shi <dshi@chromium.org> [autotest] fix missing constant _ARTIFACTS_TO_BE_STAGED_FOR_IMAGE_WITH_TELEMETRY

It should be replaced with _ARTIFACTS_TO_BE_STAGED_FOR_IMAGE_WITH_AUTOTEST

BUG=chromium:270148
TEST=none

Change-Id: I01c492c42c67ec181a9d73c67165de0b7d9111e5
Reviewed-on: https://gerrit.chromium.org/gerrit/65219
Reviewed-by: Alex Miller <milleral@chromium.org>
Reviewed-by: Simran Basi <sbasi@chromium.org>
Commit-Queue: Dan Shi <dshi@chromium.org>
Tested-by: Dan Shi <dshi@chromium.org>
ros/dev_server.py
1ca2e0e1b6cd0b6f5c2b972e44f3f63539d1dda6 01-Aug-2013 Scott James Remnant <keybuk@chromium.org> Bluetooth: implement first two Sanity checks

Check that the DUT has a Bluetooth adapter, and check that the Bluetooth
adapter address is not garbage.

BUG=chromium:256771
TEST=run_remote_tests

Change-Id: I0b87bf25ea103591c8eab2884e519a32c82f6c72
Reviewed-on: https://gerrit.chromium.org/gerrit/64003
Reviewed-by: Simran Basi <sbasi@chromium.org>
Commit-Queue: Scott James Remnant <keybuk@chromium.org>
Tested-by: Scott James Remnant <keybuk@chromium.org>
ros/bluetooth/bluetooth_client_xmlrpc_server.py
ros/bluetooth/bluetooth_socket.py
2e7b2ea7850bdd3ca92a5ef47f11d91a08c2b3db 06-Aug-2013 Dan Shi <dshi@chromium.org> [autotest] Use async poller to check if files are staged on devserver

In devserver rpc, stage, download, wait_for_status, set async=True, and poll
is_staged on devserver to check if artifacts are all staged. This approach is
implemented to avoid holding on cherrypy thread for too long.

BUG=chromium:266443
TEST=unittest, run_suite in local setup
DEPLOY=devserver, must push devserver change (cl 64310) first.

Change-Id: I9b38754bba197ba67d03eb3462e04672d0ad479c
Reviewed-on: https://gerrit.chromium.org/gerrit/64706
Tested-by: Dan Shi <dshi@chromium.org>
Commit-Queue: Dan Shi <dshi@chromium.org>
Reviewed-by: Dan Shi <dshi@chromium.org>
ros/dev_server.py
ros/dev_server_unittest.py
dfff2fdc8477be3ba89fd915fde2afe8d3716624 28-May-2013 Alex Miller <milleral@chromium.org> [autotest] Add a provision special task.

We now insert a special task which calls |autoserv --provision| with the
host that the HQE is about to run on to provision the machine correctly
before the test runs. If the provisioning fails, the HQE will also be
marked as failed. No provisioning special task will be queued if no
provisioning needs to be done to the host before the job can/will run.

With *just* this CL, no provisioning tasks should actually get
scheduled, because the part of the scheduler that maps HQEs to hosts
hasn't been taught about provisioning yet. That will come in a later
CL.

Once this CL goes in, it should not be reverted. The scheduler will
become very unhappy if it sees special tasks in its database, but can't
find a corresponding AgentTask definition for them. One would need to
do manual database cleanup to revert this CL. However, since one can
disable provisioning by reverting the (future) scheduling change CL,
this shouldn't be an issue.

BUG=chromium:249437
DEPLOY=scheduler
TEST=lots:
* Ran a job on a host with a non-matching cros-version:* label, and
a provision special task was correctly created. It ran after Reset,
and correctly kicked off the HQE after it finished.
* Ran a job on a host with a matching cros-version:* label, and no
provision special task was created.
* Ran a job on a host with a non-matching cros-version:* label, and
modified Reset so that it would fail. When reset failed, it canceled
the provision task, and the HQE was still rescheduled.
* Ran a job on a host with a non-matching cros-version:* label, and
modified the cros-version provisioning test to throw an exception.
The provision special task aborted the HQE with the desired semantics
(see comments in the ProvisionTask class in monitor_db), and scheduled
a repair to run after its failure.
The provision failures were all deduped against each other when bug
filing was enabled. See
https://code.google.com/p/autotest-bug-filing-test/issues/detail?id=1678
* Successfully debugged an autoupdate/devserver issue from provision
logs, thus proving that sufficient information is collected for debug.

Change-Id: I96dbfc7b001b90e7dc09e1196c0901adf35ba4d8
Reviewed-on: https://gerrit.chromium.org/gerrit/58385
Reviewed-by: Prashanth Balasubramanian <beeps@chromium.org>
Tested-by: Alex Miller <milleral@chromium.org>
Commit-Queue: Prashanth Balasubramanian <beeps@chromium.org>
ost_queue_entry_states.py
4318ced208f4035fefae1ea2891eb02d8f2591d1 02-Aug-2013 Christopher Wiley <wiley@chromium.org> autotest: Fix WiFi tests that use the TPM

Turn off the UI before loading a token into the TPM during WiFi tests.
This fixes an unfortunate side effect of disabling the UI where it
clears out the TPM on exit. This affected both:

network_WiFi_SimpleConnect.wifi_check1x_WPA
network_WiFi_SimpleConnect.wifi_check1x_WEP

This changes the semantics of WiFi tests in that the moment you bring up
a WiFi XMLRPC client, we take down the UI. Functionality is exposed to
start this UI again should we need it in the future, but we don't use
this currently.

While we're here, remove a redudant method call from WPAEAPConfig
and fix a mistaken super class reference.

BUG=None
TEST=wifi_check1x_WPA and wifi_check1x_WEP pass again.

Change-Id: I35785f741cfcf8147b566bd6bd89810831a5189f
Reviewed-on: https://gerrit.chromium.org/gerrit/64377
Commit-Queue: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Tested-by: Christopher Wiley <wiley@chromium.org>
ros/network/shill_xmlrpc_server.py
ros/network/xmlrpc_security_types.py
49c72d99ed3e513b5d746983116d3067be80938f 25-Jul-2013 Achuith Bhandarkar <achuith@chromium.org> login_ChromeProfileSanitaryTelemetry

BUG=chromium:234811

TEST=autotest

Change-Id: Ia7cc000156d14bdfdd263d0af6464e6aa02b5ff3
Reviewed-on: https://gerrit.chromium.org/gerrit/63364
Reviewed-by: Simran Basi <sbasi@chromium.org>
Tested-by: Achuith Bhandarkar <achuith@chromium.org>
Commit-Queue: Achuith Bhandarkar <achuith@chromium.org>
ros/chrome.py
c849685e5a3cb3d9b81162b55ffa238e8d22ba65 02-Aug-2013 Achuith Bhandarkar <achuith@chromium.org> Fix a regression where browser.Start() was introduced in telemetry.

BUG=chromium:266980

TEST=manual, autotests

Change-Id: I60b2da99f6462228aa2d3d116fdd117b73622fc7
Reviewed-on: https://gerrit.chromium.org/gerrit/64378
Reviewed-by: Simran Basi <sbasi@chromium.org>
Commit-Queue: Achuith Bhandarkar <achuith@chromium.org>
Tested-by: Achuith Bhandarkar <achuith@chromium.org>
ros/chrome.py
1c72d7adf4148029baa8846eebe9f7e1a287e10f 30-Jul-2013 Scott James Remnant <keybuk@chromium.org> Add infrastructure for Interactive tests

Inspired by the SemiAuto tests used by the test team, this uses a
similar approach but wrapped in an XML-RPC server deployed to the
client.

BUG=chromium:256771
TEST=server test that uses interactive_client

Change-Id: I8420a2a2ed6fc031b97044d6bbcf32e50cbcf4a4
Reviewed-on: https://gerrit.chromium.org/gerrit/63640
Reviewed-by: Simran Basi <sbasi@chromium.org>
Commit-Queue: Scott James Remnant <keybuk@chromium.org>
Tested-by: Scott James Remnant <keybuk@chromium.org>
ros/bluetooth/bluetooth_client_xmlrpc_server.py
ros/interactive_xmlrpc_server.py
ros/shell.html
e86b1c0bf64a168c9ba948a8355c6b27fe04f01a 26-Jul-2013 Christopher Wiley <wiley@chromium.org> autotest: Make ping transmission statistic parsing more robust

The discovery of another failure mode for ping transmission line parsing
implores us to parse in a more failure resistant way.

TEST=Ran test that utilize ping result parsing successfully.
BUG=None

Change-Id: I2d6b8aab2107f7dfca34bb61e415e2eb13fddc05
Reviewed-on: https://gerrit.chromium.org/gerrit/63417
Tested-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: mukesh agrawal <quiche@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
ros/network/ping_runner.py
6c00dde741fb42fed2d8bb25c30990557b288097 30-Jul-2013 Dan Shi <dshi@chromium.org> [autotest] re-throw exceptions properly in urlopen_socket_timeout

urlopen_socket_timeout call handles all urllib2.URLError but only re-throw
timeout exception. Change the code to re-throw other type of exception so caller
can have a better idea of what went wrong.

BUG=none
TEST=tested with local devserver

Change-Id: I8c60f75c1fc2b8bff11a710735ce4ff8800ec15f
Reviewed-on: https://gerrit.chromium.org/gerrit/63679
Commit-Queue: Dan Shi <dshi@chromium.org>
Reviewed-by: Dan Shi <dshi@chromium.org>
Tested-by: Dan Shi <dshi@chromium.org>
ros/dev_server.py
ite_utils.py
94c66046744736ed334041ba416d18df81594ed5 26-Jul-2013 Christopher Wiley <wiley@chromium.org> autotest: Disable UI while WiFi tests are running

TEST=Tests which used to fail because of UI behavior on OOBE screen pass
again. Specifically, the periodic scan requests that UI launches are no
longer happening. More specifically, this allows network_WiFi_BgscanBackoff
to pass on Snow.

BUG=chromium:264061

Change-Id: Ica8d817a91b547e08aa33a3db38cc698f42721cf
Reviewed-on: https://gerrit.chromium.org/gerrit/63505
Tested-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
ros/network/shill_xmlrpc_server.py
e1731cea88bc6371d7368a758784f9a757c31fcd 25-Jul-2013 Christopher Wiley <wiley@chromium.org> autotest: Make network_WiFi_BgscanBackoff less flaky

This test fails more reliably on snow if we just increase the time that
we look for bad behavior by the WiFi part.

BUG=chromium:264061
TEST=This is a test. It fails reliably.

Change-Id: Id1cfe8e9ba48e41f2651e4752675cef791c66309
Reviewed-on: https://gerrit.chromium.org/gerrit/63291
Tested-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
ros/network/xmlrpc_datatypes.py
c594c1c3ed039635462371af90562475fcee575e 10-Jul-2013 beeps <beeps@chromium.org> [autotest] Pipe suite_name through client devserver code.

To reduce the overhead involved with fetching control files
from the devserver we generate a mapping of suite->control
files at build time. This cl will ask the control file getter
to fetch the control files for a given suite instead of all
the control files associated with an image.

Also removing SUITE = None from some networking test control
files, and patched unittests.

BUG=chromium:252398
TEST=Ran a suite with many control files. Made sure the suite->
control file mapping falls back to the old code when a bad suite
name is specified. Compared the test objects created in the old
version vs those created with this change.
Ran unittests.

CQ-DEPEND=CL:I6b590c8c40a863e6744875a26ac228ffd4dd8794

Change-Id: I4274c78764ffaaabef1ed48cdb40f523e307938d
Reviewed-on: https://gerrit.chromium.org/gerrit/63182
Tested-by: Prashanth Balasubramanian <beeps@chromium.org>
Reviewed-by: Dan Shi <dshi@chromium.org>
Commit-Queue: Prashanth Balasubramanian <beeps@chromium.org>
ros/dev_server.py
a6442f513846b0fc002ca4bbfa453e7603442f02 25-Jul-2013 Scott James Remnant <keybuk@chromium.org> Bluetooth: add basic adapter functionality to client

Just about all tests will want to reset the device to a known state
so provide reset_on() and reset_off() to do that. The difference is
whether the adapter is powered on or off after the reset; most tests
will want the former, but it's conceivable the latter might be
necessary.

Provide basic property manipulation with set_powered(),
set_discoverable() and set_pairable().

BUG=chromium:256771
TEST=simple test that uses the exposed methods,
verify operation using btmon on DUT

Change-Id: Ib3a5efb3ea5de8a457e9043f57801d7b00cf1808
Reviewed-on: https://gerrit.chromium.org/gerrit/63261
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Scott Zawalski <scottz@chromium.org>
Commit-Queue: Scott James Remnant <keybuk@chromium.org>
Tested-by: Scott James Remnant <keybuk@chromium.org>
ros/bluetooth/bluetooth_client_xmlrpc_server.py
49150a94e707dcbed7a46817bb58d5aae7d8fd28 25-Jul-2013 Dan Shi <dshi@chromium.org> [autotest] add stats for CrashServer.symbolicate_dump

Add a counter to measure how many times CrashServer.symbolicate_dump is called,
also add a timer to measure how long it takes. The counter should tell us if any
symbolicate calls are requested arount similar time.

BUG=chromium:217988
TEST=none
DEPLOY=none

Change-Id: I63be3a0c434112e0644c85c3e976ff26de07b9ac
Reviewed-on: https://gerrit.chromium.org/gerrit/63361
Tested-by: Dan Shi <dshi@chromium.org>
Reviewed-by: Simran Basi <sbasi@chromium.org>
Commit-Queue: Dan Shi <dshi@chromium.org>
ros/dev_server.py
4dcd73f7d38d89063911c74796db9aa68ff8b064 23-Jul-2013 Scott James Remnant <keybuk@chromium.org> Bluetooth: begin testing infrastructure

Implement an XML-RPC server for both the Client (DUT) and Tester
based off the existing WiFi testing approach, with a server class
to proxy for them.

BUG=chromium:256771
TEST=simple test that instantiates both,
verify xml-rpc server was running on both devices

Change-Id: Icbaf9409460f0d535c160f6a11f1db86f989f46a
Reviewed-on: https://gerrit.chromium.org/gerrit/62890
Reviewed-by: Scott James Remnant <keybuk@chromium.org>
Tested-by: Scott James Remnant <keybuk@chromium.org>
Commit-Queue: Scott James Remnant <keybuk@chromium.org>
ros/bluetooth/__init__.py
ros/bluetooth/bluetooth_client_xmlrpc_server.py
ros/bluetooth/bluetooth_tester_xmlrpc_server.py
ros/bluetooth/common.py
6aafdddb12ec6c324d6c9d4e931058effb083f0c 19-Jul-2013 Christopher Wiley <wiley@chromium.org> autotest: Refactor ping related logic into a delegate

Consolidate server and client related ping code into a centralized
delegate that we can reuse in both places. Removed dead logic to do
background pings, particularly since this logic was deemed dangerous
by the testlab team.

BUG=chromium:263197
TEST=Ran suite:wifi_matfunc with only unrelated test flake.

Change-Id: Iec07646639e5681886dd771a2dd7afb4b02e3aa7
Reviewed-on: https://gerrit.chromium.org/gerrit/62924
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
Tested-by: Christopher Wiley <wiley@chromium.org>
ros/network/ping_runner.py
35476b958f33c6bada2932237a97f59b483b451d 24-Jul-2013 Prashanth Balasubramanian <beeps@chromium.org> Revert "[autotest] Pipe suite_name through client devserver code."

This reverts commit 5a80a9be9f8ff74675c8696b9c18dc6b19bb625c

Change-Id: Ic483b7a27b2603f533819cea3df33522596c5848
Reviewed-on: https://gerrit.chromium.org/gerrit/63171
Commit-Queue: Prashanth Balasubramanian <beeps@chromium.org>
Reviewed-by: Prashanth Balasubramanian <beeps@chromium.org>
Tested-by: Prashanth Balasubramanian <beeps@chromium.org>
ros/dev_server.py
03eaad90a2fabae6f3253e9acde8859681237610 26-Jun-2013 joychen <joychen@google.com> Update devserver urls with /archive in autotest(2)

[autotest] Remove archive from the devserver url patterns.
Devserver is removing static/archive so that everything is served
straight from the static directory. Cutting out calls in autotest to
match.

BUG=chromium:214373
TEST=Ran a suite with a reimage job on a DUT with the old
style job_repo_url.

Change-Id: Id3e2e0559c82a5424ef50406c7360ce28ca9a337
Reviewed-on: https://gerrit.chromium.org/gerrit/62918
Reviewed-by: Prashanth Balasubramanian <beeps@chromium.org>
Commit-Queue: Joy Chen <joychen@chromium.org>
Reviewed-by: Joy Chen <joychen@chromium.org>
Tested-by: Joy Chen <joychen@chromium.org>
ros/autoupdater.py
ros/autoupdater_unittest.py
ros/dev_server.py
5a80a9be9f8ff74675c8696b9c18dc6b19bb625c 10-Jul-2013 beeps <beeps@chromium.org> [autotest] Pipe suite_name through client devserver code.

To reduce the overhead involved with fetching control files
from the devserver we generate a mapping of suite->control
files at build time. This cl will ask the control file getter
to fetch the control files for a given suite instead of all
the control files associated with an image.

Also removing SUITE = None from some networking test control
files, and patched unittests.

BUG=chromium:252398
TEST=Ran a suite with many control files. Made sure the suite->
control file mapping falls back to the old code when a bad suite
name is specified. Compared the test objects created in the old
version vs those created with this change.
Ran unittests.

CQ-DEPEND=CL:I6b590c8c40a863e6744875a26ac228ffd4dd8794
Change-Id: Ic1d65672e8c65b728b9d783f60f3093c7d0d866b
Reviewed-on: https://gerrit.chromium.org/gerrit/61402
Commit-Queue: Prashanth Balasubramanian <beeps@chromium.org>
Reviewed-by: Prashanth Balasubramanian <beeps@chromium.org>
Tested-by: Prashanth Balasubramanian <beeps@chromium.org>
ros/dev_server.py
458bf9ef5cf16bf88b306844a54d073c9cde5856 20-Jul-2013 Richard Barnette <jrbarnette@chromium.org> Revert "Update devserver urls with /archive in autotest."

This reverts commit f67d57a79eab93bf731f5bcf2a48fd04e3e08c68

This seems to be causing bugs in the test environment prior
to pushing to prod.

BUG=chromium:262279
TEST=see bug description

Change-Id: I79c300ad5647d283b862322e7ce29d8b7165766d
Reviewed-on: https://gerrit.chromium.org/gerrit/62708
Commit-Queue: Richard Barnette <jrbarnette@chromium.org>
Tested-by: Richard Barnette <jrbarnette@chromium.org>
Reviewed-by: Joy Chen <joychen@chromium.org>
ros/autoupdater.py
ros/autoupdater_unittest.py
ros/dev_server.py
55e9cd187f20097b163b2ef36434df1e84235e77 19-Jul-2013 beeps <beeps@chromium.org> [autotest] Add helper functions to log contents of a directory.

We often see import of untar failure for no obvious reason. It
would help if we knew the contents of the directory we're trying
to untar into.

TEST=Forced and exception in base_packages and checked output
BUG=chromium:262005, chromium:260867

Change-Id: Ia731db08dc4372e18bdecfcedbddfe19a3395586
Reviewed-on: https://gerrit.chromium.org/gerrit/62612
Commit-Queue: Prashanth Balasubramanian <beeps@chromium.org>
Tested-by: Prashanth Balasubramanian <beeps@chromium.org>
Reviewed-by: Prashanth Balasubramanian <beeps@chromium.org>
ase_packages.py
ase_utils.py
d11c59cc90ebf2a31b9033881b6d3555ce4cb615 17-Jul-2013 Christopher Wiley <wiley@chromium.org> autotest: Migrate network_WiFiManager/091_ProfileProperties

Convert this to a client test, since it has no client restarts and
doesn't need a router.

TEST=This is a passing test.
BUG=chromium:259487

Change-Id: I56be3024b4392bd33ebe74c806ce035445f69bea
Reviewed-on: https://gerrit.chromium.org/gerrit/62411
Tested-by: Christopher Wiley <wiley@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Christopher Wiley <wiley@chromium.org>
ros/network/interface.py
79a3f28d64e688d605e96ec501d7922c16cfcfa0 17-Jul-2013 Christopher Wiley <wiley@chromium.org> autotest: Migrate network_WiFiManager/070HiddenNetwork

BUG=chromium:259487
TEST=This is a passing test.

Change-Id: I786494b456d16fa90add9d0958c4c0691671f9b6
Reviewed-on: https://gerrit.chromium.org/gerrit/62364
Tested-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
ros/network/shill_xmlrpc_server.py
3197b39f82eb92afff33c7d44b805afe120c7627 26-Jun-2013 Fang Deng <fdeng@chromium.org> [autotest] Suite scheduler files bugs for exceptions raised in create_suite_job

This CL is to make suite scheduler file bugs using our bug filer for
several types of exceptions raised by create_suite_job. The exceptions are:
- ControlFileNotFound
- NoControlFileList
- ControlFileEmpty
- ControlFileMalformed

To enable bug filing, use '-b' option of suite_scheduler.py
Bug will be assgined to Lab sheriff.

This CL changes the private method _create_bug_report to public in
server/cros/dynamic_suite/reporting.py, so that we can file a general
bug that is not a test failure. After crbug.com/254256 is fixed,
the bug filing logic in deduping_scheduler.py should be modified.

This CL also moves ParseBuildName() from base_event.py to site_utils,
to avoid import loop. Callers of this methods are updated.

BUG=chromium:242569
TEST=deduping_scheduler_unittest.py;driver_unittest.py;base_event_unittest.py;
ran on chromeos-lab1.hot and confirm bug are properly filed.
DEPLOY=suite_scheduler

Change-Id: Ia57a2e625b7b39dcfe51892c208613c927f3a54e
Reviewed-on: https://gerrit.chromium.org/gerrit/60158
Commit-Queue: Fang Deng <fdeng@chromium.org>
Reviewed-by: Fang Deng <fdeng@chromium.org>
Tested-by: Fang Deng <fdeng@chromium.org>
ite_utils.py
f67d57a79eab93bf731f5bcf2a48fd04e3e08c68 26-Jun-2013 joychen <joychen@google.com> Update devserver urls with /archive in autotest.

Devserver is removing static/archive so that everything is served
straight from the static directory. Cutting out calls in autotest to
match.

BUG=chromium:214373
TEST=None

Change-Id: Iebc74469c93d0c95b676dcc45045dbcbd089efb5
Reviewed-on: https://gerrit.chromium.org/gerrit/60101
Commit-Queue: Joy Chen <joychen@chromium.org>
Reviewed-by: Joy Chen <joychen@chromium.org>
Tested-by: Joy Chen <joychen@chromium.org>
ros/autoupdater.py
ros/autoupdater_unittest.py
ros/dev_server.py
ed49893ea3173432b92f86989373d8b15bfda06e 17-Jul-2013 Achuith Bhandarkar <achuith@chromium.org> Support for extensions in chrome.py

Create a Chrome wrapper object.
Add support for loading component extensions by path.
Add a test invoking a private api in telemetry_LoginTest.

BUG=None

TEST=manual

Change-Id: Ice05decb47aeff5bebd445b33306cfc614decd0c
Reviewed-on: https://gerrit.chromium.org/gerrit/62259
Reviewed-by: Simran Basi <sbasi@chromium.org>
Commit-Queue: Achuith Bhandarkar <achuith@chromium.org>
Tested-by: Achuith Bhandarkar <achuith@chromium.org>
ros/chrome.py
1750c4c4ab932b9c0a04207d981d9402870b4bea 16-Jul-2013 Christopher Wiley <wiley@chromium.org> autotest: Migrate network_WiFiManager/022CheckWPA_RawPMK

BUG=chromium:259487
TEST=This is a test and this passes.

Change-Id: I9c97fdbf573e46ebf77ca990cd4f53c0d56e214d
Reviewed-on: https://gerrit.chromium.org/gerrit/62141
Tested-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
ros/network/xmlrpc_security_types.py
86c4681dc627474024d55fae9cd646425adff0d3 16-Jul-2013 Achuith Bhandarkar <achuith@chromium.org> Introduce logged_in_browser and incognito_browser.

BUG=None

TEST=Manual

Change-Id: I2aefdc16f6df87eb65fc016c16e46064bb18aafa
Reviewed-on: https://gerrit.chromium.org/gerrit/62015
Commit-Queue: Achuith Bhandarkar <achuith@chromium.org>
Reviewed-by: Achuith Bhandarkar <achuith@chromium.org>
Tested-by: Achuith Bhandarkar <achuith@chromium.org>
ros/chrome.py
58f98cd152425996f562f0336f85c0b4cac34be4 12-Jul-2013 Christopher Wiley <wiley@chromium.org> autotest: Combine tests for odd WPA passphrases into a new test

TEST=This is a test. It passes
BUG=chromium:259487

Change-Id: Ia9a4ab9b76cb4fd284293ef417398268ad1e76d7
Reviewed-on: https://gerrit.chromium.org/gerrit/61683
Tested-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
ros/network/xmlrpc_security_types.py
424ae70155e48f641f62f03a70195857cc2c8a87 10-Jul-2013 Christopher Wiley <wiley@chromium.org> autotest: Migrate remaining tunnelled EAP tests

Add a new type Tunneled1xConfig which supports PEAP and TTLS
authentication types. Share the logic to build test cases between the
two types of tests.

TEST=This is a test, it passes. check1x_WEP and check1x_WPA still pass.
BUG=chromium:256351

Change-Id: Ibf223aa93bb5d361597600169471bddb35c64099
Reviewed-on: https://gerrit.chromium.org/gerrit/61477
Commit-Queue: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Tested-by: Christopher Wiley <wiley@chromium.org>
ros/network/xmlrpc_security_types.py
0f607de368aab9b7683d7097212a8e6c9c41812d 12-Jul-2013 Christopher Wiley <wiley@chromium.org> autotest: Add more variety to the WEP keys we test with

This lets us remove the tests around the variety of WEP keys the manager
supports.

TEST=This is a test. It passes.
BUG=chromium:259487

Change-Id: Id5995fe2956dc04fca93b27a23e9488a951e7364
Reviewed-on: https://gerrit.chromium.org/gerrit/61671
Tested-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
ros/network/xmlrpc_security_types.py
e026d0d7f9def700866b69c10d93e68794ec64e4 09-Jul-2013 repo sync <wdg@chromium.org> autotest: Adds wait_for_service_states support for ShillProxy

This CL plumbs xmlrpc for ShillProxy's new wait_for_service_state.

BUG=chromium:258664
TEST=autotest (that, now, uses this call)
CQ-DEPEND=Id3f34443d69e8c56e7ca885f3ac6ebe1eeb2ba47

Change-Id: If6ea0a4de2a8e90ca30df4904551ebc85a9694c1
Reviewed-on: https://gerrit.chromium.org/gerrit/61356
Commit-Queue: Wade Guthrie <wdg@chromium.org>
Reviewed-by: Wade Guthrie <wdg@chromium.org>
Tested-by: Wade Guthrie <wdg@chromium.org>
ros/network/shill_xmlrpc_server.py
918863f5297653bd470674d29db0e4dc5c159a07 20-Jun-2013 Dennis Jeffrey <dennisjeffrey@chromium.org> Add function output_perf_value() that tests can use to output perf measurements.

Also modify platform_GesturesRegressionTest to invoke this function.

The output_perf_value() function causes perf measurements to be outputted
to a result file named "perf_measurements" in the test result directory,
next to the "keyval" file where perf keyvals are currently written. Once
ready, all chromeOS perf tests that need to output perf measurements will
be converted to use output_perf_value() rather than write_perf_keyval().

This change is the first part of a series of changes in which we are
changing how autotest handles and stores perf test data, to align more
closely with the information required by Chrome team's performance
dashboard. In a later CL, the autotest TKO parser will be modified to
parse the "perf_measurements" file and insert that data into the results
database.

BUG=chromium:258226,chromium:258228
TEST=Invoked run_remote_tests.sh with the new version of
platform_GesturesRegressionTest on a local lumpy device, then verified that
the result directory on the device contained a "perf_measurements" text file
with the expected info.

Change-Id: I43bad95b4413139bff47b121667d107dfc054519
Reviewed-on: https://gerrit.chromium.org/gerrit/61565
Reviewed-by: Dan Shi <dshi@chromium.org>
Reviewed-by: Fang Deng <fdeng@chromium.org>
Commit-Queue: Dennis Jeffrey <dennisjeffrey@chromium.org>
Tested-by: Dennis Jeffrey <dennisjeffrey@chromium.org>
est.py
a98ccd88ed44dae8294507e23f0bf2b785a0df97 03-Jul-2013 Prathmesh Prabhu <pprabhu@chromium.org> Update references to shill_proxy.py after creation of wifi_proxy.py

shill/test-scripts/shill_proxy.py got split into two files shill_proxy.py and
wifi_proxy.py that now encapsulates functions specific to wifi tests. Update
rerferences accordingly.

BUG=chromium:257142
TEST=Run network test-suite in lab.
CQ-DEPEND=CL:61127
Change-Id: I3dc56cb9587915ede0f6048fb318fa5e6c78912b
Reviewed-on: https://gerrit.chromium.org/gerrit/61130
Commit-Queue: Prathmesh Prabhu <pprabhu@chromium.org>
Reviewed-by: Prathmesh Prabhu <pprabhu@chromium.org>
Tested-by: Prathmesh Prabhu <pprabhu@chromium.org>
ros/network/shill_xmlrpc_server.py
dadc2c21c0b0b904067ea6400e179a187c0247d4 09-Jul-2013 Alex Miller <milleral@chromium.org> [autotest] Move get_sheriffs() from common_lib's to server's utils.

This function pulls from a section other than client, which means that
it can never be run on a DUT, and thus has no point in being in
common_lib, which is meant for code that can be shared between client
and server, although those lines are a bit blurred at the moment.

TEST=unit?
BUG=None

Change-Id: Id92e1b344ff590c01d185bcd70ca67d7dba77938
Reviewed-on: https://gerrit.chromium.org/gerrit/61323
Reviewed-by: Prashanth Balasubramanian <beeps@chromium.org>
Reviewed-by: Alex Miller <milleral@chromium.org>
Tested-by: Alex Miller <milleral@chromium.org>
Commit-Queue: Alex Miller <milleral@chromium.org>
ite_utils.py
ffc1e178d8d4013163370ecba85dbbc8ee68a13e 03-Jul-2013 Christopher Wiley <wiley@chromium.org> autotest: Use TPM and PEM blobs instead of flat files in 802.1x

Install client credentials in the TPM and use those for the certificate
and key parameters in EAP config. Make use of the CACertPEM parameter
to pass the CA certifcate to shill as a raw PEM blob. This moves our
tests into a world where the paths exercised by Chrome and the paths
exercised by the tests will be the same once Chrome makes the necessary
multiprofile changes.

TEST=Both wifi_dynamicWEP and wifi_check1x_WPA consume this logic and
remain passing.
BUG=chromium:256351
CQ-DEPEND=CL:60831

Change-Id: Ib06784c861600c4a23622d08102f36c7dfd164dd
Reviewed-on: https://gerrit.chromium.org/gerrit/61126
Commit-Queue: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Tested-by: Christopher Wiley <wiley@chromium.org>
ros/network/shill_xmlrpc_server.py
ros/network/xmlrpc_security_types.py
ros/xmlrpc_server.py
07e09aff0baf871b33e5479e337e5e3e0523b729 12-Apr-2013 Dan Shi <dshi@chromium.org> [Autotest] merge cleanup and verify

The objective of this CL is to merge cleanup and verify into a single job to
reduce run time of each test. In existing design, by default, a cleanup job is
scheduled after a test is finished, and a verify job is scheduled before a
test is started. By merging these two jobs together, we are seeing the total
run time of these two jobs is reduced from about 47s to 37s, around 10s saving.
That does not include the saving on scheduler to schedule two jobs, which may
take another 5-10s.

The design is to create a new special task, reset, which runs at the beginning
of a job by default. Verify task is changed to not to run by default before a
job starts. Cleanup job will only be run if a job is scheduled to reboot and
any test failed in that job.

BUG=chromium:220679
TEST=tested with run_suite in local machine
DEPLOY=afe,apache,scheduler,change all users' preference on reboot_after to
Never, sql: |update chromeos_autotest_db.afe_users set reboot_after=0|

Change-Id: Ia38baf6b73897b7e09fdf635eadedc752b5eba2f
Reviewed-on: https://gerrit.chromium.org/gerrit/48685
Commit-Queue: Dan Shi <dshi@chromium.org>
Reviewed-by: Dan Shi <dshi@chromium.org>
Tested-by: Dan Shi <dshi@chromium.org>
ost_queue_entry_states.py
e7c44c3f437ba5b514d0f7d588ea17fc263e6645 20-Jun-2013 Christopher Wiley <wiley@chromium.org> autotest: Migrate network_WiFiSecMat/016CheckWPA_GTK_Rekey

In addition, add functionality to create broadcast traffic via arping so
that we actually check that GTK rekeys are successful.

TEST=This is a test that finally tests what it says. It passes.
Also, wifi_check11b wifi_checkWPA both pass.
BUG=chromium:251907

Change-Id: I625c17d53788181ce5458f222f9e53164da283e4
Reviewed-on: https://gerrit.chromium.org/gerrit/60503
Tested-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: mukesh agrawal <quiche@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
ros/network/xmlrpc_security_types.py
848fa8a6aaf73f5d1e389b3d4b61d8ceaccf52d2 02-Jul-2013 Christopher Wiley <wiley@chromium.org> autotest: Migrate network_WiFiSecMat/019CheckWPA_1x_AES

On the way, complete adding support for negative assertions to SimpleConnect.
We can now assert that an attempt should fail rather than succeed.

TEST=This is a test. It passes.
BUG=chromium:256351
Change-Id: Ibc864ced7006175dcb24ac9b90bcc74f90c51cb9
Reviewed-on: https://gerrit.chromium.org/gerrit/60790
Tested-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
ros/network/xmlrpc_datatypes.py
ros/network/xmlrpc_security_types.py
dffc0bd56de1b7d3c9e0098c7ec87ecfb6f097a1 03-May-2013 Dennis Jeffrey <dennisjeffrey@chromium.org> Add new experimental BVT test login_CryptohomeMountedTelemetry.

This test uses Telemetry-based login instead of PyAuto-based login
(PyAuto is used by existing BVT test login_CryptohomeMounted). Once
the Telemetry-based version is deemed reliable enough, it will
replace the PyAuto-based version.

This change must land along with a corresponding change that adds
login_CryptohomeMountedTelemetry to the autotest-chrome ebuild.

CQ-DEPEND=CL:59599
BUG=chromium:236453
TEST=cbuildbot --remote --hwtest --chrome_rev=tot -g '59599 59601' lumpy-release

Change-Id: I701d89c5fb7de31eae333e617def914993c27dd3
Reviewed-on: https://gerrit.chromium.org/gerrit/59601
Commit-Queue: Dennis Jeffrey <dennisjeffrey@chromium.org>
Reviewed-by: Dennis Jeffrey <dennisjeffrey@chromium.org>
Tested-by: Dennis Jeffrey <dennisjeffrey@chromium.org>
ros/chrome.py
61b96475ae889c0ed49ebf8adcb1f8938de62d5c 01-Jul-2013 Christopher Wiley <wiley@chromium.org> autotest: Separate EAP credential logic

Refactor DynamicWEPConfig to extract logic related to installing EAP
credentials into a separate class. We'll reuse this in our other 802.1x
tests.

TEST=wifi_checkDynamicWEP continues to run and pass.
BUG=chromium:256351

Change-Id: Ib78f45d82159156037556d41acebd5b165ca67ff
Reviewed-on: https://gerrit.chromium.org/gerrit/60693
Tested-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
ros/network/xmlrpc_security_types.py
60aec2423a2c2a14c46dc21757a6fd748931f428 26-Jun-2013 beeps <beeps@chromium.org> [autotest] Divorce the devserver retry requests and sigalarm.

All dev_server requests made from the client go through a retry
wrapper that uses sigalarm to expedite unresponsive calls. Since
we cannot register our signal handlers with mod wsgi, this cl
modifies the urlopen call to manage an internal socket timeout
instead. In order to continue retrying on other URLErrors, the
urlopen wrapper in site_utils converts socket timeouts to
TimeoutExceptions.

TEST=
1. Added a bad devserver, tried to run_suite on a build that hashed
to said devserver with and without this change and verified that
it only worked in the latter case.
2. Sigalarm still fires when devserver's resolve is called outside wsgi,
and urlopen has a larger timeout.
3. Non TimeoutException URLErrors retry.
4. dev_server_unittest pass.
BUG=chromium:246209

Change-Id: Iec9ef39982f4c8b92e260cf27bf454e624bccfa9
Reviewed-on: https://gerrit.chromium.org/gerrit/58659
Tested-by: Prashanth Balasubramanian <beeps@chromium.org>
Reviewed-by: Alex Miller <milleral@chromium.org>
Commit-Queue: Prashanth Balasubramanian <beeps@chromium.org>
ros/dev_server.py
ros/dev_server_unittest.py
ros/retry.py
ros/retry_unittest.py
rror.py
ite_utils.py
84ebd1a5d75653169c5adcefaf02762fadcfab15 20-Jun-2013 Christopher Wiley <wiley@chromium.org> autotest: Refactor how XMLRPC structs are constructed

Refactor parameters to the shill xmlrpc server so that
marshalling/demarshalling happens automagically and constructors become
useful again. This makes usage between the security configurations and
the basic xmlrpc parameters consistent. Since this facility might be be
more broadly useful, check the base class in outside WiFi specific code.

TEST=Ran passing run_remote_tests.sh for:
wifi_check11b
wifi_checkWEP40
wifi_checkWPA2
wifi_dynamicWEP
network_WiFi_BgscanBackoff

BUG=None.

Change-Id: Id47c73f33d8b328338c44107f1c40b4dc75bf338
Reviewed-on: https://gerrit.chromium.org/gerrit/59576
Tested-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: mukesh agrawal <quiche@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
ros/network/shill_xmlrpc_server.py
ros/network/xmlrpc_datatypes.py
ros/network/xmlrpc_security_types.py
ros/xmlrpc_types.py
ec1de4238e95356b80ff9b1d40695416ee47b2c9 27-Jun-2013 J. Richard Barnette <jrbarnette@chromium.org> Change update version checking when update_version is None

If a ChromiumOSUpdater instance is created with the
local_devserver=True option, the check_version_to_confirm_install()
method will always return False. In the case of a local
devserver, we want to skip the version test, so this changes
the method to always return True for the local devserver case.

BUG=None
TEST=run_remote_tests with autoupdate/control.local

Change-Id: Ie0790e0e1498aaf8c60a2275829a4cbd35de454a
Reviewed-on: https://gerrit.chromium.org/gerrit/60151
Reviewed-by: Dan Shi <dshi@chromium.org>
Reviewed-by: Chris Sosa <sosa@chromium.org>
Commit-Queue: Richard Barnette <jrbarnette@chromium.org>
Tested-by: Richard Barnette <jrbarnette@chromium.org>
ros/autoupdater.py
445cb74570782a6d80c1e00dc02eb95fcae7f178 26-Jun-2013 beeps <beeps@chromium.org> [autotest] Skip setting a sigalarm if we can't set a handler for it.

Our retry decorator is currently designed to use signals to timeout
blocking calls, and throw a timeout exception when such signals hit.
The timeout exception is handled in the caller, which may choose to
move on ignoring it, or raise it as necessary. Unfortunately wsgi
silently intercepts any attempt to install a sigalarm handler to
protect apache. This means that when an rpc call is made through wsgi,
we will feel the full force of a sigalarm and the caller has no say
in how we handle the timeout. Moreover, if we were to hit a sigalarm
within a nested retry in an rpc call, the outer retry will continue
to attempt the failed call from scratch causing a vicious cycle.

This cl modifies the retry decorator to only set a sigalarm if
installation of the handler was successfull. If we fail to install
the handler we directly call the method decorated by the retry,
assuming it has an internal timeout (like a socket timeout). The cl
also refactors some code around the retry logic to return in time
for a deadline, by only passing the remaining time to the sigalarm
decorator.

Note that there are 3 timeouts in play here:
1. The outer frontend_wrapper retry timeout (which is enforced by a sigalarm) 
2. The inner devserer timeout which (which will be enforced by a socket timeout)
3. Devserver retry timeout (which should be enforced by a sigalarm when possible)

More generally, anything that can be called both from within the context of wsgi
and from outside wsgi, should only set a sigalarm in the latter case and skip
setting one in the former case.

BUG=chromium:246209
TEST=
a. Timeout 3 will fire and we get a sigalarm if max(1,2) > 3 if we bypass wsgi
b. Timeout 3 won't fire and we will wait for min(1,2) if we're going through wsgi
c. Timeout 1 gets decrementally smaller and we eventually breakout of the loop,
if we keep hitting b with 1>2.
d. min(1, 2) fires.
e. ran retry_unittests

Change-Id: I8d7ed21b8b4989b91f7581f0916559c5d93faa80
Reviewed-on: https://gerrit.chromium.org/gerrit/60106
Commit-Queue: Prashanth Balasubramanian <beeps@chromium.org>
Tested-by: Prashanth Balasubramanian <beeps@chromium.org>
Reviewed-by: Prashanth Balasubramanian <beeps@chromium.org>
ros/retry.py
567c8f02d80562bc9a5df0477ef0424edb7cdcd5 19-Jun-2013 Dan Shi <dshi@chromium.org> [Autotest] Add an option in global config to skip devserver health check

An option, skip_devserver_health_check, is added under [CROS] section to skip
devserver health check. User can set this option to True in shadow config so
that a devserver can run in a local setup with limited disk space.

BUG=chromium:242297
TEST=tested with run_suite with localhost setup as devserver.
DEPLOY=none

Change-Id: Ie3247120d0c17cf4332655050c8a533fc2f9cd64
Reviewed-on: https://gerrit.chromium.org/gerrit/59271
Tested-by: Dan Shi <dshi@chromium.org>
Reviewed-by: Chris Sosa <sosa@chromium.org>
Reviewed-by: Alex Miller <milleral@chromium.org>
Commit-Queue: Dan Shi <dshi@chromium.org>
ros/dev_server.py
db48d276d1f60bcf9bab5fa367d5e4468695f423 25-Jun-2013 Olof Johansson <olofj@chromium.org> base_utils: add a get_arch_userspace() helper

Add a get_arch_userspace() helper, that will return the architecture of
the populated filesystem on the unit under test. get_arch() returns the
kernel version and is not suitable for systems where the two don't match
(i.e. i386 userspace on x86_64 kernel).

BUG=chromium:253699
TEST=run security_Minijail_seccomp once the corresponding change to
the testcase has been passed, see it pass on x86-pineview or other mix
64/32-bit arch.

Change-Id: I1fef93ce66d08e283252e0b7f88c8cad7ff5964a
Reviewed-on: https://gerrit.chromium.org/gerrit/59852
Tested-by: Olof Johansson <olofj@chromium.org>
Reviewed-by: Kees Cook <keescook@chromium.org>
Commit-Queue: Olof Johansson <olofj@chromium.org>
ase_utils.py
e6a9070df5936d20d13f8a58b140871c55fa8c45 21-Jun-2013 Dennis Jeffrey <dennisjeffrey@chromium.org> Revert "login_CryptohomeMounted now uses Telemetry-based login instead of PyAuto-based login."

This reverts commit a27c440dd47093388e1122beeb0afc94f4689111

This broke the following build:
http://chromegw.corp.google.com/i/chromeos/builders/alex%20paladin/builds/13663

and needs to be investigated for possible issues with Telemetry.

Change-Id: I0fdb64c0452e13daa1781bfc7005df452309cf3c
Reviewed-on: https://gerrit.chromium.org/gerrit/59490
Reviewed-by: David James <davidjames@chromium.org>
Commit-Queue: Dennis Jeffrey <dennisjeffrey@chromium.org>
Tested-by: Dennis Jeffrey <dennisjeffrey@chromium.org>
ros/chrome.py
b7183e6d4484c7a715d77cecbd7634e412887b5b 19-Jun-2013 Christopher Wiley <wiley@chromium.org> autotest: Migrate network_WiFiSecMat/015CheckWPA_PTK_Rekey

TEST=This is a test; it passes. Noted 6 rekeys in the hostapd
logs from this test.
BUG=chromium:251907

Change-Id: I1816171849fef9b19321e3b5d49624fcb09de899
Reviewed-on: https://gerrit.chromium.org/gerrit/59305
Tested-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
ros/network/xmlrpc_security_types.py
a27c440dd47093388e1122beeb0afc94f4689111 03-May-2013 Dennis Jeffrey <dennisjeffrey@chromium.org> login_CryptohomeMounted now uses Telemetry-based login instead of PyAuto-based login.

This change must land along with a corresponding change that removes
login_CryptohomeMounted from the autotest-chrome ebuild, and adds it to
the autotest-telemetry ebuild.

CQ-DEPEND=CL:50061
BUG=chromium:236453
TEST=cbuildbot --remote --hwtest --chrome_rev=tot -g '50060 50061' lumpy-release

Change-Id: Ice63460dc0532220bee70cb55863b27623bc929d
Reviewed-on: https://gerrit.chromium.org/gerrit/50060
Reviewed-by: Dennis Jeffrey <dennisjeffrey@chromium.org>
Tested-by: Dennis Jeffrey <dennisjeffrey@chromium.org>
Commit-Queue: Doug Anderson <dianders@chromium.org>
ros/chrome.py
458fb604d9e06110266439818d04daf373d5025e 18-Jun-2013 Christopher Wiley <wiley@chromium.org> autotest: Remove senseless XmlRpc boilerplate

Python's XmlRpc framework will do this primitive marshalling for us, so
lets not duplicate it and make everyone's life miserable.

TEST=Tests pass.
BUG=None

Change-Id: Ia85505bfec935a80e2e1cb3a113ca8c5989ae97c
Reviewed-on: https://gerrit.chromium.org/gerrit/58966
Tested-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Reviewed-by: Tan Gao <tgao@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
ros/network/shill_xmlrpc_server.py
ros/network/xmlrpc_datatypes.py
ros/network/xmlrpc_security_types.py
ros/xmlrpc_datatypes.py
141c1db15f9a9984b84a3943e3d1b94af65c0af6 18-Jun-2013 Christopher Wiley <wiley@chromium.org> autotest: Migrate network_WiFiSecMat/005SharedKeyWEP40 to new framework

TEST=This is a test, it passes. You can see the various hostapd configs
being set up correctly.
BUG=chromium:251000

Change-Id: Ia8862d81968f38d63149d5304e831a20fed2c396
Reviewed-on: https://gerrit.chromium.org/gerrit/58928
Tested-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Tan Gao <tgao@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
ros/network/xmlrpc_security_types.py
d91d23f3468517ded160ab4b2904bae6673914d2 15-Jun-2013 Christopher Wiley <wiley@chromium.org> autotest: Enable dynamic WEP support for new WiFi tests

TEST=The test that consumes this passes.
BUG=chromium:245811

Change-Id: I5c04ae64f39d720b1a81b10edc0115b825ceb51b
Reviewed-on: https://gerrit.chromium.org/gerrit/58899
Commit-Queue: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Tested-by: Christopher Wiley <wiley@chromium.org>
ros/network/xmlrpc_security_types.py
d80c992cfbe325ace31e32dee86c41badb056341 14-Jun-2013 Christopher Wiley <wiley@chromium.org> autotest: Enable WPA/WPA2 encryption in new WiFi tests

TEST=A test depending on this change and using WPA encryption passes
when the correct password is given, and fails when an incorrect password
is given.
BUG=chromium:245816

Change-Id: If1370bbbd7b41aaeec066920d0810dc0a7cf716d
Reviewed-on: https://gerrit.chromium.org/gerrit/58872
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Tested-by: Christopher Wiley <wiley@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
ros/network/xmlrpc_security_types.py
b8921c718c68ff4303a8602edd072f9ab21db407 13-Jun-2013 Christopher Wiley <wiley@chromium.org> autotest: Refactor WiFi security credentials into per type classes

This lets us be a little more abstract about the types of security
credentials we support in testing, and concentrates the relevant logic
into one place.

TEST=Passes both:
./run_remote_tests.sh --remote=chromeos1-shelf1-host3 check11b
./run_remote_tests.sh --remote=chromeos1-shelf1-host3 checkStaticWEP40
which indicates this works for both open and WEP security types.
BUG=chromium:249096
CQ-DEPEND=CL:58588

Change-Id: I085665db9bead45fcd8d0b94a136b9dac2f646da
Reviewed-on: https://gerrit.chromium.org/gerrit/58589
Tested-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
ros/network/shill_xmlrpc_server.py
ros/network/xmlrpc_datatypes.py
ros/network/xmlrpc_security_types.py
a3a3fc0a75e5c9faaae52b35c27502b290e14b4a 13-Jun-2013 Tan Gao <tgao@chromium.org> [WiFi] Deprecate old RvR tests that depend on site_wifitest.py.

- replace old RvR tests w/ new RvR tests, details below
- network_WiFiRateRange (old) -> network_WiFi_RateRange (new)
* control.044_tcp_rx_ht40_plus -> control.tcp_rx_ch44_ht40_plus
* control.044_udp_rx_ht40_plus -> control.udp_rx_ch44_ht40_plus
* control.153_tcp_rx_ht40_minus -> control.tcp_rx_ch153_ht40_minus
* control.153_udp_rx_ht40_minus -> control.udp_rx_ch153_ht40_minus

BUG=chromium:248688
TEST=Manual (run all 4 tests in grover cell #1 and verified passing)

Change-Id: Ib2304f21c6a5f2be49b3c041bd235d60314c88ac
Reviewed-on: https://gerrit.chromium.org/gerrit/58543
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Commit-Queue: Tan Gao <tgao@chromium.org>
Tested-by: Tan Gao <tgao@chromium.org>
ros/network/shill_xmlrpc_server.py
b9ada9bada466ef06967a0ce05e976f85a6995ee 12-Jun-2013 Chris Sosa <sosa@chromium.org> Fix a couple broken unittests.

1) Use mock to mock out call to find stateful update script.
2) Change timeout value to 240 given change to base timeout.

BUG=chromium:246372 chromium:243922
TEST=Ran unittests

Change-Id: Ica7b598f96404e6bf13408df8cf60853000b1101
Reviewed-on: https://gerrit.chromium.org/gerrit/58412
Tested-by: Chris Sosa <sosa@chromium.org>
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
Commit-Queue: Chris Sosa <sosa@chromium.org>
ros/autoupdater_unittest.py
228218c22c544ee168bca064c1651573da82983b 10-Jun-2013 Tan Gao <tgao@chromium.org> Add looping to new RvR tests and deprecate old RvR tests.

- add teardown method to reset state of variable attenuators after a test
- refactor attenuator config scripts
- add lookup table for fixed path loss by test cell, AP frequency and port.
(use approximate value if needed)
- add new RvR tests (no dependency on site_wifitest.py)

BUG=chromium:235477
TEST=Manual (ran network_WiFi_RateRange/control.udp_rx_ch44_ht40_plus and
verified passing, i.e.
$ ./run_remote_tests.sh --board=lumpy \
--remote=chromeos3-grover-host1.cros \
network_WiFi_RateRange/control.udp_rx_ch44_ht40_plus$)

Change-Id: I081e56ca2cbf19afc2b01235e2f70622a7bfeced
Reviewed-on: https://gerrit.chromium.org/gerrit/58142
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Commit-Queue: Tan Gao <tgao@chromium.org>
Tested-by: Tan Gao <tgao@chromium.org>
ros/site_attenuator/attenuator_config.py
ros/site_attenuator/constants.py
1febd6ad71496ac14c022f9156939daa2e1f5d71 03-Jun-2013 Christopher Wiley <wiley@chromium.org> autotest: Migrate network_WiFiMatFunc/011CheckIBSS to new framework

TEST=This is a test, it passes. In addition, running 011CheckIBSS still
passes with the modifications to site_wifitest. check11b also passes.
BUG=chromium:245907
CQ-DEPEND=CL:57385

Change-Id: Ibd370bfb5e0fd21e3bce084834e8f38a8512422d
Reviewed-on: https://gerrit.chromium.org/gerrit/57386
Tested-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
ros/network/shill_xmlrpc_server.py
ros/network/xmlrpc_datatypes.py
b76e0ee685a5808687d4ce657b39fb4c08647dea 23-May-2013 Chris Sosa <sosa@chromium.org> Add new test that has shorter reboot/down timeouts and increase others.

This CL adds platform_RebootAfterUpdate which specifically tests shorter
reboot timeouts. I originally planned on setting down_timeout and
reboot_timeout and passing these to reboot but it seemed to be actually a
worse solution for 2 reasons:

1) Since these are client errors, they are reinterpreted as AutoservRunErrors.
I'd literally have to parse the ssh commands to figure whether it was associated
with either not shutting down in time or rebooting in time.
2) Even with (1) wait_for_reboot in client/common_lib/hosts/base_classes.py
waits using the down_timeout + reboot_timeout -- sort of. It doesn't subtract
the time used waiting for wait_down from the total time in wait_up. This is
pretty bad logic and isn't really that useful to set a good timeout.

Given these, it doesn't make much sense to separate down/reboot errors (which I
originally planned to do). So all I could do was sort of pass this one aggregate
value (which wait_for_reboot doesn't allow). So given all these, I decided that
allowing the long timeouts and measuring the time was the best solution for
our problem.

BUG=chromium:242384
TEST=Ran it -- manually changed time outs to see failures correctly.

Change-Id: I52103c8f835cea326bf7efbeb126d9f145988a43
Reviewed-on: https://gerrit.chromium.org/gerrit/56348
Reviewed-by: Chris Sosa <sosa@chromium.org>
Tested-by: Chris Sosa <sosa@chromium.org>
Commit-Queue: Chris Sosa <sosa@chromium.org>
ros/dev_server.py
89d5d21ec72e55ca0ca9e50d488210e2c5bb34e7 21-May-2013 J. Richard Barnette <jrbarnette@chromium.org> Suppress deprecation warnings from control_data.py.

The control_data module imports the deprecated `compiler` module.
Although by default Python doesn't report deprecation warnings,
Autotest explicitly chooses to log all warnings, including
DeprecationWarning exceptions. The warning is spamming multiple
logs, and also shows up on the output of various autotest
command-line tools (e.g. `atest`).

This is a point fix to suppress the warning; it doesn't
address the underlying issue.

BUG=chromium:243906
TEST=run 'atest' on a local autotest instance

Change-Id: I7e1eed2f84ea506f96b8f7894f07519bdaad9d51
Reviewed-on: https://gerrit.chromium.org/gerrit/56090
Reviewed-by: Richard Barnette <jrbarnette@chromium.org>
Tested-by: Richard Barnette <jrbarnette@chromium.org>
Commit-Queue: Richard Barnette <jrbarnette@chromium.org>
ontrol_data.py
6cb26ad178990814fce3209c464afe7f131ec5b0 21-May-2013 Elly Fong-Jones <ellyjones@chromium.org> [autotest] remove dependencies on /home/chronos/user

BUG=chromium:212419
TEST=suite_Smoke

Change-Id: I8849e3eb6e76a3a3358422f1c2269a926d35994f
Signed-off-by: Elly Fong-Jones <ellyjones@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/56050
Reviewed-by: Will Drewry <wad@chromium.org>
ase_utils.py
7c72f9c6cd22c252a4fbd20c079a471ab3ba9f7e 22-May-2013 Aviv Keshet <akeshet@chromium.org> [autotest] Enum get_value works when passed a long

Prior to this CL:
> import common
> from autotest_lib.client.common_lib import control_data
> control_data.CONTROL_TYPE.get_value('client')
2
> control_data.CONTROL_TYPE.get_value(2)
2
> control_data.CONTROL_TYPE.get_value(2L)
AttributeError: 'long' object has to attribute 'upper'

After this CL:
[snip]
> control_data.CONTROL_TYPE.get_value(2L)
2L

The reason this matters is that, occasionally, enums stored in one of
our databases as an integer are being stored as a long. Hardening Enum
so it sanely handles long ints removes the need to sanity check whether
enums coming out of the db are ints or longs.

BUG=See above
TEST=unit tests pass; Also see above.

Change-Id: I3ae84e8593daa559f530c99c6454eb2336b51303
Reviewed-on: https://gerrit.chromium.org/gerrit/56116
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
Tested-by: Aviv Keshet <akeshet@chromium.org>
Commit-Queue: Aviv Keshet <akeshet@chromium.org>
num.py
3dd8beb386f7298ffe84d7410d00cce26973e170 14-May-2013 Aviv Keshet <akeshet@chromium.org> [autotest] make a consistent CONTROL_TYPE enum across the codebase

Prior to this CL, there were a multitude of duplicate defitions of the
two control files types (Client or Server), incluiding a difference
between the afe Job model (1 = Server) and the afe Test model (1 =
Client). This CL introduces enums CONTROL_TYPE and CONTROL_TYPE_NAMES to
control_data, to act as the central and consistent defition across the
codebase. In order to avoid needing to mangle the running Jobs table, we
have adopted the existing Job model convention (1 = Server); the Test
table will be re-written with the new consistent convention during test
import.

BUG=chromium:240643
TEST=All existing unit tests pass;
In local autotest without this patch applied, started a suite. Halfway
through suite, applied this patch, ran test importer, restarted apache,
and restarted scheduler. Suite finished successfully.
Verified manually that Client/Server type control files show up
correctly in afe Create Job view.
DEPLOY=scheduler
DEPLOY=apache
DEPLOY=test_importer

Change-Id: Ia5b2573e1d08d96b3826f2837903ef407dcae303
Reviewed-on: https://gerrit.chromium.org/gerrit/51191
Commit-Queue: Aviv Keshet <akeshet@chromium.org>
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
Tested-by: Aviv Keshet <akeshet@chromium.org>
ontrol_data.py
d1d96b886f5eebdbb2a13047638dd1f21472d0f9 10-May-2013 Christopher Wiley <wiley@chromium.org> autotest: Migrate 090_BgScanBackoff to new WiFi test framework

While here, observe that assert_ping_similarity() is only used for this
test and that belongs in the test rather that in WiFiClient. Use
blocking ping calls rather than background ping calls since this makes
the test lab team happier.

TEST=Test runs, stats are compared.
BUG=chromium:230660

CQ-DEPEND=CL:50905

Change-Id: I96944d9988bd1af85c6ad5dcce53c50569cb5b94
Reviewed-on: https://gerrit.chromium.org/gerrit/50907
Tested-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
ros/network/shill_xmlrpc_server.py
ros/network/xmlrpc_datatypes.py
c4fb1472ee2f8c76c7a561739a6fbfb85095bffa 09-May-2013 beeps <beeps@chromium.org> [autotest] Adds chrome version strings to autofiled bugs.

The reporting module now queries client job keyvals for
the chrome version string and includes it in the summary
of every autofiled bug.This change also fortifies the
reporting module against xml parser syntax errors,
fixes unittest, modifies the default link we use to
point to the buildbot stages, and embeds links to bugs
filed in the buildbot report.

TEST=Ran a suite and tried different permutations of
aborted tests to make sure we don't crash. Filed
bugs and checked the format of the version string.
Ran unittests. Ran run_suite and checked the STEP
LINKS in the report.
BUG=None

Change-Id: I9e418d543942b71afafc0c1a8084a02684f0cacf
Reviewed-on: https://gerrit.chromium.org/gerrit/50579
Reviewed-by: Prashanth Balasubramanian <beeps@chromium.org>
Tested-by: Prashanth Balasubramanian <beeps@chromium.org>
Commit-Queue: Prashanth Balasubramanian <beeps@chromium.org>
ite_utils.py
5d010aa50a0694d498e8317fd8044e56474ce7ed 06-May-2013 Chris Masone <cmasone@chromium.org> Add multiprofile tests for session_manager.StartSession()

Multiple calls to StartSession() with different users should be allowed,
while multiple calls with the same user should not.

BUG=chromium:235179
TEST=run these new tests

CQ-DEPEND=I1200c4463d43cd8cf7d49a2f9f0667ac1cccc261
CQ-DEPEND=I5ee9fb18e1f8c1a933b899acc62618323f2df9bf

Change-Id: I912d3ded053a7f0f41c604f5ffef15477d634017
Reviewed-on: https://gerrit.chromium.org/gerrit/50223
Commit-Queue: Chris Masone <cmasone@chromium.org>
Reviewed-by: Chris Masone <cmasone@chromium.org>
Tested-by: Chris Masone <cmasone@chromium.org>
ros/session_manager.py
118286eb006b8f643631209c64c73f4d34405f97 10-May-2013 Christopher Wiley <wiley@chromium.org> autotest: Remove empty client/common_lib/cros/wlan directory

This has been deprecated in favor of client/common_lib/cros/network.

TEST=None
BUG=None

Change-Id: I9fe450a66a7908c5c92085d1c0c522d92bc9b124
Reviewed-on: https://gerrit.chromium.org/gerrit/50885
Tested-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
ros/wlan/__init__.py
241ae6c2481663364f2e4fbba76954db839911c5 01-May-2013 Fang Deng <fdeng@chromium.org> [autotest] retry takes a blacklist and doesn't retry on ImportError

retry decorator now takes a blacklist of exceptions. The decorated
function will not be retried if an exception falls into the list.
As such, we have the option to let the functions fail faster
on errors we know for sure we don't want to retry.

RetryingAFE and RetryingTKO now don't retry on ImportError.

TEST=locally ran run_suite.py w/ and w/o simplejson installed
BUG=chromium:236847

Change-Id: I7365ee4971611562c4b6ad56720c067a97b2a840
Reviewed-on: https://gerrit.chromium.org/gerrit/49759
Reviewed-by: Scott Zawalski <scottz@chromium.org>
Commit-Queue: Fang Deng <fdeng@chromium.org>
Tested-by: Fang Deng <fdeng@chromium.org>
ros/retry.py
fda8f41e6d022ed19aa4bdfd4dab993f8f39dd57 03-May-2013 beeps <beeps@chromium.org> [autotest] Cc sheriffs for bvt bugs.

Get a list of all the chromium.org email addresses of the
sheriffs of that day and cc them on the bug filed, if the
failure is a part of the bvt suite.

TEST=Checked that we retrieve the sheriff list accurately,
Checked that the cc list contains a consolidated list
of ldaps that include those specified in the template.
Filed bugs with a fake/malformed cc list.
BUG=None

Change-Id: I5fba5291ba7f0c2038b5e421cfaf53238a1971c0
Reviewed-on: https://gerrit.chromium.org/gerrit/50018
Tested-by: Prashanth Balasubramanian <beeps@chromium.org>
Reviewed-by: Scott Zawalski <scottz@chromium.org>
Commit-Queue: Prashanth Balasubramanian <beeps@chromium.org>
Reviewed-by: Prashanth Balasubramanian <beeps@chromium.org>
ite_utils.py
d976e0ed3cb28e532f15826c5071149b8fabeaf8 06-May-2013 Chris Masone <cmasone@chromium.org> Move ownership tests to use composition instead of inheritance

Using composition like this makes it clearer what each test is doing, instead
of having stuff happen in the base class as if by magic.

BUG=chromium:222778
TEST=login_*Ownership*
STATUS=Fixed

Change-Id: I7dbb71e1a712efacfdbe7ad64f4ef74ea0793919
Reviewed-on: https://gerrit.chromium.org/gerrit/50194
Commit-Queue: Chris Masone <cmasone@chromium.org>
Reviewed-by: Chris Masone <cmasone@chromium.org>
Tested-by: Chris Masone <cmasone@chromium.org>
ros/policy.py
73aa2908e457c64ede3597cc78451cca5fba85be 03-May-2013 Dan Shi <dshi@chromium.org> [Autotest] add support to check pgo-generate build

After a pgo-generate build is installed, lsb-release has version string like
'3837.0.0-pgo-generate', autoupdater needs to be updated to handle version
string in such form.

BUG=chromium:237803
TEST=local unittest, and try lumpy-release-pgo-generate/R28-4082.0.0
DEPLOY=none

Change-Id: I9548c430fa64998fe9965daa707f6a6606f9f783
Reviewed-on: https://gerrit.chromium.org/gerrit/50050
Reviewed-by: Chris Sosa <sosa@chromium.org>
Commit-Queue: Dan Shi <dshi@chromium.org>
Reviewed-by: Dan Shi <dshi@chromium.org>
Tested-by: Dan Shi <dshi@chromium.org>
ros/autoupdater.py
ros/autoupdater_unittest.py
6a868ddbc4ab2028c616e632c3126fb768f4ca51 26-Apr-2013 Dan Shi <dshi@chromium.org> [Autotest] Add free disk space check in devserver

Add a new method, check_health, to collect the health status of devserver.
Initially, collect the free disk space. The method is extendable to return more
information. The caller will determine if the devserver is ready for staging
image based on the returned health status. stats about each dev server's health
condition is also collected from caller.

BUG=chromium:219330
TEST=tested with run_suite in local machine, which runs as devserver as well.
DEPLOY=apache

Change-Id: I4828e6f75b3e3d177c74839333f3eaadce2e9aa7
Reviewed-on: https://gerrit.chromium.org/gerrit/49251
Reviewed-by: Alex Miller <milleral@chromium.org>
Commit-Queue: Dan Shi <dshi@chromium.org>
Tested-by: Dan Shi <dshi@chromium.org>
ros/dev_server.py
ros/dev_server_unittest.py
4f34170dbb70080a56de88dc13859b3a7ffffb0a 25-Mar-2013 Alex Miller <milleral@chromium.org> [autotest] Use |json| instead of |simplejson|.

simplejson was moved into the library as of python 2.4. We're now at
python 2.6/2.7, and having to keep installing simplejson everywhere has
slowly turned into a hassle. Since we can just trivially drop/rename
it, let's do so.

The rpc_interface parts of this change have been vetted, the rest is
done just as a s/simplejson/json/ across the code, which afaik should be
a safe thing to do.

BUG=None
TEST=unit, run_suite
DEPLOY=apache

Change-Id: Iab35f71157e7e5cd3be5291c776b07eb3283be8e
Reviewed-on: https://gerrit.chromium.org/gerrit/46424
Tested-by: Aviv Keshet <akeshet@chromium.org>
Reviewed-by: Alex Miller <milleral@chromium.org>
Commit-Queue: Aviv Keshet <akeshet@chromium.org>
erf_expectations/expectation_checker.py
13fefadc013a13b366e7b02c325b2addac3778de 30-Apr-2013 Christopher Wiley <wiley@chromium.org> autotest: Add support for hidden networks to new WiFiTests

Rewrite network_WiFiMatFunc/004CheckHiddenSSID to use the new WiFi test
framework and confirm that ShillProxy is correctly handling hidden
SSIDs.

TEST=Ran:
./run_remote_tests.sh --remote=chromeos1-shelf1-host3 check_hidden_ssid
./run_remote_tests.sh --remote=chromeos1-shelf1-host3 check11b
BUG=chromium:230671

CQ-DEPEND=CL:49569

Change-Id: Ib9151929b39fa706c3f4cf6f916b2893330788c3
Reviewed-on: https://gerrit.chromium.org/gerrit/49669
Tested-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
ros/network/shill_xmlrpc_server.py
dc0d0320bb844e04c210f93559ba016407a10f0f 29-Apr-2013 Christopher Wiley <wiley@chromium.org> autotest: Extract more generic xmlrpc functionality from WiFi code

Both the dbus_safe decorator and the trivial ready() method are
generic and useful for writing your own xmlrpc delegate. Put them next
to the XmlRpcServer where they'll be see and potentially used.

BUG=None
TEST=Ran:
./run_remote_tests.sh --remote=chromeos1-shelf1-host3 check11b
which constructs an XMLRPC server on the DUT and calls into it.

Change-Id: Ib43513fd5f0525475f414d8cc60e120476bb579e
Reviewed-on: https://gerrit.chromium.org/gerrit/49500
Commit-Queue: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Tested-by: Christopher Wiley <wiley@chromium.org>
ros/network/shill_xmlrpc_server.py
ros/xmlrpc_server.py
dfd16712628fcd4fb73d94a43588e04abf6a2c8a 29-Apr-2013 Tan Gao <tgao@chromium.org> Add method to expose wifi interface IP as a propery in WiFiClient.

- looks up a DUT's WLAN interface MAC and IPv4 addresses using interface.py
- add optional host object to interface.py
- expose a DUT's ipv4 address as a property

BUG=chromium:236447
TEST=Manual (added print lines in check11b test to confirm WLAN
ip addr and mac addr are returned correctly)

Change-Id: Ib22c9083648fb2c6f67153bba22d068f28037d14
Reviewed-on: https://gerrit.chromium.org/gerrit/49493
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Tested-by: Tan Gao <tgao@chromium.org>
Commit-Queue: Tan Gao <tgao@chromium.org>
ros/network/interface.py
5002cfc325d4cf1a87553b427f972d2fd7bc6819 29-Apr-2013 Dan Shi <dshi@chromium.org> [Autotest] Remove empty space and tab in image url and version

scheduler may pass in an image option with \t at the end in autoserv command
line. The causes autoupdater failed to match the version from image or
update_version with lsb-release version string. The fix is to filter out any
tab and empty spaces in the beginning and end of image option for autoserv, as
well as in method autoupdater.url_to_version.

BUG=chromium:236382
TEST=local manual test
DEPLOY=none

Change-Id: Ideae45cd46c9cc34522fdf21aabaf067be9e6504
Reviewed-on: https://gerrit.chromium.org/gerrit/49495
Tested-by: Dan Shi <dshi@chromium.org>
Reviewed-by: Scott Zawalski <scottz@chromium.org>
Commit-Queue: Dan Shi <dshi@chromium.org>
ros/autoupdater.py
fdba17e1749e253a75a99dd76fd6bde1613eddba 30-Apr-2013 Christopher Wiley <wiley@chromium.org> autotest: mv client/common_lib/cros/wlan/* to client/common_lib/cros/network/

wlan is the name of a WiFi device on a particular platform and is not a
good package name.

BUG=None
TEST=ran ./run_remote_tests.sh --remote=chromeos1-shelf1-host3 check11b

Change-Id: I2da75a9d23232515237c716f6b36dc589e7618e7
Reviewed-on: https://gerrit.chromium.org/gerrit/49532
Tested-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
ros/network/common.py
ros/network/shill_xmlrpc_server.py
ros/network/xmlrpc_datatypes.py
ros/wlan/common.py
ros/wlan/shill_xmlrpc_server.py
ros/wlan/xmlrpc_datatypes.py
a9273cce812c6173bc75ab78e99fe97097d470ff 26-Apr-2013 Tan Gao <tgao@chromium.org> Redirect attenuator script debug output to STDOUT.

- suppress excessive console output generated by attenuator scripts
- redirect debug output from stderr (logged as ERROR in test output)
to stdout (logged as INFO in test output)

BUG=chromium:235477
TEST=Manual

Change-Id: I2f1e5e4dc5f63b2c3fad855293df3ada2b245963
Reviewed-on: https://gerrit.chromium.org/gerrit/49322
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Commit-Queue: Tan Gao <tgao@chromium.org>
Tested-by: Tan Gao <tgao@chromium.org>
ros/site_attenuator/attenuator_util.py
62bacae728a8e736060c225cccdc21b2f6f641d8 05-Mar-2013 Scott Zawalski <scottz@google.com> Revamp repair workflow.

Modify all repair functions to raise exceptions rather than return a
bool and raise an exception.

Change repair_full to iterate through each repair function until one of
them repairs the DUT or we have no more to use.

Modify servo_repair to include an initial power on step. Often times if
a DUT is unreachable it may just need to be turned back on. This saves
us a bit of overhead when it comes to repairing the device.

Modify site_host calls to use RPCs instead of models directly. Removing
direct database access where we can will be preferred moving forward.

Fix a bug where we fail to resolve to a different dev_server if one is
down.

Modify power_state_controller.power_on to default to REC_OFF.

TEST=Tested on a good DUT, tested on a DUT that was in a bad state but
was pingable, tested on a completely dead DUT with servo.
server/autoserv -C -m scottz-stumpy1 --image stumpy-release/R27-3837.0.0
utils/unittest_suite.py
autotest_lib.client.common_lib.cros.dev_server_unittest
server/autoserv -s -m chromeos1-rack3-host9
server/site_tests/platform_InstallTestImage/control
End to end suite run

BUG=chromium:220303,chromium:225782,chromium:223094

Change-Id: I894e59413b7e1f758a97c05cdee8e1e88e477d7f
Reviewed-on: https://gerrit.chromium.org/gerrit/47437
Commit-Queue: Scott Zawalski <scottz@chromium.org>
Reviewed-by: Scott Zawalski <scottz@chromium.org>
Tested-by: Scott Zawalski <scottz@chromium.org>
rror.py
9e9a4a18fcbdf996d3a88a8b35e462e377ff0d2f 24-Apr-2013 beeps <beeps@chromium.org> [autotest] Devserver resolution shouldn't fail unless all devservers are down.

In trying to resolve a build to a devserver instance we go through the list of
devservers looking for one to use. This leads to a devserer_up call which
checks to see if it can access the index of the devserver, and waits for about
six seconds for a reply. If this call throws a TimeoutException we fail, we
should instead catch it and move on to the next devserver since if it's a real
devserver problem Nagios will send out mail.

TEST=Called the method in both the pass and fail case and checked behavior.
BUG=chromium:235164

Change-Id: Id9c52f3fdf47d464b6f9e77355e5049b1dc46d44
Reviewed-on: https://gerrit.chromium.org/gerrit/49088
Reviewed-by: Chris Sosa <sosa@chromium.org>
Commit-Queue: Prashanth Balasubramanian <beeps@chromium.org>
Tested-by: Prashanth Balasubramanian <beeps@chromium.org>
ros/dev_server.py
07f577a1061b2f448e20cead9bde500d51821821 22-Apr-2013 Paul Stewart <pstew@chromium.org> Expand tests for 802.1x wired networks

The first version of this test only verified successful
authentication when a) the credentials were available, then
b) an EAP authenticator was detected. The test only
validated by checking the device's authentication state, and
required a relatively long "sleep". This change:

- Fixes the sleep by using shill_proxy's internal
"wait_for_property_in" functionality.
- Checks hostapd's state to make sure the client is actually
authenticated.
- Temporarily removes EAP credentials and makes sure hostapd
receives an EAPOL logout event, then re-authenticates.
- While here, move IP and MAC address querying out to a new
separate module that can be shared.

CQ-DEPEND=CL:48803
BUG=chromium:234290
TEST=This is a test. Also run network_DhcpNegotiationSuccess for
regression testing of IP address query functions.

Change-Id: I76dd4f0753986914824e0cdcbcf3583d08a4f7cb
Reviewed-on: https://gerrit.chromium.org/gerrit/48806
Commit-Queue: Paul Stewart <pstew@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
ros/network/__init__.py
ros/network/interface.py
54296a47427e0327c2f47d7a3d7998dc2cd3a29c 18-Apr-2013 Christopher Wiley <wiley@chromium.org> autotest: Extract XmlRpc server from WiFi specific test code

Bluetooth has some interest in writing a similar test framework that
depends on an XmlRpc server to control the DUT. This will let us share
code.

BUG=chromium:230573
TEST=network_WiFi_SimpleConnect.check11b passes, which depend on an XmlRpc
server.

Change-Id: I2f3b0e387693d5a5d8930cc3ccd78d23c3063589
Reviewed-on: https://gerrit.chromium.org/gerrit/48431
Commit-Queue: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Tested-by: Christopher Wiley <wiley@chromium.org>
ros/wlan/shill_xmlrpc_server.py
ros/wlan/xmlrpc_datatypes.py
ros/xmlrpc_datatypes.py
ros/xmlrpc_server.py
7231260da421abdf5ceceff6ab60155936dca21f 17-Apr-2013 Chris Sosa <sosa@chromium.org> Update the stateful partition during an update test.

For test images, we may need to update the stateful partition during
a test as Y may not be compatible with X. For example, we just got
burned with the Python2.6->Python2.7 upgrade where the new rootfs
symlinked /usr/bin/python to /usr/local/bin/python2.7 which doesn't
exist unless you update the stateful partition as well.

As part of this, I have exposed the stateful update from autoupdater
to make it easier to use. I have also added unittests for this method.

BUG=chromium:232085
TEST=pylint + manual

Change-Id: I6088cf671d090fca7aabff25335f4c0b8e3947c1
Reviewed-on: https://gerrit.chromium.org/gerrit/48331
Reviewed-by: Scott Zawalski <scottz@chromium.org>
Reviewed-by: Chris Sosa <sosa@chromium.org>
Tested-by: Chris Sosa <sosa@chromium.org>
Commit-Queue: Chris Sosa <sosa@chromium.org>
ros/autoupdater.py
ros/autoupdater_unittest.py
98365d89774921bd065fe4bf2d273be7e100af43 21-Feb-2013 beeps <beeps@chromium.org> [autotest] Pylint checks committed versions of a file.

The contents of a file in the git work tree can differ from the
contents of a file in the HEAD commit. This is problematic for the
following reasons:
1. The uploader may not have committed their changes.
2. The uploader might repo upload a stack of commits each of which
builds upon the other. In this case run_hooks is invoked on each
commit and running pylint on the work tree version of the file
doesn't make sense.
To work around this we invoke run pylint on a temp file, into which
we've 'git show'n the committed version of each file, so we're only
checking that specific commit. The change also batch processes files
so we get consolidated error reports and excuses run_once, initialize
and cleanup from needing a docstring.

The 'git show' mentioned above is achieved through a GitRepo object.
This commit also allows revision_control to run git commands without
requiring a giturl, and adds unittests to check that commands that
do need a giturl raise an exception if called without one.

TEST=Ran pylint with malformed non committed/committed files. Made
sure pylint displays multiple errors of the same type in one
report.
BUG=None

Change-Id: I82329d14c0334752941150c61d91e2e723b0c4d2
Reviewed-on: https://gerrit.chromium.org/gerrit/43697
Commit-Queue: Scott Zawalski <scottz@chromium.org>
Reviewed-by: Scott Zawalski <scottz@chromium.org>
Tested-by: Scott Zawalski <scottz@chromium.org>
utotemp.py
evision_control.py
evision_control_unittest.py
dccb034f51bdbee6b4f8fa6ad3e6c1cc7ee044eb 05-Feb-2013 Christopher Wiley <wiley@chromium.org> autotest: shill: Add WiFi autotest that does not need site_wifitest

This test demonstrates how to wire together proxy objects in a sane,
pythonic way to perform a simple WiFi test.

1) It features an XMLRPC server to interact with shill.
2) It features a context manager to build up and tear down state.
3) It features a test base class to abstract common operations.
4) The actual test is written so that we can write many control
files to test many configurations with the same logic.

TEST=This is a test. It passes. Other network_WiFiMatFunc tests pass
as well.
BUG=chromium:224443
CQ-DEPEND=CL:47910

Change-Id: Iacc18e2227b022f18c0f23aef034cabe71ad6db1
Reviewed-on: https://gerrit.chromium.org/gerrit/47745
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
Tested-by: Christopher Wiley <wiley@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Christopher Wiley <wiley@chromium.org>
ros/wlan/__init__.py
ros/wlan/common.py
ros/wlan/shill_xmlrpc_server.py
ros/wlan/xmlrpc_datatypes.py
7f79551b1fd8d8742b8d1013ceb5d023fec07f83 12-Apr-2013 Dan Shi <dshi@chromium.org> [Autotest] Correct version check for chrome-perf build.

Code is changed in check_version_to_confirm_install, so that special logic is
only applied to trybot paladin build. For any other build, the version without
any tail part (e.g., -rc#) is used to match the version in lsb-release.

BUG=chromium:230375
TEST=local unit test, run_suite with lumpy-chrome-perf/R28-3970.0.0-b2996
DEPLOY=none

Change-Id: I0283546a0b1d7f1036240bb6062d37b54ca53120
Reviewed-on: https://gerrit.chromium.org/gerrit/48016
Reviewed-by: Richard Barnette <jrbarnette@chromium.org>
Commit-Queue: Dan Shi <dshi@chromium.org>
Reviewed-by: Dan Shi <dshi@chromium.org>
Tested-by: Dan Shi <dshi@chromium.org>
ros/autoupdater.py
ros/autoupdater_unittest.py
a2def28164c6edea190d34c649cef9d835c051e9 11-Apr-2013 Chris Sosa <sosa@chromium.org> Fix bugs in nmo testing.

After adding logs I found two issues that are related to my changes
to modifying the dev_server code. This fixes the url returned
in dev_server.py for delta payloads to be correct.

I've also added additional logging to make this easier to find in the
future.

FYI: The reason why this was only sometimes failing was that the delta
payload url being returned ended up being the full payload url. So if
the image was staged on the same devserver as was chosen for the
devserver delta payload, it would pass, otherwise it would fail.

BUG=chromium:226159
TEST=Verified on a local dut through the test.

Change-Id: Ib3f00dc43f806f05d500062972b506954b8b7002
Reviewed-on: https://gerrit.chromium.org/gerrit/47914
Reviewed-by: Chris Sosa <sosa@chromium.org>
Tested-by: Chris Sosa <sosa@chromium.org>
ros/dev_server.py
190c780678495614cb477453d44cab6aefcfbe1e 04-Apr-2013 Dan Shi <dshi@chromium.org> [Autotest] Correct version check for trybot release build

For release build, even trybot build has version string without the date
string. This CL checks if the image is a release build based on update_url
(looking for -release).

BUG=chromium:226120
TEST=manual test in local machine, try both paladin and release build from
trybot.
DEPLOY=none

Change-Id: I8776c2fbb24973c4c6f3055af705123e0deec14b
Reviewed-on: https://gerrit.chromium.org/gerrit/47349
Reviewed-by: Dan Shi <dshi@chromium.org>
Tested-by: Dan Shi <dshi@chromium.org>
Commit-Queue: Dan Shi <dshi@chromium.org>
Reviewed-by: Chris Sosa <sosa@chromium.org>
ros/autoupdater.py
ros/autoupdater_unittest.py
31b2e3196a0507f439ba130bdc53dea83288a5d9 05-Apr-2013 J. Richard Barnette <jrbarnette@chromium.org> Unify platform_InstallTestImage with servo repair.

The body of platform_InstallTestImage was an almost verbatim copy
of SiteHost._servo_repair(). Replaced that body with a call to the
host method.

BUG=None
TEST=run_remote_tests platform_InstallTestImage

Change-Id: Ie2dc1fb2adcba544cd472f4f1052a440e21b988e
Reviewed-on: https://gerrit.chromium.org/gerrit/47389
Commit-Queue: Richard Barnette <jrbarnette@chromium.org>
Reviewed-by: Richard Barnette <jrbarnette@chromium.org>
Tested-by: Richard Barnette <jrbarnette@chromium.org>
ros/dev_server.py
775ecd579b8dd47f9d75243c4514e5c9ec941e53 27-Mar-2013 Dan Shi <dshi@chromium.org> [Autotest] Copy only new data in /var/log folder after each test.

Copy all content in /var/log folder causes overhead in both test time and
test result storage. The /var/log folder's size can be over 40MB after a
test is finished. Code change is made to implement the diff logic to only
copy new data in /var/log folder before and after each test.

BUG=chromium:217983
TEST=manually run autoserv with sleep test and verify new data in /var/log
folder is copied over to [test]/sysinfo/var/log_diff. Also use trybot build
trybot-lumpy-paladin/R28-3915.0.0-b741 to confirm autoupdate job's /var/log
is collected as expected.
DEPLOY=manual, before push to prod, this CL must be backport to all branches
being tested.

Change-Id: Ic78c5aa6c35eeab63bb3a0d8cb7095b7f55f217b
Reviewed-on: https://gerrit.chromium.org/gerrit/46658
Commit-Queue: Dan Shi <dshi@chromium.org>
Reviewed-by: Dan Shi <dshi@chromium.org>
Tested-by: Dan Shi <dshi@chromium.org>
ros/autoupdater_unittest.py
0e562cb1bc839e119633425d2cf24d8189cc1244 03-Apr-2013 Paul Stewart <pstew@chromium.org> autotest: WiFi: Move site_eap_certs to a common directory

Move these certificates so they can be used by client tests
as well.

BUG=chromium:226140
TEST=Rerun network_WiFiSecMat/019CheckWPA_1x_AES and make sure
certificates are correctly loaded on the client and server.

Change-Id: I50ac533d15b9e5ca7153acd4deb17065c6b88c1f
Reviewed-on: https://gerrit.chromium.org/gerrit/47245
Commit-Queue: Paul Stewart <pstew@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
ros/site_eap_certs.py
39164cad07a790017c84482bb5f68768b27313cf 27-Mar-2013 Aviv Keshet <akeshet@chromium.org> [autotest] only retry tests if they fail with TestFailRetry

For tests that have known flaky failure modes, it is still desirable for
the test to fail (without retries) when an unknown flaky failure occurs.
Therefore, this CL changes the behavior of test retries, so that retires
of a test are only attempted if the test fails with a TestFailRetry
exception. Any other test failure will be treated as a failure
regardless of retries.

This means it is up to the tests in question to catch errors /
exceptions caused by known flaky failure modes, and rethrow those as
TestFailRetry.

For the purposes of testing this change, some changes have been made to
the dummyflake suite.

CQ-DEPEND=Ibaa84f42beac52881cd34351e92474ef1457b15b

BUG=chromium:224372
TEST=added new unit test for test.py
run_remote_tests.sh --remote=<ip> suite:dummyflake;
Suite runs as expected. In particular --
- client/.../dummy_Fail/control.retry_alwaysfail fails immediately even
though the control file uses retries, because the failure is of type
TestFail and hence not retry-able
- The same applies to server/.../dummy_Fail/control.retry_failfast
- client/.../dummy_Fail/control.retry_alwaysflake fails and gets
retried 5 times, failing with a TestRetryFail each time such that it
can be retried

Change-Id: I4d1354cb410856c9de8b720c9f8310cb10d03156
Reviewed-on: https://gerrit.chromium.org/gerrit/46696
Commit-Queue: Aviv Keshet <akeshet@chromium.org>
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
Tested-by: Aviv Keshet <akeshet@chromium.org>
rror.py
est.py
est_unittest.py
b95bb86f445f886b3e66762c6b10686c52ffe905 23-Mar-2013 Dan Shi <dshi@chromium.org> [Autotest] Enable trying stateful update only in machine_install

The issue (222238) of version in /etc/lsb-release does not have the rc# was
fixed in CL https://gerrit.chromium.org/gerrit/#/c/46020/. Stateful update
only for DUT running image with same version is enabled. For trybot build,
machine_install will always do a full install, as cros version, e.g.,
3888.0.2013_03_21_1340, does not follow the same standard as paladin build,
e.g., 3888.0.0-cl2.

BUG=chromium:222098
TEST=manually run_suite in local machine, against following build:
trybot-lumpy-paladin/R27-3888.0.0-b711, lumpy-paladin/R27-3893.0.0-rc2,
lumpy-release/R27-3893.0.0

Change-Id: Ib0d558e760fdda975240fe9487417fed445be199
Reviewed-on: https://gerrit.chromium.org/gerrit/46330
Tested-by: Dan Shi <dshi@chromium.org>
Reviewed-by: Richard Barnette <jrbarnette@chromium.org>
Commit-Queue: Dan Shi <dshi@chromium.org>
ros/autoupdater.py
ros/autoupdater_unittest.py
eadbf7098c7cf810aaaf88791b1d59b786407e9f 14-Mar-2013 Scott Zawalski <scottz@google.com> Modify our support of --image to work with our devservers.

Add a pathway to the --image code in site_host to stage anything that
is passed to it via --image that does not start with http://.

Added code to properly update job_repo_url in site_host rather
than in the try-jobs we spawn off. This makes it so that repaired
images as well as installs via --install have the proper job_repo_url
if they exist in the AFE.

Updated AfeClient.html to show examples of what can be specified in
Image Url.

Update old way of setting REPO URL in site_autotest.py to only be
used if someone is specifying a HTTP URL themselves, otherwise use the
AFE.

TEST=ran autoserv:
./autoserv --image=stumpy-release/R27-3836.0.0 -m scottz-stumpy1 -s
tests/sleeptest/control
and
./autoserv
--image=http://172.22.50.205:8082/update/stumpy-paladin/R27-3837.0.0-rc2
-m scottz-stumpy1 -s tests/sleeptest/control
and with a bad image which fails after a short while with an error about
the build path.
./autoserv --image=x86-mario-release/R27-3834.dd0.0 -m scottz-mario1 -s
tests/sleeptest/control
Test on a non-afe host:
./autoserv --image=x86-mario-release/R27-3834.0.0 -m 172.29.151.133 -s
tests/sleeptest/control
Tested repair update as well just to make sure I didn't break anything.
./autoserv -R -m scottz-mario1 # with a modification to make verify
fail always.
Ran tests through the frontend.
BUG=chromium-os:38653

Change-Id: I4b620a4332c695f4c972a8f8c112b4bf1dd6ba9a
Reviewed-on: https://gerrit.chromium.org/gerrit/45419
Tested-by: Scott Zawalski <scottz@chromium.org>
Reviewed-by: Dan Shi <dshi@chromium.org>
Reviewed-by: Richard Barnette <jrbarnette@chromium.org>
Reviewed-by: Scott Zawalski <scottz@chromium.org>
Commit-Queue: Scott Zawalski <scottz@chromium.org>
ros/autoupdater.py
ros/autoupdater_unittest.py
aae3f1c191a28e1ed4bde92fc50e15b260246b23 19-Mar-2013 beeps <beeps@chromium.org> [Autotest] Git pull instead of fetch/reset when building externals.

Build externals will now perform a git pull -r when a repo
is already present. Previously we attempted to fetch --all and
reset --hard HEAD, for this to achieve what was intended
we need to figure out the name of the upstream branch the
current branch is tracking. This change makes it so
we just fail to build externals when there's a local rebase
conflict (which there shouldn't be in site-packages anyway).

BUG=chromium:222144
TEST=Ran build externals with and without site-packages and imported
git dependent modules. Ran the revision_control unittests.

Change-Id: I1d41f9eea44a86386a28392c315c8802368ccb2f
Reviewed-on: https://gerrit.chromium.org/gerrit/45912
Reviewed-by: Prashanth Balasubramanian <beeps@chromium.org>
Tested-by: Prashanth Balasubramanian <beeps@chromium.org>
Commit-Queue: Prashanth Balasubramanian <beeps@chromium.org>
evision_control.py
evision_control_unittest.py
95c654bf995f60a0f44684702553d868d57fe2b4 14-Mar-2013 Julius Werner <jwerner@chromium.org> Switch utils.get_board() from HWIDs to /etc/lsb-release

This patch changes utils.get_board() to retrieve the board name from the
/etc/lsb-release file, instead of reading the HWID via crossystem. HWIDs
have proven unreliable on some old Mario boards, and are in general more
complicated to parse. As Autotests are mostly run in the lab, we can
expect machines to be imaged correctly and contain the right board name
in their lsb-release.

BUG=chromium:188841
TEST=Run power_Resume repeatedly on a Lumpy. If you see it suspend more
than once for a single test run but still return a GOOD result in the
end, you know that this change works.

Change-Id: Ib76413807e207ccdc7603b1fd7b8e0d208627350
Signed-off-by: Julius Werner <jwerner@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/45627
Commit-Queue: David James <davidjames@chromium.org>
ase_utils.py
b09376dcd012137a2e7f02aa0c1f18e26738baa1 18-Mar-2013 Chris Sosa <sosa@chromium.org> Fix bugs with custom url pattern matching for EndToEnd test.

This CL both gets rid of 3 extra variables (cleaning up a TODO) and also
allows this test to be run against trybots and non-canary builders.

Unlike canary builders, trybot's and other builders do not follow a
${board}-release pattern. Instead they can be pretty much

<anything>/<version>. The devserver deals with this by just using the
archive_url (which embeds the build) to find/store the payload. We leverage
this and only use image to base our url's.

Note this also allows us to run AU Test on paladin's and chrome pfq's.

BUG=chromium:217855
TEST=Pylint + unittests + local autotest setup with endToEnd test.

Change-Id: I765d90bfabb4933e35b3de914f82b817c05982cb
Reviewed-on: https://gerrit.chromium.org/gerrit/45759
Commit-Queue: Chris Sosa <sosa@chromium.org>
Reviewed-by: Chris Sosa <sosa@chromium.org>
Tested-by: Chris Sosa <sosa@chromium.org>
ros/dev_server.py
e2facacdaa225ad3b3c9acaf7558a86bdd36042d 14-Mar-2013 Paul Stewart <pstew@chromium.org> autotest: WiFi: Be lenient while associating to WPA

Now that shill names WPA/RSN services as "PSK" before association,
autotests need to be lenient with respect to this. That's okay
because the user never sees the Security property of a service
before association.

BUG=chromium-os:39813
TEST=Unit tests

Change-Id: I199a4738d3e0199d73fcfd3a889afa2c58fc5c50
Reviewed-on: https://gerrit.chromium.org/gerrit/45377
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Commit-Queue: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
ros/site_wlan/site_wlan_connect.py
8d6cd54b45bc68afdb92c328aa2c84dd9aaf9872 11-Mar-2013 Christopher Wiley <wiley@chromium.org> autotest: Add context manager wrapper

Add a decorator that grabs a named context manager from self before
calling the wrapped function.

BUG=None
TEST=Included unit test

Change-Id: Id8271c36c98f393a6d0617f0eeb881217f5b3a8d
Reviewed-on: https://gerrit.chromium.org/gerrit/45114
Commit-Queue: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Tested-by: Christopher Wiley <wiley@chromium.org>
ros/in_context.py
ros/in_context_unittest.py
6f455262ded933c1699fea410a9ddaf967df6330 02-Mar-2013 Aviv Keshet <akeshet@chromium.org> [autotest] Parse RETRIES from control files

Parse the RETRIES variable from control files and insert into job/test
databased entry. This happens in suite.py before creation of suite sub-jobs,
and in test_importer when importing new tests into afe_autotests database.

BUG=chromium-os:37158
TEST=unit.
Ran utils/test_importer.py and verified that 2 tests name
flaky_test both had test_retry imported correctly with value 2 (in
afe_autotests table).
Kicked off a dummyflake suite and verified that its sub jobs were
created with test_retry=2.

Change-Id: I93eb0f4581120082a82c46b2be98286ede248c94
Reviewed-on: https://gerrit.chromium.org/gerrit/44435
Tested-by: Aviv Keshet <akeshet@chromium.org>
Reviewed-by: Alex Miller <milleral@chromium.org>
Commit-Queue: Scott Zawalski <scottz@chromium.org>
Reviewed-by: Scott Zawalski <scottz@chromium.org>
Tested-by: Scott Zawalski <scottz@chromium.org>
ontrol_data.py
ontrol_data_unittest.py
f43f7381b9f72c982c887b064d8d79bf2da4c83e 08-Mar-2013 bowgotsai <bowgotsai@chromium.org> autotest: WiFi: Fix site_wlan_disconnect.py cannot work for unprintable SSID.

site_wlan_disconnect takes two arguments: SSID, wait_timeout.
It goes through the list of service object paths and triggers disconnect
if a matched SSID is found.

However, the match will fail when SSID is unprintable.
Use the property 'WiFi.HexSSID' to do match for such case.
If the service's SSID contains unprintable characters then this
property 'WiFi.HexSSID' is present and holds a hex-encoded copy of the SSID.

BUG=chromium-os:39544
TEST=Run network_WiFiManager.001_SSID_NonAscii

Change-Id: Idd7b77b1d493d225e8f6f616bc3c957ef1bc2f81
Reviewed-on: https://gerrit.chromium.org/gerrit/44919
Commit-Queue: Bowgo Tsai <bowgotsai@chromium.org>
Reviewed-by: Bowgo Tsai <bowgotsai@chromium.org>
Tested-by: Bowgo Tsai <bowgotsai@chromium.org>
ros/site_wlan/site_wlan_disconnect.py
833814b1b821a6454642a276b8ea85d5ae710b8d 29-Jan-2013 Simran Basi <sbasi@chromium.org> Telemetry on Autotest: Telemetry runner code and simple test

This change adds the code to have the drones and server side tests
able to execute the telemetry code installed on the devserver.

The telemetry runner will determine the correct devserver for the
DUT's specific build, tell the devserver to setup telemetry and given
a benchmark and page_set it will execute a telemetry benchmark and
return a TelemetryResultObject to represent the results of telemetry's
execution.

The stdio of the telemetry output is also parsed and used to generate
perf key-value pairs to be uploaded into the autotest results db.

BUG=chromium-os:37412, chromium-os:38997
TEST=tested the telemetry side with my local AFE and devserver and
tested the pyauto proxy portion in the actual lab.

Change-Id: Ia8da3f991b498e1ee63fbfffbfaaa628e3785bf3
Reviewed-on: https://gerrit.chromium.org/gerrit/43679
Commit-Queue: Simran Basi <sbasi@chromium.org>
Reviewed-by: Simran Basi <sbasi@chromium.org>
Tested-by: Simran Basi <sbasi@chromium.org>
ros/dev_server.py
0f466e85d1c3fb7b9cd1b232a821b31ee58e4ff5 23-Feb-2013 Dan Shi <dshi@chromium.org> [Autotest] Update the Autotest installer code to avoid reinstalling the
same version

When a try job is started to install a new image in DUT, the DUT's version
is checked first. If the version is the same as the new image, machine_install
function in SiteHost first try to use stateful update to clean up the machine.
This is implemented by adding a new argument, update_root, in function
run_update in autoupdater. When update_root is False, autoupdater will only
do a stateful update, compared to updating kernel as well when update_root
is True. The main purpose for this change is to enhance the performance of
the try job on re-imaging.

BUG=chromium-os:31239
TEST=run_sutie against lumpy with smoke suite, try the command with same/
different version compared to what's running in DUT.

Change-Id: Ie358e7a5282f1fadefc26e78bbe4b38cd8e8fb8a
Reviewed-on: https://gerrit.chromium.org/gerrit/43851
Tested-by: Dan Shi <dshi@chromium.org>
Reviewed-by: Richard Barnette <jrbarnette@chromium.org>
Commit-Queue: Dan Shi <dshi@chromium.org>
ros/autoupdater.py
ae6acd9b3e1c6f56310cdb4e05737122b7b2818c 07-Feb-2013 Chris Sosa <sosa@chromium.org> Override devserver_up's default timeout to return immediately in au test.

Since we control this devserver, we want to control how long to wait for
the devserver to be up. This CL slightly refactors the devserver api
to allow callers to override the retry.retry timeout in some rpc's.

Also fixed the pylintrc to skip **kwargs, *args, and cls.

BUG=None
TEST=Pylint so far + unittests

Change-Id: Ie454e81be8940bdc7b8530bd682dab80910b8b83
Reviewed-on: https://gerrit.chromium.org/gerrit/43480
Tested-by: Chris Sosa <sosa@chromium.org>
Reviewed-by: Brian Harring <ferringb@chromium.org>
Reviewed-by: Prashanth Balasubramanian <beeps@chromium.org>
Reviewed-by: Alex Miller <milleral@chromium.org>
Commit-Queue: Chris Sosa <sosa@chromium.org>
ros/dev_server.py
a713e2575a9ea59db59444deb29a951a395aec7e 01-Mar-2013 Alex Miller <milleral@chromium.org> [autotest] Do not allow unicode control files.

Our system does not properly handle non-ascii characters. Therefore,
rather than having the scheduler explode somewhere down the line, let's
just explicitly disallow control files that contain unicode characters.

BUG=chromium-os:39337
TEST=local run_suite

Change-Id: Id2dcee75087803f1bd4236872f75e71039ae034b
Reviewed-on: https://gerrit.chromium.org/gerrit/44401
Tested-by: Alex Miller <milleral@chromium.org>
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
Reviewed-by: Scott Zawalski <scottz@chromium.org>
Commit-Queue: Alex Miller <milleral@chromium.org>
rror.py
7d7b9ebfdde3c557e9d82e7af3f7e128533852b3 15-Feb-2013 Chris Sosa <sosa@chromium.org> Small refactoring / cleanup to allow autotest to continue working with devserver API.

Not much to this CL -- lots of small changes which make it continue
to work, and in some places work much better/faster.

1) Add a method to use the stage RPC directly (not cleaning up
trigger/finish_download in this CL
2) I removed the implicit download of the firmware tarball from the
spatial locality map -- it always errors out and pretty much hogs our
devserver logs. Instead I stage the firmware tarball when we need it
and fail that call as necessary. This is much more correct than what we have
now.
3) Removed test image RPC from dev_server and changed its one callspot to use
(1)
4) Fixed the bug in symoblicating crashes -- before there was a race to whoever
last staged symbols got to symoblicate crashes -- not anymore as we store the symbols
per build in a subdir for that build.
5) Cleaned up autoupdate test to stage only what it needs.

Consult I201dcdaa8a14024247 for information about artifact naming.

BUG=chromium-os:38427
TEST=In progress + unittests
CQ-DEPEND=I201dcdaa8a14024247

Change-Id: I64e35f3bdeac9e0cd5e7589df913c14ce6691f7a
Reviewed-on: https://gerrit.chromium.org/gerrit/43350
Reviewed-by: Chris Sosa <sosa@chromium.org>
Tested-by: Chris Sosa <sosa@chromium.org>
ros/dev_server.py
687b498c4e337c0d8bc25de2d701edbbbd37a10f 13-Feb-2013 Aviv Keshet <akeshet@chromium.org> [autotest] Fix unittest -- expectation_checker.py

Modified unit test so that it works correctly when invoked from autotest
repo's root directory.

BUG=chromium-os:37989
TEST=Unit tests for this module now pass

Change-Id: I6a06cd9dd512fe8b163154ac500ec6b2e8d9e9ef
Reviewed-on: https://gerrit.chromium.org/gerrit/43213
Commit-Queue: Aviv Keshet <akeshet@chromium.org>
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
Tested-by: Aviv Keshet <akeshet@chromium.org>
erf_expectations/expectation_checker_unittest.py
4cf56297789ce77db15cbd189e23d9426763776e 07-Feb-2013 Julius Werner <jwerner@chromium.org> Refactor powerd preference changing to use bind mounts

I need to write a test that needs to change powerd prefs and would like
to reuse existing code in power_utils. However, the existing
set_power_prefs method has a few problems... it does not correctly work
with prefs that do not exist in /var/lib (e.g. because they only rely on
the /usr/share defaults), and if autotest crashes or gets killed, or the
DUT suddenly reboots, the prefs do not get restored correctly.

Bind mounts provide a much saver way to do the same thing... they are
guaranteed to not persist across reboots no matter what happens on the
DUT. This patch changes the implementation to that effect and also
refactors the interface to a PowerPrefChanger class, which sets and
restores the settings in an RAII fashion through its constructor and
destructor, allowing it to be used as a fire-and-forget one-liner in
most use cases.

BUG=None
TEST=Run the affected tests (power_AudioDetector, power_VideoDetector
and power_BacklightControl), make sure they still work.

Change-Id: I5fa968217934aea1d1009a1f430eb8db33d6a554
Signed-off-by: Julius Werner <jwerner@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/42811
Reviewed-by: Daniel Erat <derat@chromium.org>
ase_utils.py
a153ece56730c01d1349c8685ae42d2c0ad49a6d 30-Jan-2013 Julius Werner <jwerner@chromium.org> Reenable power_SuspendStress in lab suites and improve suspend timings

My last attempt to get this running in the lab was a little premature and
ended up leaving too many test machines stuck in suspend. This patch
contains trial-and-error-derived timing values for every ChromeOS device
currently in the lab, and should finally make this run without causing
interruptions. The bare and disk tests get reactivated to run in their
respective suites... but I will leave the video test out for now since
it triggers known hard freezes on several platforms.

BUG=chromium-os:35901
TEST=None

Change-Id: Icaea3d3497677095cfedea6c65fc8e1eb81f6d72
Signed-off-by: Julius Werner <jwerner@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/42431
Reviewed-by: Mark Koudritsky <kamrik@chromium.org>
ase_utils.py
30837901b7793a49e39a2e2f8c7f9bd7b71dd64f 03-Feb-2013 Alex Miller <milleral@chromium.org> [autotest] Refactor reimage type selection to support >2 types.

One now passes a string that is tied to the name of the type of
reimaging that one would like to do. More reimaging types can now
be easily added.

BUG=chromium-os:38250
TEST=run_suite with trybot'd control.dummy changed to use reimage_type

Change-Id: I276556ff6822800cc846b20b564ffc36ec07e61b
Reviewed-on: https://gerrit.chromium.org/gerrit/42748
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
Reviewed-by: Simran Basi <sbasi@chromium.org>
Commit-Queue: Alex Miller <milleral@chromium.org>
Tested-by: Alex Miller <milleral@chromium.org>
rror.py
5a40ef1ce0eb56d4f503e9db6dd45bdefe4e24d3 05-Feb-2013 Christopher Wiley <wiley@chromium.org> autotest: Fix client/common_lib/cros/common.py

Fix behavior where including this file caused scripts to have write
imports like:

from autotest_lib.common_lib.common_lib.cros import ...

which is clearly broken.

TEST=My in progress script including common can now import things
BUG=None.

Change-Id: I80e81c84e5b8b71ab76547b550ee942be3f75f57
Reviewed-on: https://gerrit.chromium.org/gerrit/42580
Tested-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Alex Miller <milleral@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
ros/common.py
d9153b52ba5a50c16dce111a9e03d6241c969d11 24-Jan-2013 beeps <beeps@chromium.org> [autotest] Allows us to pull repos as part of build_externals.

Pulls/clones chromite and hdctools/servo into site-packages. Also add
helper methods to revision_control.py and a -work-tree option, along
with a unittest.

TEST=built externals and imported servo/chromite.
BUG=chromium-os:38096

Change-Id: I1bae6e3f730495030665267876c8594800aa27d4
Reviewed-on: https://gerrit.chromium.org/gerrit/41910
Commit-Queue: Prashanth Balasubramanian <beeps@chromium.org>
Reviewed-by: Prashanth Balasubramanian <beeps@chromium.org>
Tested-by: Prashanth Balasubramanian <beeps@chromium.org>
evision_control.py
evision_control_unittest.py
ef5b53f9c7fe279a7b89f9e9c731e7c1ea523d92 22-Jan-2013 Dan Shi <dshi@google.com> [Autotest] Schedule tests with a longer TIME first in dynamic_suite

Order tests based on the Time setting in control file to schedule test
with longer TIME setting, e.g. LENGTHY, to run first.

BUG=chromium-os:33307
TEST=run unit test control_data_unittest.py and suite_unittest.py,
run_suite on 'graphics' suite.

Change-Id: I07fed6fccd9baff8f7655259cedde97b6892f8a0
Reviewed-on: https://gerrit.chromium.org/gerrit/41766
Commit-Queue: Dan Shi <dshi@chromium.org>
Reviewed-by: Dan Shi <dshi@chromium.org>
Tested-by: Dan Shi <dshi@chromium.org>
ontrol_data.py
ontrol_data_unittest.py
91493c88a1506729a6728660d90cfae591cd52aa 25-Jan-2013 Scott Zawalski <scottz@google.com> Introduce a mechanism for retrying tests at the control file level.

If a test returns unsuccessfully and --retry-test > 0 is specified the test
will be rerun. Options were added to autoserv and are passed through to the
client side job by modifying the base_job.

Tests that fail and then succeed within the --retry-test limits will have a
test keyval set with the number of attempts |test_retries_before_success|.

--retry-test can be utilized immediately in run_remote_test but will need to
be piped through the RPC system and down to the scheduler to provide the proper
--retry-test value from the scheduler's perspective.

Fixed random pylint errors consisting mostly of unused imports.

TEST=unittests
created a randomly failing client and server side test and ran it on devices
BUG=chromium-os:37158

Change-Id: Ibec3935b5f6fd28fc1b6eb7be55de27a571ad777
Reviewed-on: https://gerrit.chromium.org/gerrit/42043
Commit-Queue: Scott Zawalski <scottz@chromium.org>
Reviewed-by: Scott Zawalski <scottz@chromium.org>
Tested-by: Scott Zawalski <scottz@chromium.org>
ase_job.py
ase_job_unittest.py
est.py
est_unittest.py
f078d20a45ada0cdcf41679c8fe6d0ec310b56ac 28-Jan-2013 Chris Sosa <sosa@chromium.org> Fix devserver uniitests with devserver_up rename.

Also, I got confused with the unittest_suite in site_utils vs. the one
in utils. To prevent others from having the same issue I am prefixing it
with legacy_.

BUG=chromium-os:38273
TEST=Ran the unittests -- they pass now, hoorah!

Change-Id: I7906c173a96c35978c0369b6e897dd5f501b0a4b
Reviewed-on: https://gerrit.chromium.org/gerrit/42120
Tested-by: Chris Sosa <sosa@chromium.org>
Reviewed-by: Dan Shi <dshi@chromium.org>
Reviewed-by: Alex Miller <milleral@chromium.org>
Commit-Queue: Chris Sosa <sosa@chromium.org>
ros/dev_server_unittest.py
24c27c1e92abea892f4bbf3ed14b1a979d22d6e1 09-Aug-2012 Alex Miller <milleral@chromium.org> [autotest] Find package of crashing processes.

Do some clever find/portageq tricks to map an executable name back to
the package that owns the executable while we're collecting crashes.
Follow up work will then deduplicate and file bugs on these crashes.

BUG=chromium-os:32834
TEST=pkill -SEGV tlsdated, and looked for "Would report bug on
net-misc/tlsdate-0.0.4-r14." in logs.

Change-Id: I54426eaef6b1954746cb3d2405a0c292a4979559
Reviewed-on: https://gerrit.chromium.org/gerrit/29828
Commit-Queue: Alex Miller <milleral@chromium.org>
Reviewed-by: Alex Miller <milleral@chromium.org>
Tested-by: Alex Miller <milleral@chromium.org>
rror.py
6c55bdb98e967675456a71a0971b81058536cac8 19-Jan-2013 Chris Sosa <sosa@chromium.org> Start omaha server instance on devserver payloads are staged onto.

This took a lot to get right as ssh is very finicky at shutting down
a remote process in Linux. After talking with Richard/Simran, it seems
like autotest already has a convention of tracking pids so I'm using
that. In order to do this, I need to pipe my output elsewhere so I'm
using /tmp/devserver.${port} which should be unique per DUT (meaning
it can't be used more than once by this test.

Otherwise I've switched all calls to use SSHHost.run rather than
popen making it much easier to do the right thing with my ssh cmds.

BUG=chromium-os:37975
TEST=Ran it locally -- had to set up my own ssh keys to talk to my
own machine i.e. set CROS->devserver as my local hostname.

Change-Id: Ifce5310c20f39ac4cdfa278841875188b09fc360
Reviewed-on: https://gerrit.chromium.org/gerrit/41675
Tested-by: Chris Sosa <sosa@chromium.org>
Reviewed-by: Scott Zawalski <scottz@chromium.org>
Commit-Queue: Chris Sosa <sosa@chromium.org>
ros/dev_server.py
6272320792885b0d1b545ab86fd6da12ac56c4a6 23-Jan-2013 Simran Basi <sbasi@chromium.org> Autotest: get_process_name undefined in site_utils

Nuke_pids was forked from nuke_pid in base_utils. get_process_name
exists inside of base_utils, so running it from that module
rather than just call the method name.

BUG=chromium-os:37976
TEST=ran pyflakes

Change-Id: I28e68dfdc790a8ebebe07182c7e53402a3cf3ac2
Reviewed-on: https://gerrit.chromium.org/gerrit/41781
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
Reviewed-by: Alex Miller <milleral@chromium.org>
Commit-Queue: Simran Basi <sbasi@chromium.org>
Reviewed-by: Simran Basi <sbasi@chromium.org>
Tested-by: Simran Basi <sbasi@chromium.org>
ite_utils.py
c0eae51b7fb9e9d6ca09414c37941deb7393efb1 11-Jan-2013 Dan Shi <dshi@google.com> [autotest] Move signal.alarm call inside try clause.

It is possible that alarm is triggered right after signal.alarm call
is made. If it's not in the try clause, the TimeoutException can be
bubbled up to the caller and take down the whole process.

BUG=chromium-os:34424
TEST=run unit test retry_unittest.py, run_suite for smoke tests on lumpy.

Change-Id: I42151326f55137271b2d2ce07d601d009c32f0f5
Reviewed-on: https://gerrit.chromium.org/gerrit/41457
Tested-by: Dan Shi <dshi@chromium.org>
Commit-Queue: Dan Shi <dshi@chromium.org>
Reviewed-by: Dan Shi <dshi@chromium.org>
ros/retry.py
73db85f34daeb727fc84ead3f2d81a25dc108c39 16-Jan-2013 Simon Que <sque@chromium.org> client/site_tests: add power_VideoDetector test

This test plays video with reduced powerd timeouts and makes sure that
the video is being detected by power manager and the backlight doesn't
get dimmed.

The "video" is an html file with webkit code that updates the color of
the page.

Also moves some of the common code across a few power autotests into
common libraries:
- Functions to adjust backlight using powerd
- Function to restart an upstart job
- Function to overwrite/backup powerd prefs

BUG=chromium-os:32371,chromium-os:36382
TEST=power_VideoDetector passes

Change-Id: I01c8fb63368778aa6910191a9e32412bb502f691
Signed-off-by: Simon Que <sque@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/41414
Reviewed-by: Daniel Erat <derat@chromium.org>
ase_utils.py
6d31f80d0cdb3ca638b465526a6c5ae9a3ec3c74 11-Jan-2013 Dan Shi <dshi@google.com> [autotest] adding a timeout to retry decorator.

Use signal.SIGALRM to prevent retry method from hang

signal.SIGALRM is used to timeout retry method after a given amount of
time. The default timeout value is set to timeout_min, which is used as
timeout value in minutes until all retries give up.

Relanding I88f24f281cc1b8f9cb82ba10aae31a8345722d28.
BUG=chromium-os:34424
TEST=run unit test retry_unittest.py

Change-Id: I19a130e6fd5b919b5801f9cc4ac3272eb36cabe6
Reviewed-on: https://gerrit.chromium.org/gerrit/41157
Commit-Queue: Alex Miller <milleral@chromium.org>
Reviewed-by: Alex Miller <milleral@chromium.org>
Tested-by: Alex Miller <milleral@chromium.org>
ros/dev_server_unittest.py
ros/retry.py
ros/retry_unittest.py
41bfae4ba63e7010e882d3de9fd8eea0612a4f8a 09-Jan-2013 Simran Basi <sbasi@chromium.org> Autotest: Use Lab Status to Disable Certain Boards

Now that we have the Lab Status Page up, we would like to make more
use of it by allowing it to be able to disable running new suites
on certain boards.

This becomes useful should a bug starts bringing down DUT's for a
specific subset of boards.

Now the status message should follow the format of:
Lab is 'status' [boards_disabled] (comment)

For example:
Lab is Open [stumpy, kiev, x86-alex] (power_resume bug bringing down
DUT's)

BUG=chromium-os:37346
TEST=local setup

Change-Id: Ib2e4960f8cac427db1606f56477305d82bc110d4
Reviewed-on: https://gerrit.chromium.org/gerrit/40940
Reviewed-by: Scott Zawalski <scottz@chromium.org>
Reviewed-by: Simran Basi <sbasi@chromium.org>
Tested-by: Simran Basi <sbasi@chromium.org>
Commit-Queue: Brian Harring <ferringb@chromium.org>
rror.py
ite_utils.py
f0442c3047614ea30830c2c03e2574cc79251c5f 08-Jan-2013 Paul Stewart <pstew@chromium.org> autotest: WiFi: Include output of /var/log/net

Include the contents of /var/log/net on failure in site_wlan_connect
and site_wlan_wait_state.

BUG=chromium-os:36269
TEST=Fake a failing test on both a system with and without /var/log/net

Change-Id: I539d1a9547a1b385cd4eccf40502d1a435158449
Reviewed-on: https://gerrit.chromium.org/gerrit/40602
Reviewed-by: mukesh agrawal <quiche@chromium.org>
Commit-Queue: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
ros/site_wlan/site_wlan_connect.py
ros/site_wlan/site_wlan_wait_state.py
320dac9b7b1fcd242d92036c706828afdf6d8de3 10-Jan-2013 Alex Miller <milleral@chromium.org> Revert "[autotest] adding a timeout to retry decorator."

...somehow causing lab breakage again. I'm really sorry.

This reverts commit 7b33c1a6335f961de37ea1262fcd91846bc5b66b

Change-Id: Id30665504933131b9a75e84927e71d2b8bbbfef0
Reviewed-on: https://gerrit.chromium.org/gerrit/41000
Reviewed-by: Simran Basi <sbasi@chromium.org>
Commit-Queue: Alex Miller <milleral@chromium.org>
Tested-by: Alex Miller <milleral@chromium.org>
ros/retry.py
ros/retry_unittest.py
7b33c1a6335f961de37ea1262fcd91846bc5b66b 21-Dec-2012 Dan Shi <dshi@google.com> [autotest] adding a timeout to retry decorator.

Use signal.SIGALRM to prevent retry method from hang

signal.SIGALRM is used to timeout retry method after a given amount of
time. The default timeout value is set to timeout_min, which is used as
timeout value in minutes until all retries give up.

Relanding I88f24f281cc1b8f9cb82ba10aae31a8345722d28.

BUG=chromium-os:34424
TEST=run unit test retry_unittest.py

CQ-DEPEND=I71643fe3de02de7b13140b799a4530b2e1ed7b3a
Change-Id: I37e9a69acbcf8ba285fef67be3243e6fb0c7f723
Reviewed-on: https://gerrit.chromium.org/gerrit/40604
Reviewed-by: Alex Miller <milleral@chromium.org>
Tested-by: Dan Shi <dshi@chromium.org>
Commit-Queue: Dan Shi <dshi@chromium.org>
ros/retry.py
ros/retry_unittest.py
35f6105800ed49c38fd65681b94d972cfd32ed21 08-Jan-2013 Alex Miller <milleral@chromium.org> [autotest] Do not have 1-minute timeout on devserver calls.

Default timeout duration is 1 minute. This is probably not right.

TEST=None
BUG=chromium-os:37676

Change-Id: I71643fe3de02de7b13140b799a4530b2e1ed7b3a
Reviewed-on: https://gerrit.chromium.org/gerrit/40601
Tested-by: Alex Miller <milleral@chromium.org>
Reviewed-by: Chris Sosa <sosa@chromium.org>
Commit-Queue: Alex Miller <milleral@chromium.org>
ros/dev_server.py
ddb5674857ece80748186132f682b3fc7d56e5c5 08-Jan-2013 Alex Miller <milleral@chromium.org> Revert "[autotest] adding a timeout to retry decorator."

It turns out that this works too well, and breaks things
that rely on timeouts being sloppy.

This reverts commit 76b921e3b197d84f03523e7f6b924ec1fc3cf585

Change-Id: Iceb6eca10d8239e58941d9d060fc7c76bd47d408
Reviewed-on: https://gerrit.chromium.org/gerrit/40599
Commit-Queue: Alex Miller <milleral@chromium.org>
Reviewed-by: Alex Miller <milleral@chromium.org>
Tested-by: Alex Miller <milleral@chromium.org>
ros/retry.py
ros/retry_unittest.py
76b921e3b197d84f03523e7f6b924ec1fc3cf585 21-Dec-2012 Dan Shi <dshi@google.com> [autotest] adding a timeout to retry decorator.

Use signal.SIGALRM to prevent retry method from hang

signal.SIGALRM is used to timeout retry method after a given amount of
time. The default timeout value is set to timeout_min, which is used as
timeout value in minutes until all retries give up.

BUG=chromium-os:34424
TEST=run unit test retry_unittest.py
Change-Id: I88f24f281cc1b8f9cb82ba10aae31a8345722d28
Reviewed-on: https://gerrit.chromium.org/gerrit/40095
Reviewed-by: Craig Harrison <craigdh@chromium.org>
Reviewed-by: Alex Miller <milleral@chromium.org>
Commit-Queue: Dan Shi <dshi@chromium.org>
Tested-by: Dan Shi <dshi@chromium.org>
ros/retry.py
ros/retry_unittest.py
22aa9fe678bec0e6a1451922f96b6973ea3586f1 08-Dec-2012 Simran Basi <sbasi@chromium.org> Autotest: Be able to grab the lab status and add it to run_suites

Now that the lab status page is up, we need to be able check when the
lab is not up and in that case stop run_suite from being able to schedule
jobs.

BUG=chromium-os:37095
TEST=Changed the lab status page to lab is closed and ensure that run_suites
did not schedule the job if that occured.

Change-Id: I0e0f80e872c4b94f5d6148eb5634298ff7263cbc
Reviewed-on: https://gerrit.chromium.org/gerrit/39449
Reviewed-by: Simran Basi <sbasi@chromium.org>
Tested-by: Simran Basi <sbasi@chromium.org>
Commit-Queue: Simran Basi <sbasi@chromium.org>
rror.py
ite_utils.py
9e30bb204a993933f5a8875498abb84b7e227e0a 01-Jan-2013 Alex Miller <milleral@chromium.org> [autotest] Change os.path.join use in common.py to be portable.

All uses of |os.path.join("x", "../..")| have been changed into
|os.path.join("x", "..", "..")|.

TEST=syntax check all common.py files, trybot passes HWTest
BUG=None

Change-Id: Ic05a2e375352eab4447ae5b180da750ccbc1b914
Reviewed-on: https://gerrit.chromium.org/gerrit/40312
Tested-by: Alex Miller <milleral@chromium.org>
Commit-Queue: Scott Zawalski <scottz@chromium.org>
Reviewed-by: Scott Zawalski <scottz@chromium.org>
Commit-Queue: Alex Miller <milleral@chromium.org>
ros/common.py
erf_expectations/common.py
57429fa42842a36ae6510a0a2bf659bf7f756aa4 04-Dec-2012 Tan Gao <tgao@chromium.org> Project Grover: add wifi rate vs. range test case in Autotest.

- fix export/unexport file path (attenuator_*.py)
- update testbed config w/ new IPs in lab cell
- remove 2.4GHz test case (can't be run until h/w upgrade)
- add new 5GHz test cases for UDP and TCP
- add new iperf option (bufsize) and set test timeout
- add test method 'rvr_test' to use in Grover test bed

BUG=chrome-os-partner:16414
TEST=Manual (run network_WiFiRateRange/002* and 004* in grover lab cell)

Change-Id: I8017e4acfdd30e8a390388de7dd78ec8ba2459e2
Reviewed-on: https://gerrit.chromium.org/gerrit/39210
Reviewed-by: Paul Stewart <pstew@chromium.org>
Tested-by: Tan Gao <tgao@chromium.org>
Commit-Ready: Tan Gao <tgao@chromium.org>
ros/site_attenuator/attenuator_init.py
ros/site_attenuator/attenuator_util.py
05571ce9a115190b87251b39edf763a45e8ea81e 17-Dec-2012 Paul Stewart <pstew@chromium.org> autotest: WiFi: Fix negative config time

Make a parse failure of the returned string from site_wlan_connect
more transparent. Fix up negative config times and do not emit
them.

BUG=chromium-os:37303,chromium-os:36787
TEST=Run autotest

Change-Id: I8186040297cedeec782c96f589870dd01ad65dac
Reviewed-on: https://gerrit.chromium.org/gerrit/39778
Commit-Ready: Paul Stewart <pstew@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
ros/site_wlan/site_wlan_connect.py
db18ba8e579089d93b4e8cccb652195805013932 30-Nov-2012 Julius Werner <jwerner@chromium.org> Upgrades and fixes to suspend/resume tests

This patch improves some parts of the recently refactored
suspend/resume autotest code. It increases logging output to aid
debugging problems and adds a new method for calculating the firmware
resume time using the TSC to x86 (using the former method to report the
remaining board resume time spent by the EC).

Most importantly, it adds a workaround for a known bug with the RTC on
lumpy, stumpy and kiev, which sometimes prevents the hwclock utility from
reading a timestamp. Since this bug depends on firmware race conditions
that get rerolled on every resume, the individual power_(Ui)Resume test
will simply retry ten times to get a successful measurement.

BUG=chromium-os:36004
TEST=Run power_Resume and power_UiResume (preferably on a
lumpy/stumpy/kiev) and ensure that they still work.

Change-Id: I880424f05518fdfcce81666fd813bb5a5394d2ad
Signed-off-by: Julius Werner <jwerner@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/38985
Reviewed-by: Sameer Nanda <snanda@chromium.org>
ase_utils.py
1b016e53e01a38ed5a854e5a391f67e1be928f5a 27-Nov-2012 Tan Gao <tgao@chromium.org> Project Grover: add Python library to control attenuator.

- add script to initialize attenuator
- add script to configure attenuator (set/get attenuation)
- add constants and utility files
- add object to represent attenuator in Autotest

BUG=chrome-os-partner:16387
TEST=Manual

Change-Id: Ic58691c8be8ae4cc39779e10842bf6984e3c100c
Reviewed-on: https://gerrit.chromium.org/gerrit/38741
Commit-Ready: Tan Gao <tgao@chromium.org>
Reviewed-by: Tan Gao <tgao@chromium.org>
Tested-by: Tan Gao <tgao@chromium.org>
ros/site_attenuator/attenuator_config.py
ros/site_attenuator/attenuator_init.py
ros/site_attenuator/attenuator_util.py
ros/site_attenuator/constants.py
cbf1b78a34dd2ae12faee3595870af80ef1da28b 26-Nov-2012 Scott Zawalski <scottz@google.com> Add fast and lengthy to control_data.py for the TIME variable.

In the Autotest Best Practices doc we added two new TIME
options, fast and lenghty, with this change we no longer mark
them as invalid options.

BUG=None
TEST=control_data_unittest.py

Change-Id: I68545c7c30a0ded6badc4480bbdf62d38cb4c17b
Reviewed-on: https://gerrit.chromium.org/gerrit/38649
Tested-by: Scott Zawalski <scottz@chromium.org>
Reviewed-by: Chris Masone <cmasone@chromium.org>
Commit-Ready: Scott Zawalski <scottz@chromium.org>
Reviewed-by: Scott Zawalski <scottz@chromium.org>
ontrol_data.py
8f3561759f35c8a53e8b64fc2d4780089b15a69b 21-Nov-2012 Simon Que <sque@chromium.org> client/site_tests: put common xrandr code into common_lib

The xrandr code is used by hardware_Xrandr and power_BacklightControl
tests.

Also updating power_BacklightControl to use common wait_for_value()
instead of the local one.

BUG=chromium-os:36061
TEST=run hardware_Xrandr and power_BacklightControl

Change-Id: Ie18b47ef9cfd0b96ca5a6f9b74164907792ceaa4
Signed-off-by: Simon Que <sque@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/38432
Reviewed-by: Daniel Erat <derat@chromium.org>
ase_utils.py
94d9bd0eb3dc70f7261a39c3ba97b98aacb4acc0 13-Nov-2012 Simran Basi <sbasi@chromium.org> Autotest: Dynamic Suite dies if Try Job has been aborted.

Updated wait_for_and_lock_job_hosts to check if all the dependent
jobs have been aborted. If so return False and the reimager will
also return False.

This will prevent suite jobs from getting stuck Running if the try
job has actually been aborted.

BUG=chromium-os:36175
TEST=local setup. Ensured that when a try job is aborted the suite job
died as well. Also updated the unittests.

Change-Id: Iedf40953e3d2a373886d168d0ae918e7b215499f
Reviewed-on: https://gerrit.chromium.org/gerrit/37918
Reviewed-by: Scott Zawalski <scottz@chromium.org>
Reviewed-by: Simran Basi <sbasi@chromium.org>
Tested-by: Simran Basi <sbasi@chromium.org>
rror.py
0ed760cbee4ce839988585003d445465bb0b95b9 06-Nov-2012 Gilad Arnold <garnold@chromium.org> autotest: end-to-end autoupdate test

This implements an autotest test for the Chrome OS autoupdate
functionality. It receives a single test configuration and performs an
end-to-end test of the update process specified by it, which includes:

* Initializing the DUT to a known start state (source version)

* Spawning a local Omaha/devserver instance.

* Triggering an update process.

* Tracking the progress of the update.

* Rebooting the DUT after the update.

* Ensuring that the update has succeeded (target version running).

BUG=chromium-os:33760,chromium-os:33761,chromium-os:33762
TEST=Running with run_remote_tests.sh works

Change-Id: I215e8214d3239f525f062a27a4d97806451c9736
Reviewed-on: https://gerrit.chromium.org/gerrit/37432
Commit-Ready: Gilad Arnold <garnold@chromium.org>
Reviewed-by: Gilad Arnold <garnold@chromium.org>
Tested-by: Gilad Arnold <garnold@chromium.org>
ros/autoupdater.py
ros/dev_server.py
ite_utils.py
0a57b90e9b31d22e712eea15b2e09ddcdbdf576d 30-Oct-2012 Chris Masone <cmasone@chromium.org> [autotest] Add shim around site_wlan scripts.

To enable the development of WiFiInterop tests without adding dependencies
on the to-be-refactored code in client/common_lib/cros/site_wlan/ we are
adding an API around those tools.

BUG=chromium-os:35822
TEST=run new network_WiFiInterop/control.* tests on a real device.

Change-Id: I3c848b08f442cc249900602176bf6b6a1b5a901a
Reviewed-on: https://gerrit.chromium.org/gerrit/37465
Commit-Ready: Chris Masone <cmasone@chromium.org>
Reviewed-by: Chris Masone <cmasone@chromium.org>
Tested-by: Chris Masone <cmasone@chromium.org>
ros/site_wlan/__init__.py
ros/site_wlan/constants.py
7e437359e33429be6b7d25bc5ecf142beacab80a 02-Nov-2012 Chris Sosa <sosa@chromium.org> Print out additional information when we fail to update.

We add crossystem debugging to what we print out on a failed
update check as well as cgpt show output.

BUG=chromium-os:35992
TEST=running

Change-Id: I681efc408aad64a59558127749340b341022b5e9
Reviewed-on: https://gerrit.chromium.org/gerrit/37294
Commit-Ready: Chris Sosa <sosa@chromium.org>
Reviewed-by: Chris Sosa <sosa@chromium.org>
Tested-by: Chris Sosa <sosa@chromium.org>
ros/autoupdater.py
bec9d2222be708f7d03ab0d625f15dcb9c142ed3 23-Oct-2012 Julius Werner <jwerner@chromium.org> Add CPU package C-state measurements to power_LoadTest

Modern Intel CPUs can put their whole package into a power-saving
C-state when all individual cores are idle. This patch reads the amount
of TSC ticks the package spends in each of those states from MSRs on
supporting platforms and converts them to percentage values which are
added to power_LoadTest's output.

BUG=chromium-os:35117
TEST=Run power_LoadTest on a lumpy or link. Check for
percent_cpupkg_C?_time values in its output.

Change-Id: Iaff4b09f8c373da56ec677eee36b83e6ad6d9ae9
Signed-off-by: Julius Werner <jwerner@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/36370
Reviewed-by: Sameer Nanda <snanda@chromium.org>
ase_utils.py
28ddb13065900aa6dfcb8d41311367d0a9ecbc2d 29-Oct-2012 Alex Miller <milleral@chromium.org> [autotest] Add a semi-working |fileno()| to stdout replacement.

Autotest replaces stdout and stderr with file-like objects that redirect
their write() into the logging framework. However, they don't actually
follow the full API for what a file-like object should do, nor are they
backed by a file. Unfortunately, this means that there is no file
descriptor to return for a call to |fileno()|, and it seems pretty
reasonable to expect |sys.stdout.fileno()| to work. Therefore, we create
a pipe so that there is a valid file descriptor to return. We return the
read end of the file descriptor, so that a write to this fd is an error.

TEST=pylint, run_suite.py run
BUG=chromium-os:33320

Change-Id: I7eb4e04049082540b732b8356bc7d5506298e514
Reviewed-on: https://gerrit.chromium.org/gerrit/36846
Tested-by: Alex Miller <milleral@chromium.org>
Reviewed-by: Scott Zawalski <scottz@chromium.org>
Commit-Ready: Alex Miller <milleral@chromium.org>
ogging_manager.py
081e3fef6bde89f5dc829aff39d41dc3feecaa75 29-Oct-2012 Chris Masone <cmasone@chromium.org> [autotest] Pull site_wlan related constants into a single file.

The code in client/common_lib/cros/site_wlan has grown organically over time.
Begin taming it by starting simply: gather dbus-related constants into a single
file, so that at least renaming from flimflam->shill will become more tractable.

Also move a few DBus-related methods into places that make more sense.

BUG=chromium-os:35822
TEST=network_WiFiRoaming/network_WiFiRoaming.010RetryReconnectHidden
TEST=network_WiFiManager/network_WiFiManager.091_ProfileProperties

Change-Id: If1f2a83f99d1e4a1d38a5ae748826244ec3289e0
Reviewed-on: https://gerrit.chromium.org/gerrit/36837
Commit-Ready: Chris Masone <cmasone@chromium.org>
Reviewed-by: Chris Masone <cmasone@chromium.org>
Tested-by: Chris Masone <cmasone@chromium.org>
ros/site_wlan/constants.py
ros/site_wlan/site_wlan_connect.py
ros/site_wlan/site_wlan_dbus_setup.py
ros/site_wlan/site_wlan_disconnect.py
ros/site_wlan/site_wlan_profiles.py
ros/site_wlan/site_wlan_wait_state.py
cb8e03fe8349f7d9e37b47abaa355d21630dd4b0 26-Oct-2012 Chris Masone <cmasone@chromium.org> [autotest] Move site_wlan scripts under client/

Code that's intended to be used on a DUT should live underneath
the client/ subtree in the autotest repo, as it will then be
automatically copied over when autotests are run.

BUG=chromium-os:35757
TEST=network_WiFiRoaming/010RetryReconnectHidden

Change-Id: I23dcb2d3e37719472849c10cf1dc853b2b7b7e58
Reviewed-on: https://gerrit.chromium.org/gerrit/36703
Tested-by: Chris Masone <cmasone@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Ready: Chris Masone <cmasone@chromium.org>
ros/site_wlan/site_wlan_connect.py
ros/site_wlan/site_wlan_dbus_setup.py
ros/site_wlan/site_wlan_disconnect.py
ros/site_wlan/site_wlan_profiles.py
ros/site_wlan/site_wlan_statistics.py
ros/site_wlan/site_wlan_wait_state.py
8ad52b6b61905f9f6b05af76e9607cdd29c038d0 29-Oct-2012 Scott Zawalski <scottz@google.com> Make TEST_CLASS and TEST_CATEGORY Optional.

TEST=control_data_unittest.py/actual import.
BUG=None

Change-Id: Ib75498f650d43b2c0a3caddf50fe0d903b3677dc
Reviewed-on: https://gerrit.chromium.org/gerrit/36774
Reviewed-by: Chris Masone <cmasone@chromium.org>
Commit-Ready: Scott Zawalski <scottz@chromium.org>
Reviewed-by: Scott Zawalski <scottz@chromium.org>
Tested-by: Scott Zawalski <scottz@chromium.org>
ontrol_data.py
af9b8e7a29a4de8e76581afb51986b8afd9a11c4 13-Oct-2012 Simran Basi <sbasi@chromium.org> Autotest: Parallelize Aborting so that Large Aborts are faster

Currently when we try to abort a large number of jobs, the process
is slow as for each PID we try to kill, we send the first signal,
wait 6 seconds, send the next signal and once its dead we go onto
the next PID.

In order to speed up this process now we queue up all the processes
we want to kill on a given tick, send them all the first kill signal,
wait 6 seconds, then send them all the next kill signal.

BUG=chromium-os:35246
TEST=Ran on my local machine/scheduler and tested that multiple aborts
indeed run faster and still kill the PID's as expected.

Change-Id: I3d9f0ffd97142aeadd99295934b83bc624a1278d
Reviewed-on: https://gerrit.chromium.org/gerrit/35453
Reviewed-by: Scott Zawalski <scottz@chromium.org>
Commit-Ready: Simran Basi <sbasi@chromium.org>
Reviewed-by: Simran Basi <sbasi@chromium.org>
Tested-by: Simran Basi <sbasi@chromium.org>
ite_utils.py
3948b4931a7c6cb3bed29e05f151a0bdfb63c47b 17-Oct-2012 Chris Sosa <sosa@chromium.org> Fix devserver_up call to catch URLErrors that are raised.

I made a booboo and thought that @remote_devserver_call would return
a DevserverException when it couldn't connect to the device. This isn't true
(on purpose) so I catch this when running make_call.

BUG=chromium-os:35415
TEST=New unittest that failed before change.

Change-Id: I5c30877a4f7911f1510cf568a14ec5083ee96ee8
Reviewed-on: https://gerrit.chromium.org/gerrit/35844
Tested-by: Chris Sosa <sosa@chromium.org>
Reviewed-by: Scott Zawalski <scottz@chromium.org>
Commit-Ready: Chris Sosa <sosa@chromium.org>
ros/dev_server.py
ros/dev_server_unittest.py
1bc08713a09d580c21e930ca3acaae7639536611 16-Oct-2012 Julius Werner <jwerner@chromium.org> Improve error logging in Autotest package system

Autotest uses wget to fetch test packages from the server, but fails to
log its output or error code on failure. This patch improves that
behavior in hopes of shedding more light on some recent power_LoadTest
lab failures.

BUG=chromium-os:35344
TEST=Edit the /build/<board>/usr/local/autotest/global_config.ini file
on the server and add the line 'fetch_location: http://doesnotexist' to
the [PACKAGES] section. Run power_LoadTest and check for the wget error
output and exit code in the stored client.0.DEBUG log.

Change-Id: I02d34786fc0a2d032f535268ddc7ada2256a4d48
Signed-off-by: Julius Werner <jwerner@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/35705
Reviewed-by: Chris Sosa <sosa@chromium.org>
ase_packages.py
87d7a218c115d8021b21b8c3e1faa4ac33830279 27-Sep-2012 Simran Basi <sbasi@chromium.org> Chrome on Chromeos Perf: Upload Results to Google Storage

Added a post-processing step to the pyauto_perf suite to upload the necessary
perf results back to the google storage directory we downloaded the build
artifacts from.

The perf results are placed in the form of pyauto_perf.results

BUG=chromium-os:33964
TEST=Tested on ToT using remote trybots.
CQ-DEPENDS: I2b993c7b561c2abae9ed2717515c9b394bcecfa5
Change-Id: I6af12674c3cfa031b6382e4cc3fe2f735743486a
Reviewed-on: https://gerrit.chromium.org/gerrit/34199
Commit-Ready: Simran Basi <sbasi@chromium.org>
Reviewed-by: Simran Basi <sbasi@chromium.org>
Tested-by: Simran Basi <sbasi@chromium.org>
ite_utils.py
48bcdc050963972a7c349edff1839977efd3a1cc 04-Oct-2012 J. Richard Barnette <jrbarnette@chromium.org> Correctly print milliseconds in log timestamps.

Millisecond in log timestamps were being shown without leading
0's when the millisecond value was less than 100.

BUG=None
TEST=run_remote_tests.sh, look at autoserv.DEBUG timestamps

Change-Id: I2ba860f5b31420c241b8b10d7dab1bcb53ded207
Reviewed-on: https://gerrit.chromium.org/gerrit/34675
Tested-by: Richard Barnette <jrbarnette@chromium.org>
Reviewed-by: Simran Basi <sbasi@chromium.org>
Commit-Ready: Richard Barnette <jrbarnette@chromium.org>
ogging_config.py
c64fe51989a605e53bb26cc03b0b62e3b2090ec7 03-Oct-2012 Chris Sosa <sosa@chromium.org> Fix logging issues related to crosbug.com/34788

BUG=chromium-os:34788
TEST=Pylint + Visual

Change-Id: Ib5a1d6d8513cbbf8549e88cdad547fe1f2c71eab
Reviewed-on: https://gerrit.chromium.org/gerrit/34490
Reviewed-by: Simran Basi <sbasi@chromium.org>
Commit-Ready: Chris Sosa <sosa@chromium.org>
Tested-by: Chris Sosa <sosa@chromium.org>
og.py
8906ab1e576797069b5b928e646f06da015fbfd0 24-Jul-2012 Chris Masone <cmasone@chromium.org> [autotest] Honor DEPENDENCIES information when running dynamic_suites.

A test control file can specify a list of DEPENDENCIES, which are really just
the set of labels a host needs to have in order for that test to be scheduled
on it. In the case of a dynamic_suite, many tests in the suite may have
DEPENDENCIES specified. They may overlap, they may not.

This is a first-pass at a very naive mechanism for finding and reimaging a
set of machines that can satisfy all the test DEPENDENCIES in a given suite.
Per-test-per-suite DEPENDENCIES information is generated at build time, and
then fetched and consumed during suite preparation. If info exists for the
suite being run, the infrastructure will look for a host that matches each
unique DEPENDENCY list. If it can find such a set that is <= the suite
sharding factor, the infrastructure will schedule those machines for
reimaging. If not, the suite will fail.

If the suite to be run has no DEPENDENCIES, meta_host scheduling will be used
as today.

BUG=chromium-os:22060
TEST=unit
TEST=run_suite.py with a suite (like 'dummy') that uses DEPENDENCIES
TEST=run_suite.py with a suite that doesn't use DEPENDENCIES
TEST=run_suite.py with a suite that uses DEPENDENCIES; shut down a non-essential machine during reimage. Suite should complete.
TEST=Same as above, but for a suite that doesn't use DEPENDENCIES
TEST=run_suite.py with a suite that uses DEPENDENCIES; shut down an essential machine (e.g. the only one with the 'bluetooth' label) during reimage. Suite should not complete.

Change-Id: I64b2e39a79a05c92748f34ffa4acf7667b0476a6
Reviewed-on: https://gerrit.chromium.org/gerrit/27526
Commit-Ready: Chris Masone <cmasone@chromium.org>
Reviewed-by: Chris Masone <cmasone@chromium.org>
Tested-by: Chris Masone <cmasone@chromium.org>
ros/dev_server.py
rror.py
08c68f0b5fa44496b40936bc24d405776ebc630d 19-Sep-2012 Alex Miller <milleral@chromium.org> [autotest] Don't return |None| if HQE is Completed.

We now return None from |gather_all_hostnames| only if there is no host,
or the host queue entry's status is before 'Running'. For example, a
host queue entry in the 'Queued' status will be recorded as |None|, but
a host queue entry in the 'Aborted' status will have its hostname
returned.

BUG=chromium-os:33920,chromium-os:34535
TEST=ran unitests, run_suite.py local run

Change-Id: If4bd9a9220b35d1ef90985eb965ab265275e4fa6
Reviewed-on: https://gerrit.chromium.org/gerrit/33626
Reviewed-by: Scott Zawalski <scottz@chromium.org>
Reviewed-by: Chris Masone <cmasone@chromium.org>
Commit-Ready: Alex Miller <milleral@chromium.org>
Tested-by: Alex Miller <milleral@chromium.org>
ost_queue_entry_states.py
79bd368a18830af1ad6b55ab969c24c636b625f8 14-Sep-2012 Simran Basi <sbasi@chromium.org> Autotest: Add Milliseconds to time in logfile.

Added the milliseconds of the log message for log files. Will add
more precision and help in diagnosis exact time consumption.

BUG=None
TEST=Local machine.

Change-Id: Ie80d056704a6897d5e8f1f7d826f1b718affddff
Reviewed-on: https://gerrit.chromium.org/gerrit/33322
Reviewed-by: Scott Zawalski <scottz@chromium.org>
Commit-Ready: Simran Basi <sbasi@chromium.org>
Reviewed-by: Simran Basi <sbasi@chromium.org>
Tested-by: Simran Basi <sbasi@chromium.org>
ogging_config.py
accb5ceaac066025592808247bfa9c97966bba97 31-Aug-2012 Chris Sosa <sosa@chromium.org> Support graceful failover/aggregation for autotest devserver pool.

This change implements the graceful failover/aggregation designed in
crosbug.com/26451. This required a large re-work of how other modules
interact with the dev_server module. Instead of always relying on being
able to pass in the "build" to any dev_server RPC, a caller must start
by using the static resolve method that resolves a build to an ip addr
and creating a DevServer instance from that hostname.

i.e.

ds = Devserver.create()
ds.trigger_download('build')

turns into

ds = ImageServer.resolve('build')
ds.trigger_download()

In order to guarantee the re-use of the same hostname throughout the life-cycle
of a suite run, we keep the hostname as part of the suitespec and also parse
the package_url based on the image_url -- not the build.

As noted, I've also separated the imaging / crash components into their
own DevServer subclasses to simplify the interaction and modified
callers.

BUG=chromium-os:26451
TEST=Unittests so far + local autotest setup with running bvt suite on one
host in the lab + ran suite_enumerator with/without -l

Change-Id: I4760e4033bb347259e3bb30f2fac31f321654c6f
Reviewed-on: https://gerrit.chromium.org/gerrit/32006
Commit-Ready: Chris Sosa <sosa@chromium.org>
Reviewed-by: Chris Sosa <sosa@chromium.org>
Tested-by: Chris Sosa <sosa@chromium.org>
ros/dev_server.py
ros/dev_server_unittest.py
7c2be10d28832487c11678fe18e3f96926b7f7c9 28-Aug-2012 Fang Deng <fdeng@chromium.org> Automatically detect perf regression by checking against perf expectations.

Adopt the idea of how currently Chrome team is detecting perf regression
(http://www.chromium.org/developers/tree-sheriffs/perf-sheriffs).

expectation_checker.py:
1. load expectation files
2. provide util functions that take one/multiple perf value(s), compare them against the expectations, and return comparison results(regress/improve/accept).
perf_expectations.json
Expectations are specified in this file.

TEST=None
BUG=None

Change-Id: If1867b60151e9472b6fead0472de1b7b4892f710
Reviewed-on: https://gerrit.chromium.org/gerrit/31521
Commit-Ready: Fang Deng <fdeng@chromium.org>
Reviewed-by: Fang Deng <fdeng@chromium.org>
Tested-by: Fang Deng <fdeng@chromium.org>
erf_expectations/__init__.py
erf_expectations/common.py
erf_expectations/expectation_checker.py
erf_expectations/expectation_checker_unittest.py
erf_expectations/perf_expectations.json
erf_expectations/perf_expectations_test.json
ite_utils.py
8dca4641f3b98181843b752e2b51b99c52541a0a 31-Aug-2012 Alex Miller <milleral@chromium.org> [autotest] Unlock machines in the SIGTERM handler.

This patch semi-reverts the SignalsAsExceptions work, as the code being
run inside the context manager isn't exception-safe. Instead, we
directly hold onto the HostLockManager, and manually unlock machines if
we receive a signal or leave the context.

BUG=chromium-os:33523
TEST=pylint, unit
TEST=queue jobs, and run nuke_pid on all the autoserv pids. No missing
exit code errors were encountered.

Change-Id: I669d852aa87fc2a9fcc3111864b0065bfcd44cb4
Reviewed-on: https://gerrit.chromium.org/gerrit/32163
Commit-Ready: Alex Miller <milleral@chromium.org>
Reviewed-by: Alex Miller <milleral@chromium.org>
Tested-by: Alex Miller <milleral@chromium.org>
rror.py
420c71e4a80b41438d323f600657a0f5175c494c 28-Aug-2012 Alex Miller <milleral@chromium.org> Revert "[autotest] Refactor email sending out of suite_scheduler."

This reverts commit db9540abf2c7db97389e45643f81e02c97cc1281

Change-Id: I232cabeb770f7f5d0fdd55586e0705efd139d93a
Reviewed-on: https://gerrit.chromium.org/gerrit/31615
Commit-Ready: Alex Miller <milleral@chromium.org>
Reviewed-by: Alex Miller <milleral@chromium.org>
Tested-by: Alex Miller <milleral@chromium.org>
ogging_config.py
ite_logging_config.py
35289cd9359f408a5f0b9e1659549989e5530067 25-Aug-2012 Alex Miller <milleral@chromium.org> [autotest] Restore defaults to the email config.

ConfigParser does not appear to handle empty values well. Defaults
restore sanity.

BUG=chromium-os:33898
TEST=pylint, interactive poking with |global_config.get_config_value|

Change-Id: I374503f80b1906cf247a28b204426bd72c0d7447
Reviewed-on: https://gerrit.chromium.org/gerrit/31405
Tested-by: Alex Miller <milleral@chromium.org>
Commit-Ready: Alex Miller <milleral@chromium.org>
Reviewed-by: Alex Miller <milleral@chromium.org>
ite_logging_config.py
db9540abf2c7db97389e45643f81e02c97cc1281 24-Aug-2012 Alex Miller <milleral@chromium.org> [autotest] Refactor email sending out of suite_scheduler.

Sending warnings/errors as emails is a useful thing to be able to do
outside of suite_scheduler. This exposes the ability to create a logging
handler from a config file and a subject line that sends emails for a
certain severity level of logging messages.

BUG=chromium-os:32925
TEST=pylint, ran unittests
TEST=ran suite_scheduler.py and verified it sends emails

Change-Id: I4a678779ea06989d0f86a89017b4a6753afe257e
Reviewed-on: https://gerrit.chromium.org/gerrit/30348
Commit-Ready: Alex Miller <milleral@chromium.org>
Reviewed-by: Alex Miller <milleral@chromium.org>
Tested-by: Alex Miller <milleral@chromium.org>
ogging_config.py
ite_logging_config.py
cee14733a30e652e084d34d3149a10ba9c61dc67 22-Aug-2012 Chris Sosa <sosa@chromium.org> Wget should retry even on connection refused.

Connection refused can happen if the network stack crashes. We should be able
to continue once it comes back up.

BUG=chromium-os:33725
TEST=Pending

Change-Id: Iff84c73e0a1bc7c3c6a5e4bbd7a8b27649780da0
Reviewed-on: https://gerrit.chromium.org/gerrit/31077
Reviewed-by: Scott Zawalski <scottz@chromium.org>
Reviewed-by: Thieu Le <thieule@chromium.org>
Commit-Ready: Chris Sosa <sosa@chromium.org>
Tested-by: Chris Sosa <sosa@chromium.org>
ite_packages.py
e6f32b9d7d3e9b8dacc7362c0ae343c0e21b2abf 22-Aug-2012 Shuo-Peng Liao <deanliao@chromium.org> Move locate_audio_sample() from factory_Audio.py to base_utils.py as other
tests want to use the function.

Also rename it to a more generic name: locate_file().

BUG=none
TEST=manual
Make sure factory_Audio works as expected.

Change-Id: I51cf6d1f9eee21cd03495c10497a3c56bd645dc1
Reviewed-on: https://gerrit.chromium.org/gerrit/31102
Tested-by: Shuo-Peng Liao <deanliao@chromium.org>
Reviewed-by: Ricky Liang <jcliang@chromium.org>
Commit-Ready: Shuo-Peng Liao <deanliao@chromium.org>
Reviewed-by: Hung-Te Lin <hungte@chromium.org>
ase_utils.py
40d7149c950ec1cf86cccbe07a89af7e5edb9bb5 17-Aug-2012 Chris Masone <cmasone@chromium.org> [autotest] Fix and move FrontendWrappers unittests

The FrontendWrappersTest class wasn't testing the (now minimal) code
in frontend_wrappers.py. The meat of that was moved to
client/common_lib/cros/retry.py a while ago. So, move the tests there
as well, and also mock out time.sleep() so that we can run them
faster, while also setting better expectations on them.

BUG=None
TEST=unittests

Change-Id: Id100b45af3740bdc8d347fbadf762ff3bc7af80a
Reviewed-on: https://gerrit.chromium.org/gerrit/30598
Commit-Ready: Chris Masone <cmasone@chromium.org>
Reviewed-by: Chris Masone <cmasone@chromium.org>
Tested-by: Chris Masone <cmasone@chromium.org>
ros/retry_unittest.py
b493555db2d43e79d96e793cae9d1ffb822dd6c1 14-Aug-2012 Chris Masone <cmasone@chromium.org> [autotest] Move dynamic suite code into its own module

No big rewrite, just moving files around

BUG=chromium-os:30266
TEST=unit
TEST=successful run_suite.py run
TEST=suite_enumerator.py, suite_preprocessor.py, and suite_scheduler.py

Change-Id: I2fbcae0332104ce3adcb10a1e90ce94cb209aca8
Reviewed-on: https://gerrit.chromium.org/gerrit/30267
Reviewed-by: Scott Zawalski <scottz@chromium.org>
Commit-Ready: Chris Masone <cmasone@chromium.org>
Tested-by: Chris Masone <cmasone@chromium.org>
rror.py
31cf2bdbd8bded9c8e2aa1dfff56c33a4f068c91 15-Aug-2012 Simran Basi <sbasi@chromium.org> Autotest: Have the scheduler not die trying to kill a dead pid

Currently if the drone tries to kill a process that has a PID that does
not exist, the scheduler can crash and leave itself in a bad state on
reboot.

Therefore in this CL we instead log a message in this situation and
continue on.

Added a new type of autoserv error and if the pid is dead that error is
raised to drone_utility which will catch the error and continue.

BUG=chromium-os:33374
TEST=ensured that a nonexistant PID logs a message into
drone_utlity.warnings and a valid PID is actually killed by
kill_process.

Change-Id: If8712ae946fba3644d462accb80307a7faa825eb
Reviewed-on: https://gerrit.chromium.org/gerrit/30350
Reviewed-by: Yu-Ju Hong <yjhong@chromium.org>
Reviewed-by: Chris Masone <cmasone@chromium.org>
Commit-Ready: Simran Basi <sbasi@google.com>
Tested-by: Simran Basi <sbasi@google.com>
ase_utils.py
rror.py
dea299380ad7a21f8331fd2db046e20c5f755834 02-Aug-2012 J. Richard Barnette <jrbarnette@chromium.org> Use a default image URL in platform_InstallTestImage.

If the target host has a known board type, use the default URL for
the image based on the board type. This allows hosts to be installed
automatically from the web interface.

BUG=chromium-os:33290
TEST=run_remote_tests, using a private_host_attributes file for the target

Change-Id: I58a611cdee4e404a1b2bd02c22f5bb63fa1aabfd
Reviewed-on: https://gerrit.chromium.org/gerrit/28997
Tested-by: Richard Barnette <jrbarnette@chromium.org>
Reviewed-by: Scott Zawalski <scottz@chromium.org>
Commit-Ready: Richard Barnette <jrbarnette@chromium.org>
ros/dev_server.py
7a2160a31f5ca4ce41faac94aeb3c3ffc389021e 01-Aug-2012 Alex Miller <milleral@chromium.org> [autotest] Throw on sigterm when locking machines.

If the python process receives a sigterm while machines are locked, the
machines will never be unlocked. If we translate the signal into an
exception, then the standard python cleanup mechanisms can apply, and
all will be well.

BUG=chromium-os:33094
TEST=pylint+unit

Change-Id: Ifdd96df1fef809da9618e47d7361c290e29cdd76
Reviewed-on: https://gerrit.chromium.org/gerrit/29321
Tested-by: Alex Miller <milleral@chromium.org>
Reviewed-by: Chris Masone <cmasone@chromium.org>
Commit-Ready: Alex Miller <milleral@chromium.org>
rror.py
f316f984c15891bca87b1f7e79b0782af5caa062 09-Aug-2012 Simran Basi <sbasi@chromium.org> Autotest: Add process name to nuke_pid.

Currently when we nuke a process the error message just includes the pid
and since this is running on the drone we currently dont have any
logging data so this is just a quick change to the exception description
so we have a bit more information.

BUG=chromium-os:33374
TEST=Ran base_utils unit tests

Change-Id: I7e109a1e858f01984942200f14445c55404eaebf
Reviewed-on: https://gerrit.chromium.org/gerrit/29701
Reviewed-by: Scott Zawalski <scottz@chromium.org>
Reviewed-by: Simran Basi <sbasi@google.com>
Tested-by: Simran Basi <sbasi@google.com>
Commit-Ready: Simran Basi <sbasi@google.com>
ase_utils.py
24b3a027291ff030bb74482818106fa91bcc911d 31-Jul-2012 Chris Sosa <sosa@chromium.org> Reland "Use dev_server to determine the url of the devserver."

Condition for deploying required a scheduler restart. Original
change was fine.

This reverts commit 5ca9d1b7a16b80d71acdbf01bd5b8019b13e3165.

BUG=chromium-os:26451
TEST=Unittests + local run with prod devservers

Change-Id: I9acd6bce50a8919f85ca3ed65420ad235e8501e7
Reviewed-on: https://gerrit.chromium.org/gerrit/28855
Reviewed-by: Chris Sosa <sosa@chromium.org>
Tested-by: Chris Sosa <sosa@chromium.org>
ros/dev_server.py
ros/dev_server_unittest.py
5ca9d1b7a16b80d71acdbf01bd5b8019b13e3165 30-Jul-2012 Chris Sosa <sosa@chromium.org> Revert "Use dev_server to determine the url of the devserver."

Started seeing this on the autotest server:

Traceback (most recent call last):
File "/usr/local/autotest/server/server_job.py", line 539, in run
self._execute_code(server_control_file, namespace)
File "/usr/local/autotest/server/server_job.py", line 1022, in _execute_code
execfile(code_file, namespace, namespace)
File "/usr/local/autotest/results/426888-chromeos-test/chromeos-rack8c-host2/
control.srv", line 31, in <module>
repo_url = dynamic_suite._package_url_pattern() % image_name

This reverts commit dfe7042a31f726cd637530cfc28ecaaec08256ba.

Change-Id: Icf560ac11f7f5567b7dbe4e32a13584ccdda06c7
Reviewed-on: https://gerrit.chromium.org/gerrit/28724
Reviewed-by: Chris Sosa <sosa@chromium.org>
Tested-by: Chris Sosa <sosa@chromium.org>
ros/dev_server.py
ros/dev_server_unittest.py
dfe7042a31f726cd637530cfc28ecaaec08256ba 26-Jul-2012 Chris Sosa <sosa@chromium.org> Use dev_server to determine the url of the devserver.

The dynamic_suite code assumed the devserver variable in the autotest
config was a string that represented the url for the devserver.
This is no longer a correct assumption as it can be a list of devservers.
This change modifies the dynamic_suite logic to use a DevServer instance
to tell it the URL it should use for the devserver.

BUG=chromium-os:26451
TEST=Unittests

Change-Id: I0bc63029630d9e884a23b16ccdf75da1756e6518
Reviewed-on: https://gerrit.chromium.org/gerrit/28447
Reviewed-by: Chris Masone <cmasone@chromium.org>
Tested-by: Chris Sosa <sosa@chromium.org>
Commit-Ready: Chris Sosa <sosa@chromium.org>
ros/dev_server.py
ros/dev_server_unittest.py
6f109089b5046b01ab518de7171fb2c4dee396e6 18-Jul-2012 Chris Masone <cmasone@chromium.org> [autotest] Add retrying logic to devserver calls, autoupdate 'test'

Have the autoupdate 'test' control file that we use to reimage devices
use a RetryingAFE, so that it doesn't die in the event of frontend
restarts.

Also, re-use the same retrying logic to have the DevServer class retry
calls in the event of URLErrors. We don't do this for
DevServerExceptions, because that would cause us to retry for things
like attempts to trigger a download with a malformed image name, which
we don't want to do.

BUG=chromium-os:31418
TEST=unit
TEST=run_suite using a local dev server that's not running initially.
TEST=It should keep trying until you start the dev server, at which point things should progress normally.

Change-Id: Id8c7b07ce19d528ae35e7df6a7359234329869df
Reviewed-on: https://gerrit.chromium.org/gerrit/28101
Tested-by: Chris Masone <cmasone@chromium.org>
Reviewed-by: Chris Sosa <sosa@chromium.org>
Commit-Ready: Chris Masone <cmasone@chromium.org>
ros/dev_server.py
ros/dev_server_unittest.py
ros/retry.py
761341eafc11de617743ca8126a3b1a3b9f9c430 19-Jul-2012 Alex Miller <milleral@chromium.org> [autotest] Offload crash handling to a dedicated server.

Add the ability to specify a dedicated devserver to handle
symbolicate_dump rpc calls to offload work from the main dev_server.

BUG=chromium-os:32710
TEST=unit

Change-Id: I11313a92a96709bbc0feeeaea1c755adb92a4290
Reviewed-on: https://gerrit.chromium.org/gerrit/27940
Tested-by: Alex Miller <milleral@chromium.org>
Reviewed-by: Chris Sosa <sosa@chromium.org>
Commit-Ready: Alex Miller <milleral@chromium.org>
ros/dev_server.py
ros/dev_server_unittest.py
9807bd6ce1d549c9a94d87f4dbb5e39ce597c697 11-Jul-2012 Chris Masone <cmasone@chromium.org> [autotest] Add HostLockManager class, for locking/unlockin DUTs

An instance of HostLockManager is intended to be bound to a set of
hostnames shortly after instantiation. Thereafter, it can be used to
lock/unlock those hosts freely, until it is destroyed. At that time,
it will unlock() the associated hosts for you and complain that you
should've done it yourself.

This class is intended for use with dynamic_suite.Reimager and
dynamic_suite.Suite. The purpose is to allow Reimager.attempt() to
lock some hosts while allowing Suite.run_and_wait() to unlock them
during the course of its run. Therefore, a HostLockManager must be
instantiated _before_ we know what hosts are being reimaged, and live
after Reimager.attempt() has finished execution. Hence, the prime()
method that takes an iterable of hostnames.

BUG=chromium-os:30978
TEST=unit

Change-Id: I806a39ccc4951b011b2f7664aa4e942506829bbb
Reviewed-on: https://gerrit.chromium.org/gerrit/27204
Tested-by: Chris Masone <cmasone@chromium.org>
Reviewed-by: Scott Zawalski <scottz@chromium.org>
Commit-Ready: Chris Masone <cmasone@chromium.org>
rror.py
e327ec8297a558d1976a622810be75c826258572 30-Jun-2012 Chris Sosa <sosa@chromium.org> Allow and use specification of multiple devservers.

This change modifies the devserver logic to accept a comma-delimited list
of devservers in the global_config.ini. We then take the hash of the image arg
when determining which devserver to use.

BUG=chromium-os:26451
TEST=Unittests so far

Change-Id: I6f01b944a618c186ebd923a2ef4d065196ad169f
Reviewed-on: https://gerrit.chromium.org/gerrit/26496
Commit-Ready: Chris Sosa <sosa@chromium.org>
Reviewed-by: Chris Sosa <sosa@chromium.org>
Tested-by: Chris Sosa <sosa@chromium.org>
ros/dev_server.py
ros/dev_server_unittest.py
a3ac2151472c3d8e569bc9166446807b231d5df0 24-May-2012 Chris Sosa <sosa@chromium.org> Modify autoupdate test to allow for local use by developers.

This change modifies the existing autoupdate test by adding
a local control file. Developers can use control.local to
run an autoupdate test from their local devserver.

BUG=chromium-os:31455
TEST=Ran it on a local eeepc with:
run_remote_tests --build autoupdate/

Change-Id: I5afb4eb74a943a62a8c1e2cc5365d0a910d63051
Reviewed-on: https://gerrit.chromium.org/gerrit/23469
Tested-by: Chris Sosa <sosa@chromium.org>
Reviewed-by: Chris Masone <cmasone@chromium.org>
Commit-Ready: Chris Sosa <sosa@chromium.org>
ros/autoupdater.py
aa5ebbe1765264a6239e05bcd36b35d3230ac579 26-Jun-2012 Chris Masone <cmasone@chromium.org> [autotest] Tolerate UTF-32 in dev server error messages

It seems that the Apache instance we intend to wrap the dev server in
returns error messages in UTF-32, though the dev server we use today
returns ASCII. Tolerate either.

BUG=chromium-os:32081
TEST=run_suite against local dev server
TEST=run_suite against locally-running web server that sends back UTF-32

Change-Id: Ia4cea3eaeeed90242026ccbd658bfa6483fc418d
Reviewed-on: https://gerrit.chromium.org/gerrit/26075
Reviewed-by: Chris Masone <cmasone@chromium.org>
Tested-by: Chris Masone <cmasone@chromium.org>
Commit-Ready: Chris Masone <cmasone@chromium.org>
ros/dev_server.py
5e4246b6dd51065cf4b0eebba333458d7ebf692c 23-May-2012 Chris Sosa <sosa@chromium.org> Modify the autoupdater to reset the stateful update state on AU failure.

This change modifies the updater to reset the stateful update state
if an AU fails. This is needed so that we don't incorrectly continue
with a stateful update even when the rootfs fails to update.

CQ-DEPEND=I3dd6a29b087587c7557fa5a7968ebd48a52dd263
BUG=chromium-os:30795
TEST=Tested with local devserver and the rootfs update failing with
change I5afb4eb74a943a62a8c1e2cc5365d0a910d63051

Change-Id: I28b6b471ad5a05b6650ffd2608927ac8aa3bfd16
Reviewed-on: https://gerrit.chromium.org/gerrit/23304
Reviewed-by: Chris Masone <cmasone@chromium.org>
Commit-Ready: Chris Sosa <sosa@chromium.org>
Tested-by: Chris Sosa <sosa@chromium.org>
ros/autoupdater.py
acbf4e0ff5a0f556597a83e8d4b255d5fdd1819f 22-May-2012 Chris Masone <cmasone@chromium.org> [autotest] Handle HTTPErrors in symbolicate_dump

When constructing a urllib2.HTTPError, passing None for the final arg
causes read() to not get defined on the object. Weird. So, make
sure that we pass a file-like object containing error strings there.

BUG=chromium-os:31151
TEST=run a test that leaves a crash dump and make the dev server throw 500s'

Change-Id: If9b84276609c9dfd292925e84ccab88fb6ad41a1
Reviewed-on: https://gerrit.chromium.org/gerrit/23172
Reviewed-by: Scott Zawalski <scottz@chromium.org>
Commit-Ready: Chris Masone <cmasone@chromium.org>
Tested-by: Chris Masone <cmasone@chromium.org>
ros/dev_server.py
bafbbb0ff97fa5a5e07a47003d1ea57566f2186d 16-May-2012 Chris Masone <cmasone@chromium.org> [autotest] Re-land "Add logic to symbolicate dumps using dev server, stage symbols on-demand"

re-run /usr/local/autotest/utils/build_externals.py before trying to use this
outside the chroot.

When trying to symbolicate a crash dump using the dev server, we first
have to stage debug symbols on-demand. We can't stage them up front,
sadly. So, block and stage them on-demand, doing so iff we actually get
crashes during a test.

This reverts commit 77e95f2dd7a025966aa2cdf19cfb5f0bfcf2608f.

BUG=chromium-os:29730,chromium-os:30400
TEST=run_remote_tests a test that generates a crash dump; symbolication should
TEST=occur locally.
TEST=set up a dev server that does not have symbols staged, and run a test
TEST=that generates a crash dump. The symbols should get staged and the dump
TEST=symbolicated. Now run another. The symbols should be re-used.
STATUS=Fixed

Change-Id: I85c9f16ec054210ebacf22c4713d9ba65927551b
Reviewed-on: https://gerrit.chromium.org/gerrit/22866
Tested-by: Chris Masone <cmasone@chromium.org>
Reviewed-by: Scott Zawalski <scottz@chromium.org>
Commit-Ready: Chris Masone <cmasone@chromium.org>
ros/dev_server.py
f70650c57a8f44f80055f5d136c4808a79d67c4d 16-May-2012 Chris Masone <cmasone@chromium.org> [autotest] Re-land "Put dev server error strings in exceptions"

We've been ignoring error messages coming back from the dev server.
Strip out the HTML that comes in (some of) them and wrap them
in exceptions.

This reverts commit 0dcf3a4c80b66d7598f3d7391bc1f9bf5492d8e2.

BUG=chromium-os:30279
TEST=unit
TEST=use atest suite create to run a suite that doesn't exist on build that doesn't exist.

Change-Id: I9d684d8b1c959d17c4b17082ef6892112b860493
Reviewed-on: https://gerrit.chromium.org/gerrit/22847
Reviewed-by: Scott Zawalski <scottz@chromium.org>
Tested-by: Chris Masone <cmasone@chromium.org>
Commit-Ready: Chris Masone <cmasone@chromium.org>
ros/dev_server.py
ros/dev_server_unittest.py
0dcf3a4c80b66d7598f3d7391bc1f9bf5492d8e2 16-May-2012 Chris Sosa <sosa@chromium.org> Revert "[autotest] Put dev server error strings in exceptions"

This change exposed a bug in the old test_scheduler. The old test_scheduler
didn't do anything to suppress exceptions and aborts if the devserver returns
any exceptions.

This change is good as is and can be safely re-reverted once the old test_scheduler is robustified a little.

This reverts commit c807fcb56c57dbac1b193d92a90d59388c0cefe4

BUG=chromium-os:30915
TEST=Ran on autotest server with test_scheduler.

Change-Id: I22b9bbf87552c411c82b2d4e67fdbc33576eacb6
Reviewed-on: https://gerrit.chromium.org/gerrit/22776
Reviewed-by: Chris Sosa <sosa@chromium.org>
Tested-by: Chris Sosa <sosa@chromium.org>
ros/dev_server.py
ros/dev_server_unittest.py
d4e72c40c906ae602a0979fc3c8db6bf720a6a54 15-May-2012 Chris Masone <cmasone@chromium.org> [autotest] Remove obsolete TODO()

To help diagnose http://crosbug.com/22019, we added some kernel stack
logging code on failed process kill. We actually think that's a good
idea, so we decided to leave it and just take out the TODO telling us
to remove it.

BUG=chromium-os:22019
TEST=suite:bvt should still run

Change-Id: Ibfce0a05009c007fb5c833ae88150ea845978600
Reviewed-on: https://gerrit.chromium.org/gerrit/22611
Tested-by: Chris Masone <cmasone@chromium.org>
Reviewed-by: Scott Zawalski <scottz@chromium.org>
Commit-Ready: Chris Masone <cmasone@chromium.org>
ase_utils.py
77e95f2dd7a025966aa2cdf19cfb5f0bfcf2608f 16-May-2012 Chris Masone <cmasone@chromium.org> Revert "[autotest] Add logic to symbolicate dumps using dev server, staging symbols on-demand"

An important change that this depends on got reverted because it broke a test that is of marginal utility, so this will start breaking stuff again if we leave it in.

This reverts commit d1294ffd263104fd0b7473c38c646fc9d26b8ea9

Change-Id: Ibcc1193db2e1a5907ddaf11fd6ab1b803dbdf303
Reviewed-on: https://gerrit.chromium.org/gerrit/22766
Commit-Ready: Chris Masone <cmasone@chromium.org>
Reviewed-by: Chris Masone <cmasone@chromium.org>
Tested-by: Chris Masone <cmasone@chromium.org>
ros/dev_server.py
06e087cf2830e677cde88e32e4f42d0bc0547e68 08-May-2012 Chris Masone <cmasone@chromium.org> [autotest] Add logic to symbolicate dumps using dev server, staging symbols on-demand

re-run /usr/local/autotest/utils/build_externals.py before trying to use this
outside the chroot.

When trying to symbolicate a crash dump using the dev server, we first
have to stage debug symbols on-demand. We can't stage them up front,
sadly. So, block and stage them on-demand, doing so iff we actually get
crashes during a test.

BUG=chromium-os:29730,chromium-os:30400
TEST=run_remote_tests a test that generates a crash dump; symbolication should
TEST=occur locally.
TEST=set up a dev server that does not have symbols staged, and run a test
TEST=that generates a crash dump. The symbols should get staged and the dump
TEST=symbolicated. Now run another. The symbols should be re-used.

This reverts commit 01310f99e1aa2862af087583a0815c3271fc10c1.
This reverts commit 52c7fb7c3b8c6fcc81b62a391d3cd8b9443b25d1.

Change-Id: I5385d5213f21bc03c9301d4f9f88ed06d30d8e1f
Reviewed-on: https://gerrit.chromium.org/gerrit/22501
Commit-Ready: Chris Masone <cmasone@chromium.org>
Reviewed-by: Chris Masone <cmasone@chromium.org>
Tested-by: Chris Masone <cmasone@chromium.org>
ros/dev_server.py
5117e3eb723645e48e004589123af8fb5e0787cf 10-May-2012 Chris Masone <cmasone@chromium.org> [autotest] Put dev server error strings in exceptions

We've been ignoring error messages coming back from the dev server.
Strip out the HTML that comes in (some of) them and wrap them
in exceptions.

BUG=chromium-os:30279
TEST=unit
TEST=use atest suite create to run a suite that doesn't exist on build that doesn't exist.

Change-Id: I86b149610bf54334cdca12836a078ab874c818b2
Reviewed-on: https://gerrit.chromium.org/gerrit/22315
Commit-Ready: Chris Masone <cmasone@chromium.org>
Reviewed-by: Chris Masone <cmasone@chromium.org>
Tested-by: Chris Masone <cmasone@chromium.org>
ros/dev_server.py
ros/dev_server_unittest.py
b1091da4c4a811e4e1460b9847f42f73a24b6b45 11-May-2012 J. Richard Barnette <jrbarnette@chromium.org> Force FD_CLOEXEC on the pipe to logging subprocesses.

Logging subprocesses created by LoggingManager are meant to
terminate when the parent process closes its end of a pipe.
The pipe file descriptor is created without setting 'close
on exec'.

If the parent process later uses subprocess.Popen to create a
differnt child process, that child will inherit the open pipe.
The result is that the logging subprocess will fail to see
EOF, fail to terminate, and leave the parent process stuck
waiting indefinitely.

The fix is to force 'close on exec' to be set on the pipe
file descriptor, so that it cannot be inherited by other
subprocesses.

BUG=chromium-os:30806
TEST=run the test included in the bug report

Change-Id: I4fe5ce98d5935fb2ddea143991ef0267033e47e6
Reviewed-on: https://gerrit.chromium.org/gerrit/22429
Tested-by: Richard Barnette <jrbarnette@chromium.org>
Reviewed-by: Chris Sosa <sosa@chromium.org>
Reviewed-by: Scott Zawalski <scottz@chromium.org>
Tested-by: Scott Zawalski <scottz@chromium.org>
Commit-Ready: Scott Zawalski <scottz@chromium.org>
ogging_manager.py
f8b5306840870a8ebec3a5dc4b77c0bd79a69c5b 09-May-2012 Chris Masone <cmasone@chromium.org> [autotest] Make json_rpc raise meaningful exceptions

Add some dynamic suite exceptions to client/common_lib/error.py so
that different parts of the system can all reference them. Then,
enable the json_rpc code to detect these exceptions coming back
over the wire, re-instantiate them on the client side, and raise
them.

BUG=chromium-os:30279
TEST=unit
TEST=use atest suite create to try to create a suite for a build that doesn't exist
TEST=use atest suite create to try to run a suite that doesn't exist

Change-Id: I1b6d56a7e1bdb63cc893a07581efc8decc0407f4
Reviewed-on: https://gerrit.chromium.org/gerrit/22250
Tested-by: Chris Masone <cmasone@chromium.org>
Reviewed-by: Chris Sosa <sosa@chromium.org>
Commit-Ready: Chris Masone <cmasone@chromium.org>
rror.py
01310f99e1aa2862af087583a0815c3271fc10c1 08-May-2012 Scott Zawalski <scottz@chromium.org> Revert "[autotest] Re-land "Add logic to symbolicate dumps using dev server""

Cherrypy is hanging when we send multiple POSTs using request to it in a short
amount of time

BUG=30650

This reverts commit 043bf47e7946366517757cdb981de99eb81adcb6

Change-Id: I6f91b730289d14502eeffcf672ccb36494d5f847
Reviewed-on: https://gerrit.chromium.org/gerrit/22115
Commit-Ready: Scott Zawalski <scottz@chromium.org>
Reviewed-by: Scott Zawalski <scottz@chromium.org>
Tested-by: Scott Zawalski <scottz@chromium.org>
ros/dev_server.py
52c7fb7c3b8c6fcc81b62a391d3cd8b9443b25d1 07-May-2012 Chris Masone <cmasone@chromium.org> Revert "[autotest] Stage debug symbols on-demand before symbolicating minidumps."

CherryPy is weaksauce and falls over if too many POSTs come in at the same time. Reverting until we can make the devserver handle the load.

This reverts commit a3fb82d1b85dad68b4e9dbbe6b2f60c4ea12adb2

Change-Id: I1d2b547031a6db8d48e00547b0029111574e901d
Reviewed-on: https://gerrit.chromium.org/gerrit/21997
Commit-Ready: Chris Masone <cmasone@chromium.org>
Reviewed-by: Chris Masone <cmasone@chromium.org>
Tested-by: Chris Masone <cmasone@chromium.org>
ros/dev_server.py
0a939871cbc398f110f5cc846f84e8541b8540f8 03-May-2012 Chris Masone <cmasone@chromium.org> [autotest] Stage debug symbols on-demand before symbolicating minidumps.

We can't stage debug symbols up front, sadly. So, stage them on-demand iff
we actually get crashes during a test. Do so in a blocking fashion.

BUG=chromium-os:30400
TEST=set up a dev server that does not have symbols staged, and run a test
TEST=that generates a crash dump. The symbols should get staged and the dump
TEST=symbolicated. Now run another. The symbols should be re-used.

CQ-DEPEND=Ie460526396d2b9999137142c723b87793bc23aaa

Change-Id: I02b69ed2db7b22a557d94a2005fc1cef901eefcd
Reviewed-on: https://gerrit.chromium.org/gerrit/21826
Reviewed-by: Scott Zawalski <scottz@chromium.org>
Commit-Ready: Chris Masone <cmasone@chromium.org>
Tested-by: Chris Masone <cmasone@chromium.org>
ros/dev_server.py
4245a73ec638b602bd4546637b41c74f39158e14 30-Apr-2012 Chris Masone <cmasone@chromium.org> [autotest] Re-land "Add logic to symbolicate dumps using dev server"

re-run /usr/local/autotest/utils/build_externals.py before trying to use this
outside the chroot.

BUG=chromium-os:29730
TEST=point local autoserv at a local dev server, run a test that causes a crash; it should symbolicate the crash

This reverts commit 8972fa982c3ec369737f1e45f52a3b350c1824e7.

Change-Id: I080fb56b0d2508ccd90b4140826d7020efc81982
Reviewed-on: https://gerrit.chromium.org/gerrit/21493
Tested-by: Chris Masone <cmasone@chromium.org>
Reviewed-by: Scott Zawalski <scottz@chromium.org>
Commit-Ready: Chris Masone <cmasone@chromium.org>
ros/dev_server.py
8972fa982c3ec369737f1e45f52a3b350c1824e7 30-Apr-2012 Chris Masone <cmasone@chromium.org> Revert "[autotest] Add logic to symbolicate dumps using dev server"

Somehow, import logging is failing...?

This reverts commit 98bc0046b399518cb1217469b9306a4ab7a4b928

Change-Id: Iedab8e712494a730b797b0490dcabf5c6578e192
Reviewed-on: https://gerrit.chromium.org/gerrit/21478
Commit-Ready: Chris Masone <cmasone@chromium.org>
Reviewed-by: Chris Masone <cmasone@chromium.org>
Tested-by: Chris Masone <cmasone@chromium.org>
ros/dev_server.py
d6a4718a15d37306f31a65ad8d6b9023b4a69b42 25-Apr-2012 Chris Masone <cmasone@chromium.org> [autotest] Add logic to symbolicate dumps using dev server

re-run /usr/local/autotest/utils/build_externals.py before trying to use this
outside the chroot.

BUG=chromium-os:29730
TEST=point local autoserv at a local dev server, run a test that causes a crash; it should symbolicate the crash into a .txt named after the minidump file.

CQ-DEPEND=Ib9d5b0abb73567fd8450db50d3e50d27bdc169f4

Change-Id: Id0d1fd6b4f00e560dd5683d87140ed943697f185
Reviewed-on: https://gerrit.chromium.org/gerrit/21277
Commit-Ready: Chris Masone <cmasone@chromium.org>
Reviewed-by: Chris Masone <cmasone@chromium.org>
Tested-by: Chris Masone <cmasone@chromium.org>
ros/dev_server.py
77556d89a195ba3285c7701e60f63928188845ac 06-Apr-2012 Chris Sosa <sosa@chromium.org> Re-land "Run the stateful update in parallel with the rootfs autoupdate.""

This reverts commit f52e79e13bd967668f7f7cf7c9b3ef538c29bb1f.

BUG=chromium-os:28751
TEST=Testing. Pyflakes, pylint + end to end run with cli/atest suite create
and a local devserver. Saw update complete and run bvt's.

Change-Id: I1cd16323b4f468afc6ee4abe4531babca8278f23
Reviewed-on: https://gerrit.chromium.org/gerrit/19700
Tested-by: Chris Sosa <sosa@chromium.org>
Reviewed-by: Chris Masone <cmasone@chromium.org>
Commit-Ready: Chris Sosa <sosa@chromium.org>
ros/autoupdater.py
f52e79e13bd967668f7f7cf7c9b3ef538c29bb1f 05-Apr-2012 Scott Zawalski <scottz@chromium.org> Revert "Run the stateful update in parallel with the rootfs autoupdate."

This reverts commit 9bdcdf5b9f6b9398a05f3bc74f3a1c4f321b3d91

See bug: http://code.google.com/p/chromium-os/issues/detail?id=29025

Change-Id: Idd5517689c8f3b87fdb93a5b73a9c63410a5c78f
Reviewed-on: https://gerrit.chromium.org/gerrit/19688
Reviewed-by: Chris Sosa <sosa@chromium.org>
Tested-by: Chris Sosa <sosa@chromium.org>
ros/autoupdater.py
4bd96d13d0ff7f6134a7ec4b35badf427965fa5a 03-Apr-2012 Chris Sosa <sosa@chromium.org> Run the stateful update in parallel with the rootfs autoupdate.

BUG=chromium-os:28751
TEST=Testing. Pyflakes / pylint so far.

Change-Id: I53788dc277249096aa92c82fcf011dde419c2395
Reviewed-on: https://gerrit.chromium.org/gerrit/19491
Reviewed-by: Chris Masone <cmasone@chromium.org>
Reviewed-by: Scott Zawalski <scottz@chromium.org>
Commit-Ready: Chris Sosa <sosa@chromium.org>
Tested-by: Chris Sosa <sosa@chromium.org>
ros/autoupdater.py
347a0b890caae8759b37ddea8e70c39b2a31dea2 30-Mar-2012 Scott Zawalski <scottz@google.com> Update site_wifitest to automatically discover cell hosts.

The wifitests currently rely on a configuration file to find out the
ip address of the router and the rspro. This CL updates this pathway
to check if the machine is running in the lab dns zone. If it is, the
lab host naming conventions are followed for both the router and the
rspro hosts that are required for this test to work.

TEST=Local autoserv instance showing that the correct names were used
when run on a lab machine and that the previous behavior is intake when running
on a non-lab machine.
BUG=chromium-os:28738

Change-Id: Ia2d0dbe24405ac2dd6181a6306fc32b950be1be4
Reviewed-on: https://gerrit.chromium.org/gerrit/19380
Reviewed-by: Scott Zawalski <scottz@chromium.org>
Tested-by: Scott Zawalski <scottz@chromium.org>
Commit-Ready: Scott Zawalski <scottz@chromium.org>
ite_utils.py
6b288c89dfcc112f605854bd5563b70ee5d74006 30-Mar-2012 Chris Sosa <sosa@chromium.org> Modify dynamic suite pathway to allow some artifacts to be staged in the bgnd.

This change modifies the site_rpc_interface->dynamic_suite.py workflow to allow
autotest to stage larger build components while imaging devices. It uses
the download/wait_for_status interface provided by the devserver to
accomplish it.

BUG=chromium-os:27285
TEST=All effected unittests pass. Staging larger test on local devserver in
parallel.

Change-Id: Iae2a20762c565b8e6d440c9a501c1f99c73129ed
Reviewed-on: https://gerrit.chromium.org/gerrit/19328
Tested-by: Chris Sosa <sosa@chromium.org>
Reviewed-by: Scott Zawalski <scottz@chromium.org>
Tested-by: Scott Zawalski <scottz@chromium.org>
Commit-Ready: Scott Zawalski <scottz@chromium.org>
ros/dev_server.py
ros/dev_server_unittest.py
9d7955fef7bb93d7df3d45a13ff52e70619520dc 21-Mar-2012 Scott Zawalski <scottz@google.com> Update downloader and test_scheduler to utilize new staging.

We have hit a problem where the downloader code no longer properly
stages images for R19. This CL fixes that.

Add an option to downloader to stage images via the new devserver pathway.
IFF a board in the json config has 'release' in the name (Currently used to
signify TOT) and also has a download_devserver variable set to true. All other
boards with release in the name are skipped, these are currently downloaded
via the HWTest stage. All -RXX releases are processed in the old way still.

Update test_scheduler to get its control files from the dev server for all TOT
images. The new style puts the autotest files under /autotest/ instead of
/server/.

Fixed a bug where passing None to the dev server is interpreted as "None" and
causes issues because it is a valid string.

TEST=Local runs of downloader to ensure the pathway is being executed with the proper
variables.
BUG=chromium-os:28085

Change-Id: I9c5dc9e3a10ad02b9c6246beece11b8f31b0e5dd
Reviewed-on: https://gerrit.chromium.org/gerrit/18656
Commit-Ready: Scott Zawalski <scottz@chromium.org>
Reviewed-by: Scott Zawalski <scottz@chromium.org>
Tested-by: Scott Zawalski <scottz@chromium.org>
ros/dev_server.py
136dc4b37934664f9c4fdf71365e12881bf73827 20-Mar-2012 Scott Zawalski <scottz@google.com> Add a get_latest_build call to the cros/dev_server code.

Add in a pathway to ask the devserver what the latest build is
for a given target.

Update the old test_scheduler to use this pathway so that it no longer
relies on LATEST files.

TEST=unittests.
BUG=chromium-os:28085
CQ-DEPEND=I2b99a0e47a963fc528c1ad4bac49e340a24a9480

Change-Id: Ia5ef5b222a325af8e5074266fcbf90840da9dc12
Reviewed-on: https://gerrit.chromium.org/gerrit/18564
Commit-Ready: Scott Zawalski <scottz@chromium.org>
Reviewed-by: Scott Zawalski <scottz@chromium.org>
Tested-by: Scott Zawalski <scottz@chromium.org>
ros/dev_server.py
ros/dev_server_unittest.py
ae84354d058d9713d28bcc541cdce7e415e680af 20-Mar-2012 Scott Zawalski <scottz@google.com> Fix site_utils reference to utils.

base_utils is the import we are using and where TEE_TO_LOGS exists.
s/utils/base_utils/.

Fix a bug where we reference hosts without ensuring that it is defined.
This happened when testing the above fix.

TEST=./autoserv -m scottz-mario2.cros -c ../client/site_tests/network_Ping/control
BUG=chromium-os:28079

Change-Id: Ic57b96783f143053bfcf7642d867d25734fb9975
Reviewed-on: https://gerrit.chromium.org/gerrit/18535
Reviewed-by: Chris Masone <cmasone@chromium.org>
Commit-Ready: Scott Zawalski <scottz@chromium.org>
Reviewed-by: Scott Zawalski <scottz@chromium.org>
Tested-by: Scott Zawalski <scottz@chromium.org>
ite_utils.py
6a0680f64c2d8adb609a890f1d80a89185ba4669 02-Mar-2012 Chris Masone <cmasone@chromium.org> [autotest] Add platform_CloseOpenSimple

Existing servo tests are very much intended to be run at a developer's desk.
This CL takes a first cut at a test intended to be run with servo in the lab.
We eschew the ServoTest class, as it seems to be mostly designed to allow
command line args that come in via run_remote_tests.sh

We will handle the at-a-desk case later.

BUG=chromium-os:26666
TEST=This is a new test; run it.

Change-Id: Ib6438b375fcef4f8798349fa16c1da50756457a5
Reviewed-on: https://gerrit.chromium.org/gerrit/17975
Commit-Ready: Chris Masone <cmasone@chromium.org>
Reviewed-by: Chris Masone <cmasone@chromium.org>
Tested-by: Chris Masone <cmasone@chromium.org>
ite_utils.py
859fdecd96355279570007849d8bc46ff71874d7 30-Jan-2012 Chris Masone <cmasone@chromium.org> [autotest] Add create_suite_job() site RPC.

Add create_suite_job() RPC to autotest using the site_rpc mechanism.
Also add support to atest to call this RPC.

The purpose of this RPC is to stage a build on the dev server (if
necessary), image N machines with it, and then run the desired
suite on those machines.

BUG=chromium-os:25573
TEST=atest suite create -b x86-mario -i x86-mario-release/R19-1675.0.0-a1-b1588 test_suites/control.dummy

Change-Id: I09288fe6ffc675e5b111f7f59e349015f52ebb8e
Reviewed-on: https://gerrit.chromium.org/gerrit/15279
Tested-by: Chris Masone <cmasone@chromium.org>
Commit-Ready: Scott Zawalski <scottz@chromium.org>
Reviewed-by: Scott Zawalski <scottz@chromium.org>
Tested-by: Scott Zawalski <scottz@chromium.org>
ros/dev_server.py
ros/dev_server_unittest.py
fef2138b049ad06ba451308b29b06122b27277a9 17-Jan-2012 Chris Masone <cmasone@chromium.org> [autotest] Add ControlFileGetter impl that uses DevServer

Also, update a few files used in local testing.

BUG=chromium-os:24985
TEST=control_file_getter_unittest.py

Change-Id: Ic619b5c5f2ecbe0401400f2f2e6553cf50212c38
Reviewed-on: https://gerrit.chromium.org/gerrit/14323
Tested-by: Chris Masone <cmasone@chromium.org>
Reviewed-by: Scott Zawalski <scottz@chromium.org>
Commit-Ready: Chris Masone <cmasone@chromium.org>
ros/dev_server.py
ros/dev_server_unittest.py
8b764254b6b682e15802e3f3cb6ee22d56f237f1 17-Jan-2012 Chris Masone <cmasone@chromium.org> [autotest] Expand DevServer class to support control-file related calls

Add the ability to call the control_files/ endpoint on the dev server.

BUG=chromium-os:24985
TEST=dev_server_unittest.py

Change-Id: If20e7c6d1f13813cd10511c34d64e9ffddfb37f4
Reviewed-on: https://gerrit.chromium.org/gerrit/14302
Commit-Ready: Chris Masone <cmasone@chromium.org>
Reviewed-by: Chris Masone <cmasone@chromium.org>
Tested-by: Chris Masone <cmasone@chromium.org>
ros/dev_server.py
ros/dev_server_unittest.py
88434b12bf2c38f1099c0307b0313fe3f379364b 11-Jan-2012 Chris Masone <cmasone@chromium.org> [autotest] Remove dummy shadow_config.ini

It contains naught save commented-out lines, and for devs running
local autotest instances, it's a constant irritation to have to worry about
accidentally including it in a patch.

We also enable autotest to tolerate having a global_config.ini with no
associated shadow_config.ini

BUG=None
TEST=shadow_config.ini should not exist.

Change-Id: I500fa15dc74f545d8765f37d60b2d51a63fe3119
Reviewed-on: https://gerrit.chromium.org/gerrit/14011
Commit-Ready: Chris Masone <cmasone@chromium.org>
Tested-by: Chris Masone <cmasone@chromium.org>
Reviewed-by: Chris Masone <cmasone@chromium.org>
lobal_config.py
fb08a7736999b2be1349781fb35bdce5ae35d1ee 13-Jan-2012 Chris Masone <cmasone@chromium.org> [autotest] Add DevServer class that uses the new HTTP API

Instead of working from the existing class that SSH's to the dev
server and runs shell commands, create a new class to work against the
new HTTP api for the dev server. I do this because it's not clear
that we will want to continue using the interface of the existing
class, as it was built to do very different work than what we'd like
to do with the dev server now.

BUG=chromium-os:24985
TEST=dev_server_unittest.py

Change-Id: Ic776d72309bac30eb8362868370fd9f36616c3ba
Reviewed-on: https://gerrit.chromium.org/gerrit/14005
Commit-Ready: Chris Masone <cmasone@chromium.org>
Reviewed-by: Chris Masone <cmasone@chromium.org>
Tested-by: Chris Masone <cmasone@chromium.org>
ros/dev_server.py
ros/dev_server_unittest.py
6fed646ae4c833b537ea24b6161b81e0f50c0e32 21-Oct-2011 Chris Masone <cmasone@chromium.org> [autotest] Create a dynamic bvt suite control file

Adds the dynamic_suite module, uses it to create a dynamic bvt suite.

BUG=chromium-os:21953
TEST=./server/autoserv test_suites/control.dummy
TEST=./server/autoserv test_suites/control.bvt

Change-Id: Ib6713a5f382665c3e51e54a8c290cb1d1669e258
Reviewed-on: https://gerrit.chromium.org/gerrit/10454
Tested-by: Chris Masone <cmasone@chromium.org>
Reviewed-by: Scott Zawalski <scottz@chromium.org>
Commit-Ready: Chris Masone <cmasone@chromium.org>
ontrol_data.py
fa5dbf681d63e8787bf00c4aa86871c3ea0a00bd 02-Nov-2011 Chris Masone <cmasone@chromium.org> [autotest] Move kernel stack logging down into utils

Instead of trying to use shell commands to find the pid
of the unkillable process whose stack we want to dump,
just instrument the code down in common_lib/base_utils.py

BUG=chromium-os:22019
TEST=suite_Smoke should still run

Change-Id: I74256a63ad74b811548b964e8f845ea05b0d2772
Reviewed-on: https://gerrit.chromium.org/gerrit/11087
Reviewed-by: Scott Zawalski <scottz@chromium.org>
Commit-Ready: Chris Masone <cmasone@chromium.org>
Tested-by: Chris Masone <cmasone@chromium.org>
ase_utils.py
d9b26b91061e9bd282d4104c4b17cfa7814e76ca 24-Oct-2011 Dale Curtis <dalecurtis@chromium.org> Fix partition rollback issues on update failure.

BUG=chromium-os:22006
TEST=Ran command.

Change-Id: I19475945e3b2a16fe03805630a5e56fcbbfb1923
Reviewed-on: http://gerrit.chromium.org/gerrit/10585
Reviewed-by: Darin Petkov <petkov@chromium.org>
Tested-by: Dale Curtis <dalecurtis@chromium.org>
ros/autoupdater.py
39b8432d6c8ef9d3efefce502e82b9ceae59a57a 23-Sep-2011 Tan Gao <tgao@chromium.org> Develop an Autotest test case to measure TPM_TakeOwnership timing data

BUG=chrome-os-partner:6011
TEST=manual (special TTCI board required to conduct test)

Change details
- add new Autotest test case to measure timing delay of TPM_TakeOwnership operation
- define a new test suite that invokes hardware_TPMTakeOwnership test
(more tests may be added later)
- user may specify the number of iterations the test should run via
"loop" variable in suite control file
- user may specify the max acceptable delay in seconds via
"max_acceptable_delay_in_sec" variable in suite control file
- user can enforce upper limit of timing measurement via
"constraints=" clause in suite control file

Change-Id: I259e0e6ade74ed881d16c321637ced079e4958e1
Reviewed-on: http://gerrit.chromium.org/gerrit/8230
Reviewed-by: Ang Pan <oscarpan@chromium.org>
Tested-by: Tan Gao <tgao@chromium.org>
Commit-Ready: Tan Gao <tgao@chromium.org>
mogcheck_tpm.py
mogcheck_ttci.py
593def56a4eba6339d13237975f33f3f4b24e7cc 04-Oct-2011 Gaurav Shah <gauravsh@chromium.org> Log warnings at the WARNING level

Replace the warning handler in base_utils to use the logging module
instead of printing to stderr (which ends up being routed to the
ERROR level)

This should get rid of messages like this (DeprecationWarning) from the error file:
10/03 12:57:42 ERROR| warnings:0029| /usr/local/lib/python2.6/site-packages/dbus/connection.py:242: \
DeprecationWarning: object.__init__() takes no parameters
10/03 12:57:42 ERROR| warnings:0029| super(Connection, self).__init__(*args, **kwargs)

BUG=chromium-os:20426
TEST=manually examined error file login_LoginSuccess with and without the change
Verified DeprecationWarnings are being logged at the WARNING level.

Change-Id: I339f08b05488d6f9a7191751cdb189842f0bd1a5
Reviewed-on: http://gerrit.chromium.org/gerrit/8668
Reviewed-by: Chris Masone <cmasone@chromium.org>
Commit-Ready: Gaurav Shah <gauravsh@chromium.org>
Tested-by: Gaurav Shah <gauravsh@chromium.org>
ase_utils.py
039dee0560d0bf5526fdde42dd4595db7ddd0e87 23-Sep-2011 Tan Gao <tgao@chromium.org> Refactor common utility methods used in TPM testing into a separate file
- runInSubprocess()
- enableI2C()
- computeTimeElapsed()
* also remove obsolete test hardware_TPMI2ctools

BUG=chrome-os-partner:6011
TEST=manual (special TTCI board required to conduct test)

Change-Id: I99282481f58eb1814f89f379fb4ec25b7be5be6a
Reviewed-on: http://gerrit.chromium.org/gerrit/8237
Reviewed-by: Ang Pan <oscarpan@chromium.org>
Tested-by: Tan Gao <tgao@chromium.org>
Commit-Ready: Tan Gao <tgao@chromium.org>
mogcheck_util.py
3dc542c25031637adcdfe164d04502c6c5cea0d2 15-Sep-2011 Tan Gao <tgao@chromium.org> Porting C libtspi functionality to Python for TPM testing

BUG=chrome-os-partner:6011
TEST=no idea why chrome-bot failed to merge this CL\
tested manually b/c special hardware is required

Change-Id: Ie7351cefede0a2c801a693ba75ce72341d27d894
Reviewed-on: http://gerrit.chromium.org/gerrit/7799
Reviewed-by: Ang Pan <oscarpan@chromium.org>
Commit-Ready: Tan Gao <tgao@chromium.org>
Tested-by: Tan Gao <tgao@chromium.org>
mogcheck_tpm.py
3768ffe47960ece349865d6b561cab7c75d5c66a 30-Aug-2011 Tan Gao <tgao@chromium.org> Autotest test case to utilized C shared library for TPM SmogCheck

Background
stevenh proposed a project called TPM SmogCheck to define and implement a suite
of Python APIs that would facilitate extensive testing of TPM module
functionalities /features, all from the existing Autotest framework.

What's in this CL?
[1] a new Python library that implements stevenh's API to exercise various
capabilities of his TTCI board (specifically, PCA9555 and INA219B modules)
[2] a new Python Autotest test case that demonstrates the use of this new library
[3] a control file to launch the new Autotest (boiler plate)

Any dependency?
- Yes. [1] above depends on a new C shared library called "libsmogcheck.so".
I've filed a new issue (94960) against Build Infrastructure team to have a
new repo set up to host the C code.
- In order to run test cases built using [1], one needs to have a TTCI board
(custom designed by stevenh)

Why is this CL over 1,000 lines?!
- My apologies!
- This CL was developed over a period of several weeks and started out as
experimental code

BUG=chrome-os-partner:5172
TEST=manual (special hardware required to perform test)

Change-Id: Ida5ff18fe1806586d560910007fd3427a3466bec
Reviewed-on: http://gerrit.chromium.org/gerrit/6907
Reviewed-by: Tan Gao <tgao@chromium.org>
Tested-by: Tan Gao <tgao@chromium.org>
2c_slave.py
mogcheck_ina219.py
mogcheck_pca9555.py
mogcheck_ttci.py
8adf78936c915df6fd1edb6c592f40a7ed8350a5 09-Sep-2011 Dale Curtis <dalecurtis@chromium.org> Autotest upstream merge.

Merged from d9d64b855363d214996b187380532d4cc9991d29 to
7bad38846fe9c74e42018131ce85aec2b5e6c7a9

BUG=none
TEST=emerge autotest, run bvt, smoke.

Change-Id: Ibe6462198e84e0d41fa160af086283cd712da4a6
Reviewed-on: http://gerrit.chromium.org/gerrit/7440
Tested-by: Dale Curtis <dalecurtis@chromium.org>
Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
ase_job_unittest.py
rror.py
ail.py
ail_unittest.py
est_utils/mock.py
3ccb37b8e6b8ad3b4256d9693d325821ce57da3e 01-Sep-2011 Dale Curtis <dalecurtis@chromium.org> Fix package checksum issue resulting in refetch every time.

When using run_remote_tests, tests are not prepackaged, which results in
a tests and deps being bundled and fetched by the client each time it
needs them. These packages are cached locally, but because the checksum
wasn't updated upon download they are re-requested each time.

Fixing this bug results in a 15% speedup in the Smoke suite, from 8m26s
to 7m21s.

BUG=none
TEST=Ran smoke.

Change-Id: I4832d4a5c8f80962672045dbc5da60ee23c21e1d
Reviewed-on: http://gerrit.chromium.org/gerrit/7047
Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
Tested-by: Dale Curtis <dalecurtis@chromium.org>
ase_packages.py
613b009c7db70311bc3cff5c147729fe8be50160 01-Sep-2011 Scott Zawalski <scottz@google.com> Modify create_directory to not assume it is only working with SSH repos.

TEST=Ran Locally
BUG=NA

Change-Id: I1644e2630b3043a9c6153707989851462f02248c
Reviewed-on: http://gerrit.chromium.org/gerrit/7041
Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
Reviewed-by: Scott Zawalski <scottz@chromium.org>
Tested-by: Scott Zawalski <scottz@chromium.org>
ase_packages.py
456d3c115952bf1ae984770e226c5a50676b31c0 19-Jul-2011 Dale Curtis <dalecurtis@chromium.org> Upstream Autotest merge.

Merged from d9d64b855363d214996b187380532d4cc9991d29.

BUG=none
TEST=emerge autotest-tests, local server, run_remote_tests.

Change-Id: Id8cf1ef930bc0cd80347d77f2de65561be2a12a4
Reviewed-on: http://gerrit.chromium.org/gerrit/4664
Reviewed-by: Mike Truty <truty@chromium.org>
Reviewed-by: Scott Zawalski <scottz@chromium.org>
Tested-by: Dale Curtis <dalecurtis@chromium.org>
ogging_config.py
rofiler_manager.py
est.py
ddfdb9491c7056d21163fc8d7f27d30e08794266 14-Jul-2011 Dale Curtis <dalecurtis@chromium.org> Fix up autoupdate code to handle new AU format URLs.

Previously the target version was always the last element in the URL.
With AU format URLs, the target version is earlier in the URL. So strip
off the AU section before reading the path.

Also fixes Autoupdate control file so it properly generates failures
when an update fails.

BUG=chromium-os:16480
TEST=Ran run_remote_tests --update_url.

Change-Id: I126e3eb8a54eff31fae010793ff850af176763ff
Reviewed-on: http://gerrit.chromium.org/gerrit/4109
Reviewed-by: Paul Pendlebury <pauldean@chromium.org>
Tested-by: Dale Curtis <dalecurtis@chromium.org>
ros/autoupdater.py
1e97318792dc35f1058772d5aa320573dd11d4da 13-Jul-2011 Dale Curtis <dalecurtis@chromium.org> Collect update engine logs on failure for debugging.

There are many instances where we need to check the update_engine logs
after a job has failed, but generally the machine has already been
reimaged by the time we notice a failure. Since the error occurs in the
install phase logs are never collected.

Instead of copying all logs, I've just made it so the update engine logs
and the latest messages file are retrieved. I chose to do it this way
since the system is in an unknown state prior to imaging, there could be
a large quantity of logs and crashes we aren't interested in. We can
re-evaluate this decision going foward if there's missing information.

BUG=none
TEST=Ran updater, killed update-engine, checked logs.

Change-Id: I1dba7d6016f4020c6173ae22db3a74af038d964a
Reviewed-on: http://gerrit.chromium.org/gerrit/3994
Tested-by: Dale Curtis <dalecurtis@chromium.org>
Reviewed-by: Darin Petkov <petkov@chromium.org>
ros/autoupdater.py
2d0c926f262bbec53de2019e4318ea96dd2ee2ed 07-Jul-2011 Dale Curtis <dalecurtis@chromium.org> Ignore KeyError on double close for logging handler.

_clear_all_handlers will sometimes double close a handler, in this case
a KeyError will be raised. http://bugs.python.org/issue8581

Will upstream.

BUG=none
TEST=Running in production.

Change-Id: I85bf973d194e9113ec00602fbcd269383767a269
Reviewed-on: http://gerrit.chromium.org/gerrit/3705
Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
Tested-by: Dale Curtis <dalecurtis@chromium.org>
ogging_config.py
6ad3319178d4e635bcc057f8bca3e7622696fa00 07-Jul-2011 Dale Curtis <dalecurtis@chromium.org> Fix various packager issues. Prepare changes for upstream.

BUG=none
TEST=Ran packager.

Change-Id: If3349a17f5278100f72afe9f1511e4332b8a346d
Reviewed-on: http://gerrit.chromium.org/gerrit/3701
Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
Tested-by: Dale Curtis <dalecurtis@chromium.org>
ase_packages.py
74a314b490ff542c4dd2ae4aa0d11c6394d92960 23-Jun-2011 Dale Curtis <dalecurtis@chromium.org> Upstream Autotest merge.

As titled, a merge up to 93fc426ca133e775eb495f34d138fc57d92fb55e.

- Removes a bunch of deprecated code.
- Moves several private utilities into the private repo.
- Couple changes ported upstream and resynced.

BUG=None
TEST=In progress... will spin up new Autotest server and use
run_remote_tests for bvt, regression, smoke.

Change-Id: Id3e2ad529bb7b05f148e5d98aea46bb9ea828200
Reviewed-on: http://gerrit.chromium.org/gerrit/3350
Tested-by: Dale Curtis <dalecurtis@chromium.org>
Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
ase_job.py
ase_job_unittest.py
artesian_config.py
ogging_config.py
ogging_manager_test.py
est.py
c9613411db95fcb77bced6c7111e96775a12985d 01-Jul-2011 Dale Curtis <dalecurtis@chromium.org> Add parallel bzip2 support to package manager.

Will upstream. pbzip2 provides a linear increase in performance per
core. On most of our machines that means a 75% speedup, reducing the
packaging time from ~5 minutes down to a ~1m15s.

Also fixes a small bug where if no exclude_dir was specified None would
be added to the command line.

Also turns off verbosity. Is anyone using this?

BUG=none
TEST=Ran packager. run_remote_tests. Compared old packages with new.

Change-Id: If983468453dd212a2e7b22f5a49e8720c45b47d5
Reviewed-on: http://gerrit.chromium.org/gerrit/3567
Reviewed-by: <lookkas@gmail.com>
Reviewed-by: Paul Pendlebury <pauldean@chromium.org>
Tested-by: Dale Curtis <dalecurtis@chromium.org>
ase_packages.py
204a566416c60f210dc0580033a42b0f981cb6dc 22-Jun-2011 Mandeep Singh Baines <msb@chromium.org> common_lib: add a down_timeout to wait_for_restart

Commit cb7bfaf7, "Reduce timeout conditions for Chrome OS for efficiency",
cause the hungtask test to stop working. It takes at least two minutes
to detect a hung task (given current threshold).

The fix here is to add a new down_timeout parameter to wait_for_restart.
For most of the lockup testing we do for ChromeOS, the down timeout is
variable while the up timeout is really constant.

BUG=chromium-os:14497
TEST=platform_KernelErrorPaths

START platform_KernelErrorPaths platform_KernelErrorPaths timestamp=1308765907 localtime=Jun 22 11:05:07
START ---- ---- timestamp=1308765912 localtime=Jun 22 11:05:12

GOOD ---- sysinfo.before timestamp=1308765912 localtime=Jun 22 11:05:12
END GOOD ---- ---- timestamp=1308765913 localtime=Jun 22 11:05:13
START ---- ---- timestamp=1308765920 localtime=Jun 22 11:05:20

GOOD ---- sysinfo.iteration.before timestamp=1308765921 localtime=Jun 22 11:05:21
END GOOD ---- ---- timestamp=1308765921 localtime=Jun 22 11:05:21
START ---- reboot timestamp=1308765924 localtime=Jun 22 11:05:24

WARN ---- shutdown timestamp=1308765936 localtime=Jun 22 11:05:36 Shutdown took longer than 12s
GOOD ---- reboot.verify timestamp=1308765950 localtime=Jun 22 11:05:50
END GOOD ---- reboot kernel=2.6.38.3+ localtime=Jun 22 11:05:50 timestamp=1308765950 completed successfully
START ---- reboot timestamp=1308765951 localtime=Jun 22 11:05:51

GOOD ---- reboot.verify timestamp=1308765964 localtime=Jun 22 11:06:04
END GOOD ---- reboot kernel=2.6.38.3+ localtime=Jun 22 11:06:04 timestamp=1308765964 completed successfully
START ---- reboot timestamp=1308765964 localtime=Jun 22 11:06:04

WARN ---- shutdown timestamp=1308766090 localtime=Jun 22 11:08:10 Shutdown took longer than 125s
GOOD ---- reboot.verify timestamp=1308766210 localtime=Jun 22 11:10:10
END GOOD ---- reboot kernel=2.6.38.3+ localtime=Jun 22 11:10:10 timestamp=1308766210 completed successfully
START ---- reboot timestamp=1308766210 localtime=Jun 22 11:10:10

GOOD ---- reboot.verify timestamp=1308766269 localtime=Jun 22 11:11:09
END GOOD ---- reboot kernel=2.6.38.3+ localtime=Jun 22 11:11:09 timestamp=1308766269 completed successfully
START ---- reboot timestamp=1308766269 localtime=Jun 22 11:11:09

GOOD ---- reboot.verify timestamp=1308766281 localtime=Jun 22 11:11:21
END GOOD ---- reboot kernel=2.6.38.3+ localtime=Jun 22 11:11:21 timestamp=1308766281 completed successfully
START ---- reboot timestamp=1308766281 localtime=Jun 22 11:11:21

GOOD ---- reboot.verify timestamp=1308766293 localtime=Jun 22 11:11:33
END GOOD ---- reboot kernel=2.6.38.3+ localtime=Jun 22 11:11:33 timestamp=1308766293 completed successfully
START ---- ---- timestamp=1308766298 localtime=Jun 22 11:11:38

GOOD ---- sysinfo.iteration.after timestamp=1308766298 localtime=Jun 22 11:11:38
END GOOD ---- ---- timestamp=1308766298 localtime=Jun 22 11:11:38
START ---- ---- timestamp=1308766305 localtime=Jun 22 11:11:45

GOOD ---- sysinfo.after timestamp=1308766306 localtime=Jun 22 11:11:46
END GOOD ---- ---- timestamp=1308766306 localtime=Jun 22 11:11:46
GOOD platform_KernelErrorPaths platform_KernelErrorPaths timestamp=1308766313 localtime=Jun 22 11:11:53 completed successfully
END GOOD platform_KernelErrorPaths platform_KernelErrorPaths timestamp=1308766313 localtime=Jun 22 11:11:53

Change-Id: Ifc64de43e2b124fb800ed53aefb659cb589c9ed4
Reviewed-on: http://gerrit.chromium.org/gerrit/3006
Tested-by: Mandeep Singh Baines <msb@chromium.org>
Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
osts/base_classes.py
9d0003fd703d8fc3d8099b8b708a835128927b0f 21-Jun-2011 Dale Curtis <dalecurtis@chromium.org> Fix unicode errors on email code path.

BUG=none
TEST=Running in production. Passed through some unicode.

Change-Id: I5159ce0d67e287a4a7f979c3c5124631107ea79f
Reviewed-on: http://gerrit.chromium.org/gerrit/2912
Reviewed-by: Mike Truty <truty@chromium.org>
Tested-by: Dale Curtis <dalecurtis@chromium.org>
ase_utils.py
cb7bfaf79c567031a93da7390fed5d57b4c7da85 08-Jun-2011 Dale Curtis <dalecurtis@chromium.org> Reduce timeout conditions for Chrome OS for efficiency.

Many of the Autotest timeouts are far too long for Chrome OS. Where a
normal machine might take 10+ minutes to recover, Chromebooks take only
seconds. As such, I've tweaked many of the boot and crash timeouts to
reflect this.

When a host goes down the scheduler idles the job for four hours while
waiting for crash collection, causing two main problems:

1. Metahost jobs take four hours to requeue upon verify failure.
2. Results are delayed four hours when a host dies in jobs.

Additional issues fixed:

1. Timeout after reboot was essentially doubled in the default Host
implementation of wait_for_reboot. Works for us, but will need to query
upstream to ensure it works for everyone.
2. Unified timeouts across autotest.py and base_classes.py so boot
timeouts exist in only one place. Should be okay since all hosts extend
from Host in base_classes.py. Timings are now configurable in
global_config.
3. Global SSH options to ensure better timings. In order to do this, it
was necessary to add site extensibility to abstract_ssh.

Changes to crashcollect.py, autotest.py, abstract_ssh.py, and
base_classes.py will be upstreamed.

BUG=none
TEST=run_remote_tests. Will test in production as well.

Change-Id: I92964b140337e4ab919288b5190bb2e6d5a4fa2d
Reviewed-on: http://gerrit.chromium.org/gerrit/2269
Reviewed-by: Paul Pendlebury <pauldean@chromium.org>
Reviewed-by: Scott Zawalski <scottz@chromium.org>
Tested-by: Dale Curtis <dalecurtis@chromium.org>
osts/base_classes.py
f57a25f877842c88fd1109533ffaccab878c4bc1 24-May-2011 Dale Curtis <dalecurtis@chromium.org> Improve update version checks to be more robust.

As an added bonus we can now support the new version scheme.

BUG=chromium-os:15706
TEST=Ran run_remote_tests --update_url.

Change-Id: Id644efdab571e01b69ffdb59486e775765518024
Reviewed-on: http://gerrit.chromium.org/gerrit/1483
Reviewed-by: Eric Li <ericli@chromium.org>
Tested-by: Dale Curtis <dalecurtis@chromium.org>
ros/autoupdater.py
0a99391317b5caca3d373d0bba931bcb62302566 17-May-2011 Eric Li <ericli@chromium.org> Merge autotest upstream from @5337 ~ @5360

Change-Id: Iad59314186db370f9219c3fb294b851f4e214e2e
Reviewed-on: http://gerrit.chromium.org/gerrit/1045
Reviewed-by: Eric Li <ericli@chromium.org>
Tested-by: Eric Li <ericli@chromium.org>
ase_utils.py
53d55866a9f977cc75d67db43d8a216ffbe5e7eb 16-May-2011 Dale Curtis <dalecurtis@chromium.org> Turn off forced updates. Modify perf to always update.

To increase lab efficiency we only want to trigger an update if we're
not already running the version we want to test.

However, some tests (boot perf) need to always start with a fresh
install.

BUG=none
TEST=Ran run_remote_tests --update_url w/ Old->New, New->New.

Change-Id: Ie5e1eee89f3c603938e24d6743d93f7cbdcbc544
Reviewed-on: http://gerrit.chromium.org/gerrit/943
Reviewed-by: Eric Li <ericli@google.com>
Tested-by: Eric Li <ericli@google.com>
Tested-by: Eric Li (do not use)
Reviewed-by: Eric Li (do not use)
ros/autoupdater.py
6c0b70ba5fa83b57fc0bc2f6cf347b546c1bc9e8 17-May-2011 Eric Li <ericli@chromium.org> Revert "Merge autotest upstream from @5337 ~ @5360"

This reverts commit ce1b0620fddfb6efa33cc9441d9c91ce06b30de3.

Change-Id: Iab10c235ce76bfd45e7a2036ea2413729e34ae15
Reviewed-on: http://gerrit.chromium.org/gerrit/1033
Reviewed-by: Eric Li <ericli@chromium.org>
Tested-by: Eric Li <ericli@chromium.org>
ase_utils.py
ce1b0620fddfb6efa33cc9441d9c91ce06b30de3 16-May-2011 Eric Li <ericli@chromium.org> Merge autotest upstream from @5337 ~ @5360

Change-Id: I2052380f1fb1ff952977914cb6f516a31c076aba
Reviewed-on: http://gerrit.chromium.org/gerrit/1031
Tested-by: Eric Li <ericli@chromium.org>
Reviewed-by: Eric Li <ericli@chromium.org>
ase_utils.py
5c32c72beab5784abff82d07bf2618946c2445ec 05-May-2011 Dale Curtis <dalecurtis@chromium.org> Cleanup and slight refactoring of autoupdater.

After having to test many autoupdate changes recently, I've run into a
few headaches which require some cleanup.

Most notably, the hack we use to make sure stateful_update is recent is
a PITA. I've changed this to fail quietly and fall back to whatever
version of stateful_update is available on the host.

I've also made some various code cleanups.

BUG=none
TEST=Ran run_remote_tests.

Change-Id: Iebbbe89ff8483f412f1ce489ab7a9b13c03f3e90
Reviewed-on: http://gerrit.chromium.org/gerrit/801
Tested-by: Eric Li(李咏竹) <ericli@chromium.org>
Reviewed-by: Eric Li(李咏竹) <ericli@chromium.org>
ros/autoupdater.py
b2cbc63a39708de594bbb3ed199daada697526d0 12-May-2011 Dale Curtis <dalecurtis@chromium.org> Remove 2min delay after autoupdate.

http://crosbug.com/14954 is now fixed.

BUG=chromium-os:14954
TEST=none

Change-Id: I8f2473d18cae1dad1c1661334e09cfa483010adf
Reviewed-on: http://gerrit.chromium.org/gerrit/735
Tested-by: Eric Li(李咏竹) <ericli@chromium.org>
Reviewed-by: Eric Li(李咏竹) <ericli@chromium.org>
ros/autoupdater.py
a5b75c741c5d0fd13d7255373acd8a89e8eed7fb 06-May-2011 Dale Curtis <dalecurtis@chromium.org> Add two minute timeout after resetting update-engine.

Workaround for http://crosbug.com/14954

BUG=chromium-os:14954
TEST=Running in production.

Change-Id: Ieaee55465e2fb0cbce9d991076108b7305e5d4cb
Reviewed-on: http://gerrit.chromium.org/gerrit/403
Reviewed-by: Darin Petkov <petkov@chromium.org>
Tested-by: Dale Curtis <dalecurtis@chromium.org>
ros/autoupdater.py
a94c19cab7ab15579a9d7bf96f2a61be29d534f7 03-May-2011 Dale Curtis <dalecurtis@chromium.org> Add new update verifications per discussion with jrbarnette.

Per Richard:
1. Apply the update.
2. Determine the currently active kernel with 'rootdev -s': partition 3
-> KERN-A; partition 5 -> KERN-B.
3. Use 'cgpt show -P' to determine the priority of KERN-A (partition 2)
and KERN-B (partition 4).
4. Fail the test if the priority of the inactive root is not greater
than the priority of the active root.
5. Reboot the target.
6. Get the current software version from /etc/lsb-release.
7. Fail the test if the version from 6. doesn't match the expected
value.
8. Determine the currently active kernel again, as for step 2.
9. Fail the test if the currently active kernel isn't the new kernel.
10. Use 'cgpt show -S' and 'cgpt show -T' to determine the "tries" and
"success" flag values, respectively, for the currently active kernel.
11. Fail the test if (tries != 0 or success == 0) more than 60 seconds
after booting.

BUG=chromium-os:13761
TEST=Tested with autoserv --image on Mario.

Change-Id: Ieeca622edd0118690443f75c1e36a5ba2581e883
Signed-off-by: Dale Curtis <dalecurtis@chromium.org>
ros/autoupdater.py
22434d4311581dde7a3bb51eef03a27d757aa263 29-Apr-2011 Eric Li <ericli@chromium.org> Merge autotest upstream from @5318 ~ @5336

Change-Id: I454d3bf5cc2708d9c0ced86b4d932fe9ee79713d

BUG=None
TEST=None

Review URL: http://codereview.chromium.org/6883246
artesian_config.py
2eb800f7b1895983bbbd66b231101a5ade6bffab 22-Apr-2011 Eric Li <ericli@chromium.org> Enable autotest client package fetching based on updated image.

The new customization will enable autotest client to fetch a test package
from dev server based on its update url. This could avoid to pre-load all
client packages on stateful partition and shrinked its space from 450M ~ 90M
approximately.

It will only be activated after we add a fetch_location entry in global_config.ini.

Change-Id: I0f57a856b9d78c3245f1ff2a841acd98d6d3717e

BUG=None
TEST=server/autoserv -m IP {client,server}/tests/sleeptest/control --image update_url

carefully read autoserv and client DEBUG log to see packages were downloaded from the dev server.

Review URL: http://codereview.chromium.org/6883099
ite_packages.py
d656d56473f50b9c1a9f5e2b2f5a9472181ee342 20-Apr-2011 Eric Li <ericli@chromium.org> Merge remote branch 'autotest-upstream/master' into autotest-merge

Merged to autotest upstream @5317.

BUG=none
TEST=
1. utils/unittest_suite.py
2. utils/packager.py --all upload -r /tmp/pkgs
3. utils/compile_gwt_clients.py

enter_chroot
emerge-x86-generic autotest-*
emerge-arm-generic autotest-*

run_remote_test suite_Smoke
run_remote_test bvt

Review URL: http://codereview.chromium.org/6883035

Change-Id: I03240d8652ffdfde4d6c8fbf474e2fad7f3cda10
ase_job.py
ase_packages.py
bee23c2b0ca824c12c39e7a5a4cd4d2a313918b7 18-Mar-2011 Eric Li <ericli@chromium.org> Refactor site_power_status, power_strip modules into client/cros.

This is a re-submit of http://codereview.chromium.org/6627029

Change-Id: Id4de27435b06c81cc4ea087f175edc0f428fd81a

BUG=chromiumos:12633
TEST=grep the entire autotest repo and find out all source code which has site_power_status and power_strip and changed them.

Review URL: http://codereview.chromium.org/6710010
ower_strip.py
ite_power_status.py
1f288ee1967599a36af5afc0b7f37b5f96ee616c 15-Mar-2011 Dale Curtis <dalecurtis@chromium.org> Add stateful partition reset to upgrade process.

The --stateful_change=clean flag is working again for stateful updates. By adding the flag to our upgrade process we ensure that we're always working with a clean base for testing. No more out of space issues due to lingering core dumps or other files.

Change-Id: Iee205df9964bef49f47422b13d2adcf1f38a9dd4

BUG=chromium-os:11971
TEST=Tested flag manually on ToT public, ToT mario, RC mario, and RC agz. Will test code in production.

Committed: http://chrome-svn/viewvc/chromeos?view=rev&revision=85ce69e

Review URL: http://codereview.chromium.org/6021006
ros/autoupdater.py
c5b74af11b6cc8e7a4448f8c3e506e329aeca2ec 08-Mar-2011 Eric Li <ericli@chromium.org> Refactor site_fmap, flashrom_util and gbb_util module into client/cros.

Change-Id: I69da43763f17189ad8c5c447d4db69e13378b0ce

BUG=chromium-os:12633
TEST=grep the entire autotest repo and find out all source code which has site_fmap, flashrom_util and gbb_util and changed them.

Review URL: http://codereview.chromium.org/6623026
lashrom_util.py
bb_util.py
ite_fmap.py
d17ba2f7990b8d3ae3447cd69ccce7c1094ce3ee 06-Mar-2011 Hung-Te Lin <hungte@chromium.org> factory/write_protection: support EC in different layout

Some partners may use EC chips that does not follow our RO/RW layout design.
For such case, we need to allow using the layout information carried inside EC
itself, by FMAP structure.

The hardware components validation process will include a "EC Hash" so we can
trust that FMAP information is authorized, thus partners can't fake the RO
regions.

NOTE: site_fmap.py is also updated to support latest FMAP version number,
which is compatble to the original 1.0 implementation in data structure.

BUG=chrome-os-partner:2526,chrome-os-partner:2622
TEST=dry-run by simulation: putting a hand crafted EC image with FMAP1.1
and then verified the --wp-range is as expected.

Change-Id: Ia7629de125038b1c75aecbf4346da1c2acf618ec

Review URL: http://codereview.chromium.org/6628043
ite_fmap.py
41c65b13a1b67e64f0e1a5457dd3bf6b099e0514 06-Mar-2011 Benson Leung <bleung@chromium.org> Revert "Refactor site_power_status, power_strip modules into client/cros."

This reverts commit 7043cc1c9a93eec5b4aa4b00dd5efb4881c58322.

TBR=ericli@chromium.org

Change-Id: Id24616e1b680361020e58a8f417ff3b1909323b1
ower_strip.py
ite_power_status.py
7043cc1c9a93eec5b4aa4b00dd5efb4881c58322 05-Mar-2011 Eric Li <ericli@chromium.org> Refactor site_power_status, power_strip modules into client/cros.

Change-Id: Id9ab9ae36bde45d00992179ee66ac4888a5e2323

BUG=chromium-os:12633
TEST=grep the entire autotest repo and find out all source code which has site_power_status and power_strip and changed them.

Review URL: http://codereview.chromium.org/6627029
ower_strip.py
ite_power_status.py
c52f4021970ed2d3557a85922a64915df8b1eb35 04-Mar-2011 Hung-Te Lin <hungte@chromium.org> autotest/flashrom_util: use new flashrom syntax

The flashrom utility has a new parameter to control target selection which
prevents all potential race condition issue.

The usage of flashrom_util.py is still backward compatible after changing the
internal imlemenetation.

BUG=chromium-os:11339
TEST=Verified that all tests using flashrom_util still works on a factory test image:
hardware_EepromWriteProtect
factory_EnableWriteProtect
hardware_Components
factory_LogVpd
firmware_RomSize

Change-Id: Iaeeaa4d2f592fffb067ed96d7bd8dc17172f770e

Review URL: http://codereview.chromium.org/6594113
lashrom_util.py
e60f0e68fff1423fcc101470870b2dff80874270 02-Mar-2011 Eric Li <ericli@chromium.org> Refactor site_servo, site_vblock and site_gpio module into client/cros package(directory).

Change-Id: Iafa730a226541a20d628bb6619b2717c91ca8fbf

BUG=chromium-os:12633
TEST=grep the entire autotest repo and find out all source code which has site_servo, site_vblock, site_gpio and changed it.

I had performed some extra test steps to ensure factory image was properly
built.

1. cros_workon start autotest autotest-deps autotest-tests autotest-factory
2. build_packages && build_image
3. ./image_to_usb.sh --from=... --factory --force_copy --to /tmp/factory.bin
4. image_to_usb.sh factory.bin to an usb.
5. boot from usb and watch the factory test screen, this is my first time to see
this screen, impressive!
6. Back to chroot and ./mount_gpt_image.sh --from
../build/images/x86-generic/latest --image=chromiumos_factory_image.bin
7. then inspect /tmp/s/dev_image/usr/lo
cal/autotest/cros directory and
/tmp/s/dev_image/usr/local/autotest/site_tests/hardware_Components/hardware_Components.py.

Review URL: http://codereview.chromium.org/6596018
ite_gpio.py
ite_servo.py
ite_vblock.py
daf6ff0673466abb5b2cf65ca0c5dfe78360a082 02-Mar-2011 Eric Li <ericli@chromium.org> Merge remote branch 'autotest-upstream/master' into merge-upstream

rev 5270 and 5271.

BUG=None
TEST=Run BVT test.

Change-Id: I46ee56cea4861d9dd35b98f0a21536122714518c

[PATCH] After_iteration hooks are not executed if test fails.

Base_test's _call_run_once() does not execute the after_iteration hooks
if the test fails. It is important to execute the after_iteration hooks
in the event of a test failure since these hooks may be used to gather
important test logs to help diagnose the failure. This patch
modifies _call_run_once() to execute after_iteration hooks regardless of
the outcome of the test.

A new unit test was added to verify the behavior of _call_run_once(). The
patch was tested using unittest_suite.py to ensure that it did not break
other functionalities. It was also tested with an actual after_iteration
hook that collected test logs and the test was forced to fail.

Risk: High
Visibility: The order of when the after_iteration hooks has been changed
and may affect existing tests.
Bugs: None

Signed-off-by: Thieu Le <thieule@chromium.org>

git-svn-id: svn://test.kernel.org/autotest/trunk@5271 592f7852-d20e-0410-864c-8624ca9c26a4

KVM test: Make unattended setup copy finish.exe to floppies

Fixing yet another bug from the conversion of unattended
install to infrastructure.

Signed-off-by: Lucas Meneghel Rodrigues <lmr@redhat.com>

Review URL: http://codereview.chromium.org/6598041
est.py
est_unittest.py
64309ab9b7add21bbe904e06086001893f35d162 25-Feb-2011 Sameer Nanda <snanda@chromium.org> autotest: added initial cut of servo library and autotest

A very early cut of servo board support for autotest.

TEST=ran an emulated servod daemon for testing. The real servod is in the
process of being checked in by tbroch.
BUG=12452

Change-Id: I9b736cfc939cf47b8f0e7f066252f7f2519748a6

Review URL: http://codereview.chromium.org/6576061
ite_servo.py
b68db1a91ab3de61f7ece1fc8f3167f51130847d 24-Feb-2011 Benson Leung <bleung@chromium.org> Add check for charge_full or charge_now >> charge_full_design.

This should help us track situations where the battery
information is reported incorrectly.

Change-Id: Iac1a0921b338c9bb26255d154fd75a1f98a694ca
Signed-off-by: Benson Leung <bleung@chromium.org>
Signed-off-by: Sameer Nanda <snanda@chromium.org>

BUG=chrome-os-partner:2375
TEST=None

Review URL: http://codereview.chromium.org/6580020
ite_power_status.py
a82dc35ef721720e73db887d895bbd5cb835291c 23-Feb-2011 Eric Li <ericli@chromium.org> Merge remote branch 'autotest-upstream/master' into try-box1

Merged from rev @5236 ~ @5269.

This should complete the merge performed last week, with all the missed make patch file checked in.

BUG=none
TEST=
1. Manually update autotest-tests-9999.ebuild to include all new test cases under client/tests.
2. emerge-x86-generic with autotest-tests package.
3. emerge-arm-generic with autotest-tests package.
4. run_remote_tests bvt with emerged autotest against a chromeos netbook.

Change-Id: Ia8dd98af5472f38e723fa364d310dd40b06b6d58

KVM test: Remove last references to env variables on unattended setup

In the conversion from stand alone script to KVM autotest
infrastructure, we missed to convert some places inside
the code that looked for environment variables. Fix it
so providing windows CD keys gets the keys written on
the answer file again.

Signed-off-by: Lucas Meneghel Rodrigues <lmr@redhat.com>

git-svn-id: svn://test.kernel.org/autotest/trunk@5269 592f7852-d20e-0410-864c-8624ca9c26a4

KVM test: Fixing migration_control.srv to use new config API

Signed-off-by: Lucas Meneghel Rodrigues <lmr@redhat.com>

git-svn-id: svn://test.kernel.org/autotest/trunk@5268 592f7852-d20e-0410-864c-8624ca9c26a4

KVM test: Move enumerate test dicts code to kvm_utils.run_tests()

Signed-off-by: Lucas Meneghel Rodrigues <lmr@redhat.com>

git-svn-id: svn://test.kernel.org/autotest/trunk@5267 592f7852-d20e-0410-864c-8624ca9c26a4

KVM test: encapsulate unittests build and move it to parent class

In installer.py, we realized that we could benefit from having
the unittests build in pretty much all build types, after all,
if the userspace is sufficiently new we can run the unittests,
regardless of the way the binaries were build.

Encapsulate the unittests build and install to a method and
move that method to the base installer, making all install
methods benefit from it. Just take extra care to certify
the unittests are properly linked.

Signed-off-by: Lucas Meneghel Rodrigues <lmr@redhat.com>

git-svn-id: svn://test.kernel.org/autotest/trunk@5266 592f7852-d20e-0410-864c-8624ca9c26a4

Review URL: http://codereview.chromium.org/6551020
osts/base_classes.py
osts/base_classes_unittest.py
osts/common.py
ff52cb6ad1d2c9e57a03c4cf4f2bccfd510d3bc6 18-Feb-2011 Hung-Te Lin <hungte@chromium.org> autotest/site_gpio: Use new "crossystem" instead of gpio_setup.

The gpio_setup & chromeos_acpi approach has platform compatibility issue
and is deprecated. Factory test code should use the new "crossytem".

BUG=chrome-os-partner:2251
TEST=merged to both Alex and CR-48 with factory test image installed,
then verified following tests works as expected:
factory_DevelopRecovery (devrec) # recovery + devsw
factory_PreFinalCheck (final) # wp + devsw

Change-Id: I716a931ab5f6c6b28d8adff1f14c05f2a75758cc

Review URL: http://codereview.chromium.org/6532018
ite_gpio.py
3e5835c55f0ad5494515a7cd67563180af1ea97d 17-Feb-2011 Eric Li <ericli@chromium.org> Move site_verity module into client/cros.

Change-Id: If87ae5091efcbb30960cccc63c6d091129f9bbe9

BUG=none
TEST=run_remote_test with platform_DMVerityCorruption.

Review URL: http://codereview.chromium.org/6480097
ite_verity.py
8a12e800f05f6862fc39c6a45c9c57d9051b795e 17-Feb-2011 Eric Li <ericli@chromium.org> Merge remote branch 'cros/upstream' into master.

Merged to upstream autotest @5216~@5235.

Most of the stuff are from Olof's arm cross compiling and some misc changes from Dale Curtis.

As usual,the entire change list description is too big to enlist here. Please refer to upstream (http://autotest.kernel.org/browser) for more details.

BUG=none
TEST=1. emerge-arm-generic autotest autotest-deps autotest-tests
2. emerge-x86-generic autotest autotest-deps autotest-tests
3. run bvt from both src/third_party and inside emerged
chroot/..usr/local/autotest.
Seems fine. No regression found.

Review URL: http://codereview.chromium.org/6539001

Change-Id: I613929ec9c29849db5110ae8234bc68a80f4d2d5
ase_packages.py
osts/base_classes.py
976dabfb7ce66d4ba592c3a880b38fd3376136de 16-Feb-2011 Eric Li <ericli@chromium.org> Move rtc and sys_power module into client/cros directory and adjust test cases accordingly.

Change-Id: I62078db95afbefaf55d3f5a4f9fc518c1909a1f3

BUG=
TEST=I dont worry too much about the two individual client tests but I tested wifi server side test against the RF_ENCLOSURE inside our lab. Passed. So I assume the fix to site_wifitest is working.

Review URL: http://codereview.chromium.org/6525030
tc.py
ys_power.py
0522afe3a003cbef94049986c63da5d1597e21d8 15-Feb-2011 Hung-Te Lin <hungte@chromium.org> autotests: support new firmware memory map names

Since the new firmware uses different section names,
we need to add the mapping for legacy support.

BUG=chrome-os-partner:2255,chrome-os-partner:2316
TEST=manually invoked hardware_Components test on Alex platform.
The hash_ro_bios and hash_ro_ec can be genereated successfully.

Change-Id: Ie3f86523f70e893b104f8be8492cbc51e7a875e5

Review URL: http://codereview.chromium.org/6484031
lashrom_util.py
fb2b9f2c2a93db2093f5363a6650dd6b7a833e33 15-Feb-2011 Dale Curtis <dalecurtis@chromium.org> Revert stateful_change=clean and timeout=120.

--stateful_change=clean is stil broken. The chrome startup scripts try to copy the stateful partition to /tmp before cleaning. Which would be great except /tmp is a tmpfs (memory-based) file system and our stateful partition is pretty big. sosa is working on a fix, until then these two commits need to be rolled back:

http://codereview.chromium.org/6021006/
http://codereview.chromium.org/6516017/

Change-Id: If40ebf939c2c183729a8299e0001bfb15cdf1295

BUG=chromium-os:11971
TEST=Running now on cautotest.

Review URL: http://codereview.chromium.org/6480053
ros/autoupdater.py
0b57875e880c6f748b5c193ed0479a4890708a81 11-Feb-2011 Sam Leffler <sleffler@chromium.org> autotest: remove dependence on utils library

sys_power.py is used by the WiFiRoaming test suite and cannot depend
on client libraries. Revert the previous change so this is again true
and leave a comment for the next well-intentioned person.

BUG=n0ne
TEST=run WiFiRoaming, see it fail; fix; run again and see it works

Review URL: http://codereview.chromium.org/6463028

Change-Id: I8189c810795fcc4d75ae7f6908dda9597f23a9c7
ys_power.py
85ce69e1fb0f400bf1374cac622350ee4a178dcf 11-Feb-2011 Dale Curtis <dalecurtis@chromium.org> Add stateful partition reset to upgrade process.

The --stateful_change=clean flag is working again for stateful updates. By adding the flag to our upgrade process we ensure that we're always working with a clean base for testing. No more out of space issues due to lingering core dumps or other files.

Change-Id: Iee205df9964bef49f47422b13d2adcf1f38a9dd4

BUG=chromium-os:11971
TEST=Tested flag manually on ToT public, ToT mario, RC mario, and RC agz. Will test code in production.

Review URL: http://codereview.chromium.org/6021006
ros/autoupdater.py
793f912fe362a37125c4ef719debe35666c61987 05-Feb-2011 Dale Curtis <dalecurtis@chromium.org> Support dev builds.

First draft for this change. Depending on how we decide to archive dev builds this may change.

Change-Id: I4e167967e9c343d2582275075b8eb1291962a02f

BUG=chromium-os:11712
TEST=Ran w/ lab_test tool on cautotest.

Review URL: http://codereview.chromium.org/6312162
ros/autoupdater.py
861b2d54aec24228cdb3895dbc40062cb40cb2ad 04-Feb-2011 Eric Li <ericli@chromium.org> Merge remote branch 'cros/upstream' into master

Merged to upstream autotest @4749~@5215.

The entire change list description is too big to enlist here. Please refer to upstream (http://autotest.kernel.org/browser) for more details.

BUG=
TEST=emerged both x86 and arm build.
Tested emerged x86 build bvt against a chromeos device.

Review URL: http://codereview.chromium.org/6246035

Change-Id: I8455f2135c87c321c6efc232e2869dc8f675395e
arrier_unittest.py
ase_barrier.py
ase_barrier_unittest.py
ase_job.py
ase_utils.py
ase_utils_unittest.py
ontrol_data.py
rror.py
ogging_manager.py
agic.py
oftware_manager.py
est.py
tils.py
tils_unittest.py
50618caef7d4ca20532f505013cae19e0f78600d 28-Jan-2011 Sean O'Connor <seano@chromium.org> Basis for cryptohome+power_SuspendResume stress test.

BUG=chromeos:2172
TEST=Manually ran on my L13.

Review URL: http://codereview.chromium.org/3412036

Change-Id: I04d7e4588fd08b13edaf59986f40121c3c39257e
tc.py
ys_power.py
d65b77484ec587f6122fecffcf78f2f19046a4e1 27-Jan-2011 Dale Curtis <dalecurtis@chromium.org> Revert bash change now that Autotest is not mounted.

This change is no longer necessary now that Autotest runs from /usr/local/Autotest. Rolling it back to keep better upstream compatibility.

Change-Id: I989ec69d1018ea75820015bd3f821c6e13b401c5

BUG=chromium-os:9425
TEST=Ran run_remote_tests.

Review URL: http://codereview.chromium.org/6257020
tils.py
b87193cee692e7332a499deca05766252607a549 20-Jan-2011 Hung-Te Lin <hungte@chromium.org> autotest: workaround GPIO polarity information and hard-code Mario GPIO settings

The GPIO polarity will be handled by chromeos_acpi driver in the future;
however for current Mario and new platforms, reading *.attr directly provides a
quick solution.

NOTE: Mario has some polarity information bug in current BIOS, so it's listed as
a special case.

BUG=chrome-os-partner:1940,chrome-os-partner:1974
TEST=Manually built factory image, and verified behavior of tests factory_DeveloperRecovery
and factory_PreFinalCheck still working fine on Mario.
Also verified this new CL fixed GPIO factory tests for platform A*x.

Change-Id: I63c902a71ad1777dd7163322533eab6853b0d7ad

Review URL: http://codereview.chromium.org/6306003
ite_gpio.py
c6b8b2ad5cb268206ea5440425186350f3215c07 20-Jan-2011 Hung-Te Lin <hungte@chromium.org> autotest: isolate GPIO access to a standalone module

There were many tests reading GPIO, and each has written their own small
variants. Since GPIO configuration and reading method may change in the future,
we should make it a standalone module.

This is based from: http://codereview.chromium.org/6005013
and fixed the issue that gpio.setup() should not occur in
autotest setup stage, because it will be executed in USE=buildcheck.

BUG=chrome-os-partner:1974
TEST=1. build a mario factory image and then passed factory_DeveloperRecover,
factory_PreFinalCheck, factory_Final, hardware_EepromWriteProtect in UI.
Also checked manually running hardware_GPIOSwitches works fine.
hardware_DeveloperRecovery is deprecated and will be removed in future.
2. USE=buildcheck emerge-x86-generic autotest-tests
# before fix: FAILED (GPIO Setup Error), after fix: success

Review URL: http://codereview.chromium.org/6277012

Change-Id: Iaf222240f2b111ffa6bd815deb5e4230c749069f
ite_gpio.py
2ca8207fd236ba44b9b6222a7a4ee6ecae4c2688 19-Jan-2011 Will Drewry <wad@chromium.org> site_verity, platform_DMVerityCorruption: bring into sync with current system

Two changes to make this more of a contender for joining the BVT suite:
- support per target error behavior to ensure we don't randomly reboot test machine
- swap to sha1 from sha256 since we use sha1 on the live systems today
- fix up the initialize call to properly set features

This work was meant to be done as part of 5411.

BUG=chromium-os:5411
TEST=ran platform_DMVerityCorruption on ToT (kernel-next)

Change-Id: Iccc8656288ded148812ec91972dd6e02451fbfee

Review URL: http://codereview.chromium.org/6261006
ite_verity.py
5e90671da36c47f33573476bfe758b8d9b7aab2f 19-Jan-2011 Hung-Te Lin <hungte@chromium.org> autotest: isolate GPIO access to a standalone module

There were many tests reading GPIO, and each has written their own small
variants. Since GPIO configuration and reading method may change in the future,
we should make it a standalone module.

BUG=chrome-os-partner:1974
TEST=build a mario factory image and then passed factory_DeveloperRecover,
factory_PreFinalCheck, factory_Final, hardware_EepromWriteProtect in UI.
Also checked manually running hardware_GPIOSwitches works fine.
hardware_DeveloperRecovery is deprecated and will be removed in future.

Change-Id: I2220309643b81c79f3a6b7786bec01495a6f2ff1

Committed: http://chrome-svn/viewvc/chromeos?view=rev&revision=b9ea55e

Committed: http://chrome-svn/viewvc/chromeos?view=rev&revision=18154f6

Review URL: http://codereview.chromium.org/6005013
ite_gpio.py
18154f60f3dcfb5cd29284fae5a9fa4c0ce98075 19-Jan-2011 Hung-Te Lin <hungte@chromium.org> autotest: isolate GPIO access to a standalone module

There were many tests reading GPIO, and each has written their own small
variants. Since GPIO configuration and reading method may change in the future,
we should make it a standalone module.

BUG=chrome-os-partner:1974
TEST=build a mario factory image and then passed factory_DeveloperRecover,
factory_PreFinalCheck, factory_Final, hardware_EepromWriteProtect in UI.
Also checked manually running hardware_GPIOSwitches works fine.
hardware_DeveloperRecovery is deprecated and will be removed in future.

Change-Id: I2220309643b81c79f3a6b7786bec01495a6f2ff1

Committed: http://chrome-svn/viewvc/chromeos?view=rev&revision=b9ea55e

Review URL: http://codereview.chromium.org/6005013
ite_gpio.py
13f92304c32ca09bff73d6be98da528cd7e6a59d 18-Jan-2011 Jason Glasgow <jglasgow@chromium.org> Revert "autotest: isolate GPIO access to a standalone module"

This reverts commit b9ea55e695992d6d46f6d1970989959feafcb4ad.

BUG=11034
TEST=none

Review URL: http://codereview.chromium.org/6378002

Change-Id: If06af51c122878ade4290517477d91e84f86bf66
ite_gpio.py
b9ea55e695992d6d46f6d1970989959feafcb4ad 18-Jan-2011 Hung-Te Lin <hungte@chromium.org> autotest: isolate GPIO access to a standalone module

There were many tests reading GPIO, and each has written their own small
variants. Since GPIO configuration and reading method may change in the future,
we should make it a standalone module.

BUG=chrome-os-partner:1974
TEST=build a mario factory image and then passed factory_DeveloperRecover,
factory_PreFinalCheck, factory_Final, hardware_EepromWriteProtect in UI.
Also checked manually running hardware_GPIOSwitches works fine.
hardware_DeveloperRecovery is deprecated and will be removed in future.

Change-Id: I2220309643b81c79f3a6b7786bec01495a6f2ff1

Review URL: http://codereview.chromium.org/6005013
ite_gpio.py
bdaab795cffa33f9a37995bb283047cb03699272 07-Jan-2011 Kenneth Waters <kwaters@chromium.org> Revert "Merge remote branch 'cros/upstream' into autotest-rebase"

This reverts commit 7edb30498d75a29a3287fe07070f2b51a116c5d4.

TEST=Built for tegra2_seaboard
BUG=10756

Review URL: http://codereview.chromium.org/6124004

Change-Id: Ifcd1a2279f5a62b99552a8f961c1430889a3a928
ase_barrier.py
ase_barrier_unittest.py
ase_job.py
ase_utils.py
ase_utils_unittest.py
ontrol_data.py
ogging_manager.py
agic.py
oftware_manager.py
tils.py
7edb30498d75a29a3287fe07070f2b51a116c5d4 07-Jan-2011 Eric Li <ericli@chromium.org> Merge remote branch 'cros/upstream' into autotest-rebase

Merged to upstream trunk@5066, from trunk@4749.

There is no way I could enlist each individual CL from the upstream here since it will blow up the changelist description field.

BUG=
TEST=
Had patched this CL into a fresh cut client to avoid any side effect.
run_remote_test bvt from both emerged location and third_party/autotest/file.

Both test passed!

We should also keep any eye on this to see how it gets propagated into cautotest server.
TBR=dalecurtis

Change-Id: I72f2bc7a9de530178484aea1bfb5ace68bcad029
ase_barrier.py
ase_barrier_unittest.py
ase_job.py
ase_utils.py
ase_utils_unittest.py
ontrol_data.py
ogging_manager.py
agic.py
oftware_manager.py
tils.py
d3e8a3bf27615ef88c80efdf7b3dcbf52c30f071 23-Dec-2010 Eric Li <ericli@google.com> Add support to import in parameterized test.

Also add a dummy parameterized test case for future reference.

Change-Id: Ib71ee181d38300bd39d8e40022ba6bcc9b9b8583

BUG=
TEST=run utils/site_test_importer.sh, then login to database
select * from afe_test_parameters;

Review URL: http://codereview.chromium.org/6033003
ontrol_data.py
c4d8f4aab4e434fcb1a9fb33931768ffebfb8f1c 10-Dec-2010 Eric Li <ericli@google.com> Move site_httpd, site_uim, site_login and site_cryptohome into cros/ dir.

And change import site_utils to import utils as I touched more source code.

Change-Id: I18bbac502c67ddedaccc7ef034c4f8c8b204506e

BUG=7236
TEST=BVT

Review URL: http://codereview.chromium.org/5680003
ite_httpd.py
ite_httpd_unittest.py
ite_httpd_unittest_server.key
ite_httpd_unittest_server.pem
ite_ui.py
3061946f8c98159c52b481b663a14aa8d7149e19 09-Dec-2010 Dale Curtis <dalecurtis@chromium.org> Remove unnecessary double-shell.

Default shell for ChromeOS test image is bash. The line in question causes an extra instance of bash to be spawned.

Removing the line fixes the shell-init errors.

Change-Id: Icea100dc3c4f5dbf12f2185213a64afe528cacbf

BUG=chromium-os:9425
TEST=Ran in production. Errors disappeared.

Committed: http://chrome-svn/viewvc/chromeos?view=rev&revision=2e6c8a2

Review URL: http://codereview.chromium.org/5515009
tils.py
2e6c8a2fb26cc452798f7c934f9b17828c36b1b9 09-Dec-2010 Dale Curtis <dalecurtis@chromium.org> Remove unnecessary double-shell.

Default shell for ChromeOS test image is bash. The line in question causes an extra instance of bash to be spawned.

Removing the line fixes the shell-init errors.

Change-Id: Icea100dc3c4f5dbf12f2185213a64afe528cacbf

BUG=chromium-os:9425
TEST=Ran in production. Errors disappeared.

Review URL: http://codereview.chromium.org/5515009
tils.py
cb6a91adb049e9d5fe42a9adc4e570a988203e65 09-Dec-2010 Eric Li <ericli@google.com> Move site_ui_test, site_auth_server and site_dns_server into client/cros.

And fall back import site_utils into import utils, since there need to directly import site_utils at all.
import site_utils is taken care inside utils.

Change-Id: I4bb989c0fb636efd57ae1af185fd8e6fa6067463

BUG=7236
TEST=bvt and regression tests.

Review URL: http://codereview.chromium.org/5649004
ite_auth_server.py
ite_auth_server_unittest.py
ite_dns_server.py
9da65c483ef9368379f8918c17fd4ede63b887cf 07-Dec-2010 Eric Li <ericli@google.com> Revert "Revert "Create a cros directory under client, and start moving things into it.""

This reverts commit 985a034fc1fdec67841dd73d1913b0020e689423.

Resubmit http://codereview.chromium.org/5519008/
along with http://codereview.chromium.org/5568008/ this time.

Change-Id: I1b5b10ba3e4f9b13e0632cd45f27210bcb13b2a0

TBR=seano
ros/autoupdater.py
ite_auth_server.py
ite_auth_server_unittest.py
985a034fc1fdec67841dd73d1913b0020e689423 07-Dec-2010 Sean O'Connor <seano@chromium.org> Revert "Create a cros directory under client, and start moving things into it."

This reverts commit 4b1222e930ef86507beb7232e7b7400d043f95ba.

Looks like something broke with autotest module imports in ericli's renaming CL.

the preflight smoke test complained:

Running client test client/site_tests/suite_Smoke/controceback (most recent call last):
File "./server/autoserv", line 35, in <module>
from autotest_lib.server import server_job, utils, autoserv_parser, autotest
File "/build/x86-generic/usr/local/autotest/server/server_job.py", line 11, in <module>
from autotest_lib.client.bin import sysinfo
File "/build/x86-generic/usr/local/autotest/client/bin/sysinfo.py", line 6, in <module>
"site_sysinfo", base_sysinfo.base_sysinfo)
File "/build/x86-generic/usr/local/autotest/client/common_lib/utils.py", line 1412, in import_site_class
res = import_site_symbol(path, module, classname, None, modulefile)
File "/build/x86-generic/usr/local/autotest/client/common_lib/utils.py", line 1376, in import_site_symbol
module = import_site_module(path, module, modulefile=modulefile)
File "/build/x86-generic/usr/local/autotest/client/common_lib/utils.py", line 1358, in import_site_module
return __import__(module, {}, {}, [short_module])
File "/build/x86-generic/usr/local/autotest/client/bin/site_sysinfo.py", line 5, in <module>
from autotest_lib.client.cros import constants as chromeos_constants
ImportError: No module named cros

BUG=
TEST=

Review URL: http://codereview.chromium.org/5592008

Change-Id: I440b4e1df68bad73d0592870653c94c55a1a6b8d
ros/autoupdater.py
ite_auth_server.py
ite_auth_server_unittest.py
4b1222e930ef86507beb7232e7b7400d043f95ba 07-Dec-2010 Eric Li <ericli@google.com> Create a cros directory under client, and start moving things into it.
The first step only includes chromeos_constants.py. But you get the idea how the others will look like.

Change-Id: I0a601a53e4d9a43f06e9f9f67429ac780f2562d0

BUG=7236
TEST=bvt test

I dont worry too much about occasional break ups caused by this, since I will continues working on this refactoring and this is just the beginning.

Review URL: http://codereview.chromium.org/5519008
ros/autoupdater.py
ite_auth_server.py
ite_auth_server_unittest.py
538b704621d22836e8e627b43f6df76408be3843 04-Dec-2010 Eric Li <ericli@google.com> This is the first CL to refactor autotest to move all cros related modules into a cros dir.

Change-Id: Ib729f30aea39f9fa6ba6519b5baec6babea1f01d

BUG=7326
TEST=run server/autoserv --image= with both client and server sleeptest.

Review URL: http://codereview.chromium.org/5626007
hromiumos_updater.py
ros/__init__.py
ros/autoupdater.py
ros/common.py
f396e0deacfd5f3ab781300b129850e9da8ed86b 17-Nov-2010 vbendeb <vbendeb@chromium.org> Enhance BT tests to check inputs from different devices.

This change adds to the standard page generator (in
site_ui.py) the ability to generate checkboxes and text
fields as requested by the user.

The BluetoothSemiAuto rtest is being enhanced to allow the
operator to indicate that all input devices (Bluetooth and
build-in mouse and keyboard) can coexist.

If a checkbox is left unchecked or a text field is left
empty, the test fails.

Change-Id: I7733758ec1f1f536fe9fb2dad198a06ddcea64ac

BUG=chromium-os:3695, chromium-os:3696
TEST=see below:

1. Ran
./run_remote_tests.sh --remote=172.22.75.138 BluetoothSemiAuto

Observed that it is still possible to connect with a BT
mouse (did not try connecting with a BT keyboard as I don't
have one). If both checkboxes are checked and bot text input
fields have some characters in them, the auto test passes.

If one of these conditions is not met - the test fails
reporting the problem as appropriate:

vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
TestFail: Bluetooth input errors:
no input in "BT Keyboard" field
no input in "Built In Keyboard" field
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2. As a regression test ran

./run_remote_tests.sh --remote=172.22.75.138 TearTest
./run_remote_tests.sh --remote=172.22.75.138 SanAngeles

Review URL: http://codereview.chromium.org/5194001
ite_ui.py
e0493a4af57c1a73376a7bafaed542c01f588196 15-Nov-2010 Eric Li <ericli@chromium.org> Merge remote branch 'cros/upstream' into tempbranch

BUG=
TEST=

Review URL: http://codereview.chromium.org/4823005

Change-Id: I5d56f1c10d0fce7f9d7dc3ad727ea52dcb9b2d6c
utotemp.py
ase_packages.py
oottool.py
ontrol_data_unittest.py
lobal_config_unittest.py
tils.py
b1aeebfeae3da3f1f4d2176b29ee4f5a3d5172f8 12-Nov-2010 Daniel Kurtz <djkurtz@chromium.org> Remove log_watcher.py, and modify site_login and site_ui_test to use site_log_reader.

BUG=chromium-os:8281
TEST=Regression check: all tests of suite_Smoke should pass as before, in particular:
login_CryptohomeMounted
login_LoginSuccess
login_BadAuthentication
desktopui_ChromeFirstRender
login_CryptohomeIncognitoMounted

Review URL: http://codereview.chromium.org/4849001

Change-Id: I4269b5391cdde291ad0d4a06b8ccc83e863aae54
og_watcher.py
fa61689967461297dc51565a51f4061312cb0f7d 11-Nov-2010 Ken Mixter <kmixter@chromium.org> autotest: Disable log rotation while tests are running

Change-Id: I04f397d22581048ef4d66aa24d7be1874d1aa83f

TEST=Rotate logs every second while running bvts
BUG=8159

Review URL: http://codereview.chromium.org/4686003
og_watcher.py
2d11f27e85bf499849de0534c2123976d9d598b8 04-Nov-2010 Hung-Te Lin <hungte@chromium.org> autotest: enable and verify write protection by status registers

Bit-by-bit verification (hardware_EepromWriteProtect) should be only in
qualification process; in factory process, we only need to check if the WP
status registers are correctly configured and protected.

BUG=chrome-os-partner:1569
TEST=manually executed on a device with following conditions:
(1) hardware WP=off => test failed (expected)
(2) hardware WP=on, software WP=off => test pass, WP enabled
(3) hardware WP=on, software WP=on, range set to correct => test pass
(4) hardware WP=on, software WP=on, range set to incorrect => test fail (expected)

Change-Id: I1b104ead04cb7799806514f04142bf623e775e8e

Review URL: http://codereview.chromium.org/4481001
lashrom_util.py
d5b63872ceeb2bc62f3e0e115a24f71a2e3c2767 01-Nov-2010 Chris Masone <cmasone@chromium.org> Make our http(s) server multithreaded

A user-agent like chrome may make simultaneous connections to an HTTPS server, and then send data only on the one that the server believes to be the second. If the server is blocking waiting for data on the first connection, it gets hung. Our test https server was doing just that. So, make it multithreaded.

Change-Id: I537fb633e236b826f85752b206397831b9124ea8

Revert "[autotest] Temporarily remove login tests from suite_Smoke"

This reverts commit 353c17eba46b80c19b15e8a9c0a8635619f3262f.

BUG=8383
TEST=suite_Smoke (with login tests added back in) works again!

Review URL: http://codereview.chromium.org/4205006
ite_httpd.py
981117a1c92160b8cbf4341913194392813d8948 25-Oct-2010 Paul Stewart <pstew@chromium.org> Monitor errno for EBUSY on write to waekalarm

Some bug in later builds/firmware causes the wakealarm to still be set
after we wake up from sleep using RTC alarm. Work around this issue by
monitoring the result of our write to the wakealarm, and attempt to
clear if we get EBUSY.

I submitted a bug to snanda for either adding a workaround to
powerd_suspend, or perhaps running down the root cause.

BUG=none
TEST=Rerun WiFiRoaming test suite, which was hanging last week

Review URL: http://codereview.chromium.org/4095001
tc.py
98fc3f1cf742731e79f33bad379f8bb584d93413 12-Oct-2010 Hung-Te Lin <hungte@chromium.org> autotest: Log VPD data for further analysis

The report of VPD should be isolated from hardware_Components.
Also added the key-value style report by running mosys.

BUG=none
TEST=manually executed on a device with VPD data: ../bin/control factory_LogVpd/control;
Then verified the log should appear VPD data like:
11:43:39 ERROR| FACTORY: VPD Data: RO_VPD (gzipped hex): 1f8b0800...
11:43:40 ERROR| FACTORY: VPD Data (key-value): table_type="241" product_uuid="01...

Change-Id: I8da0e8cb6856a3eef52a082767b7df88b3a3731d

Review URL: http://codereview.chromium.org/3736002
lashrom_util.py
ae88d90f16f3ff72ddcc104163170611e25e2b14 12-Oct-2010 Hung-Te Lin <hungte@chromium.org> autotest: refine firmware hash calculation

Isolate the firmware calculation stuff from hardware_Components
and make it a standalone module.

Auxiliary changes include:
- FlashromUtility supports operating from/to file instead of system flash
- hardware_Components now relies on firmware_hash.py for hash of firmware
- VPD reporting is temporary removed (in ToT) and will be a standalone test (in other CL)

NOTE: The firmware_hash.py simply generates firmware hash by a static file.
We may need another CL to have a script that dynamically generates hash of
matching GBB/HWID by a component description file like
http://codereview.chromium.org/3723002

TEST=PYTHONHOME=../../common_lib; ./firmware_hash.py bios BIOSIMAGE.fd
BUG=none

Change-Id: I88f95f2eea8bbdc42005b2d5c1589b6b8bfd2d8f

Review URL: http://codereview.chromium.org/3669009
lashrom_util.py
00996a6f9d77e17be8ff1adff935114d0ef53eeb 07-Oct-2010 Hung-Te Lin <hungte@chromium.org> autotest: fix error in flashrom_util.verify_sections

The layout information was not properly passed from object
member, and that would cause programs calling flashrom_util
(eg, factory_WriteGBB) to fail.

BUG=none
TEST=applied to a factory image and run HWID test (passed)

Change-Id: Ia707f117017be992bca843fd9c7ed2d1a43d7414

Review URL: http://codereview.chromium.org/3596010
lashrom_util.py
6f27d4f22a1ba5063968b8c322fa0845f3279ade 29-Sep-2010 Eric Li <ericli@chromium.org> Merge remote branch 'cros/upstream' into tempbranch3

Merge to trunk@4817

BUG=
TEST=

Review URL: http://codereview.chromium.org/3554003

Change-Id: I83376bc7d28104ec2678e157eadbe7df7c05c0e0
og.py
evision_control.py
tils.py
tils_unittest.py
7a35c20dc0072560a5fa4f88c63f2dc3774cc43b 29-Sep-2010 Hung-Te Lin <hungte@chromium.org> Add EC hash in hardware_Components database

In order to check EC in factory process,
we must add a hash field from entire EC.

NOTE: since some EC may contain special timestamp/calibration
fields, those parts must be padded with constant before calculating
hash.

BUG=chromium-os:1843
TEST=manually:
1. run hardware_Components factory test by: ../../bin/autotest control
2. check ../../results/default/hardware_Components/results/system_components
Expected: a long hash number in field 'hash_ec_firmware'.

Change-Id: I5bbe41c8d6081253bf78d047e2a450b13d6d802f

Review URL: http://codereview.chromium.org/3493016
lashrom_util.py
517d95a1ef4edb04da427763f86068a447d45ec7 29-Sep-2010 Benson Leung <bleung@chromium.org> Revert "Merge remote branch 'cros/upstream' into tempbranch2"

This reverts commit 25fc6d1f28e54c46689f12d3b93c2540ef45323a.

TBR=ericli@chromium.org

Review URL: http://codereview.chromium.org/3541002

Change-Id: Ib0165b19bfdf02264f8a6a74ddf3ae74c8c0f7df
og.py
evision_control.py
tils.py
tils_unittest.py
7a0e9d4a32182a5e2a585ec5e8e8985cc846d30f 29-Sep-2010 Paul Stewart <pstew@chromium.org> Exported utility functions for RTC and system sleep

Converted the suspend and RTC functions from module methods
in bin/base_utils.py to separate modules in common_lib/ which
have no cross dependencies. The downside to this apprach is
that we don't use utils.run() to call powerd_supspend, which
loses us a little logging. This will allow otherse to use
these modules in non-autotest-embedded test scripts.

BUG=none
TEST=rerun power_Resume test using run_remote_tests, manually grep
for all moved function names in the rest of the autotest source tree.

Review URL: http://codereview.chromium.org/3516004
tc.py
ys_power.py
25fc6d1f28e54c46689f12d3b93c2540ef45323a 29-Sep-2010 Eric Li <ericli@chromium.org> Merge remote branch 'cros/upstream' into tempbranch2

Merged to trunk@4816.

BUG=
TEST=we will build a new autotest server instance, and keep cautotest running and then later do a cname switch.

Review URL: http://codereview.chromium.org/3511003

Change-Id: Iee5f52f45f28f84927d6c6f9a74edc370d40288a
og.py
evision_control.py
tils.py
tils_unittest.py
88135049140d13f6fa6585e17fb335c6f6f61dee 23-Sep-2010 Dave Tu <dtu@chromium.org> Add Sentry power strip control and cryptohome/sync stress test

Change-Id: If0c450aef0fe722f7af5720026e5d511cff9b0b7

BUG=chromium-os:6993
TEST=none

Review URL: http://codereview.chromium.org/3465002
ower_strip.py
7d57299018d3fde33b2500d2741f587142e4b9e0 23-Sep-2010 Darin Petkov <petkov@chromium.org> AU: moved updated marker from /tmp to /var/run.

Related CL: http://codereview.chromium.org/3404015/show

BUG=6578
TEST=none

Change-Id: I637c69cc92457685e9276a52f215535acd153cdc

Review URL: http://codereview.chromium.org/3382017
hromiumos_updater.py
5605b14f8d6648a217bb9e4cd93236c0bf3b6a4a 21-Sep-2010 Hung-Te Lin <hungte@chromium.org> Remove default BIOS flashrom memory layout

The memory layout of new BIOS firmware seem to change often
in the future. To prevent confusion, the default layout
description for BIOS should be removed.

BUG=none
TEST=none

Change-Id: Ib273e761bbd5bc25f2daa22b421de26f421cbcd0

Review URL: http://codereview.chromium.org/3450016
lashrom_util.py
93f250eeb0fc11d16d9156cc84fb4999b92a8939 14-Sep-2010 Hung-Te Lin <hungte@chromium.org> Fix factory test

On last integration we found two bugs which caused factory test
program to halt. Here's the fixes.

gbb_util: variable should be initialized.
factory_UploadLogs: a variable has changed from global to class scope.

BUG=none
TEST=manually

Change-Id: I40a24a6ed6601803a04352859e15886536f4eef0

Review URL: http://codereview.chromium.org/3433001
bb_util.py
3e627110f30b543950d46157ac3cfed1be7c5d91 13-Sep-2010 Tom Wai-Hong Tam <waihong@google.com> Generate GBB during factory instead of writing a prebuilt GBB.

Currently we need to prebuild GBBs off-line according to the values (HWID,
keys, and BMPFV) in component lists. During factory, it write the prebuilt
GBB to BIOS. This CL is to generate the GBB during factory, not need to
prebuild it.

TEST=run factory_WriteGBB in factory test and reboot to see change.

Review URL: http://codereview.chromium.org/3350021

Change-Id: I37bee5fbd1da56fa08682c2f7eff9f16bead9b4b
bb_util.py
5b7dd22f4d5f5da5f715dba7098e85f344cef621 07-Sep-2010 Tom Wai-Hong Tam <waihong@google.com> Add components which is requried to generate a GBB during factory.

As the conclusion after discussed with Nick, Bill, and Randall, we need the
following components in the component list: 'key_recovery', 'key_root', 'data_bitmap_fv', 'data_display_geometry', 'data_recovery_url'. Using this data can
automatically generate a GBB during factory instead of a handcraftied one.

The rootkey and recoverykey are used to detect existing keys in the firmware in
order to differentiate the same BOM but different keys (dev or pvt keys).

TEST=run it on Mario and compare with keys
BUG=chrome-os-partner:501

Change-Id: If84686223cf769845e06889463fa2e1b51033d72

Review URL: http://codereview.chromium.org/3343003
lashrom_util.py
bb_util.py
ea04f565c5099125a5ba04f6b64122421859deaa 03-Sep-2010 Tom Wai-Hong Tam <waihong@google.com> Fix semantic bugs in flashrom_util.py

Change-Id: I41e3c919e7d084e17a9da6a9c32edffff6061d31

Review URL: http://codereview.chromium.org/3367006
lashrom_util.py
11a9e13ac8ca02d10fd8d14269e744a341ffa015 02-Sep-2010 Hung-Te Lin <hungte@chromium.org> Add flashrom memory layout detection by FMAP (using fmap_decode)

To support arbitrary memory layout in the future, we need to support
fmap_decode.

Before starting using / testing:
(1) you must have fmap_decode ( http://code.google.com/p/flashmap/ ) installed and in PATH.
on systems without fmap_decode, flashrom_util will fallback to internal layout.
(2) you must have a BIOS firmware image with FMAP. (most recent images already have that - you can execute fmap_decode FILENAME to check)

To use it <flashrom_util>:
Add an extra image (flashrom image content, usually read by flashrom_util::read_whole() ) parameter when you call flashrom_util::detect_*_layout.
If fmap_decode is found in system PATH and the image does have fmap, flashrom_util will use its layout instead.

To use it <FlashromUtility>:
No need to change anything. FlashromUtility will try to use fmap_decode if it's available.

To verify / test:
image = open(firmware_filename).read()
<base test>
# check the if the output offset/names are the same by compile_layout / decode_fmap_layout to same image.
print compile_layout(DEFAULT_CHROMEOS_FIRMWARE_LAYOUT_DESCRIPTIONS['bios'], len(image))
print decode_fmap_layout(DEFAULT_CHROMEOS_FMAP_CONVERTION, image)

<integrated test>
# without image, only internal layout is used.
print flashrom.detect_chromeos_bios_layout(len(image))
# with image, fmap will be tried.
print flashrom.detect_chromeos_bios_layout(len(image), image)

BUG=chrome-os-partner:920
TEST=manual

Change-Id: I810a3a3ac8885ff4ac245c77d5b0ea8bcaec86de

Review URL: http://codereview.chromium.org/3246002
lashrom_util.py
ite_fmap.py
7232d865750d96b9c62c4cf0e965cd66a752e686 02-Sep-2010 Tom Wai-Hong Tam <waihong@google.com> Get size using --get-size in flashrom_util.py instead of reading whole flash.

Also restore to BIOS after running firmware_RomSize test.

TEST=run firmware_RomSize test in AGZ and non-Mario.

Change-Id: I876842b9670cc0c2294781e859e239a90598d33e

Review URL: http://codereview.chromium.org/3296001
lashrom_util.py
267c00b1f853c51bc5df2faec3d14e85e6b385a9 31-Aug-2010 Sean O <seano@chromium.org> Cleanups to test updater code. Handle service restart better, copy update-engine logs after tests.

Change-Id: Ie5bd40996753bfd4c27ab2ba34d5fd525b1566f6

Review URL: http://codereview.chromium.org/3257003
hromiumos_updater.py
c053dfe48a704361c86333fee1883a4f83e9e5a4 23-Aug-2010 Sean O <seano@chromium.org> call update_engine_client and wait on exit code.

Change-Id: I54fd8f30c391cd44f25e827883628484c22716ab

Review URL: http://codereview.chromium.org/3175034
hromiumos_updater.py
ef0c4d56c2b98b41e05c4bb5eb5f34039d59d271 18-Aug-2010 Eric Li <ericli@google.com> Merge remote branch 'origin/upstream' into tempbranch
82e11963ab0d343bff7fc3d651a9c95d55723662 18-Aug-2010 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> Good, we do plan to patch lots of existing client tests. And this is just a
beginning.

Now I include disktest and dbench just as examples:



On Fri, Aug 13, 2010 at 1:54 PM, John Admanski <jadmanski@google.com> wrote:

> Looks fine. It wouldn't hurt to see a patch to at least one test to have it
> make use of this function.
>
> -- John
>
>
> On Fri, Aug 13, 2010 at 1:53 PM, Eric Li(???) <ericli@google.com> wrote:
>
>> Thanks for the quick response. Please take another look.
>>
>>
>> Index: client/common_lib/utils.py
>> ===================================================================
>> --- client/common_lib/utils.py (revision 4747)
>> +++ client/common_lib/utils.py (working copy)
>> @@ -1165,6 +1165,16 @@
>> system('%s %s' % (configure, ' '.join(args)))
>>
>>
>> +def make(extra='', make='make', timeout=None, ignore_status=False):
>> + """
>> + Run make, adding MAKEOPTS to the list of options.
>> +
>> + @param extra: extra command line arguments to pass to make.
>> + """
>> + cmd = '%s %s %s' % (make, os.environ.get('MAKEOPTS', ''), extra)
>> + return system(cmd, timeout=timeout, ignore_status=ignore_status)
>> +
>> +
>> def compare_versions(ver1, ver2):
>> """Version number comparison between ver1 and ver2 strings.
>>
>>
>> On Fri, Aug 13, 2010 at 1:51 PM, John Admanski <jadmanski@google.com>wrote:
>>
>>> It should be consistent and use single-quoted strings for all of the
>>> string literals, but otherwise looks fine.
>>>
>>> -- John
>>>
>>>
>>> On Fri, Aug 13, 2010 at 1:49 PM, Eric Li(???) <ericli@google.com> wrote:
>>>
>>>> The idea here is to add -j option to most of our client tests at
>>>> pre-build stage. From our experiment, it reduced almost 50% of our build
>>>> time.
>>>>
>>>> The original author of this CL is CCed.
>>>>
>>>>
>>>> Index: client/common_lib/utils.py
>>>> ===================================================================
>>>> --- client/common_lib/utils.py (revision 4747)
>>>> +++ client/common_lib/utils.py (working copy)
>>>> @@ -1165,6 +1165,16 @@
>>>> system('%s %s' % (configure, ' '.join(args)))
>>>>
>>>>
>>>> +def make(extra='', make='make', timeout=None, ignore_status=False):
>>>> + """
>>>> + Run make, adding MAKEOPTS to the list of options.
>>>> +
>>>> + @param extra: extra command line arguments to pass to make.
>>>> + """
>>>> + cmd = '%s %s %s' % (make, os.environ.get("MAKEOPTS", ""), extra)
>>>>
>>> + return system(cmd, timeout=timeout, ignore_status=ignore_status)
>>>> +
>>>> +
>>>> def compare_versions(ver1, ver2):
>>>> """Version number comparison between ver1 and ver2 strings.
>>>>
>>>>
>>>> --
>>>> Eric Li
>>>> ???
>>>> Google Kirkland
>>>>
>>>>
>>>>
>>>
>>
>>
>> --
>> Eric Li
>> ???
>> Google Kirkland
>>
>>
>>
>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@4748 592f7852-d20e-0410-864c-8624ca9c26a4
tils.py
5346e4e6b32f0b5de3a72b5e15cb22574a9e9914 12-Aug-2010 Sean O'Connor <seano@chromium.org> ChromiumOS updater client lib refactoring and fixes.

I've tested this with both server and client control files which specify 'osimage' arguments.

I still have some testing to do, but I think this is a reasonable first cut at putting the common install/update functionality in a common lib.

Review URL: http://codereview.chromium.org/3104004
hromiumos_updater.py
1851a9aa10512d7afeaf05a5ae0addc36548107a 10-Aug-2010 Chris Masone <cmasone@chromium.org> Give UI tests the ability to detect chrome crashes during login

BUG=None
TEST=Run autotest on a build where chrome crashes upon login. The test should return an appropriate exception now, instead of saying it timed out.

Change-Id: I9450bc74740d8aa220bc12d3e6eef3c538b28895

Review URL: http://codereview.chromium.org/3107003
og_watcher.py
ite_auth_server.py
9f3311afd7f6f7dcd912cd6194f8c094810c7c5d 06-Aug-2010 Chris Masone <cmasone@chromium.org> Make tests robust to failed login cookie fetch

Since fetching login cookies is best-effort, make the tests no longer fail if
we can't get cookies. Record the fact, though, so we can keep tabs on how
often this happens and decide to mitigate if necessary.

BUG=5322
TEST=BVT

Change-Id: Ic4f9760d7a0fa9d17386491e82a8286e5d165a7b

Review URL: http://codereview.chromium.org/3077020
ite_auth_server.py
dbf641176579b1154e168ba484ad886b9309f108 28-Jul-2010 Hung-Te Lin <hungte@chromium.org> code refine: move FirmwareUpdate to FlashromUtility in flashrom_util

BUG=none
TEST=none

Review URL: http://codereview.chromium.org/3058008
lashrom_util.py
2512a5fa16230e8d58bded4e3902774dd5576e3c 26-Jul-2010 Chris Masone <cmasone@chromium.org> Return failures when other services try to auth against our mock auth server

When sync tried to use our mocked out auth service, it was sending
just an LSID instead of a SID/LSID pair. This is legal, but not the
expected flow for normal Chrome OS auth, so we were throwing an
exception. This seems to cause the auth server to stop so, if sync
tried to auth before the chrome os login flow completed, we were
failing to complete the chrome os login flow. This change makes us
rebust to this, and also pulls chrome_log files back when the test
finishes, to help debug issues in the future.

BUG=5130
TEST=Run login_LoginSuccess

Change-Id: Iab175025776f41ea12c907900c368eefe97b0e64

Review URL: http://codereview.chromium.org/3013033
ite_auth_server.py
1e03f1ce829772260ea09d944a74732a8f145c20 26-Jul-2010 Hung-Te Lin <hungte@chromium.org> add 'enable write protection' to write protection test

We add the "enable write protection" into the "write protection test" procedure
to ease test process.

NOTE: THIS REQUIRES A FLASHROM(8) PROGRAM THAT SUPPORTS BOTH PARTIAL WRITE (-l layout -i image) AND WRITE PROTECTION ("--enable-wp", "--wp-range")
If your flashrom(8) program does not support partial write, you will find it very slow and will write garbage to your ROM.

NOTE: after running this test, the EEPROM will be changed to write-protected.

BUG=chromium-os:4601
TEST=manual

Review URL: http://codereview.chromium.org/2903003
lashrom_util.py
c766483b24db6ab76f47f4706a3dc0ba3d98c668 24-Jul-2010 Chris Masone <cmasone@chromium.org> Fix desktopui_ChromeFirstRenderer failure

Someone changed /tmp/uptime-login-successful to /tmp/uptime-login-success and didn't update the test.

BUG=5004
TEST=Run the test

Change-Id: I9edc5374557655a55ffd9076f7054ab72c0dc102

Review URL: http://codereview.chromium.org/3054009
ite_auth_server.py
b1414e2cc0c8dfcd81d9f2a4e57d82c18283841e 21-Jul-2010 Eric Li <ericli@google.com> Merge remote branch 'origin/upstream' into tempbranch
3a0778a391916fea3be72179a9af58c903462485 21-Jul-2010 Hung-Te Lin <hungte@chromium.org> add RW firmware version check in HW Qual DB

Read RW firmware version from VBOOTA and VBOOTB, verify if they are the same,
and return the single number as ver_rw_firmware field.
If versions in VBOOT and VBOOTB are different, return as 'A=x, B=y'.

BUG=chromium-os:1867
TEST=manual

Review URL: http://codereview.chromium.org/2861067
ite_vblock.py
8ec34006ec1b024fde7d2804df237fde4a15a347 20-Jul-2010 Will Drewry <wad@chromium.org> platform_DMVerityCorruption: a baseline test to ensure that dm-verity does something

Adds a helper library for writing easy standalone verity tests and uses that to
test corruption detection. It won't work well as is for direct verified root
fs tests, but it will let us exercise the dm-verity code.

TEST=built it and ran it on a recent build+machine
BUG=chromium-os:2130

Change-Id: I011d8e94d50652af8c3d4db6dfb0271543f0757c

Review URL: http://codereview.chromium.org/2888022
ite_verity.py
bbb026c9fbd2d3907205f4b66232a849d8a424b3 19-Jul-2010 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> Fix a bug in the base_job logging where it indents all lines of logs
instead of just the "real" status lines. This causes extra non-status
lines to look like status lines to the parser, which then falls over
trying to parse them. This is a regression from the pre-refactored
code.

Signed-off-by: John Admanski <jadmanski@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@4724 592f7852-d20e-0410-864c-8624ca9c26a4
ase_job.py
ase_job_unittest.py
2615f4ae76880e2882d6873f7a735b4a79cd0786 19-Jul-2010 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> Add a exception that repair code can throw to indicate that it believes hardware repairs are necessary, and have the full-repair implementation call the hardware repair method after seeing that exception multiple times.

Signed-off-by: John Admanski <jadmanski@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@4723 592f7852-d20e-0410-864c-8624ca9c26a4
rror.py
osts/base_classes.py
e02c7e9360d7239f7242b725d72aed8cb8f043a5 19-Jul-2010 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> Added get_meminfo() to get content of remote /proc/meminfo and return a dictionary mapping the various statistics.


Signed-off-by: Jongki Suwandi <jsuwandi@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@4722 592f7852-d20e-0410-864c-8624ca9c26a4
osts/base_classes.py
8b2954a7693afd2927dde072326832094ad8565f 13-Jul-2010 Eric Li <ericli@google.com> Autotest's crash handler does not work well with the built-in crash handler inside Chromium OS.

Disable it temporarily so all tests could be executed as they should be.

Otherwise when autotest sends SIGTERM to a chrome process to kill it, it will generate a 200M core dump on /tmp. And Chromium OS only budget 500M for /tmp.

Review URL: http://codereview.chromium.org/2927011
est.py
d4725cfa1880999bee00c04de2a5627dd23457ae 08-Jul-2010 Hung-Te Lin <hungte@chromium.org> Improved flashrom_util

flashrom_util is improved with following features:
- Support description language for layout map generation
- contains latest ChromeOS flashrom layout

Such improvements are required for:
- firmware update shell-ball in auto-update mode
- new autotests like verifying RO hash

BUG=none

Review URL: http://codereview.chromium.org/2812047
lashrom_util.py
e610f86c3d5fba0b98f2654fa2c8471a5205a1a5 07-Jul-2010 Sean O'Connor <seano@chromium.org> Fix some misleading log spew from site_httpd on SSL connections.

Also site_httpd_unittest.py works again.

Review URL: http://codereview.chromium.org/2884018
ite_httpd.py
14dfbae96f1c353eed99dc356d21c6f68044ec6e 07-Jul-2010 Benson Leung <bleung@chromium.org> Fixed SysStat init to find power supplies on non-ACPI systems.

Previously this test would look for power supplies of the format:
/sys/class/power_supply/AC*
/sys/class/power_supply/BAT*

On one ARM platform, for example, the names of the supplies are ac and battery.
Now the test will look for the type file and determine the type of power
supply based on this, which is proper for power supply class.

BUG=none
TEST=power_LoadTest

Signed-off-by: Benson Leung <bleung@chromium.org>

Review URL: http://codereview.chromium.org/2862044
ite_power_status.py
5a542c6140b1179ce65814135583b838dcc278af 06-Jul-2010 Hung-Te Lin <hungte@chromium.org> Refine flashrom mapping selection script

This is a rework of http://codereview.chromium.org/2852040/show

We found more and more auto-tests that also need to access
BIOS/EC flashrom, so it would be great if the selection
script is managed inside common part.

Review URL: http://codereview.chromium.org/2845036
lashrom_util.py
fb8893754d69d78841e184c05fa40937ade81911 02-Jul-2010 Tammo Spalink <tammo@google.com> Relocate library files for wider access and re-use; also associated cleanup.

Putting the factories in bin better matches other auotest files, and allows for
better (simpler) access by both the control files and the ui. This in turn
allows for us to avoid sending the TestData code definition between processes,
which was very ugly. With all the code sharing libs, the logging function
was also cleaned up.

Review URL: http://codereview.chromium.org/2836043
actory_test.py
4d64023d2dc950a8e2c5578255845418cba52626 01-Jul-2010 Eric Li <ericli@google.com> Merge remote branch 'origin/upstream' into tempbranch

Conflicts:
client/common_lib/utils.py
client/common_lib/utils_unittest.py
3afe0d8a982de99e930b3f48f239066272a15c11 01-Jul-2010 David James <davidjames@google.com> Revert "Relocate library files for wider access and re-use; also associated cleanup."

This reverts commit 6dc9e1993a7db0729d330d7ba3b8c94fea9a0a18. Hopefully this will fix the autotest build.

TBR=tammo
TEST=none
BUG=none
actory_test.py
6dc9e1993a7db0729d330d7ba3b8c94fea9a0a18 01-Jul-2010 Tammo Spalink <tammo@google.com> Relocate library files for wider access and re-use; also associated cleanup.

Putting the factories in bin better matches other auotest files, and allows for
better (simpler) access by both the control files and the ui. This in turn
allows for us to avoid sending the TestData code definition between processes,
which was very ugly. With all the code sharing libs, the logging function
was also cleaned up.

BUG=none
TEST=suite_Factory

Review URL: http://codereview.chromium.org/2805052
actory_test.py
aafbf2aae6402ef5fd7f297a801e950f3a589ccc 25-Jun-2010 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> Making base_test a new style object.
I need this to create unit tests for sub-classes (so I can use __new__ and
not stub all the base_test.__init__() stuff.

Signed-off-by: Jean-Marc Eurin <jmeurin@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@4680 592f7852-d20e-0410-864c-8624ca9c26a4
est.py
44bf1e86ce43ff76f059d6da531108bdca3b5a28 25-Jun-2010 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> Update packager to be a bit more picky about what it runs upkeep on

Signed-off-by: Scott Zawalski <scottz@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@4679 592f7852-d20e-0410-864c-8624ca9c26a4
ase_packages.py
c4f37acde4b799e83c8c448e90b1334ec6c4ab65 24-Jun-2010 Hung-Te Lin <hungte@chromium.org> add autotest for EEPROM write protection verification

NOTES:
- require a working flashrom tool
- require proper flash rom selection scripts in /usr/share/flashrom
- this script will always try to restore flash rom to the state before running tests, so it's usually safe to run this test without the risk of failing the system. However if the test was interrupted, the flash rom may be filled with garbage and not able to boot.

Review URL: http://codereview.chromium.org/2838020
lashrom_util.py
cebbef14ed8e30c847d614056ae1e926f157f56a 22-Jun-2010 Tammo Spalink <tammo@google.com> Batched update of factory tests.

Review URL: http://codereview.chromium.org/2857012
actory_test.py
2342172301298a720c08b3c9c9da1c0be36d621c 17-Jun-2010 lmr <lmr@592f7852-d20e-0410-864c-8624ca9c26a4> common_lib/test.py: Fixes for running tests from HTTP urls

Use the testdir member variable. Use the download directory as the
import directory since the group is appended to modulename. Create
the 'download' directory if it's not there.

Signed-off-by: Shaun Ruffell <sruffell@digium.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@4637 592f7852-d20e-0410-864c-8624ca9c26a4
est.py
2a89dac0b6e319ef58d41c7a591c3d88cf6dd8a1 11-Jun-2010 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> Refactor the server_job code to use the base_job implementation of
record.

The two main features that the server job code added on top of the
basic job record were the ability to inject client job records into
the server job record, and the ability to inject console/vlm warnings
into the record.

The Autotest injection was implemented by adding a parse classmethod
to the status_log_entry class that does the inverse of the render
method, so that the Autotest class can construct status_log_entries
from the raw text status logs it gets from the client. The server then
re-records the messages, rather than using a low-level method to
bypass the old job.record rendering.

The warning injection was implemented by using the record_hook; to
make it work better it was moved to be called before the entry is
logged, not after. This required a slightly more involved hook, as it
was useful to be able to call job.record directly from the hook and so
the hook was wrapped in a callable class that prevents recursion.

Signed-off-by: John Admanski <jadmanski@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@4605 592f7852-d20e-0410-864c-8624ca9c26a4
ase_job.py
ase_job_unittest.py
df432e6a268de0aaec34dd65bbeb6479e09b2007 11-Jun-2010 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> When running commands via utils.run, make sure we set the duration in
the CmdResult when the command completes.

Signed-off-by: John Admanski <jadmanski@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@4604 592f7852-d20e-0410-864c-8624ca9c26a4
tils.py
4ceb7c2e594beeb4a7b2758ae2b7c098b18c3c19 11-Jun-2010 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> Convert autoserv extra arguments in the form of key=val or key:val to a dictionary.

Signed-off-by: Jongki Suwandi <jsuwandi@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@4603 592f7852-d20e-0410-864c-8624ca9c26a4
tils.py
tils_unittest.py
6d7bef960a2d2c29bba0aff557a5db952b2b6ea8 11-Jun-2010 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> Fix a little bug where we reference a variable before it is set

Signed-off-by: Scott Zawalski <scottz@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@4602 592f7852-d20e-0410-864c-8624ca9c26a4
ase_packages.py
d4b428691d1d45c82abc91d8cc3753e8a29e1803 11-Jun-2010 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> Don't log an ERROR about non-fatal package fetches failures. Put those
in the DEBUG log and only log an error if all package fetch attempts
failed. Also cleans up the unused error_msgs local.

Signed-off-by: Gregory Smith <gps@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@4601 592f7852-d20e-0410-864c-8624ca9c26a4
ase_packages.py
8e222b6c651ce3decec1c216e96842fdb61852dd 07-Jun-2010 Eric Li <ericli@google.com> Merge remote branch 'origin/upstream' into tempbranch
92cdbe34a1cdde2faa57f0d841980db3e1500324 04-Jun-2010 Chris Masone <cmasone@chromium.org> Login test fixes

1) Make Login_Backdoor wait for the correct termination condition
2) Add an HTTP server to the HTTPS server in use by the auth server; this allows it to respond to the final redirect in the login chain of events.
3) the chrome os WM upstart job is now called window-manager

BUG=None
TEST=Run Login_Success, Login_Backdoor, and Login_BadAuthentication and make sure they pass.

Review URL: http://codereview.chromium.org/2636001
ite_auth_server.py
ite_httpd.py
d843e67e604602f3ce1211e9b89a71b4d5aa6c7d 03-Jun-2010 Sean O'Connor <seano@chromium.org> Fix site_httpd's url handler for GET with query params.

Review URL: http://codereview.chromium.org/2609002
ite_httpd.py
7d04f577a4972cd0aecea0bc370125d54bc28a1e 31-May-2010 Chris Masone <cmasone@chromium.org> Land the first login test that uses a local mock of the google accounts server

With this CL, in our tests, authentication is no longer performed against
live servers. Instead, we spin up a local DNS server that will lie
and say that all sites resolve to 127.0.0.1. We use DBus to tell
flimflam to use this DNS server to resolve addresses. We then spin up
a local httpd that will respond to queries at the Google Accounts
endpoints. We clear the DNS setting and tear down these servers in
cleanup(). The caller can specify handlers for the three pertinent
endpoints, but default ones that return HTTP 200 exist and will be
used if nothing is passed in.

Review URL: http://codereview.chromium.org/1752022
ite_auth_server.py
ite_dns_server.py
ite_httpd.py
e5e3cf22e2e3a04746bbe601f4f8423dc2c96d8f 28-May-2010 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> get_boot_id to return None when not supported by the kernel.

Signed-off-by: Josh Gilkerson <jwg@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@4566 592f7852-d20e-0410-864c-8624ca9c26a4
osts/base_classes.py
c22bdae373251e0550262a8939c21bbc8d691c7d 27-May-2010 vbendeb <vbendeb@chromium.org> Make sure all chrome status is destroyed when restart from scratch is required.

Review URL: http://codereview.chromium.org/2305002
ite_ui.py
8c39b15032e0fe7d73ec45ea5737e4da5c65e7cb 27-May-2010 Tammo Spalink <tammo@google.com> Support for factory test suite control file to spawn a UI process. The ui code itself lives in a bin directory and is set up by the mod_for_factory scripts.

Goes with:

http://codereview.chromium.org/1937002/show

BUG=none
TEST=none

Review URL: http://codereview.chromium.org/1810006
actory_test.py
146df9a9933fb1bf7f94aa8fa6bbccf70e8f320b 15-May-2010 jamesren <jamesren@592f7852-d20e-0410-864c-8624ca9c26a4> Fix an exception in the unit test mock framework

Signed-off-by: James Ren <jamesren@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@4491 592f7852-d20e-0410-864c-8624ca9c26a4
est_utils/mock.py
0d1ea96db0ce47d8ce96613daba085acd980417e 03-May-2010 Eric Li <ericli@google.com> Merge remote branch 'origin/upstream' into tempbranch

Conflicts:
client/common_lib/utils.py
client/common_lib/utils_unittest.py
cd26d048f4ae1e5ec969576e9e0c2f8791f11295 03-May-2010 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Don't ignore unexpected exceptions. Have the mock report the playback errors inline with the other calls.

Signed-off-by: Jean-Marc Eurin <jmeurin@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@4458 592f7852-d20e-0410-864c-8624ca9c26a4
est_utils/mock.py
5860932b0d2416245d06222103cb1c2655ef1621 03-May-2010 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Update version compare function in utils.py.

Signed-off-by: John Huang <johnhuang@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@4456 592f7852-d20e-0410-864c-8624ca9c26a4
tils.py
tils_unittest.py
4afc3676e5735bd52303c0612b1cbc62c2d6fba8 30-Apr-2010 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> Yet another round of extraction of job code up into base_job.py in the common
library. This focuses on pulling job.record up from the client job into the
base, with an eye towards doing the same with the server job.record code (thus
providing a single unified implementation).

Currently I extracted all the job.record code from the client out into a
status_log_entry and status_logger class. The idea was that all the code that
knows how to convert status,subdir,operation,etc. parameters into a string to
go into the status log would be in the status_log_entry class, and all the
code that actually knows how to write an entry into the log files would be in
the status_logger class. It also pulls all the code for tracking the nesting
into the status_logger class, instead of scattering increment and decrement
calls throughout the job class.

This multi-class separation might seem a little overdesigned, but it made it
easier to write good unit tests that don't throw up a million mocks
all over the place. I also think it will be easier to extend when I
try to make this work for server jobs as well; the server has to mix
together job.record calls, status logs from client jobs, and injected
WARNs, so separating out the entry class and the class that actually
writes out the logs should be helpful for supporting that model.

The CL also contains a lot of generic docstring cleanup that I had to do
while working on the classes.

Signed-off-by: John Admanski <jadmanski@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@4455 592f7852-d20e-0410-864c-8624ca9c26a4
ase_job.py
ase_job_unittest.py
999fb13dcbf4de5e37ca2b3059ef1061b5faba43 23-Apr-2010 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> barrier cleanups:
* renames barrier.py to base_barrier.py and adds a barrier.py
stub to import from base_barrier and override with site_barrier
if found. barrier_unittest.py is renamed to match.
* Move BarrierAbortError to the error module with everything else.
* Add a rendezvous_servers abort=True from the server test case.
* Moved get_sync_control_file() from common_lib.utils to
server.base_utils where it belongs to avoid a circular
import of utils importing barrier.

Signed-off-by: Gregory Smith <gps@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@4444 592f7852-d20e-0410-864c-8624ca9c26a4
arrier.py
arrier_unittest.py
ase_barrier.py
ase_barrier_unittest.py
rror.py
tils.py
a6bc2897832b6e062475bd5655518b52145e863f 23-Apr-2010 Eric Li <ericli@google.com> Merge remote branch 'origin/upstream' into tempbranch
777db854ee6e1774dcfef5ca9d6ecaf3ab20ea2f 22-Apr-2010 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Add compare_versions method to common_lib/utils

Signed-off-by: John Huang <johnhuang@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@4442 592f7852-d20e-0410-864c-8624ca9c26a4
tils.py
tils_unittest.py
cd7a81a58c7a1a16105dcd9dca5e9f1680eff65b 21-Apr-2010 jamesren <jamesren@592f7852-d20e-0410-864c-8624ca9c26a4> Various changes to support further high-level automation efforts.

* added a RESTful interface for TKO. right now there's only a single, simple resource for accessing test attributes.
* extended the REST server library in a few ways, most notably to support
* querying on keyvals, with something like ?has_keyval=mykey=myvalue&...
* operators, delimited by a colon, like ?hostname:in=host1,host2,host3
* loading relationships over many items efficiently (see InstanceEntry.prepare_for_full_representation()). this is used to fill in keyvals when requesting a job listing, but it can (and should) be used in other places, such as listing labels for a host collection.
* loading a collection with inlined full representations, by passing full_representations=true
* added various features to the AFE RESTful interface as necessary.
* various fixes to the rest_client library, most notably
* changed HTTP client in rest_client.py to use DI rather than singleton, easing testability. the same should be done for _get_request_headers(), to be honest.
* better support for query params, including accepting a MultiValueDict and supporting URIs that already have query args
* basic support for redirects
* builtin support for requesting a full collection (get_full()), when clients explicitly expect the result not to be paged. i'm still considering alternative approaches to this -- it may make sense to have something like this be the default, and have clients set a default page size limit rather than passing it every time.
* minor change to mock.py to provide better debugging output.

Signed-off-by: Steve Howard <showard@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@4438 592f7852-d20e-0410-864c-8624ca9c26a4
est_utils/mock.py
f7ae5257c0de65006d0cc3002504b6c617ed411b 21-Apr-2010 Chris Masone <cmasone@chromium.org> Add wrapper for miniFakeDns that runs it in a separate thread

Review URL: http://codereview.chromium.org/1706006
ite_dns_server.py
5986ca27a855f966451daeb617f57158d8fc9947 21-Apr-2010 Chris Masone <cmasone@chromium.org> [autotest] a GoogleAccounts server that can run inside an autotest

Leveraging the https server in site_httpd.py, this class allow us to mock out the Google Accounts http API. We still need a way to override DNS to point chrome at this server, but I've written some code that uses wget to exercise this, and it works.

Comments on my mediocre python welcome.

Review URL: http://codereview.chromium.org/1619024
ite_auth_server.py
ite_auth_server_unittest.py
ite_httpd.py
959e8162836703848f8e1801f74e7117b850e889 16-Apr-2010 lmr <lmr@592f7852-d20e-0410-864c-8624ca9c26a4> Add a new library to determine mime types

In order to determine file types by content rather than
extension, add a new library to autotest, magic.py, that
is based on the work of Jason Petrone. The advantage of
magic.py is that it doesn't depend on any external utility
or library. It exposes the public interface guess_type(),
that will match the data against a database of magic numbers.

Also, use the library to determine file contents on a
base_utils.py function.

Changes from v1:
* Fixed some incorrect API usage documentation
* Used optparse in the parser
* Used the library in the other places of autotest that do need
assessment of file contents.

Signed-off-by: Jean Parpaillon <jean.parpaillon@kerlabs.com>
Signed-off-by: Amos Kong <akong@redhat.com>
Signed-off-by: Lucas Meneghel Rodrigues <lmr@redhat.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@4420 592f7852-d20e-0410-864c-8624ca9c26a4
agic.py
de42f47cd584c4e0cd82fc16422a9dadaa1fb318 12-Apr-2010 Sean O'Connor <seano@chromium.org> Merge remote branch 'origin/upstream' into tempbranch

Conflicts:
client/common_lib/utils.py
client/tests/iperf/iperf.py
808f4b1663600ba7e735c4d78125825c52bb804f 10-Apr-2010 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> Expose args as a proper job property, fix up some unit tests. In the
future I'm just going to start reverting patches that break tests.

Signed-off-by: John Admanski <jadmanski@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@4396 592f7852-d20e-0410-864c-8624ca9c26a4
ase_job.py
ase_job_unittest.py
ab88fbb16fb59b106ea11eb91fa4e6816474101c 08-Apr-2010 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Introduce a configure() method into client/common_lib/util.py which does some extra env var look up to honor cross compiling.

This change was tested under our build environment.

Risk: Very low and should be transparent to existing autotest users. Unless you are working on cross compiling stuff.

From: ericli@google.com



git-svn-id: http://test.kernel.org/svn/autotest/trunk@4387 592f7852-d20e-0410-864c-8624ca9c26a4
tils.py
f25f73fda2174dcad298db37e872a7b5351fc189 07-Apr-2010 rginda <rginda@chromium.org> switch to autox.py and robustify login/logout code

This CL switches from using the autox binary to using autox.py. This includes backwards
incompatible changes to site_login.py, and I haven't had a chance to fix the affected callsites
yet.

I've also made the login/logout code a little more robust. Now it'll make sure that the login
manager is running under a NEW pid, that X is running, and that at a window is visible before
assuming we're ready to log in.

All of the wait loops have been refactored into wait_for(...), which spits out logging.info()
messages that could be parsed later to determine how long the operations are actually taking.
Perhaps this could make it into a different, non-login specific library soonish.

I'm out of the office for the next few days, but wanted to get this out there before the
trunk totally passed it by. I'll return on Wednesday to finish the job.

Review URL: http://codereview.chromium.org/1534001
ite_ui.py
f542950ba996692a4c1a656c8e27de9246037312 07-Apr-2010 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> Clear out the destination path before retriving a package via autoserv.
Otherwise it will always appear to the client that the package was fetched
successfully, since it assumes if a file is where it told the server to put
it then the package was sent.

Also, add code to the error case in the http fetcher to remove any file
that may have been fetched. If the wget failed then the package isn't valid
so we shouldn't leave it lying around.

Signed-off-by: John Admanski <jadmanski@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@4377 592f7852-d20e-0410-864c-8624ca9c26a4
ase_packages.py
8ca2f935825ecabc0053e3ab5152a55df034cf99 01-Apr-2010 Eric Li <ericli@google.com> Merge remote branch 'origin/upstream' into tempbranch
2703d9ec8eff23a46b256b28394e8f618bab3feb 29-Mar-2010 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> Change the hierarchial tests to use : instead of . to indicate the test
hierarchy. Since using . makes it impossible to determine what the actual
test and tag are, this new feature breaks existing behaviour. Pending a
better solution we should use a separate character that doesn't already
have a better meaning.

Signed-off-by: John Admanski <jadmanski@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@4352 592f7852-d20e-0410-864c-8624ca9c26a4
est.py
02fc0b9199aa71c7f801aee4fcd4b86513e8facb 01-Apr-2010 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> * Rewrite barriertest (the old one was useless|incomplete|partial|broken).
* Refactor barrier.py to reduce the public API surface to that which is
actually required and used. Cleans up some docstring style as well.

No functional changes.

This prepares for adding site_barrier support in a future patch.

Signed-off-by: Gregory Smith <gps@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@4369 592f7852-d20e-0410-864c-8624ca9c26a4
arrier.py
arrier_unittest.py
f989e58f218b3f2597d6320f65a5c37f4a9a6ebd 01-Apr-2010 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Don't log it as an ERROR when a site import fails. Leave that as a
DEBUG log line. Not everyone has site implementations for everything,
its not an error.

Signed-off-by: Gregory Smith <gps@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@4368 592f7852-d20e-0410-864c-8624ca9c26a4
tils.py
0676704ebe2e6a4ff7f6e9c4d144c07a233902d4 29-Mar-2010 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> Change the hierarchial tests to use : instead of . to indicate the test
hierarchy. Since using . makes it impossible to determine what the actual
test and tag are, this new feature breaks existing behaviour. Pending a
better solution we should use a separate character that doesn't already
have a better meaning.

Signed-off-by: John Admanski <jadmanski@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@4352 592f7852-d20e-0410-864c-8624ca9c26a4
est.py
e1d9fda247a3ee05b0efd05cbc1d05098011548b 26-Mar-2010 Chris Masone <cmasone@chromium.org> HTTPS server for use in testing.

Review URL: http://codereview.chromium.org/1350002
ite_httpd.py
ite_httpd_unittest.py
ite_httpd_unittest_server.key
ite_httpd_unittest_server.pem
cbbef7a7aa0b9327b208b460c6d949fada39dd38 26-Mar-2010 Darin Petkov <petkov@chromium.org> Switch default docroot to avoid exceptions when pages served through handlers.

Review URL: http://codereview.chromium.org/1361005
ite_httpd.py
ec3d3056a950ea81308e7b3f5aad470de2c02890 26-Mar-2010 Darin Petkov <petkov@chromium.org> Merge remote branch 'origin/upstream' into master.

Conflicts:
client/common_lib/site_libraries.py
client/tests/kvm/tests_base.cfg.sample
620ccf028a641e680c402f32458ffe60aa6e18cf 26-Mar-2010 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Add hierarchical structure to tests/ directory

This patch allows you to have tests/a/b/foo, rather than just tests/foo

eg. this:

job.run_test('a.sleeptest', seconds = 1)
job.run_test('b.c.sleeptest', seconds = 1)

Results in:

START ---- ---- timestamp=1269622268 localtime=Mar 26 09:51:08
START a.sleeptest a.sleeptest timestamp=1269622268
localtime=Mar 26 09:51:08
GOOD a.sleeptest a.sleeptest
timestamp=1269622270 localtime=Mar 26 09:51:10 completed
successfully
END GOOD a.sleeptest a.sleeptest
timestamp=1269622270 localtime=Mar 26 09:51:10
START b.c.sleeptest b.c.sleeptest timestamp=1269622270
localtime=Mar 26 09:51:10
GOOD b.c.sleeptest b.c.sleeptest
timestamp=1269622272 localtime=Mar 26 09:51:12 completed
successfully
END GOOD b.c.sleeptest b.c.sleeptest
timestamp=1269622272 localtime=Mar 26 09:51:12
END GOOD ---- ---- timestamp=1269622272 localtime=Mar
26 09:51:12

and picks up from tests/a/sleeptest and tests/b/c/sleeptest

Signed-off-by: Martin J. Bligh <mbligh@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@4350 592f7852-d20e-0410-864c-8624ca9c26a4
est.py
a1e7bc91244ac856079d03159236fe5a73076089 26-Mar-2010 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Fix bug when comparing lists.

zip is used to compare corresponding items from each list.
But zip of unequal length lists justs zips the shortest length.
For example, zip([], [1,2]) yields []. This is not what you want.
So I make sure the lists are the same length before the zip.

I doscivered this when comparing 2 dicts which becomes a list comparison
of keys...

Signed-off-by: John Fodor <fodor@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@4347 592f7852-d20e-0410-864c-8624ca9c26a4
est_utils/mock.py
77c6aa44ff05b1a586c6d39fb21ed94d75fe2668 25-Mar-2010 Sameer Nanda <snanda@chromium.org> Added library and test for gathering CPU Idle statistics.

Review URL: http://codereview.chromium.org/1366001
ite_power_status.py
7af9c88c4b9427200dd9a57152dec577959a9a96 25-Mar-2010 David Rochberg <rochberg@chromium.org> Add expect_alive to BgJob. If expect_alive is not None, then we raise
an error at join() time if the process is unexpectedly alive or dead.

TEST=unittests added, ran BuildVerify testsuite. No new failures.

Review URL: http://codereview.chromium.org/1216004
tils.py
tils_unittest.py
c7ca9dcd1f36e889410984bc164b43143b8219d8 25-Mar-2010 Sameer Nanda <snanda@chromium.org> Added library and test to gather USB suspend statistics.

Review URL: http://codereview.chromium.org/1296002
ite_power_status.py
b0d33ec2f67074a8a33c5bb1e3a11170aae74954 24-Mar-2010 rginda <rginda@chromium.org> add ScreenSaverUnlock autotest and teach ScreenSaverRunning to log in

Review URL: http://codereview.chromium.org/1203002
ite_ui.py
3cc7f8b684598c252d2995c8f8efa1081ac4dc26 24-Mar-2010 Sameer Nanda <snanda@chromium.org> Added library and test for gathering CPU Frequency statistics.

Review URL: http://codereview.chromium.org/1300001
ite_power_status.py
4cefaef4797a7d595a3a6837e20dae19179196b5 24-Mar-2010 Kenneth Waters <kwaters@chromium.org> autotest: Make the "ltp" test comile on ARM.

- Add a utility function to wrap "./configure" to pass appropriate "--host",
"--target", and "--build" options to configure.
- Change the ltp test to use said utility
- Workaround an internal compiler error in "ltp". The epoll-ltp.c test
writes zero to an uint64_t through an unaligned pointer. This causes our
compiler to die. The behavior is undefined by the C standard (C99 Section
6.3.2.3) and I suspect that even if it did compile it would cause a "bus
error" on ARM. I replaced the assignment with a call to memset.

TEST=Built for x86-generic and arm-generic
BUG=None

Review URL: http://codereview.chromium.org/1161005
tils.py
b83b145de9835882bbefd0c7f3d117212083dad7 24-Mar-2010 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> Drop the unusual __init__.py and site_libraries.py we have in common_lib.

Signed-off-by: John Admanski <jadmanski@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@4332 592f7852-d20e-0410-864c-8624ca9c26a4
_init__.py
ite_libraries.py
3cccb0bf6a99a092ce947dbca5a85c6ebd9067bf 24-Mar-2010 Tom Wai-Hong Tam <waihong@chromium.org> Add a simple interaction to autotest library. hardware_ExternalDrives is one of the use cases.

Review URL: http://codereview.chromium.org/1150006
ite_ui.py
3d09b1c91e844c33d780754beb4917914f8c3481 23-Mar-2010 Darin Petkov <petkov@chromium.org> Merge remote branch 'origin/upstream' into mergeb
546142013484dbdb2c1322debe9e5fc5e91f63c1 23-Mar-2010 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Revert change that was accidentally commited as part of 4314 to
client/common_lib/test.py whilst partially complete



git-svn-id: http://test.kernel.org/svn/autotest/trunk@4325 592f7852-d20e-0410-864c-8624ca9c26a4
est.py
33ae33bfa67222091ccbce8c2af8949eaf60f90d 23-Mar-2010 Darin Petkov <petkov@chromium.org> Merge remote branch 'origin/upstream' into master.

Conflicts:
global_config.ini
dbc5eaf052e936623c4acd5075d8383a81302f25 19-Mar-2010 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Moved binding/listening on the server socket from
barrier.barrier.run_server() to a separate class
(barrier.listen_server). Added a keyword argument to barrier to pass
a listen_server instance to use it when it needs access to the server
socket. When a listen_server instance is not given to barrier it will
create one in run_server() (preserving the old semantics). Updated
barriertest (used by server side profiler support code) to reuse a
listen_server instance in almost all its barrier instances (thus
hopefully fixing an issue where we rebind too fast on the same port when
packets are in transit from an old connection and get a ECONNRESET on a
new connection because of this). Updated unittests.

Signed-off-by: Mihai Rusu <dizzy@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@4314 592f7852-d20e-0410-864c-8624ca9c26a4
arrier.py
arrier_unittest.py
est.py
a83bfe69981aefb2f5dcff84e19b69733f069056 15-Mar-2010 Albert J. Wong <ajwong@chromium.org> Basic semi-automated test for audio that tests playback/record on each device in the system.

Review URL: http://codereview.chromium.org/660235
ite_httpd.py
ite_ui.py
21781fbe5492a8c5466a8920ab9bce86bc755a72 11-Mar-2010 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Update base_packages to add a plus to the find command for pruning

Signed-off-by: Scott Zawalski <scottz@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@4296 592f7852-d20e-0410-864c-8624ca9c26a4
ase_packages.py
03c1b3d21ce8597a4d17582bf5433c7a845357d6 11-Mar-2010 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Fix the enable_ipfilter() which will now use path_exists().

From:kdlucas@google.com



git-svn-id: http://test.kernel.org/svn/autotest/trunk@4292 592f7852-d20e-0410-864c-8624ca9c26a4
osts/base_classes.py
0d2fcb1fb7ee1198a4bf84c8fe79ab980f6418d2 09-Mar-2010 Sean O'Connor <seano@chromium.org> Merge remote branch 'remotes/origin/upstream' into tmpbranch
3649141cea5fda511978483ddf8709221f4c57fd 06-Mar-2010 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Split netperf/netpipe control files out into tests

From:kdlucas@google.com

So I've split the netpipe and netperf control files into separate control files and a .py file for each one, so that it will be easier to add additional tests that use the logic of the python scripts without duplicating code.

I'm also taking advantage of the new added function to get the platform_label, as in my testbed I have assigned a net_server platform label for the machines I want to use as the network side of these tests.

So, the attached patch now adds two methods to client/common_lib/hosts/base_classes.py, and it stores the current state so when you enable IPFiltering it will restore to it's previous state.



git-svn-id: http://test.kernel.org/svn/autotest/trunk@4288 592f7852-d20e-0410-864c-8624ca9c26a4
osts/base_classes.py
9d4bcb6d907ad23d947f65d3c764c8ee3848e7d3 05-Mar-2010 Sameer Nanda <snanda@chromium.org> Parameterized power test extension.

Bunch of other changes as well.

Review URL: http://codereview.chromium.org/669123
ite_ui.py
2c211e4687a3c836ba82cf44d4f8c041396b538a 26-Feb-2010 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Fix a bug handling crash handler while run client as non-root user

r4243 introduced a change to client/common_lib/test.py which will only enable crash handler while running as 'root'. But subsequent calls to crash handler was forgotten.

From: ericli@google.com



git-svn-id: http://test.kernel.org/svn/autotest/trunk@4275 592f7852-d20e-0410-864c-8624ca9c26a4
est.py
f0f9dae372fa1abb91a653e7a74ff16ed25abb89 26-Feb-2010 jamesren <jamesren@592f7852-d20e-0410-864c-8624ca9c26a4> * fix a bug in utils.run() when passing stdin as an empty string
* remove the check in AFE that a metahost job request has enough hosts under the label. with the new pluggable metahost handlers, it's possible for handlers to create hosts on the fly to satisfy metahost requests
* expand the size of the label name field in the AFE DB to support more powerful metahost handlers

Signed-off-by: Steve Howard <showard@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@4273 592f7852-d20e-0410-864c-8624ca9c26a4
tils.py
98c6dc19e7e69fa331367d151256c2299e0650c8 22-Feb-2010 Sean O'Connor <seano@chromium.org> Merge remote branch 'remotes/origin/upstream' into temp
c394022b7667899b845fa6a7f7712070fef33b8c 19-Feb-2010 jamesren <jamesren@592f7852-d20e-0410-864c-8624ca9c26a4> Add framework for Test Planner execution engine, and the supporting RPC
interfaces

Signed-off-by: James Ren <jamesren@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@4260 592f7852-d20e-0410-864c-8624ca9c26a4
tils.py
bd21887c502d421f39e6cf5d170c5595bdaf5556 19-Feb-2010 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> My team is working with an operating system that doesn't support runlevel, so I'd like to wrap that in a try block.

From:kdlucas@google.com




git-svn-id: http://test.kernel.org/svn/autotest/trunk@4255 592f7852-d20e-0410-864c-8624ca9c26a4
osts/base_classes.py
dc09a6832544a1a0df819eb15ff48ab23097b45b 13-Feb-2010 Sean O'Connor <seano@chromium.org> Merge remote branch 'remotes/origin/upstream' into tempbranch
d780d55f2530491198f51e70613dd95e8a31a8c6 13-Feb-2010 Sean O'Connor <seano@chromium.org> Merge remote branch 'remotes/origin/upstream' into tempbranch
e3a22513ce0a52739f89589c43af9e221e1ada61 12-Feb-2010 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> The new flag will prebuild all autotest client tests/site_tests on the server side, when the dev tool chain is not available on the client, by directly invoke the setup method() on the test.

If this flag is not provided on the command line (default behavior), there should be no regression changes to existing usages.

If provided:
--setup=all will prebuild all client tests/site_tests.
--setup=A,B,C,.. will only build the comma separated list of tests supplied.

This new flag does not work with any control file, instead, it works on test classes.


from:ericli@google.com



git-svn-id: http://test.kernel.org/svn/autotest/trunk@4243 592f7852-d20e-0410-864c-8624ca9c26a4
est.py
2d1022bfbfe0bf2bfb86c9782fce036b48e965f2 11-Feb-2010 Darin Petkov <petkov@chromium.org> Start a site_ui autotest library to support UI/X tests.
Fix ChromeSemiAuto to work with the latest build by using the new library.
Once this change is in, ChromePageLoad would also need to be fixed.

Review URL: http://codereview.chromium.org/598050
ite_libraries.py
ite_ui.py
fd6d37f5006ec291a8a2950a8e40c064c9c5fba2 09-Feb-2010 Sean O'Connor <seano@chromium.org> Adds site_httpd. Listens for http callbacks from autotest test cases.

Also includes a demo client test.

Review URL: http://codereview.chromium.org/576018
ite_httpd.py
ite_httpd_unittest.py
ite_libraries.py
caf94a7cb2b4cce5c609d2685ad76cd8c7c90508 04-Feb-2010 lmr <lmr@592f7852-d20e-0410-864c-8624ca9c26a4> base_job: Removing some state file debug messages

With recent changes on base_job code:

* Each time a state file is written, a debug message is printed
* Each time the in-memory state is replaced by on-disk state,
a debug message is printed

Since the above 2 operations happen *a lot* during a client
execution, we get an abnormally high number of messages
regarding those events, distracting the user from other
relevant events. So my proposal is to just get rid of those
debug messages.

Signed-off-by: Lucas Meneghel Rodrigues <lmr@redhat.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@4209 592f7852-d20e-0410-864c-8624ca9c26a4
ase_job.py
fed221f32b5cfc11bac223ae09d9736abb2549e3 04-Feb-2010 lmr <lmr@592f7852-d20e-0410-864c-8624ca9c26a4> Utils: Create a generic hash function for autotest

In order to get rid of md5/sha deprecation messages
when using python 2.6 and keeping 2.4 working, a
new function called utils.hash() was created: This
function abstracts the complexity of conditional
importing and can be used throughout autotest in
pretty much all the scenarios where an md5 or sha1
hash is needed.

The function returns a hash object, so if you want
the digest or hexdigest of the whole content you
need to explicitly call hexdigest(). This was made
because in some occasions we don't want to calculate
the digest straight away, rather we update the hash
with content until the point we can evaluate the
digest.

By the way, the name chosen does not clash with the
API of neither py 2.6 hashlib nor py 2.4 md5 or sha.

Signed-off-by: Lucas Meneghel Rodrigues <lmr@redhat.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@4203 592f7852-d20e-0410-864c-8624ca9c26a4
tils.py
5efc03f9dc9444fb8c46846a500eb30989a7cf41 02-Feb-2010 Darin Petkov <petkov@chromium.org> Merge remote branch 'remotes/origin/upstream' into tempb
104a5386548cec0e93ad16af06aadf773803ba71 02-Feb-2010 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Fix documentatin for system command

Signed-off-by: Martin J. Bligh <mbligh@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@4180 592f7852-d20e-0410-864c-8624ca9c26a4
tils.py
a087eaedccf3bf2a89808f22254d282bd7147f8c 29-Jan-2010 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> Use flock, not lockf, for locking in base_job. lockf doesn't work very well
when the actual length and contents of the file are in flux, since we're
really just trying to use the file as one big cross-process semaphore.

Signed-off-by: John Admanski <jadmanski@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@4179 592f7852-d20e-0410-864c-8624ca9c26a4
ase_job.py
a2c994965280e84061c5e0502b711947f780bb02 27-Jan-2010 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Change the job.postprocess_job_state to catch OSError and not IOError, since
OSError is what os.remove throws when the file does not exist.

It also cleans up some more of the backing file locking for job_state, so
that the read and write code in server_job is compliant as well. The main

difference is that while read_from_file does not provide generally safe
locking and synching behaviour, it does do so for its final synchronization.
This makes it easier for non-job_state code to be safe, since it only needs
to lock the file it passes in.

It also moves the locking decorator out of the class, to make it easier to
use on the fly. It also separates out the with-lock and with-sync code.

Signed-off-by: John Admanski <jadmanski@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@4173 592f7852-d20e-0410-864c-8624ca9c26a4
ase_job.py
ase_job_unittest.py
b830fee7954ca11d3533970e1148685bd86d97c3 26-Jan-2010 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> Update the job.resultdir docstring to reflect the fact that the attribute will
always point to a writable directory.

Signed-off-by: John Admanski <jadmanski@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@4169 592f7852-d20e-0410-864c-8624ca9c26a4
ase_job.py
fa2e889be2e704a8b3c723900f26cfe33a9cbb7d 26-Jan-2010 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> Wrap all state-dependent method in job_state with a decorator that
ensures that file access is properly serialized and that the
in-memory and on-disk state are correctly synchronized at the start
and end of the method.

Note that this specifically does not address:
1) thread safety
2) race conditions involving multiple processes trying to alter the
same state
In both these cases the offending code need to do its own locking. I
don't recommend doing either one, in any case.

The main use case this is trying to address is to ensure that state
set in child processes propogates back up to the parent processes.
In particular, we want to make sure that state set in a client test
propogates back up to the client job code, since the client test is
run in a forked subprocess.

Risk: Low
Visibility: Eliminates a variety of cross-process job state issues.

Signed-off-by: John Admanski <jadmanski@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@4168 592f7852-d20e-0410-864c-8624ca9c26a4
ase_job.py
ase_job_unittest.py
17eeaa06a51363f99b59e664b642330f03fb084e 26-Jan-2010 Sameer Nanda <snanda@chromium.org> Adding system idle power draw test.

Also re-wrote the battery stat collection function of the power status
library. It now scrapes the battery sysfs to collect battery stats
instead of getting them from devkit-power. This change was required
because devkit-power's energy-rate is inaccurate since it doesn't
take the current battery voltage into account.

Review URL: http://codereview.appspot.com/194065
ite_power_status.py
9a955c6f2fb59f27deabe48f09816d0a147c0f04 16-Jan-2010 Darin Petkov <petkov@chromium.org> Merge remote branch 'remotes/origin/upstream' into master.

Conflicts:
server/hosts/abstract_ssh.py
4704ecfaf557180136ebf8d3a44bad5e570aa0b6 12-Jan-2010 Darin Petkov <petkov@chromium.org> Autotest site utils to read the Chrome OS power status and a dummy client test.

The dummy client test can probably be deleted once we have some real tests.
Some TODOs: maybe add unit tests for the new library; consider a power profiler.

Review URL: http://codereview.chromium.org/543013
ite_libraries.py
ite_power_status.py
c035491ba24efea9e4343982f0a7c4b92e0a8c72 12-Jan-2010 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> Adds support to wait_down and wait_for_restart to watch for changed
boot_id values (using /proc/sys/kernel/random/boot_id). This avoids a
race condition where if a machine was able to successfully shutdown
and boot up again after you started a reboot and before we started
polling for the shutdown, it would just appear that the machine
failed to shutdown when told.

As a result the Host.wait_down method now treats the case where a
machine is NOT down but has a new boot_id as being "down", because
this implies that the machine did shut down (and subsequently came
back up). This does mean that you cannot assume that a successful
wait_down implies that the machine is now down, but that was never
true anyway.

Risk: High
Visibility: We can now reliably detect the restart of machines with
very fast restart times.

Signed-off-by: John Admanski <jadmanski@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@4096 592f7852-d20e-0410-864c-8624ca9c26a4
osts/base_classes.py
12b45582c04b2417036a6f11afc843ac5fddea50 11-Jan-2010 lmr <lmr@592f7852-d20e-0410-864c-8624ca9c26a4> Massive permission fix

Fix permissions for all the development tree

Signed-off-by: Lucas Meneghel Rodrigues <lmr@redhat.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@4094 592f7852-d20e-0410-864c-8624ca9c26a4
arrier.py
ase_check_version.py
ase_job_unittest.py
oottool_unittest.py
heck_version.py
ernel_versions.py
est_utils/__init__.py
est_utils/unittest.py
e90176acdce332d3c12791b93c446f41f704186e 11-Jan-2010 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Signed-off-by: Lucas Meneghel Rodrigues <lmr@redhat.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@4089 592f7852-d20e-0410-864c-8624ca9c26a4
osts/base_classes.py
9de6ed7ab19c29b5072d52439f434453df16bec0 11-Jan-2010 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Eliminate the last uses of the public state managment interface for
storing private job state. This does it for the last bits of
client-only state.

It also changes job.record to use a _record_prefix value, instead of
a group level value, for tracking the "current" indentation of status
logging. It's only a minimal change to record, I have more significant
refactoring in mind for getting rid of the massive duplication of
the job.record infrastructure, I just targetted this specific aspect
to get rid of the last of the "old" state management.

Note that unlike the other stateful properties, job._record_prefix is
NOT a single, global value automatically shared between the server
and client job; the client puts the stateful property in the client
namespace to keep its value independent of the server one.

Risk: Medium
Visibility: Clears out the last of the "old-style" use of storing
private job state in the public state area.

Signed-off-by: John Admanski <jadmanski@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@4086 592f7852-d20e-0410-864c-8624ca9c26a4
ase_job.py
ase_job_unittest.py
fc3da5bbdcd63840cd224282812c050c5520db11 06-Jan-2010 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> More refactoring of the job state code to try and reduce duplication.
In the process this also refactors a bunch of job.run_test duplication,
specifically the handling of job tags (there's still lots more
duplicate code left).

The main state refactorings are:
* Storing client job steps in __steps and special-casing its removal
in autotest.py is gone. Instead the client job code stores it
directly in the client.steps state, and the autotest.py generically
removes the entire client.* namespace.
* Moving this out of the publicly-visible state and into a private
namespace allows us to drop has_state and discard_state, which
were really only needed so that we could make sure __steps was
not persisted across jobs.
* All of this client-job state managment was moved out of autotest.py
and into server_job.py. All the data this code was getting and
setting was in the job object, so it seemed like a better place
to put it. This also let us drop load_state and save_state, which
were really only there to make it easier to push and pull data
out of the server job object.
* Eliminate get_run_number and set_run_number in favour of a generic
use_sequence_number boolean property (that works on both client
and server automatically). The get_ and set_ code was only being
used to enable and disable an auto-incrementing sequence number to
be tagged to each test run, so we can just make the public
interface a boolean and handle the sequencing under the covers.
* Drop all the test_tag and test_tag_prefix code in favour of a
persistent automatic_test_tag property. Also drops the
show_kernel_in_test_tag flag in favour of just implementing this
in the control file generator using automatic_test_tag.
* Refactor all the test name tagging code into base_job, unifying
the tagging portion of the job.run_test code.

Signed-off-by: John Admanski <jadmanski@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@4075 592f7852-d20e-0410-864c-8624ca9c26a4
ase_job.py
ase_job_unittest.py
4608b005f15444d2ec4601b8274828ad52b5ea51 05-Jan-2010 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Add a new Archiving stage to the scheduler, which runs after Parsing. This stage is responsible for copying results to the results server in a drone setup, a task currently performed directly by the scheduler, and allows for site-specific archiving functionality, replacing the site_parse functionality. It does this by running autoserv with a special control file (scheduler/archive_results.control.srv), which loads and runs code from the new scheduler.archive_results module. The implementation was mostly straightfoward, as the archiving stage is fully analogous to the parser stage. I did make a couple of refactorings:
* factored out the parser throttling code into a common superclass that the ArchiveResultsTask could share
* added some generic flags to Autoserv to duplicate special-case functionality we'd added for the --collect-crashinfo option -- namely, specifying a different pidfile name and specifying that autoserv should allow (and even expect) an existing results directory. in the future, i think it'd be more elegant to make crashinfo collection run using a special control file (as archiving works), rather than a hard-coded command-line option.
* moved call to server_job.init_parser() out of the constructor, since this was an easy source of exceptions that wouldn't get logged.

Note I believe some of the functional test changes slipped into my previous change there, which is why that looks smaller than you'd expect.

Signed-off-by: Steve Howard <showard@google.com>

==== (deleted) //depot/google_vendor_src_branch/autotest/tko/site_parse.py ====


git-svn-id: http://test.kernel.org/svn/autotest/trunk@4070 592f7852-d20e-0410-864c-8624ca9c26a4
ost_queue_entry_states.py
5da93b274867e42655d76ecfaedfc46a32f82f4d 21-Dec-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Added support to specify no timeout for barrier by giving it a value of
"None".

Signed-off-by: Mihai Rusu <dizzy@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@4035 592f7852-d20e-0410-864c-8624ca9c26a4
arrier.py
1b0faf92eda0f62f60d3b4472f9ba0efdd455b54 19-Dec-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Added additional test hooks that are important when doing profiled runs
with tests that need to perform certain setup per test iteration before
the profiling starts.

Signed-off-by: Mihai Rusu <dizzy@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@4024 592f7852-d20e-0410-864c-8624ca9c26a4
rofiler_manager.py
est.py
2c7f7d69ebc62b55444a9a961d31258b49ab4370 19-Dec-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Added a check in utils.run() that the "args" argument is not
a string to avoid a common misuse case.

Signed-off-by: Mihai Rusu <dizzy@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@4023 592f7852-d20e-0410-864c-8624ca9c26a4
tils.py
tils_unittest.py
fbf73aecdd357094ae05e7d1e4ea99b1ecf93ee4 19-Dec-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Refactor all of the persistent state managing code in the client job
class into the common_lib base job class. The major change is that all
the details of the job state implementation are pulled into a class
base_job.job_state. This class handles all the internal details of the
state managment that job.get_state and job.set_state did, and also
provides a mechanism for creating job properties which are automatically
backed by job state.

This also includes a major change to the semantics of state passed
between autoserv and any Autotest clients it ran. Previously the code
was a bit of a hack, with code in server/autotest.py that would
pre-generate a state file with some pre-set values, and code that would
pull back the state file after the client job and extract some values
from it, as well as some more code that would prepend a bunch of
state initialization calls at the start of the client control file.
Instead of all these hacks, autotest.py now just pushes all of the
state out to the client at the start, and pulls it all back at the end
(with a special exception for __steps that's difficult to eliminate at
this time). So any state set on the server is automatically available
on the client, and any state set on the client is automatically
available on the server.

There are a couple of outstanding issues:
* More of the set_state/get_state code needs to be refactored
to either use the automatic properties, or the job-internal state
API (so that all the internal state is not leaked into the "public"
state visible through get_state and set_state).
* The job_state class is perhaps somewhat overengineered. It's really
just a big, automatically persistect dict-of-dicts. But most of it
is actually code that was being used before, it was just scattered
all over server/autotest.py and client/bin/job.py so it was less
obvious how overgrownt he state managment is.

Risk: High
Visibility: Replaces a bunch of get_*+set_*+default_* methods with
persistent properties, refactors all of the state managment
into a single implementation consistently used in both the
server and client.

Signed-off-by: John Admanski <jadmanski@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@4022 592f7852-d20e-0410-864c-8624ca9c26a4
ase_job.py
ase_job_unittest.py
39986a63d977721c5c202448728ec2b35a1dcb7d 10-Dec-2009 showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> Add prefixes [stdout] and [stderr] to logged output of subcommands, by default. This applies both to local commands (utils.run() and friends) and remote commands (SSHHost.run(), ParamikoHost.run()) Also removed a little dead code from abstract_ssh.py.

Signed-off-by: Steve Howard <showard@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@4011 592f7852-d20e-0410-864c-8624ca9c26a4
tils.py
410fe2e68ba6332043f0d41cd02c0361b275193f 02-Dec-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Add an option to wait_for_restart to not log errors unless we want it to, this is necessary for hard reboot testing with retries

Signed-off-by: Scott Zawalski <scottz@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3990 592f7852-d20e-0410-864c-8624ca9c26a4
osts/base_classes.py
da8fb97be0353f54eb7e62e132482d728684f200 01-Dec-2009 lmr <lmr@592f7852-d20e-0410-864c-8624ca9c26a4> Fix autotest client when checking only client from svn

When the client was made configurable through
global_config.ini (r3956), the scenario "developer
checking out client directory only" wasn't
considered, and an exception will be thrown
due to the lack of a global_config.ini present.

In order to fix this, instead of throwing an
exception, just print a warning on cases that
matter, and make all the values that are
supposed to be grabbed from the config file
to have a sensible default.

2nd try: Now a warning is printed only when
autotest is being run through autoserv, since
it's probably the only case worth printing
a warning.

Signed-off-by: Lucas Meneghel Rodrigues <lmr@redhat.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3981 592f7852-d20e-0410-864c-8624ca9c26a4
lobal_config.py
ost_protections.py
8054b0da315c94d249aaf80512bc133d4cb55b92 25-Nov-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Fix a race in _ensure_valid.

Signed-off-by: Josh Gilkerson <jwg@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3975 592f7852-d20e-0410-864c-8624ca9c26a4
ase_job.py
6d08b3c3fc2858ccd60a323008703179f93ae38b 18-Nov-2009 lmr <lmr@592f7852-d20e-0410-864c-8624ca9c26a4> Make a standalone client to be able to use global_config.ini

In order to make it possible the autotest client to use the
global_config.ini configuration files:

* Modified global_config.py to support verifying if the
configuration file is under autotest's root directory,
or the client directory
* Extended the autotest run method to copy over
the configuration files to the client.

Notes for revisors (changes from previous patchset and other stuff):

* Latest comments from John adressed

Signed-off-by: Lucas Meneghel Rodrigues <lmr@redhat.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3955 592f7852-d20e-0410-864c-8624ca9c26a4
lobal_config.py
ost_protections.py
c1dda2104e10faa089c466886055390e00103367 18-Nov-2009 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> Replacing AutoservInstallError with a slightly different version.

Signed-off-by: John Admanski <jadmanski@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@3954 592f7852-d20e-0410-864c-8624ca9c26a4
rror.py
9fa2afc4d2a8c36e3e892365c62f661b9770eca6 18-Nov-2009 lmr <lmr@592f7852-d20e-0410-864c-8624ca9c26a4> Adding AutoservInstallError to common_lib.error

server/autotest.py was referencing it but it didn't exist.
This patch creates the error class.

Signed-off-by: Lucas Meneghel Rodrigues <lmr@redhat.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@3953 592f7852-d20e-0410-864c-8624ca9c26a4
rror.py
c4e4bd2ae0fcc68af246b18edf58ecf5fc26a861 12-Nov-2009 lmr <lmr@592f7852-d20e-0410-864c-8624ca9c26a4> Get rid of the job.libdir and test.libdir attributes

Get rid of the job.libdir and test.libdir directories. Nothing really uses
them and they don't work properly with what's in SVN right now anyway.

Risk: Low
Visibility: No more job.libdir and test.libdir attributes

Signed-off-by: John Admanski <jadmanski@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3940 592f7852-d20e-0410-864c-8624ca9c26a4
ase_job.py
ase_job_unittest.py
est.py
da2f143ff7658eca507041cd2393ead3b68cfa5e 06-Nov-2009 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> Added a couple of files that were missed in the r3916 commit.



git-svn-id: http://test.kernel.org/svn/autotest/trunk@3918 592f7852-d20e-0410-864c-8624ca9c26a4
ase_job.py
ase_job_unittest.py
0d0f67d6abcf6599ad626042d3236020e093558f 06-Nov-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Create a base_job class in the common library as a location to
refactor common code from client/bin/job.py and server/server_job.py
into.

Initially this just creates the base class and attempts to refactor
some of the __init__ code into it. It also tries to refactor the
code somewhat so that it's easier to test without mocking out large
amounts of external dependencies.

It also tries to standardize on what all the official publicly usable
attributes are, mostly on the basis of looking at what the existing
code actually does. In general my approach was:
* If used outside of the job class, assume it's public. If it makes
sense make it a requirement of the base class, but in some cases
(e.g. serverdir) it really only makes sense for one of the
concrete classes. In that case I define it as "OPTIONAL", which
means it can be None (but must still be defined).
* If only used within the job class, make it "private", which means
it gets a name starting with _. Code outside of the job modules
shouldn't be touching these. This includes the "constants" that
we define with all-caps in the class.
* I added unit tests which try to actually validate this, by
checking that all the correct properties are defined after
__init__. The test cases are still limited (all the test_init
cases) because of the pain of stubbing out __init__, but I will
be adding more in the future as I refactor to reduce the amount
of mocking/stubbing needed.

Overall, I don't know that this change by itself makes the code
simpler or easier to understand, but I don't think it makes things
any worse in that regard, while adding a lot more testing and
finally giving us a well-defined interface. I have more changes
planned, but as new improvements kept creeping into this change I
decided to mail it out for some review instead of letting it grow
even bigger. Some ideas of what I still intend to do in followup
patches:
* Refactor more of the directory management code into job_directory, to
get the rest of the mkdir/makedirs code into there. That way all
of the directory management is concentrated in one place.
* Refactor all the of get_state/set_state code into something that
automatically handles this with properties without a lot of
boilerplate getter and setter methods.
* Refactor the job.record related code that's duplicated into the
base class.

Risk: High
Visibility: Mostly code changes to standardize the job class interface.
A lot of the visible changes just involve privatizing attributes
that aren't used outside of job anyway, or adding in attributes
that were only defined on the client or server.

Signed-off-by: John Admanski <jadmanski@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@3916 592f7852-d20e-0410-864c-8624ca9c26a4
est_utils/mock.py
2b33aa07a530a1c2e1adc06f24a296978b3365f1 06-Nov-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Adding a copy of functools-0.5 to our repo for use by unittest.py. It
is needed when running with Python 2.4.

Signed-off-by: Gregory Smith <gps@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3911 592f7852-d20e-0410-864c-8624ca9c26a4
est_utils/functools_24.py
est_utils/unittest.py
d7940481fef920d169f8da0e69b6c0168f43aa52 06-Nov-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Fixed the "with" workaround code of the unittest backport module
(otherwise couldn't use self.assertRaises and self.assertRaisesRegexp).

This patch has also been suggested to the upstream as a fix for the
issues with those methods
(http://code.google.com/p/python-unittest-backport/issues/detail?id=1).

Signed-off-by: Mihai Rusu <dizzy@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3908 592f7852-d20e-0410-864c-8624ca9c26a4
est_utils/unittest.py
3c0ea96b0dbd2115fa2057c21635173eaf461f31 06-Nov-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Added common_lib.hosts.Host.cleanup_kernels and some functions it's using.
Implemented a fast local version of those functions in LocalHost to not
go through the run() abstraction. Added call to cleanup_kernels() from
generated control file code so it will cleanup unused kernels (not
referenced by the bootloader) each time it's installing a new kernel.

Signed-off-by: Mihai Rusu <dizzy@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3907 592f7852-d20e-0410-864c-8624ca9c26a4
osts/base_classes.py
6f7d363407f1915536722883e4bfb856fc143abf 06-Nov-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Added a backport of the Python 2.7/3.1 unittest module to Autotest's
client/common_lib/test_utils from the
http://code.google.com/p/python-unittest-backport/ project (SVN revision
2).

This module is backwards compatible with the python2.4 standard
library one so it could be used as a replacement for it anywhere we use
the standard library one.

Signed-off-by: Mihai Rusu <dizzy@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3906 592f7852-d20e-0410-864c-8624ca9c26a4
est_utils/unittest.py
6d7c565a3701429578fe7425fbd4aeb554e989e7 06-Nov-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Improve error message when a disk is low on space.

Signed-off-by: Gregory Smith <gps@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3903 592f7852-d20e-0410-864c-8624ca9c26a4
ase_packages.py
aea51ccb4a4a277b2796916eab043e8b91e56649 30-Oct-2009 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> Tweak the stubbing in mock.py to handle a very subtle case. When you
stub out something like a method on an instance when you unstub you
want to put things back in their original state. But restoring the
original result of getattr onto the instance doesn't do that, because
the attribute may actually be inherited from some enclosing
namespace; for example instance methods actually come from the
instance.__class__ object, not the instance itself.

Risk: Low
Visibility: Fixes up a case where the mock library doesn't actually
properly unstub.

Signed-off-by: John Admanski <jadmanski@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@3892 592f7852-d20e-0410-864c-8624ca9c26a4
est_utils/mock.py
cf8d492a6eafdd03d88ad9dad676ae737ec898ec 14-Oct-2009 showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> Log a message with a traceback immediately when an exception is caught that fails a test or job.

Right now, when tests or jobs fail, we execute various actions before providing any indication of the failure. Such actions include post-test cleanup, post-iteration sysinfo collection, post-job crashinfo collection, etc. The exception traceback can be separated from the immediately preceding line by hundreds of lines of unrelated logging output. Of course the traceback shows you exactly where the exception originated, but this separation in the logs makes debugging a royal pain.

With this change, whenever such a test- or job-ending exception is caught, on the client or the server, we *immediately* log a message with a traceback. We then carry on with the usual activities and eventually log the traceback again when we're recording failure. But the first log should make debugging easier and make things more obvious for new and experienced users alike.

Signed-off-by: Steve Howard <showard@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3852 592f7852-d20e-0410-864c-8624ca9c26a4
est.py
fb11887e50185985519cecac0af93c60d1d280bd 13-Oct-2009 lmr <lmr@592f7852-d20e-0410-864c-8624ca9c26a4> Crash handling system: Move it to client side code

It's undesirable to have crash handling setup on server
side testing, hence make the methods that do the actual
work as empty stubs in the common test code, and move
these methods to the client test definition, this way
setup will happen only on client side tests.

Thanks for jadmanski for helping me to figure out how
to do this properly.

Signed-off-by: Lucas Meneghel Rodrigues <lmr@redhat.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3841 592f7852-d20e-0410-864c-8624ca9c26a4
est.py
f7368c5f18a04f5af828223c3d1ae3c379f06938 13-Oct-2009 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> Added safe arguments support to hosts.run() abstractions and stdin run()
(only string at this time) support to ParamikoHost.

Signed-off-by: Mihai Rusu <dizzy@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3840 592f7852-d20e-0410-864c-8624ca9c26a4
osts/base_classes.py
093a06869b1795ecb11fdff7e7fc400c2be43296 13-Oct-2009 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> Added string stdin support to utils.BgJob and all its users that give it
a stdin argument (like utils.run()). Fixed a bug in _wait_for_commands()
when used for more than one BgJob where if a BgJob would finish then it
would enter a 100% CPU loop because the stdout/stderr descriptors are
not removed from the select sets. Added unittest for utils.run. Updated
users of utils.run() that were creating dummy files or pipes to
workaround the fact that they could not give utils.run() a string stdin.

Signed-off-by: Mihai Rusu <dizzy@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3839 592f7852-d20e-0410-864c-8624ca9c26a4
osts/base_classes.py
tils.py
tils_unittest.py
786da9a90b56daded2497d9161d88e8a76832969 12-Oct-2009 showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> Escalate to a SIGKILL in DroneUtility.kill_process() if the SIGTERM
didn't work

Signed-off-by: James Ren <jamesren@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3825 592f7852-d20e-0410-864c-8624ca9c26a4
tils.py
a6082efeb30cd86d09fcf25d55cde15dedd60fce 12-Oct-2009 showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> Add a global mechanism to the job object to allow users to change
the behaviour of profile_only, so that all tests default to

Signed-off-by: John Admanski <jadmanski@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3818 592f7852-d20e-0410-864c-8624ca9c26a4
est.py
est_unittest.py
0d9ea7784bf5a3109b63825535aa695e78bddcb9 09-Oct-2009 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> Update the constraint-checking code to use a much more sanitized
dictionary as the eval environment for checking constraints.
Specifically:
* uses a copy of the keyval dict, to prevent the mutation of
the keyval dictionary by the eval()
* sets __builtins__ to None, to prevent the grabbing of the
entire global environment into the eval()

Risk: Medium
Visibility: May break any constraints that were abusing the fact that
the global environment was leaking into the constraint eval().

Signed-off-by: John Admanski <jadmanski@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@3807 592f7852-d20e-0410-864c-8624ca9c26a4
est.py
c2ebea01c0f3ecf4847eb13f3228118f36be124a 02-Oct-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Merged the contents of client.bin.boottool and server.hosts.Bootloader
into a common_lib.boottool API. Added unittest for it. Updated users.

Visibility: this changes the client and server job.bootloader API
slightly and while I've tried to make sure that all users of the old
API are updated to the new one it's possible that there is code ouside
the Autotest source tree that may rely on the old API.

Signed-off-by: Mihai Rusu <dizzy@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3785 592f7852-d20e-0410-864c-8624ca9c26a4
oottool.py
oottool_unittest.py
c6bf601d0de97a86cb9d09db08b4ea725fac2003 02-Oct-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Add a WARN message to the status log when a test runs with
profile_only=True but no profilers set up. It's all too easy to make
this mistake (e.g. tweaking a control file set up for profiling runs
to turn off the profilers, but forgetting to remove the profile_only)
and it leads to lots of confusion when the test successfully runs
with zero iterations.

Signed-off-by: John Admanski <jadmanski@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3784 592f7852-d20e-0410-864c-8624ca9c26a4
est.py
est_unittest.py
c823e8dbbba4a3699e3a35eb87425b55d34844f0 02-Oct-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Added "args" keyword argument to common_lib.utils.run() and
system_output() functions so one can specify a list of shell arguments
that will be safely passed to the shell (quoting them in " and escaping
their contents if necessary for " quoting).

Signed-off-by: Mihai Rusu <dizzy@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3783 592f7852-d20e-0410-864c-8624ca9c26a4
tils.py
48e69052c17e7f7a0647e7711dd18d8571789172 25-Sep-2009 showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> expose the do_not_report_as_logging_caller() decorator in logging_manager as public.

Signed-off-by: Steve Howard <showard@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3765 592f7852-d20e-0410-864c-8624ca9c26a4
ogging_manager.py
ogging_manager_test.py
ca57298a7986498abb1ad0ae75edd3677a096c11 18-Sep-2009 showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> reorganize verify_*() methods a bit. they were making some odd super() calls that didn't look right. this removes that, adds a verify_connectivity() method between HW and SW, and puts the master control flow in the base class. also add a logging call to a dangerous blanket try-except.

Signed-off-by: Steve Howard <showard@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@3751 592f7852-d20e-0410-864c-8624ca9c26a4
osts/base_classes.py
6894ce2a95b6bb4e18f1791a96bb270a23353050 18-Sep-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> This patch adds a system to watch user space segmentation
faults, writing core dumps and some degree of core dump
analysis report. We believe that such a system will be
beneficial for autotest as a whole, since the ability to
get core dumps and dump analysis for each app crashing
during an autotest execution can help test engineers with
richer debugging information.

The system is comprised by 2 parts:

* Modifications on test code that enable core dumps
generation, register a core handler script in the kernel
and check by generated core files at the end of each
test.

* A core handler script that is going to write the
core on each test debug dir in a convenient way, with
a report that currently is comprised by the process that
died and a gdb stacktrace of the process. As the system
gets in shape, we could add more scripts that can do
fancier stuff (such as handlers that use frysk to get
more info such as memory maps, provided that we have
frysk installed in the machine).

This is the proof of concept of the system. I am sending it
to the mailing list on this early stage so I can get
feedback on the feature. The system passes my basic
tests:

* Run a simple long test, such as the kvm test, and
then crash an application while the test is running. I
get reports generated on test.debugdir

* Run a slightly more complex control file, with 3 parallel
bonnie instances at once and crash an application while the
test is running. I get reports generated on all
test.debugdirs.

4th try:
* Implemented most of the suggestions made by Michael.
* Moved the crash_report method call outside the finally
clause that calls job.logging.restore, so if it
something goes wrong logging.restore still gets
executed, as John pointed out.

Signed-off-by: Lucas Meneghel Rodrigues <lmr@redhat.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3750 592f7852-d20e-0410-864c-8624ca9c26a4
est.py
00143ff018e32f442fe61c47f574733d6750880e 18-Sep-2009 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> Move the "switch on host protection" logic from the repair control
segment into an abstract method in Host. This will allow code other
than the repair control file to make use of the protection level
logic.

Risk: Medium
Visibility: Moves some code from the canned control segments into the
Host class itself.

Signed-off-by: John Admanski <jadmanski@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@3745 592f7852-d20e-0410-864c-8624ca9c26a4
osts/base_classes.py
893db3d528e4c7d10ef5b7073dbf63670dffbcca 15-Sep-2009 showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> Allow "None" to be used as a default value in global_config.get_config_value().

Signed-off-by: Steve Howard <showard@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3715 592f7852-d20e-0410-864c-8624ca9c26a4
lobal_config.py
eaa408e59e932ce0540aa5d50bf966af5080f640 11-Sep-2009 showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> Add atomic group job support to why_isnt_my_job_running to be able to
tackle the frequently asked questions regarding forever queued jobs.

Signed-off-by: Gregory Smith <gps@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3707 592f7852-d20e-0410-864c-8624ca9c26a4
ost_queue_entry_states.py
5deef7fb0ae83271dbd43f4f381d4cdbe5fa6480 09-Sep-2009 showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> * added import_site_module() to other import_site_*() methods in utils
* made site_rpc_interface.py optional using import_site_module()
* made import_site_*() methods fail with an exception when a site file exists but isn't readable

Signed-off-by: Steve Howard <showard@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3679 592f7852-d20e-0410-864c-8624ca9c26a4
tils.py
35388502fd3f3a4e5cbc4da14313e89129ed79d3 03-Sep-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Log when aborting the barrier.

Signed-off-by: Jean-Marc Eurin <jmeurin@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3655 592f7852-d20e-0410-864c-8624ca9c26a4
arrier.py
313b9266da8da08299d3786e1023f14023c82906 03-Sep-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Fix a regression from the control_segment -> Host refactoring of the
repair code. Importing the host_protections on the client will
fail since global_config.ini is unavailable there. However this is
more of a host protection bug than a repair code bug, as common_lib
code should be usable on a standalone client (or at least importable).

This change allows the loading of the "default" host protection to
fail, as long as the failure reason is a problem is a complete lack
of a config file (and not just an incomplete one, which is still a
failure). It does mean that host_protections.default is undefined
on clients, but this shouldn't be a problem.

Risk: Low
Visibility: Make

Signed-off-by: John Admanski <jadmanski@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3654 592f7852-d20e-0410-864c-8624ca9c26a4
ost_protections.py
3a0aae9cf43ea8db2721c5b77b330f111a803331 03-Sep-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Enabling aborts in barriers.

Signed-off-by: Jean-Marc Eurin <jmeurin@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3653 592f7852-d20e-0410-864c-8624ca9c26a4
arrier.py
arrier_unittest.py
d6cc02c4b72c1dae7cdf701cf1ccb5b84706fd23 31-Aug-2009 showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> Turn off command echo for the command when we write the packaging checksum file. We previously turned off all stdout for packaging commands, but even that's not enough here, since in this case the actual command line can be huge.

Signed-off-by: Steve Howard <showard@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3632 592f7852-d20e-0410-864c-8624ca9c26a4
ase_packages.py
8de3713899b7583b41504e5adac64ab5deaebfa1 31-Aug-2009 showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> Renamed process_is_alive to program_is_alive.

Signed-off-by: James Ren <jamesren@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3628 592f7852-d20e-0410-864c-8624ca9c26a4
tils.py
6631273af8b88842cbd6202cc4615daf050cc957 27-Aug-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Make a bunch of stuff executable



git-svn-id: http://test.kernel.org/svn/autotest/trunk@3621 592f7852-d20e-0410-864c-8624ca9c26a4
utotemp_unittest.py
arrier_unittest.py
ontrol_data_unittest.py
lobal_config_unittest.py
osts/base_classes_unittest.py
ogging_manager_test.py
ail_unittest.py
rofiler_manager_unittest.py
est_unittest.py
est_utils/mock_demo.py
tils_unittest.py
f83a5a2a3e536e18ae4a43ed515fbde94aeba375 27-Aug-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Add missing hosts dir

Signed-off-by: Martin J. Bligh <mbligh@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@3620 592f7852-d20e-0410-864c-8624ca9c26a4
osts/__init__.py
osts/base_classes.py
osts/base_classes_unittest.py
e4e958f7f6ce9a58849b304027f832e2f31289a3 25-Aug-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> restore check_version

Signed-off-by: Martin J. Bligh <mbligh@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@3615 592f7852-d20e-0410-864c-8624ca9c26a4
heck_version.py
45e4338dd25660bfd1e3d1286d9cb7ea5704be7b 25-Aug-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> check_version

Signed-off-by: Martin J. Bligh <mbligh@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@3614 592f7852-d20e-0410-864c-8624ca9c26a4
ase_check_version.py
heck_version.py
bccad480b242b63f93f35b55a0e77517e3a76feb 25-Aug-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Sadly, put back the "disable packaging-only installs" used by the
profiler installs. We can't count on profilers using autoserv-based
packaging because the profiler runs are background jobs, and so
don't actually use autoserv.

I think this code can ultimately but cleaned up but for now it's
better to revert back to the old model of doing "full" installs when
profiling is running on a setup without any http repositories.

Risk: Low
Visibility: Restores server-side profilers in no-repos configs.

Signed-off-by: John Admanski <jadmanski@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3609 592f7852-d20e-0410-864c-8624ca9c26a4
rofiler_manager.py
4e2dd02a95e88a099dbe07635a38b8c7d9fe9ecd 25-Aug-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> While working on the 0.11.0 branch, discovered a small bug on
client/bin/fsdev_disks.py: on the prepare_disks method, a check to see
if one of the parameters is instance of a invalid TestFlags object.
Reading the code, it became clear that the author meant to check if
fs_desc is an instance of partition.FsOptions. This patch fixes that and
the fix is identical for both 0.11.0 and trunk.

Signed-off-by: Lucas Meneghel Rodrigues <lmr@redhat.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3601 592f7852-d20e-0410-864c-8624ca9c26a4
heck_version.py
08f2b3c789470617fba51b49a622023731dac9d9 25-Aug-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Prevent this test from leaving turds behind. use socketpair.

Signed-off-by: Gregory Smith <gps@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3595 592f7852-d20e-0410-864c-8624ca9c26a4
arrier_unittest.py
ce955fcf58207d795ff1fe0001851b8b3728452c 24-Aug-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Created a common_lib host object hierarchy (with site specific override
support) and moved *some* non server specific code from server/hosts to
the common_lib version. Created a client.bin LocalHost host object
inheriting from the common_lib Host and implemented a run() method based
on utils.run() (ie a host object for the local machine). Modified
client/bin/autotest to receive a new --hostname argument to tell it the
hostname to use for the LocalHost.hostname instance attribute and
updated server/autotest.py to send use this argument. Modified
client.bin.job to set a self.host instance attribute with an instance of
LocalHost and updated the unittest. Added an AutotestHostRunError class
(raised on LocalHost.run() failures).

Risk: high (there are modifications in the core server side support code
and some core client code).

Tested with verify/repair and client/server sleeptest jobs.

To be able for SVN to remember code history (that most of the new
client/common_lib/hosts/base_classes.py is based on the old
server/hosts/base_classes.py) then the following steps are probably needed
to apply this patch:
$ svn mkdir client/common_lib/hosts
$ svn copy server/hosts/base_classes.py client/common_lib/hosts
$ patch -p1 ...
$ svn add client/bin/local_host.py client/bin/local_host_unittest.py client/common_lib/hosts/__init__.py client/common_lib/hosts/base_classes_unittest.py

Signed-off-by: Mihai Rusu <dizzy@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3594 592f7852-d20e-0410-864c-8624ca9c26a4
rror.py
b5df2f9f3269fa820195ae2dd3ed1733fbb8bba6 24-Aug-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Handle bad requests to the barrier server without crashing the barrier.

NOTE: the barrier code is still weak. the client.recv(1024) is blantantly
wrong as its not guaranteed to have received sufficient data. current
uses have not been triggering that issue yet though.

Signed-off-by: Gregory Smith <gps@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3592 592f7852-d20e-0410-864c-8624ca9c26a4
arrier.py
arrier_unittest.py
a9894d0f2364fd7c963d177367004220dd6e6471 21-Aug-2009 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> Back out a python2.4 ref that was accidentally re-inserted.



git-svn-id: http://test.kernel.org/svn/autotest/trunk@3588 592f7852-d20e-0410-864c-8624ca9c26a4
est_unittest.py
a93fbca94f7ae7db3c4c7d45a881c4a77cddf4df 21-Aug-2009 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> Apply a unit test change that was never applied along with the
code changes it was coupled with.

Signed-off-by: John Admanski <jadmanski@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@3586 592f7852-d20e-0410-864c-8624ca9c26a4
est_unittest.py
549afada66cc95a35fb0be76357f335016a1b122 21-Aug-2009 showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> Added pid file checks to monitor_db and monitor_db_babysitter, so that
only one of each process can exist at a time. Changed killing of
monitor_db in monitor_db_babysitter to use these pid files.

Risk: low
Visibility: medium

Signed-off-by: James Ren <jamesren@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3575 592f7852-d20e-0410-864c-8624ca9c26a4
tils.py
8de1b4fb3e7bff2d026c21419ea0c9b3068f3a72 21-Aug-2009 showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> Change handling of filename in logging_manager_test.py so that it no
longer randomly fails when run from utils/unittest_suite.py.

Risk: low
Visibility: low

Signed-off-by: James Ren <jamesren@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3565 592f7852-d20e-0410-864c-8624ca9c26a4
ogging_manager_test.py
122f6bc59b3ab7ea810e48aae2c974fa2c09eb6b 19-Aug-2009 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> Don't update the local copy of the checksum file when fetching a
package. This is only relevant when you're installing packages from
a repo that has no checksums; it means that you'll always reinstall,
instead of never reinstalling, so it trades off a bug for performance.

Risk: Medium
Visibility: autoserv-based package installs should now be updated when
the code on the server is

Signed-off-by: John Admanski <jadmanski@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@3562 592f7852-d20e-0410-864c-8624ca9c26a4
ase_packages.py
c26763e44b8ef21d44e81c7ac8db7bfd9237d795 11-Aug-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Currently, the utility function import_site_symbol prints
an INFO message every time a site module cannot be imported.

However, for cases where we don't have an actual site_*.py
present, the message is not necessary. Right now users using
the vanilla version of autotest see this at every client or
server execution:

INFO:root:unable to import site module 'site_packages.py', using non-site implementation
INFO:root:unable to import site module 'site_sysinfo.py', using non-site implementation
INFO:root:unable to import site module 'site_kernel.py', using non-site implementation
INFO:root:unable to import site module 'site_job.py', using non-site implementation

When there is a file present though, we should be louder
complaining (an existing site module might have syntax problems
or other issues). So, supress messages when we don't have a
site file, and when we do, make it an ERROR message.

Fixing patch according to John's comments.

Signed-off-by: Lucas Meneghel Rodrigues <lmr@redhat.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3524 592f7852-d20e-0410-864c-8624ca9c26a4
tils.py
ede7e248313e4670e69b2c9c28583cbc91d6f6bc 10-Aug-2009 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> Add support for autotest clients run by autoserv to request packages
from the server when no other repositories are available. The
autoserv process will automatically bundle up a tarball and push it
out to the client when a package is requested from it.

Risk: Medium
Visibility: Allows tests, profilers and deps to ALWAYS be installed
via the packaging system so long as autoserv is in use, even if
package server haven't been set up.

Signed-off-by: John Admanski <jadmanski@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@3522 592f7852-d20e-0410-864c-8624ca9c26a4
ase_packages.py
b1a5113d43c8f0a8b115c541d3e590d280e75565 07-Aug-2009 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> Next step in the PackageManager restructure, replace the static list
of repo urls with a list of RepositoryFetcher instances. Drops
PackageManager.fetch_pkg_file and just calls the
RepositoryFetcher.fetch_pkg_file on each repo directly in fetch_pkg.

Also adds an explicit add_repository method as a "clean" way for
other classes (specifically client/job.py) to add repositories.

Risk: Medium
Visibility: Switches over to the polymorphic RepositoryFetcher model
of fetching repo packages.

Signed-off-by: John Admanski <jadmanski@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@3512 592f7852-d20e-0410-864c-8624ca9c26a4
ase_packages.py
c27c231ee840e8ce97012477ba1f917674375a1e 05-Aug-2009 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> A very large first-pass refactoring of the packaging code. Ultimately
my goal is to replace the if-elif-elif-else type method calls in
the package manager that fetches a file with a more OO-style method
that tries to fetch the files from a variety of RepositoryFetcher
instances. My primary motivation for doing that is so that I can
add a more specialized RepositoryFetcher instance that's closesly
tied to the code in harness_autoserv.py and I feel it would be a bad
idea to try and intergrate that into packages.py itself.

However some other refactoring and cleanup ended up being required
so as a first pass I left the if-elif-elif-else style of
fetch_pkg_file, except now it just creates and instance of the
RepositoryFetcher on the fly and asks it to fetch a package.

The major changes that I did make were:
- moved the fetch_pkg_file_* methods into RepositoryFetcher classes
- moved the bulk of the packages.py into a base_packages.py file
and just left a base+site stub in packages.py since I was running
into some circular dependency troubles with packages and
site_packages
- moved the package error classes out of packages.py and into
error.py, and added an extra abstract error class so that all
the package error classes inherit from a common class
- cleaned up some of the fetch_pkg_file_* code while moving it around
such as removing a bunch of dead code from fetch_pkg_file_http
- fixed up all the utilities, tests and infrastructure that
referenced the packages module to use the error module instead
(or in a few cases base_packages)

Functionally these rather large changes should actually have very
little impact on Autotest as a whole, since this is mostly just moving
code around. I plan to follow it up with another patch later on that
replaces the fetch_pkg_file code with something that uses a set of
long-lived RepositoryFetcher instances, along with factory methods
for constructing those fetchers, and then later on with a patch that
adds support for retriving packages directly from autoserv (using
harness_autoserv).

Risk: High
Visibility: Mostly refactoring, moved error classes into error.py,
an a few bits and pieces of code cleanup in the moved
code.

Signed-off-by: John Admanski <jadmanski@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@3511 592f7852-d20e-0410-864c-8624ca9c26a4
ase_packages.py
rror.py
ackages.py
est.py
1ef218db76c473c28627377d8f50d6e6c6743289 03-Aug-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> This is the result of a batch reindent.py across our tree.
As Martin pointed out, we ought to be more careful and
create a pre-svn commit script to avoid inserting trash
in the tree, meanwhile, this is a good start to cleanup
things

Signed-off-by: Lucas Meneghel Rodrigues <lmr@redhat.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3487 592f7852-d20e-0410-864c-8624ca9c26a4
ogging_config.py
tils.py
b65c5b0bc755c569e3ab03b6b2a70e45f72dde80 03-Aug-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Use lower ports for profiling.
old: 63100 new: 11920
old: 63001, 63101 new: 11921
old: 63002, 63000 new: 11922

Signed-off-by: Rachel Kroll <rkroll@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3483 592f7852-d20e-0410-864c-8624ca9c26a4
arrier.py
arrier_unittest.py
6fbdb803283146358f65ab81102e0a3537e9b97e 03-Aug-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Change print msg to logging.error(msg) so that we actually get the error in the scheduler log about the scheduler not being enalbed.

Signed-off-by: Scott Zawalski <scottz@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3478 592f7852-d20e-0410-864c-8624ca9c26a4
tils_unittest.py
c133599f7d11b9e6614ce667a8fb6b2157234840 28-Jul-2009 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> Try to double check that files have been successfully downloaded by
wget in the package manager because there are cases when it fails and
reports exit code as 0 (ex. when it does not know of some arguments like
the new --connection-timeout).

Signed-off-by: Mihai Rusu <dizzy@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3464 592f7852-d20e-0410-864c-8624ca9c26a4
ackages.py
19426eaae93dcd1b5928da6285a38e4b977c1b24 28-Jul-2009 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> Changed kernel.auto_kernel() to use the package manager to fetch kernel
URLs instead of giving them to the rpm_kernel instances. Cleaned up the
package manager a bit and added --connection-timeout parameter to the
executed wget to help in case of failed hosts when the hostanme resolves
to more than one IP.

Signed-off-by: Mihai Rusu <dizzy@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3463 592f7852-d20e-0410-864c-8624ca9c26a4
ackages.py
5f2bc2822bce3dc615ca1c82ac7b320ed3a6161b 28-Jul-2009 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> Fix a few typos in autotemp and change all client unittests to use autotemp

Signed-off-by: Scott Zawalski <scottz@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@3449 592f7852-d20e-0410-864c-8624ca9c26a4
utotemp.py
ontrol_data_unittest.py
lobal_config_unittest.py
tils_unittest.py
65eb8f50740bb290f8b4e5340c44ac15c558b601 24-Jul-2009 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> Allow for multiple retries when attempting to hard reset a
a machine using conmux.

Signed-off-by: Travis Miller <raphtee@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@3435 592f7852-d20e-0410-864c-8624ca9c26a4
rror.py
b45a4662dac9b12e7cec9aa0315be7c5ad490541 15-Jul-2009 showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> when ignore_status=True is passed to utils.system*() or host.run(), log stderr as DEBUG rather than ERROR

Signed-off-by: Steve Howard <showard@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3416 592f7852-d20e-0410-864c-8624ca9c26a4
tils.py
23fda9a4cef63592e6e1fe8449f703e23dd64519 11-Jul-2009 showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> Pull in patchwork ID 907 -- update file logging prefix to be fixed-width, and get rid of leading open bracket.


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3409 592f7852-d20e-0410-864c-8624ca9c26a4
ogging_config.py
3abbceee9421805bed8f5c2c6c6abb9299b32cbf 11-Jul-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> For files that won't be directly executed, the #! is unneccessary and can
confuse some tools that attempt to detect what the file is. Best to just
not have them there.

Signed-off-by: Jesse Keating <jkeating@redhat.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3407 592f7852-d20e-0410-864c-8624ca9c26a4
ontrol_data.py
ackages.py
tils.py
6955e2300c525d4769aaca0bedd102acf34816ce 11-Jul-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Sort the keyval keys to make them easier to read.

Signed-off-by: Jean-Marc Eurin <jmeurin@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3405 592f7852-d20e-0410-864c-8624ca9c26a4
tils.py
4b5c31e1821307b880b57a41f6d8ea21948fc9e8 11-Jul-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> * update documentation in test_importer
* ensure test_importer always works with absolute paths. this is important since it uses paths to identify tests in the DB.
* fix control_data.parse_control() to raise an exception instead of sys.exit()ing upon SyntaxError

Signed-off-by: Steve Howard <showard@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3404 592f7852-d20e-0410-864c-8624ca9c26a4
ontrol_data.py
b289619149c7c3558152c576cb4debee084ec3c4 11-Jul-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Reworked utils urlopen, urlretrieve and get_file to remove code
duplication and get rid of urllib (and instead use urllib2 which
will error on 404 replies from servers). This slightly changes the API
by removing some default arguments but it doesn't seem that there was
any user (other than the unittest which has been updated) for those
removed arguments.

Signed-off-by: Mihai Rusu <dizzy@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3395 592f7852-d20e-0410-864c-8624ca9c26a4
tils.py
tils_unittest.py
277a0e48d522b7bd2a159aa4ccb8c63f6f0e0d4e 11-Jul-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Moved server.utils.sh_escape function to client.common_lib.utils
(there's nothing server specific about it) and updated users. Fixed what
it seems an invalid reference bug in utils.pid_is_alive() calling a
function in the same module.

Signed-off-by: Mihai Rusu <dizzy@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3394 592f7852-d20e-0410-864c-8624ca9c26a4
tils.py
358276bc2d7f7453fde90b87b19f3c7bcaa21a0b 03-Jul-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Fix the warning call (as noted by Lucas on the mailing list) along with
fixing the version check to allow 2.6.x.

(this may have already been applied by way of the patch Lucas mailed, i haven't checked... if so, ignore this. i'm just mailing the patch after applying it internally here :)

Signed-off-by: Gregory Smith <gps@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3364 592f7852-d20e-0410-864c-8624ca9c26a4
ogging_manager.py
6a242df45e2d1639703a0cefc6d9987ba355cef3 02-Jul-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> tempfile stub that will delete temporarily allocated files/directories

The idea behind this is to replace the usage of mkstemp and mkdtemp via tempfile so that we can finally get control of temp files/dirs that people are creating and not removing.


Signed-off-by: Scott Zawalski <scottz@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3355 592f7852-d20e-0410-864c-8624ca9c26a4
utotemp.py
utotemp_unittest.py
lobal_config_unittest.py
8f2ac92f35081c8bf66d831569dcc5c8c32426e0 30-Jun-2009 showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> Work around python 2.4.3 bug http://bugs.python.org/issue1652788 by
using sys._getframe(2) directly instead of logging.currentframe().

TESTED on ubuntu dapper python 2.4.3 (fixes a bug)
TESTED on ubuntu hardy python 2.4.5 and python 2.5.2 (keeps working)

Signed-off-by: Gregory Smith <gps@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3334 592f7852-d20e-0410-864c-8624ca9c26a4
ogging_manager.py
ogging_manager_test.py
89f901697a27eb9a4da647176e3556b2840f0956 30-Jun-2009 showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> Make logging_manager report the correct module name when LoggingFile is
being used rather than 'logging_manager' itself.

This involves monkey patching the logging module (again) but that should be
safe to do as the stdlib logging code has not changed in Python 2.4-2.6.

Signed-off-by: Gregory Smith <gps@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3329 592f7852-d20e-0410-864c-8624ca9c26a4
ogging_manager.py
ogging_manager_test.py
9c12f77f7eff3cfa90fdfa19d33f82645f43dcb5 22-Jun-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Fixed the mis-spelling of rendezvous.

Signed-off-by: Travis Miller <raphtee@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3320 592f7852-d20e-0410-864c-8624ca9c26a4
arrier.py
arrier_unittest.py
tils.py
7c8ea99fecf140093f2fe3dcd0ab6b5bf65b1bbe 22-Jun-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Not all distros put a symlink in for the python version. However
all should have a /usr/bin/python target. There are still a couple
files that hardcode a /usr/lib/python2.4 path, but that's a harder
problem to solve and outside the scope of this patch.

Signed-off-by: Jesse Keating <jkeating@redhat.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3319 592f7852-d20e-0410-864c-8624ca9c26a4
arrier_unittest.py
est_unittest.py
753362d363fb183f32b4403d13ccc051438641e1 22-Jun-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Move client/bin/kernel_versions to common_lib; it is used by tko.

Signed-off-by: Duane Sand <duanes@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@3316 592f7852-d20e-0410-864c-8624ca9c26a4
ernel_versions.py
29f590933b82f3b6d60ab760d3ae5cf007e82a28 22-Jun-2009 showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> Change default sys.stdout -> logging to INFO level instead of DEBUG.

Signed-off-by: Gregory Smith <gps@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3309 592f7852-d20e-0410-864c-8624ca9c26a4
ogging_manager.py
fa1eb0df61a1d7fc0e60438a7652d307b8d7baac 22-Jun-2009 showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> Add line number to the file logging prefix. Its great for debugging, very few chars, and we agreed upon it on the mailing list.

Signed-off-by: Steve Howard <showard@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3308 592f7852-d20e-0410-864c-8624ca9c26a4
ogging_config.py
108d73e490e104a367bfa0d29a01e17b0c7a8f48 22-Jun-2009 showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> * make utils.system* default to directing output to the logging module, instead of sys.std*. this involved refactoring the code out of ssh_host/paramiko_host/abstrash_ssh, which previously did the same thing (they still do, but now the use the common logic in utils)
* change packages.py to suppress command output properly. it was using the verbose option previously, which was added to ssh_host.run() and paramiko_host.run() specifically for this call site. in this context, verbose=False meant "dont print the command and dont print the output either). but this doesn't make the interface of utils.run(), for which verbose=False just means "dont print the command", because utils.run() suppresses output by default (while *host.run() doesn't). to resolve that, i made verbose on *host.run() match the interface of utils.run(), and i made packages.py suppress the output properly by passing stdout_tee=None.
* move tee.flush() calls in utils.BgJob code to where it makes more sense (and interacts with LoggingFiles better)

Signed-off-by: Steve Howard <showard@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3307 592f7852-d20e-0410-864c-8624ca9c26a4
ackages.py
tils.py
10d8417b8c3576e1ba80ce00b6ae2e9cea826bc0 19-Jun-2009 showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> add two logging-related options to autoserv:
--verbose sets the console to DEBUG level output (this is added to autotest client as well)
--no_console_prefix disables the logging prefix entirely on the console

Signed-off-by: Steve Howard <showard@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3301 592f7852-d20e-0410-864c-8624ca9c26a4
ogging_config.py
ogging_manager.py
ee36bc777d44d641bb6664dcaf3f903936b0e3ee 19-Jun-2009 showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> remove some logging setup code in the common test code that should be subsumed by the new logging manager

Signed-off-by: Steve Howard <showard@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3297 592f7852-d20e-0410-864c-8624ca9c26a4
est.py
f1175bb2edbe3215f4bfa117c6b93d2e090d1d07 17-Jun-2009 showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> get rid of some now-obsolete code
* client.common_lib.debug
* abstract_ssh.LoggerFile

Changed {SSHHost,ParamikoHost}.run() default args for std{out,err}_tee to a constant instead of None. This preserves the existing behavior (teeing to the logging module by default), but allows callers to explicitly avoid this teeing if desired, by passing stdout_tee=None.

Signed-off-by: Steve Howard <showard@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@3293 592f7852-d20e-0410-864c-8624ca9c26a4
ebug.py
est_unittest.py
115ac1eee543a46d6fe5d8469f8f523ce23825ac 17-Jun-2009 showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> Fix logging_manager_test to account for some recent changes

Signed-off-by: Steve Howard <showard@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3291 592f7852-d20e-0410-864c-8624ca9c26a4
ogging_manager_test.py
10eb466b589f4ceab8d3fe24e647cd7950fb585b 17-Jun-2009 showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> Remove output from packages.checksum echo. This is an interim step to cleaning up verbose logs in general

Signed-off-by: Scott Zawalski <scottz@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3290 592f7852-d20e-0410-864c-8624ca9c26a4
ackages.py
d3e3ac94941f88ceac69834bea39c8dbe0c9d851 16-Jun-2009 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> Re-write the fork handling code in parallel.py and
logging_manager.py so that in the child process we can be absolutely
certain that no matter what ends up happening, the child process will
never travel back up the call stack past the local function which
is forking.

As things are currently written exceptions being thrown at bad times
can lead to the os._exit call being bypassed. We need to use
try-except and try-finally appropriately to make this impossible.

Risk: Low
Visibility: fork() calls should no longer have edge cases where the
child fails to os._exit properly.

Signed-off-by: John Admanski <jadmanski@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@3288 592f7852-d20e-0410-864c-8624ca9c26a4
ogging_manager.py
5e703a286f9f112c419a27402b232e78bfd7bdc8 16-Jun-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> - Initialize the self.iteration variable to 0. When iterations=0 is specified to run_test then self.iteration is left uninitialized and code elsewhere that uses this value gets an attribute error.
- Also increment the self.iteration variable value in the profiling run so that the last iteration results are not overwritten by the profiling run.

Signed-off-by: Ashwin Ganti <aganti@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@3287 592f7852-d20e-0410-864c-8624ca9c26a4
est.py
est_unittest.py
298ed594d56376b4fef7ad5595aabf157b50b47d 15-Jun-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Add utils.pid_is_alive() which discriminates between zombie tasks and fully-alive tasks.

Signed-off-by: Duane Sand <duanes@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3283 592f7852-d20e-0410-864c-8624ca9c26a4
tils.py
0915ebd39e2e413b0d1c2216737dccdf2da9c302 15-Jun-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Drop default logging level to INFO on stdout, else it's pretty
unreadable when working by hand

Signed-off-by: Martin Bligh <mbligh@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3275 592f7852-d20e-0410-864c-8624ca9c26a4
ogging_config.py
61a3655c627b4de0905afea51208374abca0fc3f 15-Jun-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> * Update label for barrier timeout

Signed-off-by: Ryan Kubiak <rkubiak@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3274 592f7852-d20e-0410-864c-8624ca9c26a4
arrier.py
2d76764179a2f1c25c3e9911d0e046b644babb20 15-Jun-2009 showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> gracefully handle errors when shutting down logging subprocesses

Signed-off-by: Steve Howard <showard@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3267 592f7852-d20e-0410-864c-8624ca9c26a4
ogging_manager.py
f2de81b7f4f563ee8cad2686b71477a6e91a932a 15-Jun-2009 showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> Update Autoserv logging config to write logs for each severity level (except CRITICAL -- going up to ERROR should suffice).

Signed-off-by: Steve Howard <showard@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3265 592f7852-d20e-0410-864c-8624ca9c26a4
ogging_config.py
75cdfee87bfaa3cf3f9860832b228a6d32aaed2f 10-Jun-2009 showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> Make autoserv and autotest client use the new logging_manager system. I'd like to split them into separate changes, but the change in common_lib.test means it all has to change at once.

this replaces the old ini-style logging configurations with code-based configurations. i know the ini files were easier to read, but we're doing a lot more fancy stuff with logging and these give us much more power and less duplication. as one example, we'll probably move very soon to having separate .DEBUG, .INFO, .WARNING, and .ERROR logs. This will allow us to make a centralized change to make that happen, rather than duplicating a whole bunch of information across .ini files, and it'll make the information much more concise.

Risk: Gravely high

Signed-off-by: Steve Howard <showard@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@3243 592f7852-d20e-0410-864c-8624ca9c26a4
ogging_config.py
ogging_manager.py
est.py
e96f7a905b3dd758e034e75ca5d29a5bfcbf4610 10-Jun-2009 showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> adding new library logging_manager, a reimplementation of fd_stack's behavior using the logging module. it's capable of the things fd_stack does (redirect, tee_redirect, restore), but it forces everything to go through the logging module and uses logging handlers to direct output to various files and/or streams. unfortunately, the requirement that we capture output from subprocess not launched through utils.run() and friends means we still need to do all the forking business that fd_stack does, and it adds a ton of complexity.

obviously nothing is using this yet. this is just a first step. the plan is to obsolete fd_stack and parts of subcommand with this code.

Signed-off-by: Steve Howard <showard@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3239 592f7852-d20e-0410-864c-8624ca9c26a4
ogging_manager.py
ogging_manager_test.py
c971c5f48255e9a016fb86fbb902ca210dcc2915 08-Jun-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Added specific exceptions for various failures in verify and changed the
code that raised them to use these new exceptions. Completely reworked
the 3 repair phases to try to fix things by handling the specific errors
generated by verify (in a loop where it exits either by not being able
to fix an issue or if the last verify ran successfully). Reorganized
some code to support this new way to repair hosts.

The code tries to remember each repair handler it used to catch the case
where even after executing the handler the same verify failure is
reported and it may execute the repair handler in an infinite loop.
When it finds out that the same repair handler has already been executed
it will re-raise the original exception hoping it will be cought in
surrounding try/except contexts or the exception will make repair fail.

Signed-off-by: Mihai Rusu <dizzy@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3217 592f7852-d20e-0410-864c-8624ca9c26a4
rror.py
61f4e44688970b3c9c93e014dbffe090feff5230 08-Jun-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Improved utils.import_site_symbol (and thus its
import_site_class/function users) to not assume that if the site
specific file exists and is not empty then we must be able to find the
symbol in it. Thus we now support site specific files that don't
override all the names from the base one. Still if there are code errors
that make the import fail these will be exposed.

Signed-off-by: Mihai Rusu <dizzy@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3216 592f7852-d20e-0410-864c-8624ca9c26a4
tils.py
25284cd3d95849e54006c8bb9c1b522d161a7a8a 08-Jun-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Use urllib2.urlopen()/shutil.copyfileobj() in get_file() so that
fetching missing documents is properly reported as an exception instead
of fetching some dummy 404 document.

Signed-off-by: Mihai Rusu <dizzy@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3201 592f7852-d20e-0410-864c-8624ca9c26a4
tils.py
4745ecd5a3f3e00727c060c406fd1f495d52aa19 26-May-2009 showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> Change get_num_logical_cores to get_num_logical_cpus_per_socket, some
minor brush-up

From: Jiqing Tang <jiqingtang@google.com>
Signed-off-by: Steve Howard <showard@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@3176 592f7852-d20e-0410-864c-8624ca9c26a4
tils.py
aad5c50cbe80574ac956b7f89b98fb271e90bd30 26-May-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Fixed profiling for tests that do not define a self.iteration (which is
most tests that override execute()).

Signed-off-by: Mihai Rusu <dizzy@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3174 592f7852-d20e-0410-864c-8624ca9c26a4
rofiler_manager.py
d5a61a0a2d87a3743bc8e607c339efcccc16f729 21-May-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> tar to a temp path and atomically rename if successful, else delete

Signed-off-by: Rachel Kroll <rkroll@google.com>

Autotest@test.kernel.org
http://test.kernel.org/cgi-bin/mailman/listinfo/autotest


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3161 592f7852-d20e-0410-864c-8624ca9c26a4
ackages.py
8beabca0c495df2913ef67adcd63a9be8947ad82 21-May-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Added a few more words to the constrain failure reason.

Signed-off-by: Travis Miller <raphtee@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3154 592f7852-d20e-0410-864c-8624ca9c26a4
est.py
f58865f3e987fd9930ccb14dfe160e65c0364cc6 13-May-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Modify the way we handle profile_only to now be a boolean that does not modify
iterations. If profile_only is set to True run all iterations with profiles
enabled. If profile_only is not False, run iterations and then run one profile
run. Change the way profilers are stored by adding them to a iteration.X sub
directory.

Signed-off-by: Scott Zawalski <scottz@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@3138 592f7852-d20e-0410-864c-8624ca9c26a4
rofiler_manager.py
est.py
742ae42df0b167f6a29b0f64466fc99401f57018 13-May-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Exposed an interface for adding before_iteration_hooks and
after_iteration_hooks. These are stored in a list in test
object and are run before and after iteration runs.

Signed-off-by: Travis Miller <raphtee@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3129 592f7852-d20e-0410-864c-8624ca9c26a4
est.py
est_unittest.py
f957fe2ff88da95d53fc43da98c59f1a90e73093 12-May-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> fixed imports.

Signed-off-by: Travis Miller <raphtee@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3115 592f7852-d20e-0410-864c-8624ca9c26a4
ost_protections.py
11788296e58691a3149355a4fc4a3fa1084c689d 12-May-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> bad import.

Signed-off-by: Travis Miller <raphtee@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3114 592f7852-d20e-0410-864c-8624ca9c26a4
lobal_config.py
4556178ac97dc6160a31ac105f5d987b6c9933d8 11-May-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Added utils.get_relative_path() to compute the path of an absolute path
as relative to a given directory path and used it when creating the
test results sysinfo/current_reboot symlink to create a relative symlink
that would still be valid when relocated.

Added a "preserve_symlinks" default False keyword argument to
AbstractSSHHost.get_file/send_file to tell rsync to try to preserve the
original symlink and not transform them into the referenced
file/directory when copied (only for rsync as scp has no way to do
this). Used the new flag when fetching the test result directory to
preserve symlinks. Along with the previous change this should fix an
issue of >100k sysinfo bloat because of duplicated content instead of
preserving the client symlink.

Signed-off-by: Mihai Rusu <dizzy@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3104 592f7852-d20e-0410-864c-8624ca9c26a4
tils.py
tils_unittest.py
5644da874403e1b4676bfffbaef202812e8b4464 02-May-2009 showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> Make mock.py fail fast when an unexpected call occurs by throwing an exception.

Signed-off-by: Steve Howard <showard@google.com>

Autotest@test.kernel.org
http://test.kernel.org/cgi-bin/mailman/listinfo/autotest


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3085 592f7852-d20e-0410-864c-8624ca9c26a4
est_utils/mock.py
8ad3120c72e2655766724e8249dc0d66f4d90f11 02-May-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Moved to the new logging.

Signed-off-by: Jean-Marc Eurin <jmeurin@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3083 592f7852-d20e-0410-864c-8624ca9c26a4
arrier.py
d1e8140d9ac4dfcd77bfb82476008bbd23267a15 02-May-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Summary: Make the prefix format for the log files generated by tests
be coherent with the other logs

Since the new logging approach was introduced, we have changed the
formatting for the line prefixes. The prefixes generated by the file
handler instantiated on the test class were not updated. Let's fix
that.

Signed-off-by: Lucas Meneghel Rodrigues <lookkas@gmail.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3079 592f7852-d20e-0410-864c-8624ca9c26a4
est.py
32cb5b450ce80e5e5871142592973e57f3771ae2 02-May-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> We now store the failures due to constraints and dont raise
an exception until after postprocess.

Signed-off-by: Travis Miller <raphtee@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3077 592f7852-d20e-0410-864c-8624ca9c26a4
est.py
est_unittest.py
cd63a21daf20993032f83ac6268d181c4c8e3457 02-May-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Fixed the default command value to make utils.CmdResult().__repr__() work.

Signed-off-by: Jean-Marc Eurin <jmeurin@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3076 592f7852-d20e-0410-864c-8624ca9c26a4
tils.py
d4ead172a08004b6059dc2a3546435de2ed42a3f 01-May-2009 showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> Add missing mock god check playback and fix the test.

Signed-off-by: Gregory Smith <gps@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3072 592f7852-d20e-0410-864c-8624ca9c26a4
est_unittest.py
0a8c33262cb48723ef6ce5b0a6e1efec51f19914 28-Apr-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Modified import_site_class() to not wrap baseclass with a local dummy
class when the site specific class does not exist (thus hopefully fixing
an issue in SVN about not being able to run server side tests because
sysinfo cannot be pickle dumped), instead have import_site_class return
the baseclass when the site specific class does not exist. Also, have it
perform automatically the mixin of baseclass and the site specific class
when the site specific one is not inherited already from baseclass and
removed the mixin that was done in some of the users.

Signed-off-by: Mihai Rusu <dizzy@google.com>

Autotest@test.kernel.org
http://test.kernel.org/cgi-bin/mailman/listinfo/autotest


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3050 592f7852-d20e-0410-864c-8624ca9c26a4
tils.py
9fd9afe34829263f11daec37f90866eaa8c606c1 28-Apr-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Add a method to get the number of logical cores per cpu socket on a machine.

Signed-off-by: Ashwin Ganti <aganti@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3047 592f7852-d20e-0410-864c-8624ca9c26a4
tils.py
5896298fb82c48e9cb5d8fbb269cd0629efce225 21-Apr-2009 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> Only write a job keyval out if there isn't already a keyval with
"job_started" in it. This way we don't stomp all over any existing
values when doing secondary follow-up jobs like crashinfo collection.

Risk: Low
Visibility: Prevents secondary jobs from overwriting the keyvals of
the primary job.

Signed-off-by: John Admanski <jadmanski@google.com>




git-svn-id: http://test.kernel.org/svn/autotest/trunk@3024 592f7852-d20e-0410-864c-8624ca9c26a4
tils.py
tils_unittest.py
7af0997bb099f0b0ad331812d6b677bb0c695bd9 18-Apr-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> This is the second CL relating to a re-implementation of how
constraints on keyvals are evaluated. The code has been moved
into the base_test class itself. This required some changes to the
old tests that had evaluated the constraints themselves.

Signed-off-by: Travis Miller <raphtee@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3012 592f7852-d20e-0410-864c-8624ca9c26a4
est.py
est_unittest.py
ae69f262a80dd995b93b78a9afbeb79bfb4bfc5c 17-Apr-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Fix a typo in the join_bg_jobs function.

Signed-off-by: Jiqing Tang <jiqingtang@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3004 592f7852-d20e-0410-864c-8624ca9c26a4
tils.py
cf57ae2958b6ff34aa58016e1df7cf61a364b14d 17-Apr-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Move update checksum out of upload_pkg_parallel this shouldn't be done in parallel.
Risk: Low
Visibility: High (Can cause package checksum corruption in certain cases)

Signed-off-by: Scott Zawalski <scottz@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3001 592f7852-d20e-0410-864c-8624ca9c26a4
ackages.py
1a519b905da902b1452e90286ad97890ccd8fcae 17-Apr-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Move server import only into the upload section as a temporary fix for being able to use packages.py on clients until upload funcationality can be put into a server side package lib

Signed-off-by: Scott Zawalski <scottz@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@2999 592f7852-d20e-0410-864c-8624ca9c26a4
ackages.py
e183681e2833251d7e65069fab241014d87a61f2 17-Apr-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Package upkeep
Remove old custom packages from repos (Age can be set)
Add parallel upload to packager
Before uploading check if we can write to the repo and if there is enough diskspace

Signed-off-by: Scott Zawalski <scottz@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2998 592f7852-d20e-0410-864c-8624ca9c26a4
ackages.py
3f033d59399f05b2ebd0130565300389dec99475 01-Apr-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Add warning to host_protections to inform developers of the consequences of changing the enum that defines these levels.

Signed-off-by: Scott Zawalski <scottz@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@2958 592f7852-d20e-0410-864c-8624ca9c26a4
ost_protections.py
fb67603a3a1194f610528dea6b46ecea75bbccd6 01-Apr-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Add write_pid to common code
Call write_pid from scheduler and babysitter

Signed-off-by: Rachel Kroll <rkroll@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@2953 592f7852-d20e-0410-864c-8624ca9c26a4
tils.py
91d56a9bbeb29f4f80cd36072254977fe4530eae 01-Apr-2009 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> Add a network_destabilizing flag that tests can set to disable
NETWORK warnings.

Risk: Medium
Visibility: Adds a way to flag a test as network-destabilizing.

Signed-off-by: John Admanski <jadmanski@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2947 592f7852-d20e-0410-864c-8624ca9c26a4
est.py
a290e98a5c522c618aeb83885b2407e6b504e034 27-Mar-2009 showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> Summary: Make autotest's packaging system to use logging infrastructure.

Risk: Low

Signed-off-by: Lucas Meneghel Rodrigues <lucasmr@br.ibm.com>

Index: client/common_lib/packages.py
===================================================================


git-svn-id: http://test.kernel.org/svn/autotest/trunk@2944 592f7852-d20e-0410-864c-8624ca9c26a4
ackages.py
5c1bb2564e01e94f1fccb9272dbd613666db3e63 25-Mar-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Moved warmup() call from execute() to _exec() before calling on
execute() thus fixing an issue of filtering arguments sent to execute()
based on what run_once/execute accepts but ignoring the fact that
warmup() may have needed some other arguments.

Removed _run_cleanup() and updated users because where it is called
there is no need to translate the exceptions from self.cleanup() (as they
are either ignored or translation happens from the surrounding context).

Defined a _cherry_pick_call() function perform both cherry picking of
arguments and function call. Defined _call_test_function() to wrap a
given function call for test code and translate exceptions if needed.

Signed-off-by: Mihai Rusu <dizzy@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2934 592f7852-d20e-0410-864c-8624ca9c26a4
est.py
est_unittest.py
4395bbd96ed53aec5fad87d6c169a47dfdb8c9dd 25-Mar-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Added sysinfo support to log pre and post iteration (currently it logs
the contents of /proc/schedstat). Added client.common_lib.test hooks to
call pre and post iteration. Used the hooks in client.bin.test.runtest()
for client tests. Refactored server.test and added wrappers for the
pre/post iteration logging and used them on the new pre/post iteration
hooks.

For each iteration there will be a
resultsdir/sysinfo/iteration.N/schedstat.after and schedstat.before.

If there are tests that override execute() and implement their own
iteration logic they need to be changed over to override run_once()
instead and take advantage of the default execute() that supports the
pre/post iteration hooks and other things.

Signed-off-by: Mihai Rusu <dizzy@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2929 592f7852-d20e-0410-864c-8624ca9c26a4
est.py
est_unittest.py
6b97f79e7c71803567e393b92e993705a46480e3 23-Mar-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Removed code redundancy by moving the
drop_caches/run_once/postprocess_iteration calls
into a function. Possibly fixed bugs because of postprocess_iteration
not being called after run_once iterations from the code handling
"test_length" test time argument.

Signed-off-by: Mihai Rusu <dizzy@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2923 592f7852-d20e-0410-864c-8624ca9c26a4
est.py
est_unittest.py
b18134f8faa7c5b4623760bc88650a65e70b2cac 20-Mar-2009 showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> As discussed on the mailing list, we implemented logging with a single
root logger and logging configurations per entry points. The entry
points affected are:

* Autotest client
* Autoserv
* Scheduler

We are sending patches for each one of those entry points. Now we don't
need to 'grab' loggers anymore to log messages, only need to use the
utility functions:

logging.info('msg')
logging.debug('msg')
logging.warning('msg')
logging.error('msg')
logging.critical('msg')

Which reduces complexity of the log system, and makes it easier for
developers to log messages, just select the level, make sure the
standard logging module is loaded, and profit!

From: Lucas Meneghel Rodrigues <lmr@linux.vnet.ibm.com>
Signed-off-by: Steve Howard <showard@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2915 592f7852-d20e-0410-864c-8624ca9c26a4
_init__.py
est.py
tils.py
862c406c04a2b7a17827b78cb5cb942bc3de7130 12-Mar-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Fix a race condition when two SIGINT's come in at once attempting to
close something that was already closed before it was set to None.

Signed-off-by: Gregory Smith <gps@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2873 592f7852-d20e-0410-864c-8624ca9c26a4
idfile.py
97227eac60e9ab07dcfb92d12828175ad4c46161 11-Mar-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Modify read_keyval and write_keyval to allow '.' (periods/decimal points) in the key names (allow python timestamps in perfkeys).

Signed-off-by: Will Chan <williamchan@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2866 592f7852-d20e-0410-864c-8624ca9c26a4
tils.py
9d738d6db3b900f509c8c94581da9062819928dc 09-Mar-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Moved server.hosts.ssh_host.PermissionDeniedError into
client.common_lib.error.AutoservSsshPermissionDeniedError and updated
users. Changed parsing of 'Permission denied.' SSH error to work in
verbose mode too. Changed AbstractSSHHost.ssh_ping() to not convert the
permission denied error to a AutoservRunError and instead let it
propagate to the callers (it is inherited from AutoservRunError
anyways).

Signed-off-by: Mihai Rusu <dizzy@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2857 592f7852-d20e-0410-864c-8624ca9c26a4
rror.py
a49c5cb549607a2049c45eed66200e48aae48c3b 26-Feb-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Change the name of the variable to postprocess_profiled_run. Allow it to
be an object attribute too.

Signed-off-by: Jean-Marc Eurin <jmeurin@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2835 592f7852-d20e-0410-864c-8624ca9c26a4
est.py
est_unittest.py
c931408ae77c801c5188c8e40cab766449442c89 26-Feb-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Add an option (profile_perf) to record performance of profiled runs.

For example:
job.run_test('sleeptest', iterations=0, profile_perf=True)
will record performance of the profiled run.

Signed-off-by: Nikhil Rao <ncrao@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2830 592f7852-d20e-0410-864c-8624ca9c26a4
est.py
est_unittest.py
d543369815ecfa74c70e2b9d1e24d65a5431f743 26-Feb-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Revert the change that removed the profiler_manager only() method.
Many tests were using job.profilers.only(). We'll clean those up in
the future.

Signed-off-by: Gregory Smith <gps@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2825 592f7852-d20e-0410-864c-8624ca9c26a4
rofiler_manager.py
3b4dea4a7c8e815eb67601d703e43156801121a6 25-Feb-2009 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> Fix a super() call in one of the exception classes - Exceptions are
still old-style classes in python 2.4 and so can't use super.

Risk: Low
Visibility: Fixes a class that prevents this exception from working
properly.

Signed-off-by: John Admanski <jadmanski@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2823 592f7852-d20e-0410-864c-8624ca9c26a4
rofiler_manager.py
886c81fc8c3ab8d7edcf7ddbb7594a6082e92cee 19-Feb-2009 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> Change the magic parameter cherry-picking code in the common test
implementation to automatically take into account new parameters added
to the generic execute method. The recent addition of profile_only
didn't quite work because the argument would never actually be passed
on to test.execute unless test.run_once itself accepted such an
argument.

Previously we had code that explicitly pulled in the iterations and
test_length args (the previous test.execute parameters) but this code
was not updated to also pull in profile_only. Instad of continuing to
force people to make changes in two places to add a new arg, I updated
the code to re-use our parameter extraction code and automatically pull
in all the explicit (non * and **) parameters accepted by test.execute.

Risk: Low
Visibility: Fixes a bug that made the new profile_only option useless.

Signed-off-by: John Admanski <jadmanski@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2817 592f7852-d20e-0410-864c-8624ca9c26a4
est.py
0dc8ff8878f87cc2146ab0cdb7c00dd17103e73d 11-Feb-2009 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> Log an info-level message when we attempt a site_ import but no site
module is available.

Risk: Low
Visibility: Adds logging

Signed-off-by: John Admanski <jadmanski@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2774 592f7852-d20e-0410-864c-8624ca9c26a4
tils.py
4b835b89f2a0bd9aef2df4157fadc34fe2eeb14c 11-Feb-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Adds a profile_only keyword argument to test.execute to be used by
job.run_test() from control files. When specified it behaves identically to
iterations=0 but is much easier to read. Also converts prints in test.execute
into test_log calls and adds a test.execute unit test.

Signed-off-by: Gregory Smith <gps@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2773 592f7852-d20e-0410-864c-8624ca9c26a4
rofiler_manager.py
est.py
est_unittest.py
7a60367a02934d7d21a3f44cb7b1f004e97e5b25 07-Feb-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> More package clean up and removing large error messages that included
redudant commands that were listed above. Augmented error messgaes to be
more precise.

Signed-off-by: Scott Zawalski <scottz@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2763 592f7852-d20e-0410-864c-8624ca9c26a4
ackages.py
21e33584d561f6f010d96901a3174d37eecf3873 04-Feb-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Add a self.pkgmgr object to test so people can reference self.pkgmgr instead of
self.job.pkgrmgr (which was missed entirely by the test developers anyways)
Risk: Low

Signed-off-by: Scott Zawalski <scottz@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2742 592f7852-d20e-0410-864c-8624ca9c26a4
est.py
dd6693787738895b1117e07e95b279d91040bb56 03-Feb-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Renamed _import_site_symbol to drop the _ prefix and be used by other
modules.

Signed-off-by: Mihai Rusu <dizzy@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2739 592f7852-d20e-0410-864c-8624ca9c26a4
tils.py
34b297bba44625fc21ebf8f494454cfdde5a3a4f 03-Feb-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Introduce postprocess_iteration, a way to do the perf keyvals once
per iteration, rather than all at the end. This results in cleaner,
less buggy code, that doesn't tend to grab the keyval for the profiled
run by mistake

Signed-off-by: Martin Bligh <mbligh@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2734 592f7852-d20e-0410-864c-8624ca9c26a4
est.py
d27604e5a0527826c9cf19051669fac74435623f 03-Feb-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Move profiling code into run_once_profiling()

This patch moves all profiling code into run_once_profiling(). Tests
that need more control over profilers can override this function and
provide a custom profile run using autotest's profiling infrastructure.

Thanks to mbligh for the idea.

Signed-off-by: Nikhil Rao <ncrao@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2724 592f7852-d20e-0410-864c-8624ca9c26a4
est.py
c9ae1787fd41101089b09551d8028aef1daae1d3 30-Jan-2009 showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> * add "Do not verify" host protection level and implement it in scheduler
* make scheduler run pre-job cleanup even if "skip verify" was chosen. accomplished this by adding a SetEntryPendingTask to call on_pending, instead of having the VerifyTask do it.

Signed-off-by: Steve Howard <showard@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2715 592f7852-d20e-0410-864c-8624ca9c26a4
ost_protections.py
dcdb3338dbff03eab5b2e331e8f87e710bd400a4 24-Jan-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Revert back to the old behavior of not switching to python 2.4 (or
whatever the lowest 2.x version that's still >=2.4) unless the
currently running version is <2.4 (or >=3.0).

The change to prefer 2.4 really messes up any systems which have both
the new and old version of Python, but where the newer is default.
This is because packages, libraries, etc are all installed into the
new one by default. Some things (like running under mod_python) just
plain don't handle python restarting properly. I know that I do some
development under ipython and whenever I run (or do anything that
runs) 'import common' it restarts my shell. Overall, the change was
fairly annoying for me (and I can't get around having 2.4 and 2.5
installed with 2.5 being default).

The main reason for the change in the first place was to avoid people
using 2.5 syntax/features since everything needed to run under 2.4.
I agree that this would make sense in the absence of the above issues,
but the headaches definitely don't outweigh the benifit in this case.
Anyhow, it's pretty easy to see most python 2.5isms in code reviews.

Signed-off-by: Jeremy Orlow <jorlow@google.com>




git-svn-id: http://test.kernel.org/svn/autotest/trunk@2687 592f7852-d20e-0410-864c-8624ca9c26a4
heck_version.py
25c0b8cb56358f22dccf7fdc32dd1662787dc9ca 24-Jan-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Added new host protection level (repair software only) that would allow any
type of repair except the hardware repairs. Updated users. Added
Host.request_hardware_repair() function to be called by repair_full when
software repair fails. Added error.AutoservHardwareRepairRequestedError to be
raised when hardware repair has been requested and updated server_job.repair()
to let it propagate through.

Signed-off-by: Mihai Rusu <dizzy@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2686 592f7852-d20e-0410-864c-8624ca9c26a4
rror.py
ost_protections.py
062ed15b8f7d4de6da101348bd33bb7b25f7aaef 13-Jan-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Added a function to import site specific functions. Modified code to use it.

Signed-off-by: Mihai Rusu <dizzy@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2628 592f7852-d20e-0410-864c-8624ca9c26a4
tils.py
99f112df15eb79454bf49edb03fb7583eb2cbfc2 13-Jan-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Try to define a new dummy class object inherited from the given base
instead of directly returning the base to fix a case where python
would end up trying to inherit from the same base class twice.

Signed-off-by: Mihai Rusu <dizzy@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2627 592f7852-d20e-0410-864c-8624ca9c26a4
tils.py
a700772e70548b10721ba709c7ec5194bb6d7597 13-Jan-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Created a client/common_lib/utils/import_site_class function to take
care of site specific importing of classes. Modified code to use it.

Signed-off-by: Mihai Rusu <dizzy@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2626 592f7852-d20e-0410-864c-8624ca9c26a4
ackages.py
tils.py
e335b9bfc04efca45dcfe5242c806dfbeb9bb8af 10-Jan-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> infinite loop condition when we don't have python2.4 installed on the machine

This is a patch that fixes http://autotest.kernel.org/ticket/9
In certain cases, our target test machine might have only python2.5
installed, as it is the case of some newer distros. A condition inside a
common library that is loaded by virtually all autotest code makes
autotest and other helper programs to go on an infinite loop when we
don't have python2.4 installed.

The condition checks what python is running, if we can't get a version
(python possibly too old), or a version that is not 2.4 (our target), we
need to restart autotest execution using os.execv. However, when there's
no 2.4 installed, the best python found (2.5) will be used to re-execute
the program, the check will realize that there's no 2.4 again and will
repeat that cycle infinitely.

{{{
lucas@freedom:~/Code/Workspace/autotest-test$ python utils/packager.py
NOTE: packager.py switching to /usr/bin/python2.5
NOTE: packager.py switching to /usr/bin/python2.5
NOTE: packager.py switching to /usr/bin/python2.5
...
}}}

A sensible fix is to check beforehand what is the best (older) currently
available version, compare with the version we are already running, and
do the switch only if the versions are different (provided that we are
not running under mod_python.

Impact: High (this part of the code is executed by virtually all
autotest code)

Risk: Low (simple change, fixes the bug we are having and there's no
harmful side effects I can see right now).

Signed-off-by: Lucas Meneghel Rodrigues (lucasmr@br.ibm.com)



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2616 592f7852-d20e-0410-864c-8624ca9c26a4
heck_version.py
d1ee1dd3f3e5ac44f00d7a96deb815dbe1beedad 07-Jan-2009 showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> * move some scheduler config options into a separate module, scheduler_config
* add a little embedded HTTP server to the scheduler, defined in status_server.py, running in a separate thread. this displays loaded config values and allows reloading of those config values at runtime. in the future we can extend this to do much more.
* make global_config handles empty values as nonexistent values by default. otherwise, we would have to both pass a default= and check for value == '' separately. Now, we just pass default= and it's all taken care of.

Signed-off-by: Steve Howard <showard@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2608 592f7852-d20e-0410-864c-8624ca9c26a4
lobal_config.py
170873e8869cae8bb9499d6128cf626e8110bf56 07-Jan-2009 showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> Attached is a very large patch that adds support for running a
distributed Autotest service. Previously, the scheduler could only
execute autoservs locally and all results were written directly to the
local filesystem. This placed a limit on the number of machines that
could be concurrently tested by a single Autotest service instance due
to the strain of running many autoserv processes on a single machine.

With this change, the scheduler can spread autoserv processes among a
number of machines and gather all results to a single results
repository machine. This allows vastly improved scalability for a
single Autotest service instance. See
http://autotest.kernel.org/wiki/DistributedServerSetup for more
details.

Note that the single-server setup is still supported and the global
configuration defaults to this setup, so existing service instances
should continue to run.

Steve

Signed-off-by: Steve Howard <showard@google.com>




git-svn-id: http://test.kernel.org/svn/autotest/trunk@2596 592f7852-d20e-0410-864c-8624ca9c26a4
est_utils/mock.py
tils.py
53da18eddf69243ca175d9a4603cba5b55300726 05-Jan-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Rename autotest_utils to utils

Fixes longstanding hangover ugliness from the original change away
from doing "from autotest_utils import *".

Signed-off-by: Martin J. Bligh <mbligh@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2595 592f7852-d20e-0410-864c-8624ca9c26a4
est.py
1c0cd13ffb6c8aabd893998a682c13d13b2ea9f3 16-Dec-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Fixes the check_version.py problem Gustavo Rahal reported.

* Do not attempt to switch python versions when running under
mod_python.
* print a warning to stderr when switching python versions from
check_version.py.


Signed-off-by: Gregory Smith <gps@google.com>




git-svn-id: http://test.kernel.org/svn/autotest/trunk@2573 592f7852-d20e-0410-864c-8624ca9c26a4
heck_version.py
9f3660fabcee422e88c0cd5afe8ab8c5f6ed1e47 15-Dec-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Prefer to run autotest using python 2.4 when available even if later
versions exist. Also, restrict it to finding python 2.x. autotest is
not compatible with python3.

HOW TESTED:
I ran a script that does an autotest 'import common, sys' followed by
'print sys.version' on systems with /usr/bin/python being 1.5.2, 2.4
and 2.5. All worked and ultimately ran the code using python2.4.

Signed-off-by: Gregory Smith <gps@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2568 592f7852-d20e-0410-864c-8624ca9c26a4
heck_version.py
025d1e158bd55100301a0fdf4b2f6beb1009a025 15-Dec-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Adds an expect_any_call method for when you want it to be called but
verifying the exact arguments just is not worthwhile.

Signed-off-by: Gregory Smith <gps@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2567 592f7852-d20e-0410-864c-8624ca9c26a4
est_utils/mock.py
e0dffc33846303d4e7b0a87e28efe96db4399231 15-Dec-2008 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> When a server job fails "normally" (i.e. after it's been properly
started) we should write the pidfile out asap and stop the
continuous parsing afterwards. This will allow the parser to properly
interpret the exit status of the job.

Risk: Medium
Visibility: The continuous parser will now be shut down after the
pidfile is properly written out.

Signed-off-by: John Admanski <jadmanski@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2565 592f7852-d20e-0410-864c-8624ca9c26a4
idfile.py
1ca1c2c8f46ee8bbc8f005df12ab377809dd9815 10-Dec-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Fix wrong parent constructor call from UnhandledJobError.__init__

Signed-off-by: Gregory Smith <gps@google.com>




git-svn-id: http://test.kernel.org/svn/autotest/trunk@2558 592f7852-d20e-0410-864c-8624ca9c26a4
rror.py
abe330e3a18aac1a7ab946201ed0fe8cdb0f9924 10-Dec-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Fix regression in downloading custom kernels or other packages.
run_http_test disables repository servers if no checksum file.
The logic for marking repository servers as offline should be avoided when
downloading optional checksum files. As a short-term workaround, totally
disable the optimization of remembering which servers are now offline.
This will need to be fixed later in some more general way.

Low risk, although there may again be redundant long timeouts when some
repo server is indeed inaccessible.

Signed-off-by: Duane Sand <duanes@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2557 592f7852-d20e-0410-864c-8624ca9c26a4
ackages.py
45ffc43d35421cd41f7a6a4d4e388117ff3487cf 10-Dec-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Fix frontend.py to send email when asked, and not use broken machines

Signed-off-by: Martin Bligh <mbligh@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2553 592f7852-d20e-0410-864c-8624ca9c26a4
tils.py
c39fa9ada24f773079d6162383013827e4bc4292 06-Dec-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Catch and categorize errors raised directly from the controlfile top
level itself. This takes care of runs using a single non-stepped
control file that raise any of the Test exceptions.

Removes the recently added JobNAError. It and TestNAError are
identical, there is never a case where one would be caught and the
other wouldn't.

This is hopefully the final nail in the error handling coffin.

Signed-off-by: Gregory Smith <gps@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2549 592f7852-d20e-0410-864c-8624ca9c26a4
rror.py
d5ab8c5c44a01b9a9699db574973174570e10eea 03-Dec-2008 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> Refactor the core pidfile code out of autoserv and into a common lib
module, and add a similar pidfile option to the parser.

Risk: Low
Visibility: Adds an (opt-in) .parser_execute pidfile to the parser.

Signed-off-by: John Admanski <jadmanski@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2538 592f7852-d20e-0410-864c-8624ca9c26a4
idfile.py
4f407467b805dfef38c886364f575581775105f3 03-Dec-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Adds an UnhandledJobError exception and JobNAError exception.

When executing steps in the step engine, catch JobNAError and record it
as a TEST_NA and continue on to the next step. Turn all other
non-SystemExit exceptions into an UnhandledJobError wrapping the
original.

This allows control files and othe common code to raise
error.JobNAError to indicate that a particular thing in a multi-test
(step) control file cannot be run but should not cause the entire job
to abort.

Signed-off-by: Gregory Smith <gps@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2534 592f7852-d20e-0410-864c-8624ca9c26a4
rror.py
d876f459fff6cc4994cab329b1f80c99a86edcbd 03-Dec-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> gps pointed out that "== and != work in most cases but its better to use is
and is not as you'll never run into a case where someone's __eq__ or __ne__
method do the wrong thing."

Signed-off-by: Martin J. Bligh <mbligh@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2533 592f7852-d20e-0410-864c-8624ca9c26a4
lobal_config.py
tils.py
4f909251625246dbeb36c1c8b26892cbd4e6c934 01-Dec-2008 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> Extend the server-side profiler code to handle reboots as well. Sadly,
this is a bit of a kludge, but I can't see any better solution without
redesigning the client-side profiler interface first.

I handle a reboot by pulling back any existing profiler data right
after a reboot and then re-starting the profiler. This generally works
because most of the profilers are idempotent; either they write into
different files in each run, or they just continuously append logs
to a log file of some kind and so concatenating all their output
is good enough.

In general there's unfortunately no reliable way to signal the
profilers before a reboot occurs, we can only deal with it after the
fact, so we don't have the option of adding some sort of
save-and-restore methods to the client-side interface that could be
used to deal with this.

Right now we simply don't have any real use cases anyway where we want
to run a profiler on top of a reboot test where the profiler requires
special handling after a reboot. Until we actually have an example of
that to work with, trying to implement support for that situation
may just be overdesigning things anyway.

Risk: Medium
Visibility: Server-side profilers will be restarted after a reboot
during a test.

Signed-off-by: John Admanski <jadmanski@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2526 592f7852-d20e-0410-864c-8624ca9c26a4
tils.py
tils_unittest.py
021679f1803cf6c95b5a9ab57550179d5da2a183 27-Nov-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Document job exception handling machinations in comments and remove an
except Exception: case in job.run_test() that was impossible to reach.

Allow error.JobError raised from a test (run via run_test or run_group)
to be recorded as an ABORT and passed on up to actually ABORT things.

Signed-off-by: Gregory Smith <gps@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2522 592f7852-d20e-0410-864c-8624ca9c26a4
rror.py
b5dac4323ac5dca003da7e8114e80ab99612ac73 27-Nov-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Provide the ability to drop caches between benchmark iteration runs

Signed-off-by: Martin Bligh <mbligh@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2518 592f7852-d20e-0410-864c-8624ca9c26a4
est.py
7afc3a678bdf39549f6397a9b8d5d181a628e992 27-Nov-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Increase pkgmgr fetch timeout to 30 minutes (from 10)
Throw a warning when run_command's timeout fires

Signed-off-by: Rachel Kroll <rkroll@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2515 592f7852-d20e-0410-864c-8624ca9c26a4
tils.py
b3c0c91ff9020a7259377e3d607c3aa0cae9c804 27-Nov-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Adds support for using client-side profilers from the server side.
This makes a few significant infrastructure changes in order the
support this:
- it modifies autotest.py to allow "background" clients to be
launched, where the server simply kicks off a client as a
background process without bothering to monitor it
- it adds a profiler_test test which is not a "real" test but is
instead used to allow the server to start & stop the profilers
in a reasonably controlled way

Currently, this still lacks any support for dealing with reboots; if
a test reboots the remote machine then the profilers will not be
restarted and the logs collected will only go as far as the first
reboot.

Risk: Medium
Visibility: You can use profilers from the server side (via
job.profilers.add and job.profilers.delete)

Signed-off-by: John Admanski <jadmanski@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2514 592f7852-d20e-0410-864c-8624ca9c26a4
est.py
234a84f025f03651e1973bfcb84a3059fc0eb373 20-Nov-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> First (of many) passes at cleaning up the client job exception handling
to do the right thing. Exceptions during test execution == FAIL,
exceptions during other phases == ERROR. Explicitly specified
AutotestError subclasses are passed through.

This fixes a bug where exceptions were ignored when run_cleanup was False.

It adds docstrings for some internal functions and hopefully simplifies
the code a bit.

Signed-off-by: Gregory Smith <gps@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2483 592f7852-d20e-0410-864c-8624ca9c26a4
est.py
est_unittest.py
504378fdc7664552b784bf02d330d15e5a6d9759 19-Nov-2008 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> If someone passes iterations=0 then we need to leave that in, not
default iterations to 1. We should only be interpretting None as
"default".

Risk: Low
Visibility: iterations=0 actually works (needed for profiling-only
runs).

Signed-off-by: John Admanski <jadmanski@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2452 592f7852-d20e-0410-864c-8624ca9c26a4
est.py
0d39007e5b9b102918529abcd6ed8a9fc30cd085 19-Nov-2008 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> Make sure the profilers are always stopped and reported on, even when
the profiling run fails for some reason.

Risk: Low
Visibility: Failures during a profiling run should still properly
terminate profilers and collect data.

Signed-off-by: John Admanski <jadmanski@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2448 592f7852-d20e-0410-864c-8624ca9c26a4
est.py
043e1132d1af7969a8f67871188ef34e050c2186 19-Nov-2008 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> This depends on Martin's "run autoserv without a results dir" patch
to be applied cleanly.


A rather large refactoring and stubbing change working towards
client-side profilers from the server side. This makes a few major
changes:
- refactors almost all of client/bin/profilers.py into a common lib
profiler_manager class; except for the code for actually loading
a profiler object, all of that code is already completely generic
- add a server-side profiler_proxy class that will act as a proxy
on the server for using a client-side profiler, this doesn't
actually do anything useful right now but it basically just a
stub for later changes
- add a server-side profiler_manager implementation that creates a
profiler_proxy class instead of actually loading a real profiler

The intended changes still in the pipeline that will build on this are:
- add code to the profiler_proxy for actually making sure the
profiler is set up and installed on the remote host(s)
- add a mechanism for client-side profilers to deal with reboots

Risk: Medium
Visibility: Adds a bunch of stubs that don't actually do anything yet
but will do things soon.

Signed-off-by: John Admanski <jadmanski@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2447 592f7852-d20e-0410-864c-8624ca9c26a4
rofiler_manager.py
rofiler_manager_unittest.py
98467959c3707a5355400e18fe43ee0555c835c9 19-Nov-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Add recursive strip_unicode function to utils.py

This is useful for untangling the revolting mess JSON rpc calls make

Signed-off-by: Martin Bligh <mbligh@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2443 592f7852-d20e-0410-864c-8624ca9c26a4
tils.py
3aba4393a4f35e382ce1853f4a872553b56e67bf 17-Nov-2008 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> Server-side tests that attempt to use run_once will always fail due
to the fact that the generic test.execute references job.profilers,
which doesn't exist on the server side. Fix it to make the profilers
usage conditional (for now; will remove once server-side profiler
support is added).

Risk: Low
Visibility: test.run_once can be used for server-side tests

Signed-off-by: John Admanski <jadmanski@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2426 592f7852-d20e-0410-864c-8624ca9c26a4
est.py
f8dffb1abe9c1e53643dcc0c36d59919039a7edb 29-Oct-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Explicitly name parameters so that we don't get bitten by shifting
arguments - this has killed us once before ;-(

Signed-off-by: Martin Bligh <mbligh@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2353 592f7852-d20e-0410-864c-8624ca9c26a4
tils.py
ecbaec30cd51cb045bbf726084e1cea6e83ff920 25-Oct-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> refix the downloadable test URL regular expression

Recently a change was made to fix an unbalanced parenthesis in the
package name decoder regular expression. While this fixed the imbalance
it incorrectly added an additional bracketed section in that regexp
leading to a 'too many opjects in unpack'. Fix this up.

With this patch applied I am able to use the downloadable test system again.

Signed-off-by: Andy Whitcroft <apw@shadowen.org>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2334 592f7852-d20e-0410-864c-8624ca9c26a4
ackages.py
69bafd70dab3b7ef942522c1596aff05d684649a 21-Oct-2008 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> Fix up logging in debug.py and paramiko_host.py to send logging output
to stdout.

Risk: Low
Visibility: logging based messages and paramiko host connection
messages should all go to stdout again.

Signed-off-by: John Admanski <jadmanski@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2320 592f7852-d20e-0410-864c-8624ca9c26a4
ebug.py
5475e16bdcf9a383e43b66e041c21ed68aef280f 21-Oct-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> There is an unbalanced parenthesis on a regular expression on the
packaging module, causing failures when trying to run pre-packaged tests
located on an http repository. This patch fixes the issue.

Risk: Low, tiny change
Visibility: High (should be affecting everybody that uses the packaging
system).

Signed-off-by: Lucas Meneghel Rodrigues <lucasmr@br.ibm.com>




git-svn-id: http://test.kernel.org/svn/autotest/trunk@2309 592f7852-d20e-0410-864c-8624ca9c26a4
ackages.py
b9d055122081a7a0a159770c5df60bb8f5f187cd 18-Oct-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Adds an open_write_close() convenience func that does the right thing
without depending on python being reference counted to close (flush)
the file. (that works today in C Python but is bad to depend on)

Also changes the existing similar write_one_line() function to explicitly
call close rather than just flush(). The unittest's fake file object
injection needed updating as a result.

Signed-off-by: Gregory Smith <gps@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2299 592f7852-d20e-0410-864c-8624ca9c26a4
est_utils/mock.py
tils.py
tils_unittest.py
9167225694a0c89a256172a189e153fe4e4c82f7 17-Oct-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Add an __all__ to limit the names imported in the common case where code
does 'from autotest_lib.client.common_lib.errors import *' to only
those that we define ourselves.

Signed-off-by: Gregory Smith <gps@google.com>




git-svn-id: http://test.kernel.org/svn/autotest/trunk@2296 592f7852-d20e-0410-864c-8624ca9c26a4
rror.py
76d19f708c5c7bacf7220539802086d04ed450b4 15-Oct-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Package updates:
Updated errors to reflect what package failed
Removed nc and changed it to wget (removes extra unneccessary debug lines)
renamed all file_name to filename
Added hostname to init so that repos can automatically be prioritized on initialization
Update autotest.py to pass hostname
Update run_http_test to actually write to the file that it is removing

Signed-off-by: Scott Zawalski <scottz@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2286 592f7852-d20e-0410-864c-8624ca9c26a4
ackages.py
d33fa27cbfedf8207f1835ac19172f7d07713efe 14-Oct-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Dropping caches before each test can disrupt other tests if
we're doing multiple things in parallel. At John's suggestion,
do it in _run_test_complete_on_exit instead.

Signed-off-by: Martin J. Bligh <mbligh@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2280 592f7852-d20e-0410-864c-8624ca9c26a4
est.py
1e3b0992d23a924f0217ad4d4491bdd986575c6d 14-Oct-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Add get_mirror_list function stub to packages.py that just returns the given repo list. Useful for local sites to create a way to return a prioritized list of repos.
Modify autotest.py to call get_mirror_list before appending the repos to the control file
Risk: Medium
Visibility: Low

Signed-off-by: Scott Zawalski <scottz@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2279 592f7852-d20e-0410-864c-8624ca9c26a4
ackages.py
dc1e7aa28341548b0d43b24ee20d7ed6daba3267 10-Oct-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Update wget to use -nv so we get one line output of download passing or failing!

Signed-off-by: Scott Zawalski <scottz@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2277 592f7852-d20e-0410-864c-8624ca9c26a4
ackages.py
93a9e298cc0e46bfd1b483a3ae08f4f9803a384c 10-Oct-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Add support for ssh:// to packaging
Risk: Low
Visibility: Low, only admins should see this part

Signed-off-by: Scott Zawalski <scottz@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2276 592f7852-d20e-0410-864c-8624ca9c26a4
ackages.py
76a42932939e6cb95ab63a131695ad6e7ab3b70c 09-Oct-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> recommit logging changes - was just spare pyc file




git-svn-id: http://test.kernel.org/svn/autotest/trunk@2266 592f7852-d20e-0410-864c-8624ca9c26a4
est.py
tils.py
b931b687e09cec9b25f37d437f33be73b6de20f3 09-Oct-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> back out logging changes for now




git-svn-id: http://test.kernel.org/svn/autotest/trunk@2265 592f7852-d20e-0410-864c-8624ca9c26a4
est.py
tils.py
b7e677e667b28a6c42f094aa1768d54784244829 09-Oct-2008 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> Remove a new __author__ line. They're really non-standard, and we shouldn't
really be adding them to new files...tracking "author" is really svn's job.

Signed-off-by: John Admanski <jadmanski@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2263 592f7852-d20e-0410-864c-8624ca9c26a4
ebug.py
681b6a05a596fb0bf379979e11bb620b58a5707f 09-Oct-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Configuring main autotest classes to use the new debug infrastructure,
converting 2 of the major verbosity sources on autotest and autoserv
executions. Logs with timestamps as a bonus :). The patch should apply
cleanly against svn trunk.

Visibility: Users and developers of the command line programs (autotest
and autoserv) will perceive a reduced verbosity, that can be increased
on the debug configuration file if needed.

Risk: Low (small number of changes, all tested and things were done
trying to isolate sources of failure as much as possible).

Signed-off-by: Lucas Meneghel Rodrigues <lucasmr@br.ibm.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2261 592f7852-d20e-0410-864c-8624ca9c26a4
est.py
tils.py
2dc36b6466d7acb5c865398d5692a2bffd453550 09-Oct-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Adding a library with debug functions to client/common_lib to help with
the logging process.

This library has functions to read and write information on a file,
debug.ini. This file is supposed to contain debugging information for
the 3 autotest code sessions:

* Server
* Client
* Tests

So we can choose different levels of logging for each one of these
levels. This patch is supposed to be applied after the patch that
renames the autotest logger module to log.

This patch addresses the comments made by Steve:

* Now we parse the configuration file once. Steve, I really did try to
implement the lazy load like you described, but I just couldn't get it
to work. So I represented the debug parser as a class and used a design
patterns that ensures that we read the parser only once at each autotest
or autoserv execution.
* No more delegates, just a function that returns the root logger
properly configured (even though I still think the delegates would be
useful convenience functions).

I hope it looks good now. I've tested and it produces the wanted
results. I'll send a last patch with some suggestions on how to use the
library and make the verbosity on a default autotest/autoserv run a lot
smaller, with only 2 print conversions.

Signed-off-by: Lucas Meneghel Rodrigues <lucasmr@br.ibm.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2260 592f7852-d20e-0410-864c-8624ca9c26a4
_init__.py
ebug.py
cefe2653333168a08c891f72a708b66855f07853 08-Oct-2008 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> Refactor all the sysinfo collection code into something a bit less
ad-hoc than the original code. In particular:
- move all the code into base_sysinfo and site_sysinfo classes, and
use inheritance to hook the site-specific code rather that having
to add explicit hooks to the base code
- get rid of all the magic state created in client/bin/test.py so
that we can pass data between the sysinfo code run before and
after each test; instead, just have a single sysinfo instance
associated with a job and store state there
- change all the code to work with paths taken from job and test
objects (i.e. job.resultdir and test.outputdir) instead of just
magically changing the working directory and implicitly doing all
logging in place
- change the reboot in the job sysinfo dir to call them boot.0,
boot.1, etc. to be more in line with the names we use in TKO
- replace some code that used shell commands with functions from
the python standard library (e.g. os.symlink instead of "ln -s")

Risk: Medium
Visibility: reboot.N -> boot.(N-1) in sysinfo; all other changes
should not be user visible

Signed-off-by: John Admanski <jadmanski@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2257 592f7852-d20e-0410-864c-8624ca9c26a4
og.py
618ac9e3de90d709c29cba96840963b3d6ae3258 06-Oct-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Make sure read_one_line and write_one_line explicitly flush the
file rather than letting it garbage collect. Per luyer:

Technically, it is better to close a file than to let it go
out of scope. If a buffered write fails when the file goes
out of scope, we don't get an exception (Python prints something
to stderr, but the program continues).

Except we don't actually close it because that breaks the unittest
Flush achieves the same thing.

Signed-off-by: Martin Bligh <mbligh@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2248 592f7852-d20e-0410-864c-8624ca9c26a4
tils.py
a5f30c207b211e2bf57c6d4297734da54055af90 06-Oct-2008 showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> improve an error message in global_config.py and rename a variable named "type", which is a builtin


git-svn-id: http://test.kernel.org/svn/autotest/trunk@2247 592f7852-d20e-0410-864c-8624ca9c26a4
lobal_config.py
e80d47159f8e43d6e0d736554e207833ec116dfa 03-Oct-2008 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> Fix up a whole ton of test documentation, as well as some minor style changes.
Also adds a few missing self.job.require_gcc() calls, etc.

Signed-off-by: John Admanski <jadmanski@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2240 592f7852-d20e-0410-864c-8624ca9c26a4
tils.py
96ad851e26a241ada013825da11e4a99afd8b597 03-Oct-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Remove the verbose flag from tar for package extraction. Eliminate
unnecessary spam.
Risk(Low): Removing a flag
Visibility(Medium): Squelch some output being sent to autoserv.stdout

Signed-off-by: Ryan Kubiak <rkubiak@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2233 592f7852-d20e-0410-864c-8624ca9c26a4
ackages.py
9fc7797d5cddc2c9bc38640a832e756a22bca9e8 02-Oct-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Add directory upload for upload --all option to streamline uploading of packages

Signed-off-by: Scott Zawalski <scottz@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2231 592f7852-d20e-0410-864c-8624ca9c26a4
ackages.py
d7cd983031fc77a247d022aef67b481892681ddc 02-Oct-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Update control_data to be more verbose about which file it failed to parse
Added syntax error check that prints file and line when an error is found
Risk: Low
Visibility: Errors that just said 'Your control file don't have the proper variables'
now actually specifies which file is at fault

Signed-off-by: Scott Zawalski <scottz@google.com>




git-svn-id: http://test.kernel.org/svn/autotest/trunk@2223 592f7852-d20e-0410-864c-8624ca9c26a4
ontrol_data.py
ontrol_data_unittest.py
095dc6419d059af068a592205e6bcd60d6c822f2 01-Oct-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Fix signal killing in utils.py
Risk: High
Visibility: Low

Signed-off-by: Scott Zawalski <scottz@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2214 592f7852-d20e-0410-864c-8624ca9c26a4
tils.py
315b94193d2862af85f7ba489152077d40840cb8 01-Oct-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Add a function to utils to get the conical hostname from something that might be an alias/cname.

Signed-off-by: Jeremy Orlow <jorlow@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2213 592f7852-d20e-0410-864c-8624ca9c26a4
tils.py
6ef0b672180d334b4c992315dc63ee4e2d3c9128 01-Oct-2008 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> It is possible for a CmdError to be raised with an exit_status of
None, if the command times out and cannot be SIGTERMed or SIGKILLed.
The CmdError.__str__ method needs to be able to handle that case.

Risk: Low
Visibility: If a command times out and can't be SIGKILLed, we should
still be able to str the resulting CmdError.

Signed-off-by: John Admanski <jadmanski@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2212 592f7852-d20e-0410-864c-8624ca9c26a4
rror.py
a5daed5b2e8735a174483ed1b6691ee77a0d0d39 30-Sep-2008 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> Change the mock framework to treat properties like "special" methods,
i.e. ignore them. Unfortunately, the way our mock system works we
can't easily integrate property mocks into them so for now just
exclude them so that you can still use the mocks to test non-property
parts of the code.

Risk: Low
Visibility: Unit tests with classes that have properties will not
fail immediately, although you won't be able to mock the properties.

Signed-off-by: John Admanski <jadmanski@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2209 592f7852-d20e-0410-864c-8624ca9c26a4
est_utils/mock.py
ed91ba902a885505433827b2586117371632a76b 30-Sep-2008 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> For some reason I can't figure out, this urlopen timeout param is
defaulting to 300? Fixing it back to 5.

Signed-off-by: John Admanski <jadmanski@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2208 592f7852-d20e-0410-864c-8624ca9c26a4
tils.py
d6d043c5d94da3f249a21f17f705c8c93b6ff606 27-Sep-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Test many IPv6, IPv6-mapped-IPv4 and IPv4 connections to loopback,
connecting to IPv6 dual-stack sockets listening on ::.

This test is done in three different ways which trigger issues on
different kernel versions or hardware (all resolved in current
versions).

Signed-off-by: David Luyer <luyer@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2200 592f7852-d20e-0410-864c-8624ca9c26a4
tils.py
30e9b59979e1b787744a29a7c0ffc3815ace7ff9 25-Sep-2008 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> Add a sysinfo hook that gets called before a test so that we can do
some pre-test examining of /var/log/messages. This allows us to
remember how large /var/log/messages was at the test start so that
we can then just grab new logs.

The /var/log/messages handling basically does two things before the
test:
- it remembers how large the file is
- it remembers the inode of the file
We then use the remembered size and skip over that many bytes when
grabbing the logs after the test. The inode is remembered so that we
can do a quick check to see if the final /var/log/messages is really
the "same" file; if the log gets rotated during the test we just
grab everything from the start. We still don't really handle that case
properly since the rotated logs that happened during the test still
won't be grabbed, but it's not easy to grab rotated logs in a
standard way.

Risk: Low
Visibility: Grab any new /var/log/messages that happen during the test.

Signed-off-by: John Admanski <jadmanski@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2198 592f7852-d20e-0410-864c-8624ca9c26a4
est.py
b48d27c8693c9d7b0aec49b6c5dfc881d47d6fd2 25-Sep-2008 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> Fix a change to logging.py that was missed with the conversion to log.py.



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2195 592f7852-d20e-0410-864c-8624ca9c26a4
og.py
1b3b376d94edee8f235f8669a047dc00751bf97a 25-Sep-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Rename client/common_lib/logging.py to client/common_lib/log.py in order to be able to use the standard python logging module

Python has a standard module used to perform logging operations
(http://docs.python.org/lib/module-logging.html) that could be used
inside autotest, however we have a common_lib module named logging as
well, that makes difficult to import the python logging module in all
other parts of autotest (including tests).

So this patch basically renames logging to log and fixes all references
to it. All the files touched were pylinted and basic sanity testing was
made (running autotest with different control files).

About the risks, in my opinion it's worth the effort, since we gain the
ability to use a powerful logging library, that would help us to
implement a better logging system inside all autotest modules.

Risk: Medium/High - Even though care was taken to ensure all references
to logging were changed, it touches a fair bit of the code and something
might have passed unaudited.

Visibility: Low - Should be invisible for all users, and developers must
just remember that now logging is called log.

Signed-off-by: Lucas Meneghel Rodrigues <lucasmr@br.ibm.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2193 592f7852-d20e-0410-864c-8624ca9c26a4
_init__.py
og.py
ogging.py
50c0e71efd37c04c5f441c7e4dd095632b54c35f 22-Sep-2008 showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> -add --force option to migrations to disable user confirmation because this can make migrations unscriptable
-add default migration dirs to migrate.py because having to cd to the right place was getting really annoying!
-made monitor_db_unittest.py use migrations to initialize the test DB schema instead of copying the schema from the real DB, since that was creating problems for testing. this slows down the test considerably, but it's better than no testing at all (and we can improve it in the future).
-made global_config allow overriding options, which is useful for testing

Signed-off-by: Steve Howard <showard@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@2180 592f7852-d20e-0410-864c-8624ca9c26a4
lobal_config.py
23afbec41f6275bef4e80c36726916b0be564204 17-Sep-2008 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> Add a standard run_cleanup option to test.run_test that can be used
to enable/disable the running of test.cleanup after the test
completes. This also adds some global state on the job objects
that can change to default for tests from enabled to disabled.

Risk: Low
Visbility: Adds ways to disable test cleanup at both the job and test
level.

Signed-off-by: John Admanski <jadmanski@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2167 592f7852-d20e-0410-864c-8624ca9c26a4
est.py
09f9203b63c9518bff9f0d56c90ce42771a46981 17-Sep-2008 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> The nuke_subproces function should always do a poll() on the process it's
going to try and kill, otherwise we run the risk of signalling a new
process with the same pid.

Risk: Low
Visibility: Reduces the risk of bad SIGTERMs.

Signed-off-by: John Admanski <jadmanski@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2166 592f7852-d20e-0410-864c-8624ca9c26a4
tils.py
ef8a893962f2de72d2d7652dcac2da8e5662b6cf 15-Sep-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Edited barrier error string to display which barrier it timed out on.

Signed-off-by: Bryce Boe <bboe@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2161 592f7852-d20e-0410-864c-8624ca9c26a4
arrier.py
807490cd3beeb7d91a0ab12a0ad3f507bde25f64 15-Sep-2008 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> Add a method to the Host objects for logging the currently running
kernel, and a method for logging "informational" status logs that
update the kernel without requiring any real action to occur. This
logging will always occur at the start of a client job, for server-side
jobs it will still be opt-in only, since we don't have a clean place
to log it where we know we have access to a host object.

Risk: Medium
Visibility: Client-side jobs should always have a real kernel
associated with all logged tests, and server-side jobs have an easy
way to log the same thing.

Signed-off-by: John Admanski <jadmanski@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2157 592f7852-d20e-0410-864c-8624ca9c26a4
ogging.py
47faacb31010a57d56296079bbbaf2f141b2a4e0 10-Sep-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Missing to pass cherry_picked args to cleanup().

Risk: Low
Visibility: cleanup() that are currently expecting arguments may not be working.



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2130 592f7852-d20e-0410-864c-8624ca9c26a4
est.py
52fa69285dbeb9e9a0d49de4b1e12b52cda39fc6 05-Sep-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Parsed output to generate keyvals for specific netperf tests. Additionally
made this test as well as the iperf test use the new scheme for 3 storing
three dimensional data in the keyval files. Which is to use multiple iterations
and to use attributes.

Signed-off-by: Bryce Boe <bboe@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2113 592f7852-d20e-0410-864c-8624ca9c26a4
est.py
4000ff6e6d018209049d2a8e84b7c5567ffbb44f 04-Sep-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Drop caches between tests for consistency of performance results

Signed-off-by: Martin J. Bligh <mbligh@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2106 592f7852-d20e-0410-864c-8624ca9c26a4
est.py
2ae0e05070b768a26b27f4a3a35d2bfff7459e1a 04-Sep-2008 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> When launching a test, save off all the parameters into the test
keyval file (as param-BLAH).

Risk: Low
Visibility: The test keyval file should hold more data about the
parameters the test was run with.

Signed-off-by: John Admanski <jadmanski@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2100 592f7852-d20e-0410-864c-8624ca9c26a4
est.py
534dec5300d36283846ab7d72159a7ac6852a878 04-Sep-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Fixing coding style violations in test.py

Signed-off-by: Martin J. Bligh <mbligh@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2097 592f7852-d20e-0410-864c-8624ca9c26a4
est.py
bd96b45e931786b48cab978b9e01d3fa799a6d32 04-Sep-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Add verbose option to utils.run/BgJob class to allow people to shut off
the running cmd message.
Visibility: Low
Risk: None

Signed-off-by: Scott Zawalski <scottz@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2096 592f7852-d20e-0410-864c-8624ca9c26a4
tils.py
a5630a5382d4b04a02728684aebec3dce984e2bf 04-Sep-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Added run_parallel to utils.py and updated netperf.py to use make use of the
parallel functions. Additionally updated iperf to not use proc_wrapper.py
and finally deleted proc_wrapper.

Signed-off-by: Bryce Boe <bboe@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2093 592f7852-d20e-0410-864c-8624ca9c26a4
tils.py
f0b4a0acd37137c668d4bf400abc9e81f5d6181f 03-Sep-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Changed select timeout value to 1 second in _wait_for_commands so processes
that exit without producing output don't block until the overall timeout
value.

Signed-off-by: Bryce Boe <bboe@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2091 592f7852-d20e-0410-864c-8624ca9c26a4
tils.py
777d96ea7897ed7c15b5677b256ac292a5911ca9 03-Sep-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Make all tests use profiling transparently, no needs for hooks on the
test class code anymore.

Also, make benchmarks accept the parameter test_length to specify the
minimum test length that we want to run the test.

Risk: Medium (seems to work ok on the tests I've made here)
Visibility: High - All tests now can use profiling without hooks on the
test code.

Also, it seems like I've evaluated the number of patches incorrectly :) Sorry about that.

Signed-off-by: Lucas Meneghel Rodrigues <lucasmr@br.ibm.com>




git-svn-id: http://test.kernel.org/svn/autotest/trunk@2084 592f7852-d20e-0410-864c-8624ca9c26a4
est.py
9c1098bc2b595541c5d94dc2bd96f29347113d7f 02-Sep-2008 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> Fix a typo.




git-svn-id: http://test.kernel.org/svn/autotest/trunk@2080 592f7852-d20e-0410-864c-8624ca9c26a4
tils.py
849a0f6ccc984232e662d800eef6add81b58dd00 28-Aug-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Invalid SQL is created if you have one-time hosts but no 'real' hosts
and you schedule a job. Add a check for this.

Risk: Low
Visibility: Low

Signed-off-by: Jeremy Orlow <jorlow@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2074 592f7852-d20e-0410-864c-8624ca9c26a4
tils.py
c7e0e5e6997323ead938fed8130e0b54dde5ae05 28-Aug-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> make self.iterations singular



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2066 592f7852-d20e-0410-864c-8624ca9c26a4
est.py
b718a1c97cfb674f2e93c5f7476366e5e26826e5 28-Aug-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Provide a generic iterations counter to all tests, so they stop
having to make up their own (as self.iterations)




git-svn-id: http://test.kernel.org/svn/autotest/trunk@2065 592f7852-d20e-0410-864c-8624ca9c26a4
est.py
825e24c4a8d339133840bd5349641f63d2f216b6 27-Aug-2008 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> Change the test.tmpdir creation to use tempfile.mkdtemp instead of
just assuming that job.tmpdir + testname was usable. Since the job
tmpdir is not unique per job, we can't assume that we can just
create a directory named after the test and that it will work.

This is generally only a problem for server side tests where having
multiple jobs running at the same time is the norm and not the
exception.

Risk: Low
Visibility: Changes test.tmpdir to a tempdir name generated on the
fly, rather than hardcoding it to job.tempdir + testname.

Signed-off-by: John Admanski <jadmanski@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2060 592f7852-d20e-0410-864c-8624ca9c26a4
est.py
901aaa9ca3aace4d33fd5441c66493e867a0db89 27-Aug-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Python 2.5 optparse capitalizes Usage, 2.4 doesn't, so remove this
word from the unittest.
The unittest parallel.redirect_io() redirects stdout & stdin, which
didn't play well with the god.mock_io().

Risk: low (unittest only)
Visibility: med (make them work with python 2.5)

Signed-off-by: Jean-Marc Eurin <jmeurin@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2057 592f7852-d20e-0410-864c-8624ca9c26a4
est_utils/mock.py
d625c7f40aa276ab3957ef01f5f21c84d933803e 27-Aug-2008 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> When calling test.cleanup() we don't want any exception that occur
in it to override exceptions from the test execution. However, we
still want exceptions from test.cleanup() if there way no underlying
exception in the test execution.

This requires some rather convoluted code. Basically, we need to:
1. save off the possible exception from executing the test
2. if an exception occured, execute test.cleanup() and then
rethrow the original exception
3. if an exception did not occur, execute test.cleanup() and let
any exceptions from it propagate on their own
4. after all that happens, we must always execute the
job.std*.restore() methods to stop logging the test

Risk: High
Visibility: If exceptions occur during both test execution and
cleanup, you now see the execution exception, not the cleanup one.

Signed-off-by: John Admanski <jadmanski@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2043 592f7852-d20e-0410-864c-8624ca9c26a4
est.py
e29be37f17c8805628fda438de4528a291cef16b 26-Aug-2008 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> We can't trust test.cleanup() to not throw an exception, since the
code in it is arbitrary code provided by the test implementation.
We can't do the job.std*.restore calls until after the cleanup since
it need to get recorded to, but they must always run no matter what
the cleanup does, so wrap them in another finally block.

Risk: Low
Visibility: Errors during cleanup should no longer prevent the
$TEST/debug/std* logging from stopping at the end of the test.

Signed-off-by: John Admanski <jadmanski@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2042 592f7852-d20e-0410-864c-8624ca9c26a4
est.py
213b02bad2ae098001127052cffb66d430582f18 26-Aug-2008 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> When test.runtest executes a test, it needs to restore the cwd to
whatever it was before the test ran.

Risk: Low
Visibility: Working directories should be preserved across tests.

Signed-off-by: John Admanski <jadmanski@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2040 592f7852-d20e-0410-864c-8624ca9c26a4
est.py
81edd79142cf9229b59a680d34fa40e23ede3e01 26-Aug-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Add utility functions for doing crazy things with ip's and netmasks.

Signed-off-by: Jeremy Orlow <jorlow@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2038 592f7852-d20e-0410-864c-8624ca9c26a4
tils.py
tils_unittest.py
dbfc4e3bc0b0ec3bcefdc0d045e501ef96869339 22-Aug-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Make sure that the __init__.py file is included when we exclude the profilers directory whilst packaging the autotest client. This is necessary for code that tries to import the profiler. Change the packager utility to pass in the actual tar string with the --exclude options instead of the exclude_dirs list. Change the packages code accordingly to handle this.

Signed-off-by: Ashwin Ganti <aganti@google.com>




git-svn-id: http://test.kernel.org/svn/autotest/trunk@2027 592f7852-d20e-0410-864c-8624ca9c26a4
ackages.py
6d7e94ff89987771f785dfead456eb4e6455e3a0 20-Aug-2008 showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> Include repr() of the CmdResult object in str() of CmdError and AutoservRunError. This should make it easier to debug problems with failed commands.



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2018 592f7852-d20e-0410-864c-8624ca9c26a4
rror.py
577f5edd5f2381faf80290016c7c63779d732df8 13-Aug-2008 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> Whenever someone is running a command via utils.run, print a
"running: $cmd" similar to the "ssh: $cmd" that gets printed when
you use SSHHost.run.

Risk: Low
Visibility: Adds a lot more output to the debug/ files that capture
autoserv and autotest stdout.

Signed-off-by: John Admanski <jadmanski@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1986 592f7852-d20e-0410-864c-8624ca9c26a4
tils.py
56193bb485d65716526079449f1df86ba5cb2df5 13-Aug-2008 showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> -add basic abort functionality test to scheduler unit tests. this
involved some serious refactoring of the existing tests.
-various other enhancements to the scheduler unit tests.
-extend mock.py comparator logic to be more powerful and generic. it can
now handle comparators within data structures, and it handles keyword
args properly.
-enhance debug printing in mock.py. previously a test failure before
calling check_playback would cause errors to be hidden even though they
contained the cause of the failure. now, with debug mode enabled,
errors will be printed as soon as they occur.
-minor changes to monitor_db.py to increase testability.



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1981 592f7852-d20e-0410-864c-8624ca9c26a4
est_utils/mock.py
9d02fb5f19113e83420fe867baadb9e2743d35af 08-Aug-2008 showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> Two missing files from the packaging system patch, including the all-important packages.py. I suspect mbligh forgot to svn add them.


git-svn-id: http://test.kernel.org/svn/autotest/trunk@1963 592f7852-d20e-0410-864c-8624ca9c26a4
ackages.py
c5ddfd1f71caef9ec0c84c53ef7db42fcdc33e1c 04-Aug-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> I have attached the patch for the packaging system.
The documentation is available at : http://test.kernel.org/autotest/PackagingSystem

Signed-off-by: Ashwin Ganti <aganti@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1953 592f7852-d20e-0410-864c-8624ca9c26a4
lobal_config.py
est.py
tils.py
14f9856aac6c3d43830553d849442914988349c6 29-Jul-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Add *args, **dargs to the default warmup in the test superclass.
Otherwise, every test that defines a run_once with args will have to
define a warmup that accepts the same args, even if it's just a NOP.

Risk: Low
Visibility: run_once is pretty useless without this

Signed-off-by: John Admanski <jadmanski@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1922 592f7852-d20e-0410-864c-8624ca9c26a4
est.py
62655786cbb12ebe901411e8f4b55e9394e4c633 28-Jul-2008 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> Pull the test_attributes values out of the run_test arguments and write them
out before validating args and passing them into test methods.

Risk: Medium
Visibility: Using test_attributes to add in extra attributes for writing out
when running a test shouldn't lead to "unknown parameter" errors. This also
means that the keyval will be written out prior to initialization instead of
just prior to execution.

Signed-off-by: John Admanski <jadmanski@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1917 592f7852-d20e-0410-864c-8624ca9c26a4
est.py
2e4726754f397c142a4cf90e840a385c5e7605dd 28-Jul-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> This change to mock.py fixes two major issues.

1) when calling check_playback() we should clear out the recording
at the end of the call so failures in one test dont cascade through.

2) we should rename the record and playback attributes of mock class to
__record and __playback since the object being mocked may have a
__record or __playback and we will cover that up (i.e. job.record())

Signed-off-by: Travis Miller <raphtee@google.com>




git-svn-id: http://test.kernel.org/svn/autotest/trunk@1911 592f7852-d20e-0410-864c-8624ca9c26a4
est_utils/mock.py
f2171e28f35eb8439c4038a4e3d079c606ae6e2f 28-Jul-2008 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> Add in a pass to an empty class definition, for consistency with our other declarations.

Signed-off-by: John Admanski <jadmanski@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1907 592f7852-d20e-0410-864c-8624ca9c26a4
rror.py
c218083b6b96257788364ef8b7fa0fad5087fcbd 25-Jul-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Smarter way that tests handle default exceptions (unhandled errors) and also a cleanup on test exception classes.

From: rxaviers@br.ibm.com



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1899 592f7852-d20e-0410-864c-8624ca9c26a4
rror.py
est.py
835ae27b9633270f9b472844e188228e8db8ebe9 24-Jul-2008 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> Modify the code for processing the output of a process launched via
utils.run, post-termination. The calling code can't safely assume
that is can just do a full read() on the terminated processes output
stream, since it may have passed the pipes off to another daemon
process that is still alive. This can cause these final calls to
block, indefinitely. Instead, just read as much as possible without
blocking and then close our end of the pipes.

Risk: High
Visibility: We should never again block on a terminated subprocess
launched through utils.run (or system/system_output).

Signed-off-by: John Admanski <jadmanski@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1888 592f7852-d20e-0410-864c-8624ca9c26a4
tils.py
187f6a5a7f46ee59e88442ab881a111c566cf1cb 24-Jul-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Get rid of a debug print statement.

Signed-off-by: Jeremy Orlow <jorlow@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1886 592f7852-d20e-0410-864c-8624ca9c26a4
ontrol_data.py
9d40cb411ac42d2082b4146f75de850b17952492 23-Jul-2008 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> Add a bunch more unit tests for the common lib utils, covering a bunch of the
url functions.

Risk: Low
Visibility: Adds more unittests.



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1880 592f7852-d20e-0410-864c-8624ca9c26a4
tils_unittest.py
786f426594ae0d48cedb2d3f331ee82c18d32d7e 23-Jul-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Fix the barrier unittest due to the recent move of BarrierError from barrier.py to error.py

Signed-off-by: Ashwin Ganti <aganti@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1879 592f7852-d20e-0410-864c-8624ca9c26a4
arrier_unittest.py
93f4209487841147d8fae40ce28beb310663b77a 18-Jul-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Make control_data handle int's and other types. This feature saves us from
editing lots of control files that are currently broken...and is nicer anyway.

Risk: Low
Visibility: Low

Signed-off-by: Jeremy Orlow <jorlow@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1872 592f7852-d20e-0410-864c-8624ca9c26a4
ontrol_data.py
ontrol_data_unittest.py
0b6eff1b00fc2751f9188fc23a265ba6f4a573e7 17-Jul-2008 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> Add some unittests for write_keyval.

Risk: Low
Visibility: Adds unittests.

Signed-off-by: John Admanski <jadmanski@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1869 592f7852-d20e-0410-864c-8624ca9c26a4
tils_unittest.py
cf23819bf6b75aeff5acb4f276955ef70b8445c3 17-Jul-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Automatically work out which arguments intialize, setup, execute/run_once need

Pass the appropriate args from run_test through to each of them

From: Rafael Xavier de Souza <rxaviers@br.ibm.com>
From: Martin J. Bligh <mbligh@google.com>
Signed-off-by: Martin J. Bligh <mbligh@google.com>




git-svn-id: http://test.kernel.org/svn/autotest/trunk@1859 592f7852-d20e-0410-864c-8624ca9c26a4
est.py
0b3dd5f0df77e7cc659b4b8cb0d25d1e20e7609d 16-Jul-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Split write_iteration_keyval into write_perf_keyval, write_attr_keyval

People only call one or the other, so the interface is clunky

Signed-off-by: Martin Bligh <mbligh@google.com>




git-svn-id: http://test.kernel.org/svn/autotest/trunk@1854 592f7852-d20e-0410-864c-8624ca9c26a4
est.py
ede6cd4105437482bfb340bc667456f1f5a447b8 16-Jul-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Revert write_keyval change

Signed-off-by: Martin J. Bligh <mbligh@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1852 592f7852-d20e-0410-864c-8624ca9c26a4
tils.py
b58f1a8f2c4a03af44a135a2743e67fe57bb6d06 16-Jul-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Make write_keyval support multiple iterations

Signed-off-by: Martin J. Bligh <mbligh@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1851 592f7852-d20e-0410-864c-8624ca9c26a4
tils.py
8d4dcd3df5b400a317efd31b97333a16eb8cea06 16-Jul-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Add debug code to test.py



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1849 592f7852-d20e-0410-864c-8624ca9c26a4
est.py
604347171abe199f3531d38af366877bb1872f9a 16-Jul-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Allow tests to define run_once instead of execute.

This allows us to move a whole lot of boilerplate out of each test into
a common place in test.py

Also allow for a postprocess phase for tests - to provide a cleaner alternative
to run_once

Signed-off-by: Martin J. Bligh <mbligh@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1846 592f7852-d20e-0410-864c-8624ca9c26a4
est.py
cd8a51646279995a8963c0d2acdad6db3bd12332 16-Jul-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Revert accidentally included parts of 1826



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1845 592f7852-d20e-0410-864c-8624ca9c26a4
est.py
8513e32ab88d55f0d47ab8628ed425cac765b95a 16-Jul-2008 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> The changes in rev 1840 break the standalone test harness, so remove
it for now.

Signed-off-by: John Admanski <jadmanski@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1843 592f7852-d20e-0410-864c-8624ca9c26a4
arrier.py
e867310401602123035b11d95f67d1fbc9880446 16-Jul-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Summary: Fixing circular reference issue during barrier module import.

The issue was breaking nearly all autotest modules, since it's right on
the common_lib setup. The fix was simple, just remove the circular
reference to common. Also, changed the placement of the __author__
decorator, and transferred the BarrierError class to the error module,
for the sake of consistency (all other modules define their exceptions
on error). This patch is the fix for the bug #4
(http://test.kernel.org/trac-autotest/ticket/4)

Visibility: High (Makes all modules that import common to work again)

Signed-off-by: Lucas Meneghel Rodrigues <lucasmr@br.ibm.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1840 592f7852-d20e-0410-864c-8624ca9c26a4
arrier.py
rror.py
74eebf332dedb9b9078113934d79e0da1f2827a6 15-Jul-2008 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> Modify the parser and tko db code to flag test models as being for
insertion or update, add a new "RUNNING" status to tko, and then add
code to the v1 parser to generate a "RUNNING" record when the test
starts and then a final update record when the test ends.

Risk: High
Visibility: When a test is in progress mostly-empty RUNNING results
should show up in tko, to be replaced by the final record when the
test finishes.

Signed-off-by: John Admanski <jadmanski@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1836 592f7852-d20e-0410-864c-8624ca9c26a4
ogging.py
a6014a0cfba588833757033b67ab858e748a4152 14-Jul-2008 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> Add unit tests for read_keyval, and fix a bug in its handling of
comments+whitespace found while writing the tests.

Risk: Low
Visibility: Adds more unittests.

Signed-off-by: John Admanski <jadmanski@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1833 592f7852-d20e-0410-864c-8624ca9c26a4
tils.py
tils_unittest.py
4205d8965f7fdda6a9c24100be912f36f04a3fc9 14-Jul-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Fix the unittest to make it pass and avoid relying on a fragile parser:
- Use the __import__ and import coherently
- Use the standard unittest framework

Rewrite of the barrier unittest as using fork() completely messed up
the overall test suite and ran it 8 times.

Visibility: Medium/High - some import changes
Risk: Medium

Tests:
- Ran unittest_suite.py for all and individual directories
- Ran coverage_suite.py for all and individual directories
- Ran manage.py test from frontend directory.

Signed-off-by: Jean-Marc Eurin <jmeurin@google.com>




git-svn-id: http://test.kernel.org/svn/autotest/trunk@1827 592f7852-d20e-0410-864c-8624ca9c26a4
arrier.py
arrier_unittest.py
lobal_config_unittest.py
est.py
c5205b81292cd323fb9e85354c7ab945d42638a1 12-Jul-2008 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> Starts a unittest file for the common lib utils, and provides unit
tests for the *_one_line functions.

Risk: Low
Visibility: Adds tests for read_one_line and write_one_line.

Signed-off-by: John Admanski <jadmanski@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1825 592f7852-d20e-0410-864c-8624ca9c26a4
tils_unittest.py
b53a3474f65f3f631bddef6f743c2944fed186dc 11-Jul-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Roll back accidentally included changes from previous commit

Signed-off-by: Martin J. Bligh <mbligh@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1823 592f7852-d20e-0410-864c-8624ca9c26a4
est.py
dfc0d2a849ff87cc4a150895bba89bc2b81feea5 11-Jul-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Change default to repair anything we can

Signed-off-by: Martin J. Bligh <mbligh@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1822 592f7852-d20e-0410-864c-8624ca9c26a4
est.py
b024fb10ac05a63b14dc30819ba36e12b50be772 11-Jul-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Rename host protection category "Filesystem only" to "Repair filesystem only".

Signed-off-by: James Ren <jamesren@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1821 592f7852-d20e-0410-864c-8624ca9c26a4
ost_protections.py
99c2c6f54e962fe4e7701cd9aaa645fdabacd203 11-Jul-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> These files go into client/common_lib/

Signed-off-by: Jeremy Orlow <jorlow@google.com>

Add a library for parsing control file variables (those things in all
caps at the top of all control files).
This library will soon be used for populating the web front end.



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1817 592f7852-d20e-0410-864c-8624ca9c26a4
ommon.py
ontrol_data.py
ontrol_data_unittest.py
6e8840c1d049074dfa2ff2844702607c1538a455 11-Jul-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Fix whitespace handling in read_one_line / write_one/line

Signed-off-by: Martin J. Bligh <mbligh@google.com>

We shouldn't be stripping whitespace, just trailing \n's



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1816 592f7852-d20e-0410-864c-8624ca9c26a4
tils.py
4f4e31157baaf154eaaff93284239f465882eb35 11-Jul-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Better parsing of the output of the unittest runs so we properly
report the errors.

Signed-off-by: Travis Miller <raphtee@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1815 592f7852-d20e-0410-864c-8624ca9c26a4
lobal_config_unittest.py
df062569a6407ec084c4ee05b9390f8a0183d37b 03-Jul-2008 showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> Adding protection levels to hosts. Allows the user to specify how much
the repair operation is allowed to do on the host (e.g., do not repair,
repair filesystem only, allow reimaging).

Risk: low
Visbility: medium (adding a new input field)


git-svn-id: http://test.kernel.org/svn/autotest/trunk@1771 592f7852-d20e-0410-864c-8624ca9c26a4
num.py
ost_protections.py
e9be8c38ab90271133c8b3989055a9ef6aece480 01-Jul-2008 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> When we launch subprocesses we should make sure they're using the
standard SIGPIPE handler, instead of the custom handling that python
uses so that it can translate them into exceptions.

Risk: Medium
Visibility: system() and run() calls that uses pipes should stop
hanging.

Signed-off-by: John Admanski <jadmanski@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1754 592f7852-d20e-0410-864c-8624ca9c26a4
tils.py
c23051cdb6499bb38795b7edc970dde38d2a3f1c 27-Jun-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Some fixes and minor cleanups as suggested by PyLint.

Signed-off-by: Jeremy Orlow <jorlow@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1745 592f7852-d20e-0410-864c-8624ca9c26a4
rror.py
est.py
8d01bfe40a0ae23cea194dd08a107b9d222282ff 23-Jun-2008 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> The changes to the error hierarchy in rev 1732 break the UnhandledError
class by changing the superclass but not properly adjusting the
superclass __init__ calls.

Also fixes up some inconsistent spacing introduced by the same patch.

Signed-off-by: John Admanski <jadmanski@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1734 592f7852-d20e-0410-864c-8624ca9c26a4
rror.py
b48fa5697850e04c0a5eb0abc094b9dff3c806e9 23-Jun-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Add other test exit status according to the spec in:
http://test.kernel.org/autotest/ResultsSpecification

TestNAError -> TEST_NA (clean msg)
TestError -> ERROR (clean msg)
TestFail -> FAIL (clean msg)
default -> FAIL (traceback)

Risk: Low, since the default behavior is still the same (FAIL)
Signed-off-by: Rafael Xavier <rxaviers@br.ibm.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1732 592f7852-d20e-0410-864c-8624ca9c26a4
rror.py
ogging.py
e01c2e5ac45beee3c595c4aac28940bf7c54449e 18-Jun-2008 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> Lets not insert a newline between every single character of the
exception traceback.

Risk: Low
Visibility: Should reduce the number of lines in UnhandledError
tracebacks.

Signed-off-by: John Admanski <jadmanski@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1721 592f7852-d20e-0410-864c-8624ca9c26a4
rror.py
6f731364e6207c198ac8de748a043eba1e9223b3 17-Jun-2008 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> Changes the semantics of UnhandledError. First, it takes in a root
exception to wrap, rather than implicitly grabbing the last caught
exception. Second, it displays the root exception message instead
of wrapping it in a new message and only displaying the root cause
in a pre-collected traceback.

Signed-off-by: John Admanski <jadmanski@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1710 592f7852-d20e-0410-864c-8624ca9c26a4
rror.py
est.py
19f49452ebfc8d5ae12b48c8c6e09059179485fe 13-Jun-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Remove duplicate copy of _process_output

Signed-off-by: Martin J. Bligh <mbligh@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1699 592f7852-d20e-0410-864c-8624ca9c26a4
tils.py
27d0cb998bf965902689ce162ca790cae25c95f3 12-Jun-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Make sure that error messages from god are already displayed.
Remove the exit mock as it should now be now as a regular stub.
Rename stdout_stderr to io.

Signed-off-by: Jean-Marc Eurin <jmeurin@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1695 592f7852-d20e-0410-864c-8624ca9c26a4
arrier_unittest.py
est_utils/mock.py
e61037c5f3ca225421860f2d954bfe7ebfa8f959 12-Jun-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Added some unit tests to test the barriers. Fixed a couple of minor bugs in barrier.py

Signed-off-by: Ashwin Ganti <aganti@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1686 592f7852-d20e-0410-864c-8624ca9c26a4
arrier.py
arrier_unittest.py
f81731631a3dd2d8c9bef197d83571a36c9021f6 11-Jun-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Previous the calls to expect_new on a mock_class_obj were not being recorded in the god. Now they are and so can
check that object creations occur correctly in the method under test.

Signed-off-by: Travis Miller <raphtee@google.com>




git-svn-id: http://test.kernel.org/svn/autotest/trunk@1673 592f7852-d20e-0410-864c-8624ca9c26a4
est_utils/mock.py
6e83b6f6f33845f700de049f5f64fa448b667ed5 10-Jun-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Had to change a few classes to be new style python classes. This is done since
I am having to mock out these classes and they need to be new style for that
to work in our mock framework. The other change was to allow mock_god to
unstub a specific method. The bulk of the new code is in job_unittest.py
which tests job.py. had to make a couple of changes to job.py that involve
changing __ to _.

Signed-off-by: Travis Miller <raphtee@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1668 592f7852-d20e-0410-864c-8624ca9c26a4
est_utils/mock.py
0afbb6369aa5aa9a75ea67dd9e95ec4b21c0c181 06-Jun-2008 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> Convert all python code to use four-space indents instead of eight-space tabs.

Signed-off-by: John Admanski <jadmanski@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1658 592f7852-d20e-0410-864c-8624ca9c26a4
arrier.py
heck_version.py
rror.py
lobal_config.py
lobal_config_unittest.py
ogging.py
ail.py
ail_unittest.py
expect.py
xssh.py
est.py
est_utils/mock.py
est_utils/mock_demo.py
est_utils/mock_demo_MUT.py
tils.py
943424580cb9a8ae989aea07f82fc0f56b439f53 06-Jun-2008 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> Add in a bunch of new mock utils, for mocking out stdout, stderr, exit,
performing isinstance comparisons, etc.

Signed-off-by: John Admanski <jadmanski@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1638 592f7852-d20e-0410-864c-8624ca9c26a4
est_utils/__init__.py
est_utils/mock.py
est_utils/mock_demo.py
est_utils/mock_demo_MUT.py
3d161b028a4cd20c0a91ee5b1b86149a0821db4f 06-Jun-2008 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> Move the mock libraries from client/unittest into client/common_lib/test_utils.
This is a better location, and a rename of the package dir from unittest to
test_utils avoids some conflicts that were occuring between it and the
stdlib unittest module.

Signed-off-by: John Admanski <jadmanski@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1637 592f7852-d20e-0410-864c-8624ca9c26a4
est_utils/mock.py
est_utils/mock_demo.py
est_utils/mock_demo_MUT.py
526d05409df54530f4d724cc38879669ad0a119e 06-Jun-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Add optional params to CmdResult.__init__ to allow the attributes to be set
during construction.

Signed-off-by: Travis Miller <raphtee@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1635 592f7852-d20e-0410-864c-8624ca9c26a4
tils.py
7aff6bd66565a9f478fee96052fa3eb663fc76c0 06-Jun-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Risk: Low
Visibility: All people raising CmdError exceptions

The CmdError exception was defined in such a way that it needs to format
the exit code of the failed command as an integer. However, by mistake,
the whole result object was being passed to the format string, hence
raising a ValueError. This patch fixes the problem by passing only the
exit code attribute of the result object to the format string operation.

Signed-off-by: Lucas Meneghel Rodrigues <lucasmr@br.ibm.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1634 592f7852-d20e-0410-864c-8624ca9c26a4
rror.py
7e1b1503e86719c131fc2d659d645b0915b3a008 06-Jun-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Properly space error.py according to coding style

Signed-off-by: Martin J. Bligh <mbligh@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1633 592f7852-d20e-0410-864c-8624ca9c26a4
rror.py
d660afe45d87270b509e069a44834d0244ae2090 06-Jun-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Add support for tagging subdirs independently of the testname tags.
This allows you to group multiple test runs under the same name
while still storing their results in unique directories.

From: Duane Sand <duanes@google.com>
Signed-off-by: John Admanski <jadmanski@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1620 592f7852-d20e-0410-864c-8624ca9c26a4
est.py
1965dfa167c65fea2c49536f1fc329ac7203828a 04-Jun-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> New options and automatic ssh key setup

Risk: Medium
Visibility: Adds three new argument options --ssh-user, --ssh-port, and --ssh-pass, which overrides the global default 'root' and '22' for all machines.

Adds the option to pass user, port and password per-machine in the format user:pass@host:port (overrides --ssh-user, --ssh-port and --ssh-pass).

Adds the pexpect.py and pxssh.py modules to autotest tree, these modules are used to interact with interactive programs.

The --ssh-pass option and pass field on machine string is used only to perform automatic ssh key setup on remote machines, which is also implemented in this patch.

Signed-off-by: Ramon de Carvalho Valle <rcvalle@br.ibm.com>
Signed-off-by: Lucas Meneghel Rodrigues <lucasmr@br.ibm.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1600 592f7852-d20e-0410-864c-8624ca9c26a4
expect.py
xssh.py
8445dcbafb4aced67621685f9228b8803fcd42c9 04-Jun-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Risk: Low
Visibility: Anyone writing their own (complicated) control files.

Add a run_sequentially to our 'run_randomly' class to make certain types
of control file debugging easier.

Signed-off-by: Jeremy Orlow <jorlow@google.com>




git-svn-id: http://test.kernel.org/svn/autotest/trunk@1595 592f7852-d20e-0410-864c-8624ca9c26a4
tils.py
02ff2d5ee0d687923ab0caf2355f89cae0fa7177 03-Jun-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Risk: Medium - Hits quite a bit of different areas
Visibility: Low
utils.py
Create a wrapper for urlopen and urlretrieve to enforce a timeout
using the socket module and setsockettimeout.

- All additional files outside of utils.py are using urllib/urllib2 in
one way or another and are being changed to use our wrapper

Signed-off-by: Scott Zawalski <scottz@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1590 592f7852-d20e-0410-864c-8624ca9c26a4
tils.py
d93d7d2a9728bbed6d125a6d8a9f61bb3f2b6718 29-May-2008 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> Risk: Medium
Visibility: Should improve error messages from failing commands.

This converts the CmdErrors raised by run to something more useful.
It seems that the original command failure code that actually told
you what command actually failed got excised during the big merge
of all of our system/system_output/run stuff until a single common
lib run function.

It also clears out a bunch of the util stubs in server utils, since
the fixes made them mostly unnecessary.

Signed-off-by: John Admanski <jadmanski@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1572 592f7852-d20e-0410-864c-8624ca9c26a4
rror.py
tils.py
cf8c4d68b8c3def2a5ebb00b3ccbf83ce3e8f6f0 28-May-2008 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> Risk: Low
Visibility: Changes the error/reason associated with unhandled
exceptions during tests.

This fixes up the error message associated with UnhandledError
exceptions to actually tell you that the failure was due to an
unhandled exception, and what the unhandled exception was. It drops
the testname from the exception, since the status lines that log the
exception already include the testname anyway.

Signed-off-by: John Admanski <jadmanski@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1557 592f7852-d20e-0410-864c-8624ca9c26a4
est.py
c1cbc9948f5ddaf360853afa1994d942ffd5fe09 27-May-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> 1. Enable job tags to be passed from the server side (basically use the -t option available on the client side to be passed in from the server)
2. Add code to help run multiple jobs on the same machine starting at the same time (using jobs tags so that the results don't get clobbered up and barriers for synchronization)
3. Add a sample server side control file to demonstrate the usage of running multiple tests on the same client starting at the same time by running two "sleeptests".

Signed-off-by: Ashwin Ganti <aganti@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1549 592f7852-d20e-0410-864c-8624ca9c26a4
tils.py
cc549174c6caf563443625805594eb0ff813a261 21-May-2008 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> Risk: Medium
Visibility: Changes the test keyval interface, deprecating the existing
test.write_keyval method in favour of a pair of write_*_keyval methods
for writing test & iteration keyvals. The deprecated method will still
work as it did before, but will generate a warning.

Adds a new iteration_attributes table to the database for storing
generic string attributes on a per-iteration basis, in the same way
that test_attributes allows generic string attributes on a per-test
basis.

This also adds new methods to the test class for writing these keyvals
so that tests can write out attributes by calling
self.write_test_keyval (or self.write_iteration_keyval). The iteration
method accepts parameters for both generic attributes and performance
data.

In order to store both performance and non-performance data in the
iteration keyvals, the format of the line has been extended to look
like "key{blah}=value", with no {blah} being interpreted as equvalent
to "{perf}", for backwards compatiblity.

Signed-off-by: John Admanski <jadmanski@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1535 592f7852-d20e-0410-864c-8624ca9c26a4
est.py
tils.py
fa29a2a27f1534c71587cde382709a4795a820a1 17-May-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Remove all places where we are hardcoding python2.4 on the
scripts

Risk: Medium/High

Summary: After going trough the autotest tree, removing all places where
we have statements like

#!/usr/bin/python2.4

As they're unnecessary for those who have python > 2.4. Still, we want
to make sure we're running on something > 2.4 for those scripts, so I
hooked the scripts to the common lib infrastructure when needed. I tried
to be as careful as possible to make sure all scripts worked after my
modifications, I could even spot an import problem on
server/standalone_profiler.py and fix it.

Also, while I was there, I fixed several inconsistencies on the
mirror/mirror script.

Signed-off-by: Lucas Meneghel Rodrigues <lucasmr@br.ibm.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1527 592f7852-d20e-0410-864c-8624ca9c26a4
lobal_config_unittest.py
ail_unittest.py
f55dfc9234c3cf948f9b0ae9eb4dd4c0c2bd8318 16-May-2008 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> Risk: Low

Clean up the common test.py imports to use absolute imports. Tested by
running a client-side and server-side test; any import errors
would've been readily apparent since the affected methods lie on the
main codepaths used for all tests.

Signed-off-by: John Admanski <jadmanski@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1525 592f7852-d20e-0410-864c-8624ca9c26a4
est.py
313f12ceca6185ea4890fec8e66baf06fd5d6f40 16-May-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Did some cleanup work on imports in order to remove any of the remaining "from blah import *" imports.

From: Travis Miller



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1522 592f7852-d20e-0410-864c-8624ca9c26a4
arrier.py
est.py
f4f3b0b7387a77815c4c02d4d349fa101aaa0d07 14-May-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Check version should support the scenario where a user does not have
python 2.4 installed, but does have some later version installed.

Signed-off-by: Jeremy Orlow <jorlow@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1513 592f7852-d20e-0410-864c-8624ca9c26a4
heck_version.py
c78b54e12cc05bc842cd228d232238840f816f48 14-May-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Problem: The python TarFile objects only operate on uncompressed
tarfiles when instantiated as TarFile objects, per the current python
documentation. The code for installing a user AutoTest testcase
attempts to open and examine the testcase "tgz" file by instantiating
it as a TarFile object, which doesn't work.

Solution: use tarfile.open() instead of tarfile.TarFile()

Signed-off-by: Paul A. Clarke <pc@us.ibm.com>




git-svn-id: http://test.kernel.org/svn/autotest/trunk@1510 592f7852-d20e-0410-864c-8624ca9c26a4
est.py
5182e169ea058e481acb3591503c4d034fbdf92b 13-May-2008 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> Risk: Low

Move read_one_line and write_one_line from the client utils into the
common utils.

Signed-off-by: John Admanski <jadmanski@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1509 592f7852-d20e-0410-864c-8624ca9c26a4
tils.py
9b907d65f81d871fe02e9ec0c9a60fc2c633472a 13-May-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Some small change to global_config.py and migrate.py as well as
migrate_unittest.py

From: travis miller



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1504 592f7852-d20e-0410-864c-8624ca9c26a4
lobal_config_unittest.py
8ea61e2f9f55bd9f646735069e1f029e86d08320 09-May-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> 1. Removed the system() and system_output() implementations from client/bin/autotest_utils.py so that the ones in common_lib/utils.py are used throughout.
2. Add an optional parameter to system_output() in client/common_lib/utils.py to retain stdout and not throw it away.
3. Renamed ignorestatus to ignore_status to make it consistent with the rest of the code.
4. Modified the tests to use the renamed ignore_status option
5. Modifed the CmdError() implementation in client/common_lib/error.py and made sure all the places on the server side, that expect a AutoservRunError exception are changed to expect and handle a CmdError exception instead.

Signed-off-by: Ashwin Ganti <aganti@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1499 592f7852-d20e-0410-864c-8624ca9c26a4
rror.py
tils.py
be9df1fb0fc00f5ba67e54bf42d628676419275c 02-May-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> This patch adds a unittest for client/common_lib/mail.py module.

Travis Miller



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1484 592f7852-d20e-0410-864c-8624ca9c26a4
ail_unittest.py
302482ea9ed9407ce1ac736ac9adcac814ad5a7d 01-May-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Add a new status field called TEST_NA (in addition to PASS and FAIL).

From: Travis Miller



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1476 592f7852-d20e-0410-864c-8624ca9c26a4
rror.py
ogging.py
dca34e1b122659ecc4eaf885805a95a7e18f57e0 09-Apr-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> fix up double-concatenated file



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1416 592f7852-d20e-0410-864c-8624ca9c26a4
lobal_config_unittest.py
f97513351c77d4d47bbe30063b7faca25d530667 08-Apr-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> unit tests

From: raphtee@google.com



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1411 592f7852-d20e-0410-864c-8624ca9c26a4
lobal_config.py
lobal_config_unittest.py
caa62c2a72c0300254998f21f4aca4579f251da4 07-Apr-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Implemented hooks for external logging infrastructure for storing both server-side and client-side logs.

Signed-off-by: Svitlana Tumanova <stumanova@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1408 592f7852-d20e-0410-864c-8624ca9c26a4
tils.py
1b87bc53ddf0a18e85df7a862df9d559c8bec438 04-Apr-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Modify all the common.py to set up an autotest_lib.* namespace as well
as all the common.* module setup that it normally does.

This should make it easier to replace any funky sys.path code with
code that actually does the right thing, and imports modules using
absolute paths; as long as our entry points import common, code should
be able to count on imports like "import autotest_lib.tko.parse" or
"import autotest_lib.server.autotest" working, without having to
fiddle with sys.path themselves.

The client/bin/common.py is an exception; we can't assume anything
other than the client/ directory is present, so it only adds the
autotest_lib.client.* namespace. So code within the client
itself should only do absolute imports from the client directory
downward, not from the top-level dir downward.

We'll probably need to add __init__.py files to some directories to
allow us to import from them as packages, but that can be done on
an as-needed basis when we write import statements that require them.

Signed-off-by: John Admanski <jadmanski@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1397 592f7852-d20e-0410-864c-8624ca9c26a4
_init__.py
0a29757e80ff3cb0a26228331658c259c2cacbc4 02-Apr-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Add missed textwrap import

Signed-off-by: Scott Zawalski <scottz@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1390 592f7852-d20e-0410-864c-8624ca9c26a4
tils.py
63073c961fb205b7ae2a6bfc50088634000c4e95 31-Mar-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Move the following into common_lib.utils
nuke_subproces, nuke_pid, _process_output, _wait_for_command, run, run_bg,
join_bg_job, system, system_output, and class CmdResult
Also updated imports.
Did not fix from common.utils import * as it affects multiple files

Signed-off-by: Scott Zawalski <scottz@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1384 592f7852-d20e-0410-864c-8624ca9c26a4
tils.py
929b378aa28a72a693df19a600df4c4c9f535c56 28-Mar-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Move the email code currently used by the parser over to the common
library.

Signed-off-by: John Admanski <jadmanski@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1378 592f7852-d20e-0410-864c-8624ca9c26a4
_init__.py
ail.py
de0d47ea6cc505de034a8b420336c75260cb6b0d 28-Mar-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Move read_keyval from the client utils to the common utils.

Signed-off-by: John Admanski <jadmanski@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1376 592f7852-d20e-0410-864c-8624ca9c26a4
tils.py
462c015293bb7fca751af89888e746bb3f782e54 13-Mar-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Adding a class that can be used to run tests in a random order. If you have
5 tests and 10 machines to run them on, there is a high probability that each
test will be run first on at least one machine, thus giving you initial
feedback much faster. In addition, the order the tests run will be different
which increases the chances you'll uncover weird and subtle problems.

To use this patch, instead of running tests like this:

job.run_test('tbench')
job.run_test('kernbench')
job.run_test('dbench')

Run tests like this:

run = run_randomly()
run.add('tbench')
run.add('kernbench')
run.add('dbench')
run.run(job.run_test)

Signed-off-by: Jeremy Orlow <jorlow@google.com>




git-svn-id: http://test.kernel.org/svn/autotest/trunk@1341 592f7852-d20e-0410-864c-8624ca9c26a4
tils.py
104e9ce7a74041fd673ceac5c8b0bc67c74edcd5 11-Mar-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> This fixes some issues with global_config relating to the fact
that before all you could get were strings.

From: Travis Miller <raphtee@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1326 592f7852-d20e-0410-864c-8624ca9c26a4
lobal_config.py
158ba7ba2757794b96c5c39d794c743be676fe90 07-Mar-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> I fixed a bug in AutoservSubcommandError.__str__ that was making the
exception unformattable, and added some code to parallel to catch the
exception. Unfortunately, the final error message will still just end
up being "One or more subcommands failed", but I can't see a good way
to output a more detailed error at that high level, since parallel
can be given an arbitrary set of tasks to run.

Signed-off-by: John Admanski <jadmanski@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1317 592f7852-d20e-0410-864c-8624ca9c26a4
rror.py
b9e18ddafbcbac30225991351c2cbac85492e9c9 06-Mar-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Pull the lockfile creation out of the try-finally, as the finally
shouldn't be executing if the lockfile creation fails.

Signed-off-by: John Admanski <jadmanski@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1310 592f7852-d20e-0410-864c-8624ca9c26a4
est.py
6e2ffec8a247d84271dc86a1551c3ad543475d0f 05-Mar-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Enhance the error message displayed when a server-side test fails.
The existing message just indicates that a runtest function failed, and
gives you the exit code. We can at least display the name of the
failed test in the error message.

Signed-off-by: John Admanski <jadmanski@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1301 592f7852-d20e-0410-864c-8624ca9c26a4
rror.py
1b5fb0615092d99a6ce9563f5c4fd5cb31e95970 29-Feb-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Add a helpful README that describes what should and shouldn't be in
the common_lib.

From: Mandeep Baines <msb@google.com>
Signed-off-by: John Admanski <jadmanski@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1285 592f7852-d20e-0410-864c-8624ca9c26a4
EADME
0bad8711adbb5f429d2194fff7ea863814d0eb26 28-Feb-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Add key and section to value and section to ConfigError exception

From: Scott Zawalski <scottz@google.com>
Signed-off-by: John Admanski <jadmanski@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1277 592f7852-d20e-0410-864c-8624ca9c26a4
lobal_config.py
8375088a4ed43357a7abe1b6cab83c0e5ce79cfa 28-Feb-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Fix a few misses in the global_config patch
global_config.py import sys
common.py change import from top_level_dir to client

From: Scott Zawalski <scottz@google.com>
Signed-off-by: John Admanski <jadmanski@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1276 592f7852-d20e-0410-864c-8624ca9c26a4
lobal_config.py
ed4d6ddc79993492b22aeeb36574b3cb7c8bad44 27-Feb-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> glocal_config patch

This patch contains the global_config class and the global_config.ini file (located in root dir). This patch also includes changes to tko/db.py so that rather than using tko/.database and tko/.priv_login, it reads the needed info from the global_config

travis miller





git-svn-id: http://test.kernel.org/svn/autotest/trunk@1271 592f7852-d20e-0410-864c-8624ca9c26a4
_init__.py
lobal_config.py
15b2a11cfef9c1a3ce690e896c3888de8af657dd 27-Feb-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Fix small import problem on utils.py

The new utils module inside common_lib is not importing the error
module, but raises some AutotestExceptions. Fix that by importing the
error module properly.

Signed-off-by: Lucas Meneghel Rodrigues <lucasmr@br.ibm.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1269 592f7852-d20e-0410-864c-8624ca9c26a4
tils.py
6f015c44cad8984c6117a2bbf8ff8a5a16602012 12-Feb-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Move some error classes out of server/autotest.py and into the error
library, and associate them with the appropriate superclasses since
these errors are really autotest errors and not autoserv errors.

Signed-off-by: John Admanski <jadmanski@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1233 592f7852-d20e-0410-864c-8624ca9c26a4
rror.py
95a7e6794a6c27e64e460d8d95d58f29528666b0 06-Feb-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Add missing check_version.py



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1217 592f7852-d20e-0410-864c-8624ca9c26a4
heck_version.py
6231cd6de184639494528ef60a9aca482283556b 02-Feb-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> add missing files from last change. Oops

Signed-off-by: Martin J. Bligh <mbligh@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1216 592f7852-d20e-0410-864c-8624ca9c26a4
est.py
tils.py
ea397bbc85f1a3eda39c9f2ef4fc209b4ff336f4 02-Feb-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Refactor the server and client side test classes into a the common lib

Big change here. Pull all of the common code in the server and client
versions of test into the common lib. This also requires pulling
chunks of the client and server utility functions into the common lib
as well.

Signed-off-by: John Admanski <jadmanski@google.com>




git-svn-id: http://test.kernel.org/svn/autotest/trunk@1215 592f7852-d20e-0410-864c-8624ca9c26a4
_init__.py
0c3548d838c50decb2d48ed20648f6a84d5dd4c5 01-Feb-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Move check_version into the common utils and make sure we run it for any
autotest binaries which require 2.4.

Signed-off-by: Jeremy Orlow <jorlow@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1214 592f7852-d20e-0410-864c-8624ca9c26a4
_init__.py
34faa283baa32aea834e57779f915e702c15b9b8 16-Jan-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> SSH has an exit code of 255 and prints out an error message when
it reaches a connection timeout. We should catch this and return
a sensible exception.

Also, bit-shift all exit codes by 8 to match what we're now doing
in the client.

From: Jeremy Orlow <jorlow@google.com>
Signed-off-by: John Admanski <jadmanski@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1170 592f7852-d20e-0410-864c-8624ca9c26a4
rror.py
6a2a2df5393811e4688f01ecfafda82869560f22 16-Jan-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Ensure all AutoservRunErrors are constructed with a tuple of two objects, as expected. Also change AutoservRunError's docstring to reflect this requirement. Fixed up some formatting in run_grep while I was at it.

From: Steve Howard <showard@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1168 592f7852-d20e-0410-864c-8624ca9c26a4
rror.py
642b03e401142565a8109ac6e8495eda1dead577 14-Jan-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Now fixing the places where we're raising string exceptions on the
client code. The patch also fixes identation errors in the iostat
profiler and error.py'>error.py.

Signed-off-by: Lucas Meneghel Rodrigues <lucasmr@br.ibm.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1158 592f7852-d20e-0410-864c-8624ca9c26a4
rror.py
5deff3d429f06c301a8235d761e12408c1a9a5f6 04-Jan-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Add a new exception for installation failures.
Change wait_for_restart to be public function.

Signed-off-by: Jean-Marc Eurin <jmeurin@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1110 592f7852-d20e-0410-864c-8624ca9c26a4
rror.py
6b504ff04e21af766da0cfbcde8e1e352a474dfa 12-Dec-2007 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Fixed the barriers to exit rendevous when there are no members specied.

Signed-off-by: Colby Ranger <cranger@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1061 592f7852-d20e-0410-864c-8624ca9c26a4
arrier.py
d8e82f96df023192d3ed4f8144bdae3e12f1f117 11-Dec-2007 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Right now (revision 1054), server/server_job.py is importing barrier.py
from client/common_lib. However, __init__.py doesn't have barrier listed
on the module list, making autoserv throw an exception. This patch fixes
that problem.

Signed-off-by: Lucas Meneghel Rodrigues <lucasmr@br.ibm.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1055 592f7852-d20e-0410-864c-8624ca9c26a4
_init__.py
e1417fa0334ac4e2ab6064e42de0bb891e561057 10-Dec-2007 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> * Added support for barriers to the server.
* Allow slaves to run HTTP servers and let the master connect to them.
This is for networks where some connections to machines can only be
initiated in one direction.
* Added a client test that would kick off profilers and run them in sync with th
e server.
* Added a server sample test that uses the client test.

From: Colby Ranger <cranger@google.com>
Signed-off-by: Martin Bligh <mbligh@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1048 592f7852-d20e-0410-864c-8624ca9c26a4
arrier.py
03f4fc7be7966d839d6055021424b8a9d430faa8 29-Nov-2007 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Pull the server-side errors.py into the common error library.

Signed-off-by: John Admanski <jadmanski@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1007 592f7852-d20e-0410-864c-8624ca9c26a4
rror.py
906b9f7386c58a59a9226556c58bed43eb2e3db9 29-Nov-2007 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Oops. Fix missing / not deleted files from last commit

Signed-off-by: Martin J. Bligh <mbligh@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1005 592f7852-d20e-0410-864c-8624ca9c26a4
rror.py
f31b0c0060dd688c80be3bb97ffdfa193e3d924b 29-Nov-2007 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Move error.py'>error.py'>error.py out of the client and server and into common_lib.

Signed-off-by: John Admanski <jadmanski@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1003 592f7852-d20e-0410-864c-8624ca9c26a4
_init__.py
b05a6aca55436a5ff472849ba58f7a6ddeb3520d 26-Nov-2007 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Add attribution for author to logging.py



git-svn-id: http://test.kernel.org/svn/autotest/trunk@988 592f7852-d20e-0410-864c-8624ca9c26a4
ogging.py
119c12a73ec74ea7f259f7db39d994055db1b609 12-Nov-2007 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Extract the logging decorator used in kernel.py into a common library
and add it to Autotest.install to provide logging of autotest
installation failure (and success).

Signed-off-by: John Admanski <jadmanski@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@937 592f7852-d20e-0410-864c-8624ca9c26a4
_init__.py
ogging.py
c335c7d100463f7c2732ec0426ab22ac434cc0d8 12-Nov-2007 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Add support for a common library area, usable by both server and client code.

This isn't as clean as I would like, but it's the best mechanism I could find. If you have suggestions please send them my way.

To add libraries, add a .py file (e.g. mylib.py) under client/common_lib, and add the module name to __all__ in __init__.py (e.g. __all__ = ['mylib']). Then, from the server or the client, you can use 'from common import mylib'.

From: showard@google.com



git-svn-id: http://test.kernel.org/svn/autotest/trunk@935 592f7852-d20e-0410-864c-8624ca9c26a4
_init__.py
ite_libraries.py