History log of /external/autotest/site_utils/suite_scheduler/driver_unittest.py
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
329ef0add006898361abf223b7fb46bc11b2c7c1 18-Dec-2015 Dan Shi <dshi@google.com> [autotest] Fix unittest flake in suite_scheduler/driver_unittest.py

mox does not work well with multiprocessing. By forcing the thread pool size
to be 1, the method check flake was able to be resolved.

BUG=chromium:570891
TEST=local run
for i in `seq 1 10000`; do python site_utils/suite_scheduler/driver_unittest.py || { exit 1; } done | tee 1.log

Change-Id: I81b0f42a85716a413dbdf77733efde11e60adc04
Reviewed-on: https://chromium-review.googlesource.com/319222
Commit-Queue: Dan Shi <dshi@chromium.org>
Trybot-Ready: Dan Shi <dshi@chromium.org>
Tested-by: Dan Shi <dshi@chromium.org>
Reviewed-by: Mungyung Ryu <mkryu@google.com>
/external/autotest/site_utils/suite_scheduler/driver_unittest.py
abbe09600d73d77af92157027a20661c035be01e 11-Dec-2013 J. Richard Barnette <jrbarnette@chromium.org> Allow lab status to block based on a build regex.

Previously, the lab status could contain a string to block testing
based on the board. With this change, the status can block any
build that matches a regex in the status. This allows closing the
lab to either a build or a milestone. It also allows closing the
lab for other more specific conditions, for anyone desperate enough
to want to.

BUG=chromium:220934
TEST=unit tests

Change-Id: I8a44f5e9be504415a7c5bd73c714c778bf684d2c
Reviewed-on: https://chromium-review.googlesource.com/179544
Tested-by: Richard Barnette <jrbarnette@chromium.org>
Reviewed-by: Alex Miller <milleral@chromium.org>
Commit-Queue: Richard Barnette <jrbarnette@chromium.org>
/external/autotest/site_utils/suite_scheduler/driver_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>
/external/autotest/site_utils/suite_scheduler/driver_unittest.py
c7bcf8bf70d6e40aa4d37528f75b5a98b0f7a00e 08-Sep-2013 Alex Miller <milleral@chromium.org> [autotest] Set timeout and priority based on frequency of scheduling.

Out-of-band suites now have variable priority and duration based on the
event that kicks off the task.

Event | Priority | Duration
new_build | PostBuild | 12 hours
nightly | Daily | One day
weekly | Weekly | One week

This will mean that out-of-band suites will have lower priority than
user-created jobs in the lab (which are made with the Default priority)
and much lower than the inline build processes. The ability for a
Weekly suite to live for a whole week is to compensate for this drop in
priority.

I expect that this will fix a lot of the problems we have with
overlapping pools. Now if we overlapped pool:bvt with pool:suites, we
wouldn't see out-of-band suites starving the BVT out of machines, as BVT
would have a higher priority and thus preempt the out-of-band suites.

BUG=chromium:221264
DEPLOY=suite_scheduler
TEST=unit, force build and saw timeouts and priorities appear correctly

Change-Id: I604b7869d7fe16859f09a9effb11cbcb33980e99
Reviewed-on: https://chromium-review.googlesource.com/168569
Reviewed-by: Alex Miller <milleral@chromium.org>
Commit-Queue: Alex Miller <milleral@chromium.org>
Tested-by: Alex Miller <milleral@chromium.org>
/external/autotest/site_utils/suite_scheduler/driver_unittest.py
4e7722b93398734d394aad29377aa849bb2cbcfb 15-Feb-2013 Aviv Keshet <akeshet@chromium.org> [autotest] Make suite_scheduler respect lab status

Scheduler skips handling of events if the lab is down.

BUG=chromium-os:38817
TEST=New unit test for expected behavior passes

Change-Id: I42256940daa9e6f516a2ce087ef84e6cbd59a751
Reviewed-on: https://gerrit.chromium.org/gerrit/43370
Commit-Queue: Aviv Keshet <akeshet@chromium.org>
Tested-by: Aviv Keshet <akeshet@chromium.org>
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
/external/autotest/site_utils/suite_scheduler/driver_unittest.py
511a9e3a1cfc2c6dd1263c8f6cb667ab12cd7a6f 03-Jul-2012 Alex Miller <milleral@chromium.org> [autotest] Check pool and board when scheduling a suite.

When scheduling a suite, check that a board of a certain type actually
exists in a pool before scheduling a test to run on that board.

BUG=chromium-os:30641
TEST=unit

Change-Id: If2776243e6893a9bdd4f23040effdbcb0a629dab
Reviewed-on: https://gerrit.chromium.org/gerrit/26684
Reviewed-by: Chris Masone <cmasone@chromium.org>
Commit-Ready: Alex Miller <milleral@chromium.org>
Tested-by: Alex Miller <milleral@chromium.org>
/external/autotest/site_utils/suite_scheduler/driver_unittest.py
855d86f838faccb4ad112a222412e29c047b7d3e 07-May-2012 Chris Masone <cmasone@chromium.org> [autotest] Reload scheduler config file every time we loop

The suite scheduler uses a config file to tell it what tasks to perform.
Until now, that config was read at startup and then never again. Now,
the scheduler will re-read this config every time it's about to go through
and decide which events to handle, updating task lists and event parameters
prior to using them.

BUG=chromium-os:30521
TEST=unit
TEST=run the scheduler. Change the config file as it's running and observe
TEST=that the changes are honored. An easy change is to add a task configured
TEST=to run_on an event, and then set that event to always_handle.

Change-Id: Idfa9085503f97cd9f099161fd2d4d43ed139c26f
Reviewed-on: https://gerrit.chromium.org/gerrit/22070
Tested-by: Chris Masone <cmasone@chromium.org>
Reviewed-by: Chris Sosa <sosa@chromium.org>
Reviewed-by: Scott Zawalski <scottz@chromium.org>
Commit-Ready: Chris Masone <cmasone@chromium.org>
/external/autotest/site_utils/suite_scheduler/driver_unittest.py
bbde3866b4d3bdde17cfd77579694f892613fcb0 07-May-2012 Chris Masone <cmasone@chromium.org> [autotest] SuiteScheduler should update events after handling ALL boards

The event classes have a method called UpdateCriteria() that is meant to
update internal state used by ShouldHandle(). Calling this inside Handle()
means that it gets called once for every board we have. For some events
this leads to incorrect decisions. Call this manually after the Driver
is done calling Handle() for each board it knows about.

BUG=chromium-os:30642
TEST=unit
TEST=run scheduler against an autotest server that knows about multiple
TEST=boards. watch logs to ensure that it runs events for every board,
TEST=and only then updates criteria.

Change-Id: I2b3755051fab5a815e506e97f7ce76a4e7285ef6
Reviewed-on: https://gerrit.chromium.org/gerrit/22047
Tested-by: Chris Masone <cmasone@chromium.org>
Reviewed-by: Scott Zawalski <scottz@chromium.org>
Commit-Ready: Chris Masone <cmasone@chromium.org>
/external/autotest/site_utils/suite_scheduler/driver_unittest.py
cbe42778096ced79d78192d2c553dad74b87f362 01-May-2012 Chris Masone <cmasone@chromium.org> [autotest] Fix suite_scheduler.py force-scheduling

When I made Task.Run() expect a map of branch=>[list, of, builds] I
didn't update the code pathway that allows the user to force-run
suites on a given build.

BUG=None
TEST=./suite_scheduler.py -f suite_scheduler_always.ini -i x86-mario-release/R20-2223.0.0 -e nightly --log_dir .

Change-Id: I35fd9c131b30aa9d0a765d032c551549892ae6d7
Reviewed-on: https://gerrit.chromium.org/gerrit/21512
Tested-by: Chris Masone <cmasone@chromium.org>
Reviewed-by: Scott Zawalski <scottz@chromium.org>
Commit-Ready: Chris Masone <cmasone@chromium.org>
/external/autotest/site_utils/suite_scheduler/driver_unittest.py
73a7838db228a1b4a6141b5ba9efa4d1d1cf6251 20-Apr-2012 Chris Masone <cmasone@chromium.org> [autotest] Implement BuildEvent.ShouldHandle() for real

BuildEvent.ShouldHandle() should check with ManifestVersions to determine
if a new build has appeared since last time we checked for new builds
(i.e. the previous call to ShouldHandle()).

BUG=chromium-os:27586
TEST=unit

Change-Id: I3a69ee7c8e8e7be81e818e5105a8aaf2052c7dd4
Reviewed-on: https://gerrit.chromium.org/gerrit/20740
Tested-by: Chris Masone <cmasone@chromium.org>
Reviewed-by: Chris Sosa <sosa@chromium.org>
Commit-Ready: Chris Masone <cmasone@chromium.org>
/external/autotest/site_utils/suite_scheduler/driver_unittest.py
d17d185d7abd68584f3756a89a7475a5b6109f34 20-Apr-2012 Chris Masone <cmasone@chromium.org> [autotest] Pass ManifestVersions instance to Event constructors, not methods.

BuildEvent subclasses need a ManifestVersions right away, so pass
an instance of this class to the *Event constructors, then use it
throughout all methods of the classes.

BUG=chromium-os:27586
TEST=unit
TEST=./suite_scheduler.py -f suite_scheduler_test.ini

Change-Id: Ic0278765e01995deb770523c187a6a4c9a0dd2f0
Reviewed-on: https://gerrit.chromium.org/gerrit/20727
Commit-Ready: Chris Masone <cmasone@chromium.org>
Reviewed-by: Chris Masone <cmasone@chromium.org>
Tested-by: Chris Masone <cmasone@chromium.org>
/external/autotest/site_utils/suite_scheduler/driver_unittest.py
93f51d4da152538007d5b44a2dc9d2bbb1fe3429 18-Apr-2012 Chris Masone <cmasone@chromium.org> [autotest] Add BuildEvent and derived NewBuild event class

The NewBuild event will allow us to Run() tasks whenever a new build appears
for a supported board.

BUG=chromium-os:27586
TEST=unit

Change-Id: I3432ecde38397fde6e0d7d675bf302a796c117f5
Reviewed-on: https://gerrit.chromium.org/gerrit/20524
Tested-by: Chris Masone <cmasone@chromium.org>
Reviewed-by: Chris Sosa <sosa@chromium.org>
Commit-Ready: Chris Masone <cmasone@chromium.org>
/external/autotest/site_utils/suite_scheduler/driver_unittest.py
67f06d6003bb11f03f925810272f595d79dce44a 13-Apr-2012 Chris Masone <cmasone@chromium.org> [autotest] Enable forcing an event to fire and schedule suites

We need to ability to make the scheduler force an event, so we can backfill
test results, if need be. This is also handy for testing stuff.

Also, fix a bug in comparing build branch names to branch specifications
encoded in Tasks. Before, every Task would run on every release branch,
even if the Task said it should only run on factory and/or firmware.

BUG=chromium-os:27586
TEST=unit
TEST=./suite_scheduler.py -f suite_scheduler_test.ini -e nightly -i x86-mario-release/R20-2130.0.0-a1-b1905

Change-Id: I58217c358d8b85faf49a940d01bca184dc8590e0
Reviewed-on: https://gerrit.chromium.org/gerrit/20124
Commit-Ready: Chris Masone <cmasone@chromium.org>
Reviewed-by: Chris Masone <cmasone@chromium.org>
Tested-by: Chris Masone <cmasone@chromium.org>
/external/autotest/site_utils/suite_scheduler/driver_unittest.py
fe5a509f533e7de2531a0d0838146859b543569c 12-Apr-2012 Chris Masone <cmasone@chromium.org> [autotest] Wire branch/build fetching up to Driver

Add code to Driver to set up a ManifestVersions and use it
to find builds to pass into Event.Handle().

BUG=chromium-os:27586
TEST=unit

Change-Id: Id152be28db63dd91a1a1d75dc406c0497d7fb7a9
Reviewed-on: https://gerrit.chromium.org/gerrit/20038
Commit-Ready: Chris Masone <cmasone@chromium.org>
Reviewed-by: Chris Masone <cmasone@chromium.org>
Tested-by: Chris Masone <cmasone@chromium.org>
/external/autotest/site_utils/suite_scheduler/driver_unittest.py
96f1663ecc7d8821e804b0256fc68be0756ba66e 05-Apr-2012 Chris Masone <cmasone@chromium.org> [autotest] Enable creation of Task objects from a config file.

Now that we've started to hash out what we're going to allow in terms of
specifying branches for a given task in the suite scheduler's config file,
we can start creating code to vet the config stanzas and create Task objects.

Also, now that we understand more about how we'll discover builds and run
tasks in a branch-aware fashion, the Event and Task APIs need to change a bit.

BUG=chromium-os:27586
TEST=unit

Change-Id: I19cb9bc8727e53da7a4f16faf630c697f374f28f
Reviewed-on: https://gerrit.chromium.org/gerrit/19628
Reviewed-by: Scott Zawalski <scottz@chromium.org>
Reviewed-by: Chris Sosa <sosa@chromium.org>
Commit-Ready: Chris Masone <cmasone@chromium.org>
Tested-by: Chris Masone <cmasone@chromium.org>
/external/autotest/site_utils/suite_scheduler/driver_unittest.py
3fba86fc2184ddee87e7422370671abb18bd0792 03-Apr-2012 Chris Masone <cmasone@chromium.org> [autotest] Use 'board', not 'platform'; Make code handle all supported boards.

Correcting the nomenclature. Also, Tasks should not be tied
to a single board, but rather be Run() for multiple boards.

BUG=chromium-os:27586
TEST=unit

Change-Id: I7ab871deea47b89edd8d2b2dd7f432cc067dccb0
Reviewed-on: https://gerrit.chromium.org/gerrit/19522
Tested-by: Chris Masone <cmasone@chromium.org>
Reviewed-by: Chris Sosa <sosa@chromium.org>
Reviewed-by: Scott Zawalski <scottz@chromium.org>
Commit-Ready: Chris Masone <cmasone@chromium.org>
/external/autotest/site_utils/suite_scheduler/driver_unittest.py
92874d3993da8a12289df53ca5be3706ba40a574 03-Apr-2012 Chris Masone <cmasone@chromium.org> [autotest] Simply rename platform_enumerator files to board_enumerator

And then fix imports.

BUG=chromium-os:27586
TEST=unit

Change-Id: I689873583e1e811d1a11ab548a9db20bd44c297f
Reviewed-on: https://gerrit.chromium.org/gerrit/19525
Tested-by: Chris Masone <cmasone@chromium.org>
Reviewed-by: Scott Zawalski <scottz@chromium.org>
Commit-Ready: Chris Masone <cmasone@chromium.org>
/external/autotest/site_utils/suite_scheduler/driver_unittest.py
2d61ca263d3e571b19604ea4c9d7b55d83c28405 03-Apr-2012 Chris Masone <cmasone@chromium.org> [autotest] Begin adding looping logic to new suite scheduler

driver.Driver will hold the main loop logic for the scheduler. As the
code in event.py started to get too big, I broke it into base_event.py
and timed_event.py. Also, add ForgivingConfigParser, which just wraps
SafeConfigParser to return None on get*() calls.

BUG=chromium-os:27586
TEST=unit tests

Change-Id: I6e69830f176f533a9d448ac4372da68c8c70a14b
Reviewed-on: https://gerrit.chromium.org/gerrit/19488
Tested-by: Chris Masone <cmasone@chromium.org>
Reviewed-by: Scott Zawalski <scottz@chromium.org>
Commit-Ready: Chris Masone <cmasone@chromium.org>
/external/autotest/site_utils/suite_scheduler/driver_unittest.py