Improve run_remote_tests by combining tests if possible.

Improves speed of run_remote_tests when running multiple tests by
combining them into a single control file. Only works when requested
tests are either all client or all server. The combination model
utilizes the same step engine that the Autotest frontend does.

The performance improvement is huge in this case, resulting in an
average 59% time reduction (2m03s vs 3m27s) for a 3 test run of
desktopui_ChromeFirstRender, login_LoginSuccess, and
login_CryptohomeMounted.

I also investigated using a local package cache between iterations,
however this proved to have only a neglible impact on performance (3m11s
vs 3m16s) with increases in complexity and log spam as well as a
performance reduction (2m29s vs 2m03s) in the new combined control model.

BUG=chromium-os:19349
TEST=Ran run_remote_tests.

Change-Id: I7c59c1c69a25066c966029cb4b546e2ddb899b1c
Reviewed-on: https://gerrit.chromium.org/gerrit/10674
Reviewed-by: Chris Masone <cmasone@chromium.org>
Tested-by: Dale Curtis <dalecurtis@chromium.org>
1 file changed