<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rust/src/etc/adb_run_wrapper.sh, branch master</title>
<subtitle>https://github.com/rust-lang/rust
</subtitle>
<id>http://git.dreamy.place/mirrors/rust/atom?h=master</id>
<link rel='self' href='http://git.dreamy.place/mirrors/rust/atom?h=master'/>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/'/>
<updated>2017-04-28T03:20:13+00:00</updated>
<entry>
<title>travis: Parallelize tests on Android</title>
<updated>2017-04-28T03:20:13+00:00</updated>
<author>
<name>Alex Crichton</name>
<email>alex@alexcrichton.com</email>
</author>
<published>2017-04-26T15:52:19+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=7bc2cbf5db3e20e6f97494b70b2a1d65ac2e61fc'/>
<id>urn:sha1:7bc2cbf5db3e20e6f97494b70b2a1d65ac2e61fc</id>
<content type='text'>
Currently our slowest test suite on android, run-pass, takes over 5 times longer
than the x86_64 component (~400 -&gt; ~2200s). Typically QEMU emulation does indeed
add overhead, but not 5x for this kind of workload. One of the slowest parts of
the Android process is that *compilation* happens serially. Tests themselves
need to run single-threaded on the emulator (due to how the test harness works)
and this forces the compiles themselves to be single threaded.

Now Travis gives us more than one core per machine, so it'd be much better if we
could take advantage of them! The emulator itself is still fundamentally
single-threaded, but we should see a nice speedup by sending binaries for it to
run much more quickly.

It turns out that we've already got all the tools to do this in-tree. The
qemu-test-{server,client} that are in use for the ARM Linux testing are a
perfect match for the Android emulator. This commit migrates the custom adb
management code in compiletest/rustbuild to the same qemu-test-{server,client}
implementation that ARM Linux uses.

This allows us to lift the parallelism restriction on the compiletest test
suites, namely run-pass. Consequently although we'll still basically run the
tests themselves in single threaded mode we'll be able to compile all of them in
parallel, keeping the pipeline much more full and using more cores for the work
at hand. Additionally the architecture here should be a bit speedier as it
should have less overhead than adb which is a whole new process on both the host
and the emulator!

Locally on an 8 core machine I've seen the run-pass test suite speed up from
taking nearly an hour to only taking 6 minutes. I don't think we'll see quite a
drastic speedup on Travis but I'm hoping this change can place the Android tests
well below 2 hours instead of just above 2 hours.

Because the client/server here are now repurposed for more than just QEMU,
they've been renamed to `remote-test-{server,client}`.

Note that this PR does not currently modify how debuginfo tests are executed on
Android. While parallelizable it wouldn't be quite as easy, so that's left to
another day. Thankfully that test suite is much smaller than the run-pass test
suite.

As a final fix I discovered that the ARM and Android test suites were actually
running all library unit tests (e.g. stdtest, coretest, etc) twice. I've
corrected that to only run tests once which should also give a nice boost in
overall cycle time here.
</content>
</entry>
<entry>
<title>Add one more depth on android test directory for multiple targets</title>
<updated>2015-02-10T12:53:31+00:00</updated>
<author>
<name>Eunji Jeong</name>
<email>eun-ji.jeong@samsung.com</email>
</author>
<published>2015-02-02T08:42:23+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=abd7fd924b6fcf6734d63fd2277f9db472b6a30f'/>
<id>urn:sha1:abd7fd924b6fcf6734d63fd2277f9db472b6a30f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Added more scripts to tidy check</title>
<updated>2014-02-17T16:36:47+00:00</updated>
<author>
<name>Derek Guenther</name>
<email>dguenther9@gmail.com</email>
</author>
<published>2014-02-13T16:42:52+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=b609d57b02eaf67fcc12a708dca1460bd88bcaab'/>
<id>urn:sha1:b609d57b02eaf67fcc12a708dca1460bd88bcaab</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Stop looping on error waiting for android test results</title>
<updated>2014-02-14T05:19:06+00:00</updated>
<author>
<name>Brian Anderson</name>
<email>banderson@mozilla.com</email>
</author>
<published>2014-02-14T05:19:06+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=67841793522889a9cbcb93ab066ff3b744499e7d'/>
<id>urn:sha1:67841793522889a9cbcb93ab066ff3b744499e7d</id>
<content type='text'>
These seem to be causing iloops on the bots. Let's rather see the errors.
</content>
</entry>
<entry>
<title>add path environments</title>
<updated>2013-11-19T00:08:47+00:00</updated>
<author>
<name>Young-il Choi</name>
<email>duddlf.choi@samsung.com</email>
</author>
<published>2013-11-15T03:31:58+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=093757ca800bdfbc5b18205e80d055c0ab08202c'/>
<id>urn:sha1:093757ca800bdfbc5b18205e80d055c0ab08202c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>etc: add TEST_EXEC_ENV for run-pass to adb_run_wrapper.sh</title>
<updated>2013-06-17T09:46:04+00:00</updated>
<author>
<name>Young-il Choi</name>
<email>duddlf.choi@samsung.com</email>
</author>
<published>2013-06-17T09:46:04+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=f7ee7d09dd520d5a392de7a28477e50465cce243'/>
<id>urn:sha1:f7ee7d09dd520d5a392de7a28477e50465cce243</id>
<content type='text'>
</content>
</entry>
<entry>
<title>etc: modify adb_run_wrapper.sh to avoid 'expr' unrecognization at some android devices</title>
<updated>2013-06-17T09:44:30+00:00</updated>
<author>
<name>Young-il Choi</name>
<email>duddlf.choi@samsung.com</email>
</author>
<published>2013-06-17T09:44:30+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=9e618cf95494469275eca6b108eb569db2600b75'/>
<id>urn:sha1:9e618cf95494469275eca6b108eb569db2600b75</id>
<content type='text'>
</content>
</entry>
<entry>
<title>automated whitespace fixes</title>
<updated>2013-06-13T22:03:08+00:00</updated>
<author>
<name>Daniel Micay</name>
<email>danielmicay@gmail.com</email>
</author>
<published>2013-06-13T21:59:34+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=ec276448708983e506cd2751feb4efedc096b13e'/>
<id>urn:sha1:ec276448708983e506cd2751feb4efedc096b13e</id>
<content type='text'>
</content>
</entry>
<entry>
<title>etc: adb_run_wrapper.sh - fix to clean test (not produce Text File Busy)</title>
<updated>2013-06-01T08:28:58+00:00</updated>
<author>
<name>Young-il Choi</name>
<email>duddlf.choi@samsung.com</email>
</author>
<published>2013-06-01T08:27:05+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=c28c495414d8d5bec83ca4c7e2781c1a7cc8d489'/>
<id>urn:sha1:c28c495414d8d5bec83ca4c7e2781c1a7cc8d489</id>
<content type='text'>
</content>
</entry>
<entry>
<title>etc: adb_run_wrapper argument change</title>
<updated>2013-06-01T08:28:58+00:00</updated>
<author>
<name>Young-il Choi</name>
<email>duddlf.choi@samsung.com</email>
</author>
<published>2013-05-30T00:36:53+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=0521d54ca1e194ba8564f4a000c50b7f708022ba'/>
<id>urn:sha1:0521d54ca1e194ba8564f4a000c50b7f708022ba</id>
<content type='text'>
</content>
</entry>
</feed>
