History log of /external/autotest/site_utils/test_that.py
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
42a0bffec26736bbdb95edf0cd6470f1a62808fe 19-Dec-2017 Prathmesh Prabhu <pprabhu@chromium.org> Support running test_that via a symlink

BUG=b:70390932
TEST=Manually patch test_that.py in lab-tools checkout; test_that works.

Change-Id: I5eceebae232d8e791ddd6380c4a419bae1ed94cb
/external/autotest/site_utils/test_that.py
f0dda1b3ab3941adeaf7c4e5b567227d4f970bd9 31-Oct-2017 C Shapiro <shapiroc@chromium.org> test_that support for model parameter

Add pass through support for model going to the test_suite

BUG=b:65673486
TEST=test_that -b coral -i coral-release/R63-10000.0.0 :lab: dummy_Pass
& test_that -b coral -m robo360 -i coral-release/R63-10000.0.0 :lab: dummy_Pass

Change-Id: I00721d8d300a3647ec590d80f132d51695dfe55d
Reviewed-on: https://chromium-review.googlesource.com/747622
Commit-Ready: C Shapiro <shapiroc@google.com>
Tested-by: C Shapiro <shapiroc@google.com>
Reviewed-by: Prathmesh Prabhu <pprabhu@chromium.org>
/external/autotest/site_utils/test_that.py
02b46c55690dcbccaf2687ce3f0a6f6440b959db 11-Sep-2017 Allen Li <ayatane@chromium.org> [autotest] Add old RPC support to test_that

BUG=chromium:763207
TEST=trybot
TEST=test_that :lab: -b reks -i reks-release/R63-9927.0.0 -p suites dummy_Pass -w cautotest
TEST=Run test_that against old moblab (verify bug fix)

Change-Id: I18ee13e8b561b0595358aba4f5cb3e8cb148c140
Reviewed-on: https://chromium-review.googlesource.com/661218
Commit-Ready: Allen Li <ayatane@chromium.org>
Tested-by: Allen Li <ayatane@chromium.org>
Reviewed-by: Prathmesh Prabhu <pprabhu@chromium.org>
Reviewed-by: Laurence Goodby <lgoodby@chromium.org>
/external/autotest/site_utils/test_that.py
3c0d6cba982b138e228c8f912028cbbc2db7b20e 22-Aug-2017 Allen Li <ayatane@chromium.org> [autotest] Clean up new suite_args API

This is a scrub of the repo, making sure the API is correct at all
interfaces and backward compatibility is maintained at the control
file interface.

In detail, the changes are:

AFE create_suite_job RPC made less defensive. An invalid argument
will cause the RPC call to error instead of replacing suite_args with
an empty dict, which probably would not have produced the desired
behavior anyway, so erroring out is better.

Inject suite_args into the control file. This allows new Autotest to
run old tests.

Make the relevant new tests support being run by old Autotest.

The referenced bug contains a diagram listing all of the interface
points between the new and old API and the compatibility between them.

BUG=chromium:758427
TEST=site_utils/test_that.py -b reks -i reks-release/R60-9592.71.0 -w localhost :lab: dummy_Pass
TEST=site_utils/run_suite.py -b reks -i reks-release/R60-9592.71.0 -p suites -s dummy

Change-Id: I352491b4ad72818ce288144a0380e441a3f65b40
Reviewed-on: https://chromium-review.googlesource.com/631236
Commit-Ready: Allen Li <ayatane@chromium.org>
Tested-by: Allen Li <ayatane@chromium.org>
Reviewed-by: Allen Li <ayatane@chromium.org>
/external/autotest/site_utils/test_that.py
429fd801a01a1f0b9fc8be09cf293b95d314088b 08-Aug-2017 Allen Li <ayatane@chromium.org> [autotest] Make test_that pass suite_args as a dict

BUG=chromium:753072
TEST=Trybot
TEST=Run test_that

Change-Id: I296a20bd7bc56567254fae7663ddc74178f5caf9
Reviewed-on: https://chromium-review.googlesource.com/604737
Commit-Ready: Allen Li <ayatane@chromium.org>
Tested-by: Allen Li <ayatane@chromium.org>
Reviewed-by: Prathmesh Prabhu <pprabhu@chromium.org>
/external/autotest/site_utils/test_that.py
68ee1c54e49751ba4d8278586e121ceee97ef134 05-Jul-2017 Prathmesh Prabhu <pprabhu@chromium.org> test_that: Fix argument validation.

A test_droid CL broke argument validation so that test_that started
accepting :lab: runs without a --build argument. This would lead to
cryptic error later from the run_suite RPC.

FixIt, and add unittests to protect this argument validation.

BUG=None
TEST=(new) unittest fails before the change, pass afterwards.

Change-Id: Iffcd8005c62665ea9c0a2f1c45d43b8564c67abf
Reviewed-on: https://chromium-review.googlesource.com/559950
Commit-Ready: Prathmesh Prabhu <pprabhu@chromium.org>
Tested-by: Prathmesh Prabhu <pprabhu@chromium.org>
Reviewed-by: Xixuan Wu <xixuan@chromium.org>
/external/autotest/site_utils/test_that.py
910c6042cd2c93e7cfa8e253f96092792600b5be 25-Oct-2016 Allen Li <ayatane@chromium.org> [autotest] Fix argparse handling of arguments starting with dashes

BUG=chromium:658013
TEST=Run test_that against lab

Change-Id: I98c8682ac6d46e7a3bc0c2aa85e5024915989aef
Reviewed-on: https://chromium-review.googlesource.com/402710
Commit-Ready: Allen Li <ayatane@chromium.org>
Tested-by: Allen Li <ayatane@chromium.org>
Reviewed-by: Richard Barnette <jrbarnette@google.com>
/external/autotest/site_utils/test_that.py
47b68eeb258a34a9c3f7138dfe4f737f81431b1d 06-Jun-2016 Kevin Cheng <kevcheng@chromium.org> [autotest] test_that error message correction.

Error message pointed out typo in flag to use:
'--autotest-dir' instead of '--autoest_dir'

BUG=None
TEST=Check that it prints correct message now

Change-Id: I55915c5075654ff4514a29e6c2304c7c2caab6ed
Reviewed-on: https://chromium-review.googlesource.com/350030
Commit-Ready: Kevin Cheng <kevcheng@chromium.org>
Tested-by: Kevin Cheng <kevcheng@chromium.org>
Reviewed-by: Dan Shi <dshi@google.com>
/external/autotest/site_utils/test_that.py
57740ca3b8ceb4bf4ff682e7fe8f208d4f7357d9 19-Feb-2016 Simran Basi <sbasi@google.com> [autotest] fix test_{droid,that} --pretend.

BUG=b:27043786,chromium:586833
TEST=test_that and test_droid runs.

Change-Id: I0de93498e3d05db8bd30753d166bf7b7e7e3f486
Reviewed-on: https://chromium-review.googlesource.com/328713
Commit-Ready: Simran Basi <sbasi@chromium.org>
Tested-by: Simran Basi <sbasi@chromium.org>
Reviewed-by: Dan Shi <dshi@chromium.org>
Reviewed-by: Kevin Cheng <kevcheng@chromium.org>
/external/autotest/site_utils/test_that.py
60dfcefd5a8d726118d95297d1250909e834435b 13-Feb-2016 Laurence Goodby <lgoodby@google.com> [autotest] add max_runtime_mins option to test_that.

BUG=b:27174274
TEST=ran tests in Talyn lab.

Change-Id: I8eef3e53f339f1346e249f104933fb63740caa32
Reviewed-on: https://chromium-review.googlesource.com/326928
Commit-Ready: Laurence Goodby <lgoodby@chromium.org>
Tested-by: Laurence Goodby <lgoodby@chromium.org>
Reviewed-by: Simran Basi <sbasi@chromium.org>
/external/autotest/site_utils/test_that.py
f067d9c7e8dc08426a16edc89d2d33f17646a50f 22-Dec-2015 Simran Basi <sbasi@google.com> test_droid: Basic remote support.

Allows test_droid to run tests against Android devices connected
to a remote host. This is useful if the test station is in the
lab and unaccesible.

BUG=b:26186193
TEST=test_droid.py ZX1G22JHXN android_DummyTest --debug \
--remote android1758-wifi-test-station-2.cros

Change-Id: I7f98440540fcf2e81e8715b81591c1d64ac60f7a
Reviewed-on: https://chromium-review.googlesource.com/319811
Commit-Ready: Simran Basi <sbasi@chromium.org>
Tested-by: Simran Basi <sbasi@chromium.org>
Reviewed-by: Dan Shi <dshi@chromium.org>
/external/autotest/site_utils/test_that.py
14622bb8249c2200e5258ea6d40b3362229e90a7 25-Nov-2015 Simran Basi <sbasi@google.com> [autotest] test_droid V1.

This CL introduces test_droid, a script to launch autotest
tests against local Android DUTs connected to the host
computer via USB.

Much of the logic is similar to test_that, so this has all
been pulled into a new script test_utils.py

Pending work:

* Moving of generate_test_report to somewhere it is accesible
outside of the chroot.
* Add in support for remote adb hosts (i.e. the DUT is
connected to a remote computer).
* Sequences support.

BUG=b:25748759
TEST=./test_droid.py 7d52318 brillo_WhitelistedGtests
CQ-DEPEND=CL:315230

Change-Id: Idab3805f7921173fbc706354b322f37244240fa2
Reviewed-on: https://chromium-review.googlesource.com/314870
Commit-Ready: Simran Basi <sbasi@chromium.org>
Tested-by: Simran Basi <sbasi@chromium.org>
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
/external/autotest/site_utils/test_that.py
54ec4f3c0ae231c6177174603b448919dd1fa420 10-Dec-2015 Fang Deng <fdeng@chromium.org> [autotest] test_that checks autoserv return code.

If autoserv dies for unexpected reasons, test_that
will exit with code 1.

TEST=test_that dummy_Pass HOST_IP
test_that dummy_Fail HOST_IP
force abstract_ssh to raise an exception so that autoserv
will fail at crashinfo collection step. Check exit code is 1.
BUG=chromium:555073

Change-Id: I85eae412cb07d13f2f1eda49460faacf11bf393f
Reviewed-on: https://chromium-review.googlesource.com/317593
Commit-Ready: Fang Deng <fdeng@chromium.org>
Tested-by: Fang Deng <fdeng@chromium.org>
Reviewed-by: Fang Deng <fdeng@chromium.org>
/external/autotest/site_utils/test_that.py
7c55662fad7b6fa0d837e2a5dfff115af8b232be 07-Dec-2015 J. Richard Barnette <jrbarnette@chromium.org> [autotest] Validate --board and --build with test_that :lab:.

A board and build are both required with `test_that :lab:`.
This adds a check to enforce that with a useful error message.

BUG=chromium:418379
TEST=run test_that using all combinations of --board and --build

Change-Id: I9f39fd751482db836c186d5a2024521d73c8e9a7
Reviewed-on: https://chromium-review.googlesource.com/316513
Commit-Ready: Richard Barnette <jrbarnette@chromium.org>
Tested-by: Richard Barnette <jrbarnette@chromium.org>
Reviewed-by: Fang Deng <fdeng@chromium.org>
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
/external/autotest/site_utils/test_that.py
61078ebc0efc39d5ff57dd1513460ea0947f21b8 18-Nov-2015 Aviv Keshet <akeshet@chromium.org> test_that: remove obsolete help text

There is no :vm: mode to test that (and I believe there never was
implemented). Runs against a local vm are just specified by using the
local host and port for REMOTE.

BUG=None
TEST=None

Change-Id: Ibf0e2f5c102deb76d22f6b8dbf8e434199d32aea
Reviewed-on: https://chromium-review.googlesource.com/312988
Commit-Ready: Aviv Keshet <akeshet@chromium.org>
Tested-by: Aviv Keshet <akeshet@chromium.org>
Reviewed-by: Dan Shi <dshi@chromium.org>
/external/autotest/site_utils/test_that.py
cbb5ba051619fc10b0607abc369c11592202a0a9 11-Aug-2015 Laurence Goodby <lgoodby@google.com> Fix for test_that_wrapper call to test_that.parse_arguments.

test_that_wrapper expects one return argument from parse_arguments.

BUG=chromium:446321
TEST=Ran unittest, tested with moblab.

Change-Id: I82bde8832e3f7213405b3f98efd703be0d153587
Reviewed-on: https://chromium-review.googlesource.com/292810
Reviewed-by: Simran Basi <sbasi@chromium.org>
Tested-by: Laurence Goodby <lgoodby@chromium.org>
Commit-Queue: Laurence Goodby <lgoodby@chromium.org>
/external/autotest/site_utils/test_that.py
079312e32942bdf5d72721d0bcfd81bb87f927b0 05-Aug-2015 Laurence Goodby <lgoodby@google.com> test_that: adds a --web option.

Similar to run_suite's --web option, this option is used for remote :lab:
runs to direct the test to a specific server (for example, a moblab). The
--web option is not passed to remote test_that invocations.

BUG=chromium:446321
TEST='--web' is used for run_suite but is not passed to remote test_that.

Change-Id: I80081d751709b2f3d82fa8248139b43778962342
Reviewed-on: https://chromium-review.googlesource.com/290811
Trybot-Ready: Laurence Goodby <lgoodby@chromium.org>
Reviewed-by: Simran Basi <sbasi@chromium.org>
Commit-Queue: Laurence Goodby <lgoodby@chromium.org>
Tested-by: Laurence Goodby <lgoodby@chromium.org>
/external/autotest/site_utils/test_that.py
48e51174a21255fef9904d642f5c01d1457a9b0d 24-Jun-2015 Daniel Wang <wonderfly@google.com> Take private key from a cmdline flag

BUG=brillo:1200
TEST=unit tests

Change-Id: Ic0f153c1905bacaac199d5ba6bfbd9c04a8cce6e
Reviewed-on: https://chromium-review.googlesource.com/286914
Commit-Queue: Daniel Wang <wonderfly@google.com>
Trybot-Ready: Daniel Wang <wonderfly@google.com>
Tested-by: Daniel Wang <wonderfly@google.com>
Reviewed-by: Prathmesh Prabhu <pprabhu@chromium.org>
/external/autotest/site_utils/test_that.py
36cfd831af781eed114337efa5b90c103a49b502 10-Oct-2014 Dan Shi <dshi@chromium.org> [autotest] Support updating both firmware and CrOS from run_suite

Add firmware_build option for run_suite to pass in firmware build.
Save the build containing server-side test to job_keyvals.

Design doc:
https://docs.google.com/a/google.com/document/d/115aAHyZaatFDzuKWm61Sj2fImH4NDWikXqifvWKbbW0/edit#

BUG=chromium:270258
TEST=local run_suite:
make sure it works with older build:
./run_suite.py -b veyron_jerry -i trybot-veyron_jerry-paladin/R45-7086.0.0-b8 -p suites -s dummy_server

Call failed as --firmware_ro_build not supported yet.
./run_suite.py -b veyron_jerry -i trybot-veyron_jerry-paladin/R45-7122.0.0-b11 --firmware_build veyron_jerry-firmware/R41-6588.9.0 --test_source_build trybot-veyron_jerry-paladin/R45-7122.0.0-b11 --firmware_ro_build veyron_jerry-firmware/R41-6588.9.0 -p suites -s dummy_server

Call failed as the firmware build does not have test_suites package built:
./run_suite.py -b veyron_jerry -i trybot-veyron_jerry-paladin/R45-7122.0.0-b11 --firmware_build veyron_jerry-firmware/R41-6588.9.0 --test_source_build veyron_jerry-firmware/R41-6588.9.0 -p suites -s dummy_server

make sure it works with new build:
./run_suite.py -b veyron_jerry -i trybot-veyron_jerry-paladin/R45-7122.0.0-b11 --firmware_build veyron_jerry-firmware/R41-6588.9.0 --test_source_build trybot-veyron_jerry-paladin/R45-7122.0.0-b11 -p suites -s dummy_server

DEPLOY=apache,scheduler

Change-Id: I50d23a7e81e4d6224b3483111110f910eb407074
Reviewed-on: https://chromium-review.googlesource.com/272793
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>
/external/autotest/site_utils/test_that.py
a6b2ce9a320ac947873805c413a757e2d377e46f 28-May-2015 Dan Shi <dshi@chromium.org> [autotest] Fix provision job in test_that

--provision arg in autoserv was changed, which breaks test_that's
run_provisioning_job. This CL updates the method with correct autoserv command
line args: ['--provision', '--job-labels', build]

BUG=chromium:492817
TEST=test_that --build veyron_jerry-release/R44-7058.0.0
172.27.215.232 dummy_Pass

Change-Id: I6f67a854e897234396d2087a2b6417fbd6cbcbed
Reviewed-on: https://chromium-review.googlesource.com/273863
Tested-by: Dan Shi <dshi@chromium.org>
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
Commit-Queue: Dan Shi <dshi@chromium.org>
/external/autotest/site_utils/test_that.py
8bd6d482f849d9e015f0a74c588e5135e3119dcb 22-Apr-2015 Simran Basi <sbasi@google.com> [test_that] Remove --force arg when calling autotest_quickmerge

autotest_quickmerge's --force arg will soon be deleted so remove
the call from test_that.

BUG=brillo:908
TEST=test_that still works.
CQ-DEPEND=CL:266755

Change-Id: I7851dcbc14b3a6e1b1b9bfd766b7efdb02bf3851
Reviewed-on: https://chromium-review.googlesource.com/266763
Reviewed-by: Dan Shi <dshi@chromium.org>
Tested-by: Simran Basi <sbasi@chromium.org>
Commit-Queue: Simran Basi <sbasi@chromium.org>
/external/autotest/site_utils/test_that.py
2252db34500a41ecbc8db0972ad91adce3030ab6 08-Apr-2015 Aviv Keshet <akeshet@chromium.org> [autotest] remove unneeded legacy support from test_that

This CL removes code that allows test_that to work with builds that
pre-date the relocation of the build-time autotest tree in the sysroot.
Given that that change is over a year old, it's unlikely that anyone
still needs this support.

BUG=chromium:256906
TEST=Unit tests

Change-Id: I6f4854c3dc4bff7a242a0b34bfc661376e209023
Reviewed-on: https://chromium-review.googlesource.com/264750
Tested-by: Aviv Keshet <akeshet@chromium.org>
Reviewed-by: Simran Basi <sbasi@chromium.org>
Commit-Queue: Aviv Keshet <akeshet@chromium.org>
/external/autotest/site_utils/test_that.py
1767613dbf75dc28299b9420cbffe0b2589a7783 08-Apr-2015 Mussa <mussa@chromium.org> Always perform quickmerge step when running test_that.

This scenario has come up multiple times. You are modifying your test
on your local machine but when you run test_that the code you added
isn't getting run. Test_that is running some other previous version
of your code.

You could chase down packages on the DUT or on your local box and look
for sentinel files or checksum files and delete them to trick test_that
to pickup your changes. Or, you can use a flag (--force) that
autotest_quickmerge.py' already supports.

Pass --force flag to autotest_quickmerge.py by default.

BUG=None.
TEST=I ran a local test. Will run test_that unit tests when I find out how to.

Change-Id: I0f8f6f3c6763defe45cb31ef64e815fbd75bc0ae
Reviewed-on: https://chromium-review.googlesource.com/264497
Tested-by: Mussa Kiroga <mussa@chromium.org>
Reviewed-by: Katherine Threlkeld <kathrelkeld@chromium.org>
Commit-Queue: Mussa Kiroga <mussa@chromium.org>
/external/autotest/site_utils/test_that.py
b669cbdea7f4bfc9cbfcea48d9cf9ce62f0deff5 13-Sep-2013 Dan Shi <dshi@chromium.org> [autotest] Disable install autotest from job_repo_url for test_that

use_packing option for autotest._install method is True by default. When using
test_that to run test, DUT will try to install autotest package from
job_repo_url with server configured in global_config (cautotest). For DUT not
located in lab, there is no job_repo_url existed for such DUT in cautotest, and
therefore autotest will try to copy over the local files. However, when a user
try to use a DUT in the lab to run test_that, autotest package is downloaded
and installed from job_repo_url. That leads to a problem that developers can't
use test_that to verify autotest code.

The fix is to add a new option no_use_packaging to autoserv, and thread the
option to autotest._install. The option is set to False by default, and set
to True in test_that. Also, when this argument is set to True, any package
installation will use AutoservFetcher.

BUG=chromium:265673
TEST=run following command and confirm local autotest code is copied over to
the DUT: test_that -b lumpy 172.22.75.225 dummy_Pass

Change-Id: I365f5f7dc79c8e65cddaa0af77f1f1a1e4b0012a
Reviewed-on: https://chromium-review.googlesource.com/169343
Reviewed-by: Mungyung Ryu <mkryu@google.com>
Commit-Queue: Mungyung Ryu <mkryu@google.com>
Tested-by: Mungyung Ryu <mkryu@google.com>
/external/autotest/site_utils/test_that.py
789f87c87dcacee0584033b21cbf920210b8d336 24-Mar-2015 J. Richard Barnette <jrbarnette@chromium.org> Remove references to the try-bot and pfq pools.

The try-bot pool is poorly loved, and generally a nuisance. Remove
references to the pool. Shift test_that to use the suites pool by
default.

This also deletes a stray, dead reference to the pfq pool, as that
pool has been unused for some time.

BUG=chromium:469926
TEST=None

Change-Id: Iaa449c5d5efab5ee98c63e44d38f1a51dfed5d9a
Reviewed-on: https://chromium-review.googlesource.com/262061
Tested-by: Richard Barnette <jrbarnette@chromium.org>
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
Commit-Queue: Richard Barnette <jrbarnette@chromium.org>
/external/autotest/site_utils/test_that.py
b723b1b17967f7f12f782b1d2d1b48854194d218 04-Feb-2015 Simran Basi <sbasi@google.com> test_that: Be able to specify pool.

BUG=chromium:446321
TEST='--pool' is passed to test_that_wrapper

Change-Id: I591ca76419aa6cf796dfa986816f542ba5000963
Reviewed-on: https://chromium-review.googlesource.com/246185
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
Tested-by: Simran Basi <sbasi@chromium.org>
Commit-Queue: Simran Basi <sbasi@chromium.org>
/external/autotest/site_utils/test_that.py
f5f2ba2abff1d5831ac8ead266a7a99c69681984 03-Feb-2015 Christopher Wiley <wiley@chromium.org> test_that: Enhance help text

Make it clear that you don't get local changes when you run in the lab.

BUG=None
TEST=None

Change-Id: Ic4aa0660fc5d913d668985307b6b8e7e058f09cc
Reviewed-on: https://chromium-review.googlesource.com/245590
Tested-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
/external/autotest/site_utils/test_that.py
5783f8a94ce208df0cf46547e8b50b7f74a9638e 22-Dec-2014 Dan Shi <dshi@chromium.org> [autotest] Provide suggestions when test_that failed to locate any test.

Make it easier for user to locate the exact test to run. When test_that failed
to locate any test matching the test argument, provide a list of suggestions.
For example:

test_that -b peppy --fast 172.27.213.193 e:dummy_Pass_123

leads to following exception message:

ValueError: Found no tests. Check your suite name, test name, or test matching wildcard.
Did you mean any of following tests?
dummy_Pass
dummy_PassServer
dummy_Pass.wifichaos
dummy_Pass.actionable
dummy_Pass.experimental
dummy_Fail
dummy_Pass.bluetooth
dummy_RepeatArgs
dummy_FailServer
dummy_FailServer_Flaky

BUG=chromium:441455
TEST=local test runs with test_that:
test_that -b peppy --fast 172.27.213.193 e:dummy_Pass_123
test_that -b peppy --fast 172.27.213.193 f:dummy
test_that -b peppy --fast 172.27.213.193 suite:bvt_123

Change-Id: I22a8b566580e492c68b8729afc22d6950a2166a3
Reviewed-on: https://chromium-review.googlesource.com/237300
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>
/external/autotest/site_utils/test_that.py
8a89e9b22f6edcd987020a9aefa74eb21571606f 08-Oct-2014 Fang Deng <fdeng@chromium.org> [autotest] Use realpath for sysroot in test_that

Use realpath for sysroot when checking whether
it is already inside sysroot.

TEST=run test_tat
BUG=chromium:416905

Change-Id: Id08ab0cba78ee1493e1b79e1433974327e2b7a0b
Reviewed-on: https://chromium-review.googlesource.com/222102
Tested-by: Fang Deng <fdeng@chromium.org>
Reviewed-by: Dan Shi <dshi@chromium.org>
Commit-Queue: Fang Deng <fdeng@chromium.org>
/external/autotest/site_utils/test_that.py
f6e4024f58da69d578dede9b1d3f4456fc2a28df 03-Oct-2014 Aviv Keshet <akeshet@chromium.org> autotest: improve test_that.py error message when no tests found

BUG=chromium:419931
TEST=None

Change-Id: Ic3b71c7a23183fc89436a757064dfb7852a9c34f
Reviewed-on: https://chromium-review.googlesource.com/221315
Tested-by: Aviv Keshet <akeshet@chromium.org>
Reviewed-by: Fang Deng <fdeng@chromium.org>
Reviewed-by: Olof Johansson <olofj@chromium.org>
Commit-Queue: Aviv Keshet <akeshet@chromium.org>
/external/autotest/site_utils/test_that.py
8e555337e8ee40ac235f4d860f69497a9967e0e5 27-Jun-2014 Josh Triplett <josh@joshtriplett.org> test_that: Point to latest results directory

When done, print the path to the "latest" symlink, not just to the
directory itself. Move the message to after the creation of that
symlink.

BUG=None
TEST=test_that $machine dummy_Pass

Change-Id: I086641962ea7e91aedea93f1dbe31753bdc2991f
Reviewed-on: https://chromium-review.googlesource.com/205964
Tested-by: Josh Triplett <josh@joshtriplett.org>
Reviewed-by: Ilja Friedel <ihf@chromium.org>
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
Commit-Queue: Josh Triplett <josh@joshtriplett.org>
/external/autotest/site_utils/test_that.py
6303341b1b7c1447344712903be1f3f2517ceb82 27-Jun-2014 Josh Triplett <josh@joshtriplett.org> test_that: Use a relative symlink for test_that_latest for chroot-friendliness

Linking to the absolute path of the latest test results only works from
within the chroot; making the symlink relative makes it easy to access
from outside the chroot as chroot/tmp/test_that_latest/ .

BUG=None
TEST=test_that $machine dummy_Pass

Change-Id: I26c4c276028d5b7424126d3f4aa800e071fe0f35
Reviewed-on: https://chromium-review.googlesource.com/205963
Tested-by: Josh Triplett <josh@joshtriplett.org>
Reviewed-by: Ilja Friedel <ihf@chromium.org>
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
Commit-Queue: Josh Triplett <josh@joshtriplett.org>
/external/autotest/site_utils/test_that.py
89dc43dd18fe29c73c901f670dc8eeceda144a69 29-May-2014 Jorge Lucangeli Obes <jorgelo@chromium.org> Fix typo in 'test_that' error message.

BUG=None
TEST=None

Change-Id: I3b40e2a5b7382d6ec503d0fb3ad8a57ef1fb01ec
Reviewed-on: https://chromium-review.googlesource.com/202160
Commit-Queue: Jorge Lucangeli Obes <jorgelo@chromium.org>
Tested-by: Jorge Lucangeli Obes <jorgelo@chromium.org>
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
/external/autotest/site_utils/test_that.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>
/external/autotest/site_utils/test_that.py
f81917c3692293e7b72a4fa467813cd1a43f3126 18-Apr-2014 Jorge Lucangeli Obes <jorgelo@chromium.org> test_that: fix typo in usage string.

BUG=None
TEST=test_that --help shows no typo.

Change-Id: I78c1b3619095842c38a4abeb39c4acb95850dbed
Reviewed-on: https://chromium-review.googlesource.com/195500
Commit-Queue: Jorge Lucangeli Obes <jorgelo@chromium.org>
Tested-by: Jorge Lucangeli Obes <jorgelo@chromium.org>
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
/external/autotest/site_utils/test_that.py
20b20c73d91bf3411da5b5fa69b8cee592e8088f 02-Apr-2014 Aviv Keshet <akeshet@chromium.org> [autotest] make test_that reuse a created suite when scheduling iterations

This CL pulls turns test_that's schedule_local_suite into
fetch_local_suite and moves the scheduling call into perform_local_run.
When scheduling multiple iterations of a test or suite, this allows the
created suite object to be re-used, which saves a lot of duplicate
searches through all the control files in the tree when scheduling
duplicate iterations.

NOTE: This does not really fix the linked-to bug (test_that fails when
more than 999 tests are schedule). However, it does make it less
painful, and I don't feel like filing a new bug, so I'm linking to that
one.

TEST=Unit tests pass
`git grep schedule_local_suite` -> no results
`test_that --board=lumpy --iterations=1000 localhost dummy_Pass` -> 1000
jobs are scheduled in under a minute, rather than the snails pace
before.
BUG=chromium:356879

Change-Id: I50e3c70a95c829a2d97333bee4472f25c298da66
Reviewed-on: https://chromium-review.googlesource.com/193095
Tested-by: Aviv Keshet <akeshet@chromium.org>
Reviewed-by: Fang Deng <fdeng@chromium.org>
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Commit-Queue: Aviv Keshet <akeshet@chromium.org>
/external/autotest/site_utils/test_that.py
5c50833d70f220440303fc1c1eea36fb7798dfc6 19-Mar-2014 Fang Deng <fdeng@chromium.org> [autotest] dynamic suite emits sub-job's dir as subdir to status.log

It is enforced by client/common_lib/base_job.py that, within a single
job, mutiple tests with the same name can not run in the same sub-directory.
That is to say, (test_name, subdir) should be unique within the scope of
a job. Tko parser hold this assumption and it get confused
if this is not the case.

This cl makes dynamic suite emit a subdir to status.log for each
test status. The subdir is composed of job_tag and subdir retrieved
from tko_test_view_2. This makes sure of two things:

a) if a job has been retried, we will not end up with having two
statuses that look exactly the same.

For example, in the case a retry has been run,
without changes in this cl the status log looks like

START ---- dummy_Fail.Fail timestamp=..
...
START ---- dummy_Fail.Fail timestamp=..
...

With changes in this cl, it will look like
START 116-fdeng/172.2.3.4/dummy_Fail.Fail dummy_Fail.Fail timestamp=..
...
START 117-fdeng/172.5.6.7/dummy_Fail.Fail dummy_Fail.Fail timestamp=..
...

b) This also makes sure that if someone runs a test twice with
different subdir_tag, (test_name, subdir) is still unique
within the scope of the suite job.

For example, one could do in control file
job.run_test('dummy_Fail', tag='Fail', subdir_tag='subdir_1')
job.run_test('dummy_Fail', tag='Fail', subdir_tag='subdir_2')

With changes in this cl, the status log looks like

START 116-fdeng/172.2.3.4/dummy_Fail.Fail.subdir_1 dummy_Fail.Fail timestamp=..
...
START 116-fdeng/172.2.3.4/dummy_Fail.Fail.subdir_2 dummy_Fail.Fail timestamp=..
...

TEST=unittest; dummy suite runs ok with both run_suite and test_that;
Works fine with test retry changes:
- Cherry-pick test retry changes crosreview.com/188365 and
crosreview.com/190585.
- Added JOB_RETRIES = 2 to dummy_Fail/control. Created a trybot image.
- Ran dummy suite and observed that dummy_Fail was retried
twice without errors.
BUG=chromium:354654
DEPLOY=apache

Change-Id: Ib939a8d95b3a4db06d408257b1be8608cce5fed2
Reviewed-on: https://chromium-review.googlesource.com/191002
Reviewed-by: Fang Deng <fdeng@chromium.org>
Tested-by: Fang Deng <fdeng@chromium.org>
Commit-Queue: Fang Deng <fdeng@chromium.org>
/external/autotest/site_utils/test_that.py
2ce92d5a16b7842d2312258289747ebb3f7937ac 14-Mar-2014 Christopher Wiley <wiley@chromium.org> Add a --iterations flag to test_that

This is useful when we want to run a test N times to gauge how
flaky a test is.

TEST=Run test_that with --iterations=2.
BUG=chromium:352719

Change-Id: Id787d9599f5ef222bafbea0ff6945ea9d0cef8f9
Reviewed-on: https://chromium-review.googlesource.com/190062
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
Tested-by: Christopher Wiley <wiley@chromium.org>
/external/autotest/site_utils/test_that.py
ad7309b61b322548ed3a5edd18fec8e42f47ff5b 12-Feb-2014 Jorge Lucangeli Obes <jorgelo@chromium.org> test_that: fix spacing in help message.

BUG=None
TEST=test_that -h

Change-Id: Iaa629765ccf5ca66b8dbc1b0363b6018d4f3eea8
Reviewed-on: https://chromium-review.googlesource.com/186112
Commit-Queue: Jorge Lucangeli Obes <jorgelo@chromium.org>
Tested-by: Jorge Lucangeli Obes <jorgelo@chromium.org>
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
/external/autotest/site_utils/test_that.py
f860bd1617b5c200a0378cc379d83585c5ecff63 24-Jan-2014 beeps <beeps@chromium.org> [Autotest] Download sonic extension in the server test.

Though the canonical way to handle extensions is to install them
as a dep, our builders seem to have trouble contacting the omaha
server to get the extension. Since our drones don't have the same
problem, download the extension in the server test instead.

TEST=Ran the test.
BUG=chromium:321179, chromium:321177:

Change-Id: I4bcea636eb3a469e415af28630005a86196b7800
Reviewed-on: https://chromium-review.googlesource.com/183743
Tested-by: Prashanth B <beeps@chromium.org>
Reviewed-by: Dan Shi <dshi@chromium.org>
Commit-Queue: Prashanth B <beeps@chromium.org>
/external/autotest/site_utils/test_that.py
2113774da25f7e6b74e4e8c801e72d581d770ed8 10-Jan-2014 Aviv Keshet <akeshet@chromium.org> [autotest] add an image name format example to test_that

BUG=None
TEST=None

Change-Id: I7c13ea174f84a207775f9713518824193163da11
Reviewed-on: https://chromium-review.googlesource.com/182213
Tested-by: Aviv Keshet <akeshet@chromium.org>
Reviewed-by: Fang Deng <fdeng@chromium.org>
Commit-Queue: Aviv Keshet <akeshet@chromium.org>
/external/autotest/site_utils/test_that.py
3f6c99a531bdc4481499157f554c666af52377ba 31-Oct-2013 Aviv Keshet <akeshet@chromium.org> [autotest] make test_that use legacy_path less aggressively

The current logic is incorrectly using legacy_path in certain cases
where the new autotest path is already available. This fixes that.

Instead of running in legacy path mode if the existence of
/build/[board]/usr/local/autotest/site_utils is detected, we will now
run in legacy mode if:
1) /build/[board]/usr/local/autotest exists
and
2) /build/[board]/usr/local/build/autotest does not exist.

BUG=None
TEST=unit tests pass, local test_that run passes.

Change-Id: I142c41b57f802675733b993a8f734930e3b2ef3c
Reviewed-on: https://chromium-review.googlesource.com/175320
Tested-by: Aviv Keshet <akeshet@chromium.org>
Commit-Queue: Aviv Keshet <akeshet@chromium.org>
Reviewed-by: Fang Deng <fdeng@chromium.org>
/external/autotest/site_utils/test_that.py
f0229428c6412d5bdebb46c962cc52d21bd8c3ae 24-Oct-2013 Aviv Keshet <akeshet@chromium.org> [autotest] fail test_that if autotest_quickmerge fails

BUG=chromium:310849
TEST=Verified that test_that dies if autoserv fails.

Change-Id: I24e628e5d6c3ce374627183b0dd2e35508f5fe83
Reviewed-on: https://chromium-review.googlesource.com/174451
Tested-by: Aviv Keshet <akeshet@chromium.org>
Reviewed-by: Fang Deng <fdeng@chromium.org>
Commit-Queue: Aviv Keshet <akeshet@chromium.org>
/external/autotest/site_utils/test_that.py
1a6ce6e485e44536f705dfc9a0bd66c3b0b294eb 22-Oct-2013 Aviv Keshet <akeshet@chromium.org> [autotest] Check that test_that.py exists before bootstrapping to it

BUG=chromium:310173
TEST=Unit tests pass. Intentionally ran test_that with a non-existant
autotest-dir, saw informative exception raised.

Change-Id: Ie2a18e032fd3e42dfc7098b55412a4de50f762ae
Reviewed-on: https://chromium-review.googlesource.com/173763
Tested-by: Aviv Keshet <akeshet@chromium.org>
Reviewed-by: Fang Deng <fdeng@chromium.org>
Commit-Queue: Aviv Keshet <akeshet@chromium.org>
/external/autotest/site_utils/test_that.py
6c0283984ec221edae7f446109bd7764f72e89dd 22-Jul-2013 Aviv Keshet <akeshet@chromium.org> [autotest] updates to autotest repo to reflect usr/local/build/autotest

CQ-DEPEND=CL:I836d933e8a828177304dd10a74841138a9502aff
BUG=chromium:256906
TEST=See CQ-DEPEND'ed CL. Also, tested that test_that works against both
pre- and post- CL:I836d933e8a828177304dd10a74841138a9502aff builds.

Change-Id: I501c61c0a9c0198f3e15256c7e0cf03452b0ca93
Reviewed-on: https://chromium-review.googlesource.com/62879
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
Tested-by: Aviv Keshet <akeshet@chromium.org>
Commit-Queue: Aviv Keshet <akeshet@chromium.org>
/external/autotest/site_utils/test_that.py
a6d597a916d2dc8ae8e25e45d5839bb093190ece 10-Oct-2013 Fang Deng <fdeng@chromium.org> [autotest] Add --enforce-deps option to test_that

Previously, if run a suite using test_that, dependencies
are enforced by default. However, some labels are not auto-detectable,
such as 'wificell' and thus can never be satisfied.

This cl puts the dependency enforcement logic behind --enforce-deps,
so that users can choose to not enforce dependencies.

TEST=locally run dummy suite with test_that with
and without the option; run unit test.
BUG=chromium:265715

Change-Id: Ibbc31f0b8b7959cb98e78583daee55391583e002
Reviewed-on: https://chromium-review.googlesource.com/172670
Reviewed-by: Fang Deng <fdeng@chromium.org>
Tested-by: Fang Deng <fdeng@chromium.org>
Commit-Queue: Aviv Keshet <akeshet@chromium.org>
/external/autotest/site_utils/test_that.py
9525124a90ad9dd8b6cbdeb269ad2aa78bf73709 10-Oct-2013 Aviv Keshet <akeshet@chromium.org> [autotest] show quickmerge messages at INFO level

The recent breakage of autotest_quickmerge went unnoticed for a full
day, in part becase the quickmerge output is suppressed by default when
running test_that. I think devs would like to see the quickmerge output
by default, so this CL upgrades those messages to the INFO level.

BUG=None
TEST=None

Change-Id: I4882fb7ee9af023c7167547617d80cc087eddc0e
Reviewed-on: https://chromium-review.googlesource.com/172610
Commit-Queue: Aviv Keshet <akeshet@chromium.org>
Tested-by: Aviv Keshet <akeshet@chromium.org>
Reviewed-by: Fang Deng <fdeng@chromium.org>
/external/autotest/site_utils/test_that.py
a222727818d6194b59f0b83fd35e2580d9dcd974 03-Oct-2013 Fang Deng <fdeng@chromium.org> [autotest] Experimental tests do not influence the exit code of test_that

Use --ignore_experimental_tests option when calling generate_test_report
script.

CQ-DEPEND=CL:Idd7b0fafc9ffe081504b4cf8c1e3e771878ee06e
TEST=Confirmed that when only experimental tests failed, test_that
exits with code 0.
BUG=chromium:265989

Change-Id: I30e6a18be6cdda04b2e38c14ddfcb394c5bf6d56
Reviewed-on: https://chromium-review.googlesource.com/171731
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
Tested-by: Fang Deng <fdeng@chromium.org>
Commit-Queue: Fang Deng <fdeng@chromium.org>
/external/autotest/site_utils/test_that.py
2db9676a1fa09fe9eb4d4350712353889a2f0588 04-Oct-2013 Fang Deng <fdeng@chromium.org> [autotest] Dynamic stuie stores `experimental` keyval in job object

server/cros/dynamcis_suite/suite.py:create_job now stores
`experimental` keyval in the job object. test_that retrieves
this keyval via job.keyvals['experimental'] and drops
it in the keyval file under the job result directory.
This keyval will be further used by generate_test_report script.

TEST=Run test_that, confirmed that 'experimental' keval
is correctly written to the keyval file; unit tests passed.
BUG=chromium:265989

Change-Id: Ib2f99c7d1c1125c431970c8ef0b9b5241cbf0bc7
Reviewed-on: https://chromium-review.googlesource.com/170944
Reviewed-by: Fang Deng <fdeng@chromium.org>
Tested-by: Fang Deng <fdeng@chromium.org>
Commit-Queue: Fang Deng <fdeng@chromium.org>
/external/autotest/site_utils/test_that.py
b1da8306a7932cdbb5c4c10e25cac6e83a965a1c 24-Sep-2013 Fang Deng <fdeng@chromium.org> [autotest] test_that respects a test's DEPENDENCIES.

test_that now auto-detects a host's labels and assign appropriate labels
to the DUT in afe. When the suite is scheduled locally, only test
with satisfiable DEPENDIENCIES will be scheduled.

There is no need to check with each job's dependencies.
Because only one DUT is added to the AFE.
If no host(in our case, only one host) can statisfy a
test's dependencies, Suite.schedule() will not create
a job for that test.

BUG=chromium:265715
TEST=Run dummy suite, confirm dummy_BT is not run because it
requests bluetooth; Once manually add 'bluetooth' label to
the dut, dummy_BT is scheduled and run. Run dummy_BT,
confirm it is not run.

Change-Id: Icc653f79b69ea87247082662306b6af64b1b970b
Reviewed-on: https://chromium-review.googlesource.com/171444
Reviewed-by: Fang Deng <fdeng@chromium.org>
Commit-Queue: Fang Deng <fdeng@chromium.org>
Tested-by: Fang Deng <fdeng@chromium.org>
/external/autotest/site_utils/test_that.py
6f74e1962ba83aa9c42b98992183a7327d70772b 23-Sep-2013 Aviv Keshet <akeshet@chromium.org> [autotest] make test_that :lab: runs no longer require sysroot

This CL reorganizes test_that's main(...) a bit so that lab runs no
longer go through the sysroot checking / bootstrapping logic.

BUG=chromium:297037
TEST=unit tests. local runs of test_that still work. Lab runs of test
that work even when there is no sysroot present for that board.

Change-Id: I12e2c97aabac326934259abfb08b9c223f7d4246
Reviewed-on: https://chromium-review.googlesource.com/170303
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
Commit-Queue: Aviv Keshet <akeshet@chromium.org>
Tested-by: Aviv Keshet <akeshet@chromium.org>
/external/autotest/site_utils/test_that.py
89f1e06ce5198d847f1a1aae22a538fde85c7b35 18-Sep-2013 beeps <beeps@chromium.org> [autotest] Test_that raises exception for syntax errors in the control file.

Currently, if we run into a syntax error while parsing a control file through
test_that, we fail the test run with a cryptic ValueError. Since test_that is
mostly used for development purposes, control files often contain syntax errors.
This cl raises a ControlVariableException if we run into a syntax error while
parsing a control file.

This cl also adds a unittest that actually parses all contol files looking
for syntax errors. This is beneficial because unittests run during pre-cq
try-bots and can catch any gramattical transgressions before the cq run.

TEST=Raised exception when control file had syntax error. Did the same when
an unrelated control file had a syntax error. Ran sucessful dummy_suite
to sanity check.
BUG=chromium:282108

Change-Id: I1016a7a9fc318293ac7873e25468fddfefd2908a
Reviewed-on: https://chromium-review.googlesource.com/169883
Tested-by: Prashanth B <beeps@chromium.org>
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
Commit-Queue: Prashanth B <beeps@chromium.org>
/external/autotest/site_utils/test_that.py
00f7a92eeda5a3530e850bc194e19f29bdc0584e 20-Sep-2013 Aviv Keshet <akeshet@chromium.org> [autotest] fix merge conflict in test_that.py

Minor fix -- a referenced variable had its name changed in another CL.

BUG=None
TEST=Ran a test_that run targetting :lab:, and did not see an error due
to undefined variable sysroot_autotest_path

Change-Id: I3e155da343b932506e854e2f5be849d00b511287
Reviewed-on: https://chromium-review.googlesource.com/170190
Tested-by: Aviv Keshet <akeshet@chromium.org>
Reviewed-by: Prashanth B <beeps@chromium.org>
Commit-Queue: Aviv Keshet <akeshet@chromium.org>
/external/autotest/site_utils/test_that.py
7cd12315f095d45c697267df9a37427ed87f9ea3 25-Jul-2013 Aviv Keshet <akeshet@chromium.org> [autotest] add ability for test_that to run jobs in lab

This CL adds the ability for test_that to run jobs in the lab. It
accomplishes this thusly:

1) A new optional |suite_args| argument to afe.create_suite_job, whose
value gets injected into the suite control file in much the same way as
job args are injected into job control files.

2) Plumbing to thread #1 through from run_suite.py.

3) A new suite control file, control.test_that_wrapper, that is
responsible for kicking of test_that-initiated suites. It expects to see
a suite_args string giving the command line that test_that was run with,
and re-uses test_that's argument parser to figure out which tests (and
therefore which suite predicates) are needed.

4) A small refactor to dynamic_suite, so that it uses suite's
create_from_predicates rather than create_from_name.

5) A new optional |predicate| argument to dynamic_suite's
reimage_and_run, which if specified causes dynamic suite to use this
job-matching predicate rather than its default suite-name predicate.

6) Code path in test_that to pass :lab: runs on to run_suite.py.

So, when a developer runs, at their desk:
$ test_that -b board -i image :lab: dummy_Pass
Then test_that will, kick off a test_that_wrapper suite in the lab, using
run_suite, passing along test_that's args into the suite control file so
that it can figure out which tests to run:
$ run_suite -b board -i image -s test_that_wrapper --pool try-bot \
--suite_args="-b board -i image :lab: dummy_Pass"

This CL also fixes a bug in dynamic_suite/tools.py in which strings that
contained quotes were being incorrectly injected into control files in
inject_var.

CQ-DEPEND=CL:I4b1483b977d9032c7adf8117cf32e83c65eed007
BUG=chromium:262984
TEST=Unit tests pass.
Ran some test_that jobs against my local autotest instance, using
a trybot image that was build with this CL (so that
control.test_that_wrapper would be available).
$ test_that -b lumpy -i ${image} :lab: dummy_Pass
$ test_that -b lumpy -i ${image} :lab: e:login_.*
$ test_that -b lumpy -i ${image} :lab: suite:smoke dummy_Fail
DEPLOY=apache

Change-Id: Ifa73d7de7aac9c6efebd5f559708623804ad3691
Reviewed-on: https://chromium-review.googlesource.com/63378
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
Tested-by: Aviv Keshet <akeshet@chromium.org>
Commit-Queue: Aviv Keshet <akeshet@chromium.org>
/external/autotest/site_utils/test_that.py
9a84123a76582c977047031c1d69c2772d94985f 18-Sep-2013 Fang Deng <fdeng@chromium.org> [autotest] test_that handles -i/--build option.

Provision the DUT to the requested build specified by -i/--build.
If provisioning fails, it will not run the tests.

TEST=1) Run with -i option, confirm that the DUT is successfully
provisioned.
2) Run without -i/--board option, confirm that the script still works.
3) Pass in an invalid value for -i, confirm that the script fails
without continuing to run the tests.
4) Confirm that sigint is still handled properly.
5) test_that_unittest passes
BUG=chromium:265713

Change-Id: I0a002a55127b3af4c6949934ce67f54c454e0a94
Reviewed-on: https://chromium-review.googlesource.com/169833
Reviewed-by: Fang Deng <fdeng@chromium.org>
Commit-Queue: Fang Deng <fdeng@chromium.org>
Tested-by: Fang Deng <fdeng@chromium.org>
/external/autotest/site_utils/test_that.py
4efdf03d1057f9d38e043b7c2affe842109805d2 17-Sep-2013 beeps <beeps@chromium.org> [autotest] Modify test_that to figure out the board of the remote host.

Test_that currently relies on the user for the --board argument. This cl
teaches test_that to ssh into a DUT and find the board, if one isn't
specified.

TEST=Invoked test_that dummy_Pass with and without a board, with and without a
resutls dir, on DUTs with different boards.
BUG=chromium:265705
CQ-DEPEND=CL:I50811eb8b0e6b145a190211391c2409913bc8a33

Change-Id: I0b12bb456c8f032266c7530a39f87cefc5d9182b
Reviewed-on: https://chromium-review.googlesource.com/169767
Tested-by: Prashanth B <beeps@chromium.org>
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
Commit-Queue: Prashanth B <beeps@chromium.org>
/external/autotest/site_utils/test_that.py
b3ee20bce0aa6a649f93c438a50ae364f6f781d9 17-Sep-2013 Fang Deng <fdeng@chromium.org> [autotest] Add --autotest_dir to test_that

--autotest_dir allows one to specify a path to a
desired autotest folder instead of using the autotest directory in the
board specific sysroot.

BUG=chromium:272569
TEST=1) Make a copy of autotest directory at /tmp/my_autotest,
2) Insert some logging messages to autoserv and cros_host,
3) Run ./site_utils/test_that.py --autotest_dir=/tmp/my_autotest
DUT_IP_ADDR dummy_Pass from the source tree.
4) Confirm that the inserted messages are in the log.
confirm that autotest quickmerge is not run.
5) Run it again from the source tree without
--autotest_dir option, confirm that autotest quickmerge
is run and the sysroot version of autotest is used.
6) Run directly from sysroot without --autotest_dir,
confirm that it works and autotest quickmerge is not run.

Change-Id: I4da8ed0cb04a696eb4127fbe6d12d34551ded81d
Reviewed-on: https://chromium-review.googlesource.com/169764
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
Commit-Queue: Fang Deng <fdeng@chromium.org>
Tested-by: Fang Deng <fdeng@chromium.org>
/external/autotest/site_utils/test_that.py
0842c9825ccca49502c791d177eb8e4c76bb4210 16-Sep-2013 Aviv Keshet <akeshet@chromium.org> [autotest] improve test_that failure message when no board specified

BUG=None
TEST=None

Change-Id: Ib3170d75e701029361ebf4f4a8176c6f35dd1910
Reviewed-on: https://chromium-review.googlesource.com/169543
Tested-by: Aviv Keshet <akeshet@chromium.org>
Reviewed-by: Alex Miller <milleral@chromium.org>
Commit-Queue: Aviv Keshet <akeshet@chromium.org>
/external/autotest/site_utils/test_that.py
49db6aa3c902bfc87e3a7d3c442aa85e5f5067c0 13-Sep-2013 Dan Shi <dshi@chromium.org> [autotest] Delete results_directory if it already exists.

when --results_dir is specified and the directory already exists, test_that
does not start the test. This CL changes the behavior to delete existing result
directory.

BUG=chromium:280747
TEST=run following command twice, confirm the file contents are created in the
second run:
test_that --results_dir /tmp/test1 -b lumpy 172.22.75.225 dummy_Pass

Change-Id: I7bb612390af085f87d28e0402afbc0c94ae8394b
Reviewed-on: https://chromium-review.googlesource.com/169327
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
Commit-Queue: Dan Shi <dshi@chromium.org>
Tested-by: Dan Shi <dshi@chromium.org>
/external/autotest/site_utils/test_that.py
e10e8d04e08451ae0c9e5a10c0e8d768636c2105 10-Sep-2013 Aviv Keshet <akeshet@chromium.org> [autotest] refactor test_that's main for better readability

This CL refactors test_that's main(...), separating out test_that's
bootstrap-into-sysroot behavior from its run-some-tests-from-sysroot
behavior.

BUG=None
TEST=unit tests pass; Manually verified that test_that still works
(`test_that -b lumpy my.dut suite:smoke`)
Change-Id: I17c238d2817216900237ce72aeab7a5361abd742
Reviewed-on: https://chromium-review.googlesource.com/168666
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
Tested-by: Aviv Keshet <akeshet@chromium.org>
Commit-Queue: Aviv Keshet <akeshet@chromium.org>
/external/autotest/site_utils/test_that.py
bebd62154f7e782793bab4092762b31af286272d 05-Sep-2013 Aviv Keshet <akeshet@chromium.org> [autotest] log the test_that command line to debug output

BUG=None
TEST=Manually verified

Change-Id: I4f8b08af7f19d39cd03c6715ed9ebc652ef4ce59
Reviewed-on: https://chromium-review.googlesource.com/168127
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
Commit-Queue: Aviv Keshet <akeshet@chromium.org>
Tested-by: Aviv Keshet <akeshet@chromium.org>
/external/autotest/site_utils/test_that.py
6a704f7a70401f88599390f18c188b6c8010ef9a 04-Sep-2013 Aviv Keshet <akeshet@chromium.org> [autotest] thread --ssh_options parameter through test_that

BUG=chromium:285378
TEST=Unit tests pass. Manually verified that parameter threads to
autoserv.

Change-Id: Ib19fe8c378ae71f5c5432f82f919fd761a10ca80
Reviewed-on: https://chromium-review.googlesource.com/168072
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
Tested-by: Aviv Keshet <akeshet@chromium.org>
Commit-Queue: Aviv Keshet <akeshet@chromium.org>
/external/autotest/site_utils/test_that.py
a6adc7a1ec6c1ebb5db420da12ab9f6e5314db05 30-Aug-2013 Aviv Keshet <akeshet@chromium.org> [autotest] add pattern matching ability to test_that's tests arg

This CL adds two type of test pattern matching to test_that. Patterns
can now be specified with e:[test name pattern] or f:[file name pattern]
as the TEST argument to test_that.

It also demotes the complaint "Getting control files for a specific suite
has not been implemented for FileSystemGetter.' to DEBUG level, so it
doesn't cause test_that user confusion.

BUG=chromium:214066
TEST=Unit tests pass. Also...
Suite names still work the same way:
$ test_that [remote] suite:smoke # smoke suite scheduled correctly
Test name patterns work, like this:
$ test_that [remote] e:cantelope # No tests scheduled, test_that errors out
$ test_that [remote] e:dummy # No tests scheduled
$ test_that [remote] e:dummy.* # 6 tests whose name begin with dummy
# scheduled
File name pattern work, like this:
$ test_that [remote] f:dummy # # No tests scheduled.
$ test_that [remote] f:.*dummy.* # 8 tests scheduled
$ test_that [remote] f:.*server.*dummy.* # 2 tests scheduled
$ test_that [remote] f:.*client.*dummy.* # 6 tests scheduled

Change-Id: I104847bdf7956e020f2581128946471d1794b8d2
Reviewed-on: https://chromium-review.googlesource.com/167668
Tested-by: Aviv Keshet <akeshet@chromium.org>
Reviewed-by: Prashanth Balasubramanian <beeps@chromium.org>
Commit-Queue: Aviv Keshet <akeshet@chromium.org>
/external/autotest/site_utils/test_that.py
2ebbd3588686d29f984bde75b6725f88db52eb9b 28-Aug-2013 Aviv Keshet <akeshet@chromium.org> [autotest] have test_that's --debug flag also turn on autoserv verbosity

BUG=None
TEST=Manually tested. Unit tests pass.

Change-Id: I7e91c89cbee138a57015b4b8578778afda090ca0
Reviewed-on: https://chromium-review.googlesource.com/167174
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
Tested-by: Aviv Keshet <akeshet@chromium.org>
Commit-Queue: Aviv Keshet <akeshet@chromium.org>
/external/autotest/site_utils/test_that.py
6a7c7f16c643ad4a77550bf5eb0cd9f96a94e680 30-Aug-2013 Aviv Keshet <akeshet@chromium.org> [autotest] make test_that create a log of the test pass/fail report

Creating a log file of the output of generate_test_report is
particularly helpful in diagnosing VMTest failures.

BUG=None
TEST=Manually verified that test_report.log file is created in results
directory.

Change-Id: I2878e22d0f379e88a26f5c44354ab6ad691dba5a
Reviewed-on: https://chromium-review.googlesource.com/167700
Tested-by: Aviv Keshet <akeshet@chromium.org>
Reviewed-by: Chris Sosa <sosa@chromium.org>
Commit-Queue: Aviv Keshet <akeshet@chromium.org>
/external/autotest/site_utils/test_that.py
f2b6910112d0bb6fe28e2b93099e8b0e9540deeb 28-Aug-2013 Aviv Keshet <akeshet@chromium.org> [autotest] fix test_that breakage due to provisioning changes

est_that was broken by a recent change to create_job which enforces
that there are hosts actually able to run the desired job. This simple
fix just ensures that test_that's mock afe contains a host that
satisfies the newly enforced constraints.

BUG=chromium:280567
TEST=Unit tests pass; manually verified that test_that can run tests.

Change-Id: I097407c29ff8a1663da2755fab61e560a5f61c7e
Reviewed-on: https://chromium-review.googlesource.com/167319
Tested-by: Aviv Keshet <akeshet@chromium.org>
Reviewed-by: Alexander Miller <milleral@chromium.org>
Commit-Queue: Aviv Keshet <akeshet@chromium.org>
/external/autotest/site_utils/test_that.py
cbee2dc77cea843b7da34b348bf2a35f375d8a09 23-Aug-2013 Aviv Keshet <akeshet@chromium.org> [autotest] remove some accidentally committed debug prints

Oops. Nobody wanted to see that.

BUG=None
TEST=None

Change-Id: I86ec5151dc94c5a1a63ebb13b4498a04d9cf1b2d
Reviewed-on: https://gerrit.chromium.org/gerrit/66839
Tested-by: Aviv Keshet <akeshet@chromium.org>
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Commit-Queue: Aviv Keshet <akeshet@chromium.org>
/external/autotest/site_utils/test_that.py
1de5bc60d475098e13920dc4bd9d8862f9c59760 19-Aug-2013 Aviv Keshet <akeshet@chromium.org> [autotest] add testing key to the ssh-agent during a test_that local run

CQ-DEPEND=CL:If48fb7e9e0aa1e9744a172db42f1a03d9b22aa56
BUG=chromium:242987, chromium:274047
TEST=test_that can now run tests against a DUT from a chroot that does
not already have a ssh-agent set up. Unit tests pass.

Change-Id: I83fe442cdd5a3ef3594cefa2a818d56c576d5969
Reviewed-on: https://gerrit.chromium.org/gerrit/66232
Tested-by: Aviv Keshet <akeshet@chromium.org>
Reviewed-by: Simran Basi <sbasi@chromium.org>
Commit-Queue: Aviv Keshet <akeshet@chromium.org>
/external/autotest/site_utils/test_that.py
ad7e34ebd5620d7b7eb17e187517ec22611689da 20-Aug-2013 Aviv Keshet <akeshet@chromium.org> [autotest] include test name in test_that results directory

Before this CL, if you ran a test suite with test_that, your result
directories would just be named results-0, results-1, etc. After this
CL, the results directories will include the name of the test, ie
results-01-logging_CrashSender.

TEST=Ran locally to verify behavior. Also, unit tests pass.
BUG=None

Change-Id: Id270aacf231aa0a9585eeecc952598f540305167
Reviewed-on: https://gerrit.chromium.org/gerrit/66290
Tested-by: Aviv Keshet <akeshet@chromium.org>
Reviewed-by: Simran Basi <sbasi@chromium.org>
Commit-Queue: Aviv Keshet <akeshet@chromium.org>
/external/autotest/site_utils/test_that.py
e43bccf088d41592440e088c2871e621edc56919 14-Aug-2013 Aviv Keshet <akeshet@chromium.org> [autotest] improve test_that's logging

This CL accomplishes a few things:
1) Makes the output format of logging messages in test_that more in line
with the rest of autotest.

2) Makes test_that drop log files (test_that.DEBUG, .ERROR, .INFO, and
.WARNING) into the debug/ subdirectory of its logging directory.

3) Adds a --debug flag which allows the user to optionally see DEBUG
level messages in stdout.

4) In order to make the logs more readable, test_that is now calling
autoserv with its --no-console-prefix flag.

BUG=chromium:273256
TEST=Unit tests pass

Change-Id: I8b2c4594f22de40ddd25a2ba84214f65021f5c29
Reviewed-on: https://gerrit.chromium.org/gerrit/65893
Commit-Queue: Aviv Keshet <akeshet@chromium.org>
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
Tested-by: Aviv Keshet <akeshet@chromium.org>
/external/autotest/site_utils/test_that.py
4dd3480a0f4fdde97d697993446cbe3d376129ca 14-Aug-2013 Aviv Keshet <akeshet@chromium.org> [autotest] do not run test_that as root

CQ-DEPEND=CL:Iedf70c3bc891f639e396c2a12dfb275923d8f8e9
BUG=chromium:272575
TEST=See CQ-DEPENDED CL; Unit tests pass.

Change-Id: If5e4293bfc88255ee3eff278763634006d22a8d6
Reviewed-on: https://gerrit.chromium.org/gerrit/65790
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
Tested-by: Aviv Keshet <akeshet@chromium.org>
Commit-Queue: Aviv Keshet <akeshet@chromium.org>
/external/autotest/site_utils/test_that.py
c14951af46e88db7574b9e01ff77d2e419e8058e 13-Aug-2013 Aviv Keshet <akeshet@chromium.org> [autotest] add ssh_verbosity to test_that and autoserv_utils

BUG=chromium:271621
TEST=unit tests pass. Manually verified that flag works as expected.

Change-Id: I31c59a80a7a2151c27d4a41ff8c6cfbf51d259cb
Reviewed-on: https://gerrit.chromium.org/gerrit/65720
Commit-Queue: Aviv Keshet <akeshet@chromium.org>
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
Tested-by: Aviv Keshet <akeshet@chromium.org>
/external/autotest/site_utils/test_that.py
fd77591378849955562d4c95d9fc73f5cd1d26b0 06-Aug-2013 Aviv Keshet <akeshet@chromium.org> [autotest] add a --whitelist-chrome-crashes flag to test_that

This flag is required in order for test_that to replace run_remote_tests
on builders' VMTest stage.

BUG=chromium:268678
TEST=Unit tests pass; ran test_that with new flag, ensured that it was
passed to and understood by generate_test_report tool.

Change-Id: I7b65561d96cd26ca496699161b8fd9e81a087a34
Reviewed-on: https://gerrit.chromium.org/gerrit/64801
Commit-Queue: Aviv Keshet <akeshet@chromium.org>
Tested-by: Aviv Keshet <akeshet@chromium.org>
Reviewed-by: Simran Basi <sbasi@chromium.org>
/external/autotest/site_utils/test_that.py
15782defe390f87bf17c41a8bace97d6f56caf83 31-Jul-2013 Aviv Keshet <akeshet@chromium.org> [autotest] add --results_dir flag to test_that

This CL adds a new flag to test_that which allows you to specify a
results directory (other than the default behavior of creating a new
directory in /tmp). It works analagously to the --results_dir_root
argument of run_remote_tests

BUG=chromium:265919
TEST=Ran test_that both with and without new flag. Without new flag,
results were stored in /tmp subdir as before. With new flag, new results
directory was created if necessary and results were stored therein.

Change-Id: I86657e9cece38eeecd8b08d3a7c616c449e0ecfe
Reviewed-on: https://gerrit.chromium.org/gerrit/63936
Tested-by: Aviv Keshet <akeshet@chromium.org>
Reviewed-by: Prathmesh Prabhu <pprabhu@chromium.org>
Reviewed-by: Alex Miller <milleral@chromium.org>
Commit-Queue: Aviv Keshet <akeshet@chromium.org>
/external/autotest/site_utils/test_that.py
63f00aa79396ffb0d320907000ff14ef75b18e90 26-Jul-2013 Prathmesh Prabhu <pprabhu@chromium.org> test_that: Use default board saved by setup_board if none is provided.

BUG=chromium:264879
TEST=Ran test_that without the --board flag to verify default board is detected.

Change-Id: I2703e7ddf64fb8a9fc80cf90b933b3ec03ecd685
Reviewed-on: https://gerrit.chromium.org/gerrit/63493
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
Tested-by: Prathmesh Prabhu <pprabhu@chromium.org>
Commit-Queue: Prathmesh Prabhu <pprabhu@chromium.org>
/external/autotest/site_utils/test_that.py
e9170d908d522788e664bc69a12d1c56d8583cec 19-Jul-2013 Aviv Keshet <akeshet@chromium.org> [autotest] add a --no-experimental flag to test_that

This CL adds a --no-experimental flag to test_that, which will cause it
to skip tests marked as experimental when scheduling a suite. A minor
change to suite.py was required in order for test_that's count of
scheduled tests to be correct when skipping experimental tests.

BUG=chromium:262135
TEST=Manually verified that experimental tests do not get scheduled when
flag is used. Unit tests pass.

Change-Id: I33247446e95915f372ced59f46b78c36fa82c1a7
Reviewed-on: https://gerrit.chromium.org/gerrit/62657
Tested-by: Aviv Keshet <akeshet@chromium.org>
Reviewed-by: Simran Basi <sbasi@chromium.org>
Commit-Queue: Aviv Keshet <akeshet@chromium.org>
/external/autotest/site_utils/test_that.py
8ea71df7ccf65d49df1cc0f83a1ea57d1d3d8c21 19-Jul-2013 Aviv Keshet <akeshet@chromium.org> [autotest] add a --no-quickmerge flag to test_that

This CL adds a --no-quickmerge flag to test_that, which will force it to
skip the quickmerge step. This option will be used for test_that runs on
the builder (as part of VMtest), since on the builder we will have a
fresh sysroot and there is no need to run quickmerge.

BUG=chromium:262135
TEST=Unit tests pass. Manually verified that flag works.

Change-Id: Ia1e12257f5c1288e352f0d3e0078ed764688b0fd
Reviewed-on: https://gerrit.chromium.org/gerrit/62648
Commit-Queue: Aviv Keshet <akeshet@chromium.org>
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
Tested-by: Aviv Keshet <akeshet@chromium.org>
/external/autotest/site_utils/test_that.py
c5e4609c81f5b009211aea34dcc288ea68e9190e 19-Jul-2013 Aviv Keshet <akeshet@chromium.org> [autotest] add a --pretend flag to test_that

This CL adds a --pretend flag to test_that which causes it to print out
the autoserv commands that it would have run, rather than actually
running them.

BUG=None
TEST=Manually tested that --pretend flag works as expected. Unit tests
pass.

Change-Id: I492c67ee31319ca4c7c157f182b4108a213f047c
Reviewed-on: https://gerrit.chromium.org/gerrit/62646
Commit-Queue: Aviv Keshet <akeshet@chromium.org>
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
Tested-by: Aviv Keshet <akeshet@chromium.org>
/external/autotest/site_utils/test_that.py
c9e7462ef6fae0dba65e37c2d14d7920c08b7e5b 18-Jul-2013 Aviv Keshet <akeshet@chromium.org> [autotest] test_that makes a symlink to latest results directory

With this CL, after each local run of test_that, just before generating
the test report, test_that will create a symlink from
/tmp/test_that_latest to the latest results directory.

BUG=chromium:258204
TEST=Ran test that a few times, verified that symlink was updated to
point to latest results directory.

Change-Id: I4718c919082eff177ba9671140104109c2dc63b7
Reviewed-on: https://gerrit.chromium.org/gerrit/62492
Commit-Queue: Aviv Keshet <akeshet@chromium.org>
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
Tested-by: Aviv Keshet <akeshet@chromium.org>
/external/autotest/site_utils/test_that.py
30322f95d61f6a2cffada92472729d3f2a926f6b 18-Jul-2013 Aviv Keshet <akeshet@chromium.org> [autotest] add --args support to test_that

TEST=new unit test of behavior
BUG=None

Change-Id: I41674d4b6fcf52ab1a888a43f2c2c3047e1bfc60
Reviewed-on: https://gerrit.chromium.org/gerrit/62523
Commit-Queue: Aviv Keshet <akeshet@chromium.org>
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
Tested-by: Aviv Keshet <akeshet@chromium.org>
/external/autotest/site_utils/test_that.py
0819a61ebdab865250e42af55398f9bbdf413595 19-Jul-2013 Prathmesh Prabhu <pprabhu@chromium.org> autotest: Print the result directory at the end of report from test_that

The result directory path will be printed after the test report.
This saves the user from having to dig out the directory name from the output.

BUG=chromium:261835
TEST=(1) Run python test_that_unittest.py
(2) Run some autotest test and make sure that the result directory is
printed at the end and is correct.

Change-Id: If8d7f7b64b35c9e087187782e8dd28c3f9df83fb
Reviewed-on: https://gerrit.chromium.org/gerrit/62559
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
Commit-Queue: Prathmesh Prabhu <pprabhu@chromium.org>
Tested-by: Prathmesh Prabhu <pprabhu@chromium.org>
/external/autotest/site_utils/test_that.py
5e33c1775e6af56e3b193f91b537c46843de1148 16-Jul-2013 Aviv Keshet <akeshet@chromium.org> [autotest] make test_that 0-pad the job id in results directory

BUG=chromium:258674
TEST=Ran smoke suite, saw that jobs were 0-padded to be of length 2.

Change-Id: Ia234a7ba9a7926e4c7c07ebef81fc96ad63ab007
Reviewed-on: https://gerrit.chromium.org/gerrit/62087
Tested-by: Aviv Keshet <akeshet@chromium.org>
Reviewed-by: Simran Basi <sbasi@chromium.org>
Commit-Queue: Aviv Keshet <akeshet@chromium.org>
/external/autotest/site_utils/test_that.py
f6b5aaeef62ea9eb77f7c351db1ebf079c87dc3f 09-Jul-2013 Christopher Wiley <wiley@chromium.org> autotest: Add --fast flag to test_that

test_that will turn off some slow autoserv functionality that developers
are unlikely to miss if this flag is passed.

TEST=Ran test_that with this flag, noted that tests ran faster and
appropriate logging was emited/omited.
BUG=chromium:258509

Change-Id: I470c1e2392ed20d775f97459d0d52bf29ea92396
Reviewed-on: https://gerrit.chromium.org/gerrit/61304
Tested-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Alex Miller <milleral@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
/external/autotest/site_utils/test_that.py
ba4992a7d4bbd3d4e22803606d2e51c49aefe303 02-Jul-2013 Aviv Keshet <akeshet@chromium.org> [autotest] test_that summarizes results via generate_test_report script

This CL gets test_that to use the generate_test_report script (supplied
in the chroot by crostest_utils) to summarize the results of a run. This
is a temporary measure to give some nice result summarizing while
sidestepping the bigger problem of re-using the TKO / run_suite result
summarizing code.

BUG=chromium:243431
TEST=Ran tests in the chroot using test_that. A results summary was
displayed at the end.
Change-Id: Ia5a4f00e9c27a696887eea358df6d27886cf7526
Reviewed-on: https://gerrit.chromium.org/gerrit/60820
Commit-Queue: Aviv Keshet <akeshet@chromium.org>
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
Tested-by: Aviv Keshet <akeshet@chromium.org>
/external/autotest/site_utils/test_that.py
c8824406c766ed55e2bb49b5a078595778b9b138 30-Jun-2013 Aviv Keshet <akeshet@chromium.org> [autotest] test_that pull test results to subdirectory of /tmp

This CL causes test_that to pull logs to a unique-per-run subdirectory
of /tmp. In a future CL, this will allow test_that to parse the result
logs and summarize the success/failure of tests and suites.

BUG=chromium:243431
TEST=unit tests pass; Ran a suite with test_that, and saw that
/tmp/test_that_results_[unique string]/ was created, contained test
result logs, and had appropriate permissions to allow non-root user to
examine directory and results.

Change-Id: Id44d85946657b9d570cbf728b19018643512c9dd
Reviewed-on: https://gerrit.chromium.org/gerrit/60783
Commit-Queue: Aviv Keshet <akeshet@chromium.org>
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
Tested-by: Aviv Keshet <akeshet@chromium.org>
/external/autotest/site_utils/test_that.py
10711967437405d2b338bfd9426b56efb9126099 24-Jun-2013 Aviv Keshet <akeshet@chromium.org> [autotest] fix test_that breakage by adding BOARD label to afe

BUG=chromium:253594
TEST=Ran test_that. No longer had ValidationError during suite run.
test_that unit tests pass.

Change-Id: I0b4eefcd1c8f1c5f2c6f58d0188e10fa1991b037
Reviewed-on: https://gerrit.chromium.org/gerrit/59830
Tested-by: Aviv Keshet <akeshet@chromium.org>
Reviewed-by: Alex Miller <milleral@chromium.org>
Commit-Queue: Aviv Keshet <akeshet@chromium.org>
/external/autotest/site_utils/test_that.py
a0913079c5cc26f115ccdfb4063022b7daee9d39 12-Jun-2013 Alex Miller <milleral@chromium.org> [autotest] Make board always be the metahost.

When the scheduler goes to pull the list of hosts to consider for a HQE
to run against, it pulls all hosts with the label specified by metahost.
Currently, we use the cros-version label, if available, and pool
otherwise. In preperation for preemptive scheduling, we need the
scheduler to consider all hosts within any given board, since it can
(plus or minus some DEPENDENCIES) choose any of them to provision for
the job.

It's worth noting that this CL might also speed up the scheduler tick,
as we're going to be considering ~30 hosts per job, instead of ~100.
(Average number of hosts per board vs average number of hosts per pool.)

There's also some rework hidden in here to add |board| as a required
argument to Suite.

BUG=chromium:249437
TEST=local run_suite, unittest

Change-Id: I4afd8ef958b96c9fb9bc4a7f838a360d508683d6
Reviewed-on: https://gerrit.chromium.org/gerrit/58386
Commit-Queue: Alex Miller <milleral@chromium.org>
Reviewed-by: Alex Miller <milleral@chromium.org>
Tested-by: Alex Miller <milleral@chromium.org>
/external/autotest/site_utils/test_that.py
2dc98936c15686db6576af05267a9239c48d6e61 18-Jun-2013 Aviv Keshet <akeshet@chromium.org> [autotest] run quickmerge as part of test_that

This CL causes autotest_quickmerge to be invoked at the start of each
test_that local run, right before test_that re-executes its sysroot
version. This saves a step for developers, so they need not remember to
merge their changes before running test_that. Now that
autotest_quickmerge quickly no-ops if the sysroot is already newer than
the source tree, this is safe to do with each test_that run.

BUG=chromium:248545
TEST=Ran test_that suite, saw that quickmerge ran before suite was
scheduled.
CQ-DEPEND=CL:I75d4cd058282c3ecee279849da53cdcafade2cf1
Change-Id: I08f2003ef2555f9436df630e08b48961f4489a01
Reviewed-on: https://gerrit.chromium.org/gerrit/58924
Tested-by: Aviv Keshet <akeshet@chromium.org>
Reviewed-by: Alex Miller <milleral@chromium.org>
Commit-Queue: Aviv Keshet <akeshet@chromium.org>
/external/autotest/site_utils/test_that.py
1d991ea598db9165543b57ad84c70056b9d6ec24 13-Jun-2013 Aviv Keshet <akeshet@chromium.org> [autotest] make test_that exit cleanly on ctrl+C, SIGINT, SIGTERM

Prior to this CL, and historically in run_remote_tests, a keyboard
interrupt (CTRL+C) or other form of kill signal sent to test_that would
leave orphaned autoserv processes around. This CL addresses that in
several ways.

It is instructive to look at the process tree that gets created when a
user starts a local test_that run at their desk, in the chroot, since it
contains several layers of test_that bootstrapping before the autoserv
processes:

bash -> test_that [shell script, in path] -> sudo ->
test_that.py [source tree version] ->
test_that.py [sysroot tree version] ->
autoserv

This CL does the following:
1) SIGINT or SIGTERM signals sent to test_that.py [source tree]
will get forwarded to test_that.py [sysroot].

2) SIGINT or SIGTERM signals sent to test_that.py [sysroot] will cause a
SIGINT signal to be sent to the currently running autoserv process, if
one is running. After 5 seconds, if autoserv has not finished cleaning
up and exiting, then it will be killed.

With these changes, sending a SIGINT or SIGTERM to any process from the
sudo process down results in no orphaned processes. Sending a SIGINT or
SIGERM to the test_that shell script is addressed by a separate CL (see
the CQ-DEPEND line below).

BUG=chromium:213051
TEST=CTRL+C after kicking of a local suite with test_that results in
autoserv processes exiting. Sending SIGINT or SIGKILL signals to any
processes up the tree as far as the sudo command results in the same.
CQ-DEPEND=CL:I2391bccbb9086582ee530a129703912690396134

Change-Id: I6bba284f28736e26e0685c9911dbaa4e82a90472
Reviewed-on: https://gerrit.chromium.org/gerrit/58475
Tested-by: Aviv Keshet <akeshet@chromium.org>
Reviewed-by: Alex Miller <milleral@chromium.org>
Commit-Queue: Aviv Keshet <akeshet@chromium.org>
/external/autotest/site_utils/test_that.py
69ebb6c5761f0ccab13c977f6b1facde60214642 11-Jun-2013 Aviv Keshet <akeshet@chromium.org> [autotest] make test_that able to schedule individual tests

BUG=chromium:246750
TEST=new unittest in suite_unittest, passes. Manually ran test_that with
a mix of various test / suite names in combination, and tests ran
correctly.

Change-Id: Ia7bd73fc916398d6e63a031dc6244b6fc6f4e0f8
Reviewed-on: https://gerrit.chromium.org/gerrit/58242
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
Tested-by: Aviv Keshet <akeshet@chromium.org>
Commit-Queue: Aviv Keshet <akeshet@chromium.org>
/external/autotest/site_utils/test_that.py
712128f3bafef58e1a7b036f483a6fc25df9b2e1 11-Jun-2013 Aviv Keshet <akeshet@chromium.org> [autotest] fix test_that root logger

BUG=None
TEST=INFO logging messages emitted by suite and test scheduling methods
now actually appear.

Change-Id: Ibe24137c59f45e21c1d1967ed1c7de7ad1f0a4da
Reviewed-on: https://gerrit.chromium.org/gerrit/58241
Tested-by: Aviv Keshet <akeshet@chromium.org>
Reviewed-by: Alex Miller <milleral@chromium.org>
Commit-Queue: Aviv Keshet <akeshet@chromium.org>
/external/autotest/site_utils/test_that.py
d4a0430e484047965e6e2426d84a3ffd2539b2cb 01-May-2013 Aviv Keshet <akeshet@chromium.org> [autotest] add suite-running to test_that.py

This CL adds basic suite-running capability to test_that. A single or
multiple suites can be specified at the command line, and run against a
local DUT (see TEST for usage).

CQ-DEPEND=CL:Id57038b001f18a589e665b4d044cfa03ccebc954

BUG=chromium:236471
TEST=From anywhere in the chroot, assuming you have run build_packages
for the board in question:
`test_that -b <board> <DUT> suite:smoke` # see suite run
# run, suite, run
Also, new unit tests, which pass.

Change-Id: Ibdc284ab59f50c84d5deaf39e6e8c5406188b81c
Reviewed-on: https://gerrit.chromium.org/gerrit/49990
Tested-by: Aviv Keshet <akeshet@chromium.org>
Reviewed-by: Scott Zawalski <scottz@chromium.org>
Commit-Queue: Aviv Keshet <akeshet@chromium.org>
/external/autotest/site_utils/test_that.py
0e5d525bc44ba567dc6572644c8982495db9314c 27-Apr-2013 Aviv Keshet <akeshet@chromium.org> [autotest] make test_that re-execute its board-sysroot-installed version

In the chroot path we will be adding a script which just sudo executes
test_that from the autotest source tree. However, we want to be running
test_that from within the autotest tree installed on the sysroot for
the board being tested. When test_that is run from elsewhere, it should
re-execute the board-installed version.

Down the road, there will be a few bootstrapping steps added before
re-executing the sysroot version. Specifically, board-autodetection, will
take place first, followed by any necessary emerge/quickmerge operations,
followed by re-executing the sysroot version of the script.

BUG=chromium:236471
TEST=(in chroot):
1) `test_that --board=frumpy asdf asdf`
ERROR:root:/build/frumpy/ does not exist. Have you run setup_board?
2) after setup_board for lumpy, but before build packages `test_that
--board=lumpy asdf asdf`
ERROR:root:/build/lumpy/usr/local/autotest/ does not exist. Have you run
build_packages?
3) after running build_packages `test_that --board=lumpy asdf asdf`
This script does not do anything yet.
Reached end of execution for script
/build/lumpy/usr/local/autotest/site_utils/test_that.py with args
['--board', 'lumpy', 'asdf', 'asdf'].

Change-Id: I0624984ee8d6a1b6fa0221a64d0e5ef96fd438c3
Reviewed-on: https://gerrit.chromium.org/gerrit/49384
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
Tested-by: Aviv Keshet <akeshet@chromium.org>
Commit-Queue: Aviv Keshet <akeshet@chromium.org>
/external/autotest/site_utils/test_that.py
021c19f1d9feac7dc5ca63861dd09ef3d5c551d3 22-Feb-2013 Aviv Keshet <akeshet@chromium.org> [autotest] test_that script initial commit, with argument parsing

First commit of test_that.py, with command line args:
--------
usage: test_that.py [-h] [-b BOARD] [-i BUILD] [--args [ARGS]]
REMOTE TEST [TEST ...]

Run remote tests.

positional arguments:
REMOTE hostname[:port] for remote device. Specify :lab:
to run in test lab, or :vm:PORT_NUMBER to run in
vm.
TEST Run given test(s). Use suite:SUITE to specify
test suite.

optional arguments:
-h, --help show this help message and exit
-b BOARD, --board BOARD
Board for which the test will run.
-i BUILD, --build BUILD
Build to test. Device will be reimaged if
necessary. Omit flag to skip reimage and test against
already installed DUT image.
--args [ARGS] Argument string to pass through to test.
--------

CQ-DEPEND=CL:I940e09d6986fe049eb4c94a91e3e484aabccd7a4
BUG=chromium:236471
TEST=None

Change-Id: Iaeb425cb5575ceb67f868d3c8d8343a58255cae8
Reviewed-on: https://gerrit.chromium.org/gerrit/49255
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
Tested-by: Aviv Keshet <akeshet@chromium.org>
Commit-Queue: Aviv Keshet <akeshet@chromium.org>
/external/autotest/site_utils/test_that.py