rust/src/etc
bors ad1461efb9 Auto merge of #41575 - alexcrichton:android-qemu-server, r=TimNN
travis: Parallelize tests on Android

Currently our slowest test suite on android, run-pass, takes over 5 times longer
than the x86_64 component (~400 -> ~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 toos 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 hopefully 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 5 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. Thankfull that test suite is much smaller than the run-pass test
suite.
2017-04-28 16:10:08 +00:00
..
installer rustbuild: Start building --enable-extended 2017-01-24 14:48:03 -08:00
natvis Remove non-breaking spaces 2017-04-17 17:49:35 +01:00
platform-intrinsics Auto merge of #38561 - nagisa:rdrandseed, r=alexcrichton 2017-02-14 01:26:10 +00:00
test-float-parse Remove unused code 2016-09-17 23:07:11 -07:00
third-party Strip all leading/trailing newlines 2015-03-15 09:08:21 -07:00
char_private.py Reduce a table used for Debug impl of str. 2017-04-05 09:13:19 -07:00
CONFIGS.md Add sublime-rust to CONFIGS.md. 2016-08-22 01:24:01 -04:00
ctags.rust Update the ctags rules and targets. 2015-07-30 06:35:42 +10:00
debugger_pretty_printers_common.py Add pretty printing of unions in debuggers 2017-01-01 19:34:06 +10:00
dec2flt_table.py Speed up dec2flt fast path with additional tables. 2016-01-12 22:25:16 +01:00
gdb_load_rust_pretty_printers.py debuginfo: Add a rust-gdb shell script that will start GDB with Rust pretty printers enabled. 2014-12-30 17:26:13 +01:00
gdb_rust_pretty_printing.py modern style classes 2016-09-17 23:09:21 -07:00
generate-deriving-span-tests.py rustc: rework stability to be on-demand for type-directed lookup. 2016-11-28 04:18:11 +02:00
generate-keyword-tests.py Fix keyword parsing tests 2016-04-24 21:35:50 +03:00
htmldocck.py print enum variant fields in docs 2016-05-30 16:11:53 +02:00
indenter Port indenter to python 2015-01-16 08:49:54 -08:00
lldb_batchmode.py pep8 prefers triple quoted with double quotes 2016-09-17 23:05:20 -07:00
lldb_rust_formatters.py Add pretty printing of unions in debuggers 2017-01-01 19:34:06 +10:00
make-win-dist.py windows: Copy libwinpthread-1.dll into libdir bin 2017-04-26 18:35:01 -07:00
rust-gdb Rename environment variable GDB_CMD to RUST_GDB to prevent ambiguity 2017-04-20 11:20:33 -04:00
rust-lldb Make rust-lldb warn about unsupported versions of LLDB 2016-07-04 19:37:36 -04:00
rust-windbg.cmd Adds rust-windbg.cmd script 2017-04-24 16:26:00 -07:00
sugarise-doc-comments.py Fix PEP8 in sugarise-doc-comments 2015-01-27 01:26:02 -08:00
unicode.py Reduce the size of static data in std_unicode::tables. 2017-01-03 08:28:58 +01:00
ziggurat_tables.py std: Move rand to librand. 2014-03-12 11:31:05 +11:00