Join GitHub today
GitHub is home to over 31 million developers working together to host and review code, manage projects, and build software together.
Sign upAdd support for test suites emulated in QEMU #39400
Conversation
rust-highfive
assigned
nikomatsakis
Jan 29, 2017
This comment has been minimized.
This comment has been minimized.
|
(rust_highfive has picked a reviewer for you, use r? to override) |
alexcrichton
force-pushed the
alexcrichton:arm-cross-test
branch
from
e9bd893
to
1747ce2
Jan 29, 2017
This comment has been minimized.
This comment has been minimized.
|
I believe this is ready to land in the sense that tests should pass as-is, but I think we should discuss a bit before landing this. For example I think we should answer questions like:
Curious to hear others' thoughts! cc @rust-lang/tools |
alexcrichton
assigned
brson
and unassigned
nikomatsakis
Jan 29, 2017
alexcrichton
referenced this pull request
Jan 29, 2017
Closed
Run tests for cross-compiled platforms in QEMU #33114
This comment has been minimized.
This comment has been minimized.
|
It would be nice to have big-endian test results, even if they're not blocking / tier-1. |
This comment has been minimized.
This comment has been minimized.
|
Yeah definitely! If I could I'd add a QEMU-emulated builder for basically every platform we support. It's not just a question of desires thought, but also:
We're running quite close to capacity and it took quite awhile to get this image going, so we probably can't add just everything yet. This is what I meant above with (5) of whether we want to add this target, or perhaps another as CI. (e.g. which we'll get the most mileage out of if we're resource constrained) |
This comment has been minimized.
This comment has been minimized.
|
According to Travis we can have 35 concurrent jobs total. We currently have 26, this PR adds one more, and #38847 adds another, bringing the total to 28. (just FYI) |
This comment has been minimized.
This comment has been minimized.
|
Yeah, I get the resource constraints. It's nice that there's still a little headroom. I suggest some big-endian testing because this is a common case where code that otherwise appears platform independent may actually have portability issues. So adding any BE platform to the mix will improve coverage for all of them. In |
This comment has been minimized.
This comment has been minimized.
Yes, please, we had a number of actual issues around type hashes being accidentally different between big- and little-endian platforms, which broke cross-compilation. |
This comment has been minimized.
This comment has been minimized.
|
If the BE platform also disallowed unaligned access, we’d benefit doubly. |
This comment has been minimized.
This comment has been minimized.
|
@bors r+ Looks awesome. Long-term it would be better if all this logic was in cargo-cross or some other tool that others can benefit from. I would not say this automatically makes the platform tier 1. We can have coverage even without offering guarantees. I would like to rework our tier system slightly to decouple from our CI setup - just because we add tests shouldn't mean a platform is automatically in a different support tier. |
This comment has been minimized.
This comment has been minimized.
|
|
alexcrichton commentedJan 29, 2017
This commit adds support to the build system to execute test suites that cannot
run natively but can instead run inside of a QEMU emulator. A proof-of-concept
builder was added for the
arm-unknown-linux-gnueabihftarget to show off howthis might work.
In general the architecture is to have a server running inside of the emulator
which a local client connects to. The protocol between the server/client
supports compiling tests on the host and running them on the target inside the
emulator.
Closes #33114