Join GitHub today
GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.
Sign upGate PRs on some tests running in an Android emulator on CI #21116
Comments
|
I have now managed to start Servo on emulated ARM with the API level 25 system image, but this was on a Macbook without giving a |
|
|
It turns out this isn’t quite the case! With
… which probably means that this isn’t a supported configuration and that they might not be fixing bugs in it. Some simple programs do run correctly, but Servo gets another startup crash. With an unhelpful stack trace, despite debug mode.
|
|
To get a better backtrace, follow #20912 (comment). |
|
Thanks, though the warning suggests that x86 emulation without KVM is a configuration that is not supported at all and probably buggy (in addition to being very slow), so I don’t know that this lead is worth exploring further. With @larsbergstrom and @edunham we’ve been chatting on IRC about getting servers from https://www.packet.net/bare-metal/servers/ in order to run the emulator with KVM. The same provider is apparently being considered for running GeckoView tests in Android emulators. |
Add a no-op 'android-x86' set of Buildbot steps This seems to exist before we configure Buildbot to look for it. Actual compilation and testing steps will be added once Buildbot is configured to run them. CC #21124, #21116. <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/21162) <!-- Reviewable:end -->
|
Closing this is roughly the same as #21124. |
Add a no-op 'android-x86' set of Buildbot steps This seems to exist before we configure Buildbot to look for it. Actual compilation and testing steps will be added once Buildbot is configured to run them. CC #21124, #21116. <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/21162) <!-- Reviewable:end -->
#21094 adds
./mach test-android-startup, a minimal test based on the Android emulator. A next step (in addition to running more tests, such as a subset of WPT) is to add it somewhere inetc/ci/buildbot_steps.ymlso that PRs need to make it pass before landing.However, the current configuration of
./mach test-android-startupruns an emulator for Android x86. On CI machines, this fails to start with:vmx and svm are other names for Intel VT-x and AMD-V, hardware support for virtualization. It appears that the AWS EC2 host machine is already using this support, so it not available to our already-virtualized guest instance.
On EC2, it appears possible to use VT-x on “bare metal” instance that are not already virtualized. However these only come ridiculously oversized (and so expensive) for this task.
An alternative would be to run those tests on macOS machines from Macstadium, since those run directly of “real” hardware.
Another might be to emulate Android ARM instead of x86. However so far I haven’t managed to start Servo in and ARM emulator because OpenGL ES 3 is required, but only GLES 2 is available in the configurations that I’ve tried.
https://android-developers.googleblog.com/2017/05/android-studio-3-0-canary1.html suggests that Android O (which is API level 26) or more recent is required for GLES3, but the most recent emulator system image available pre-built from Google at this time is API level 25. (https://stackoverflow.com/questions/43017539/cant-find-android-8-0-oreo-api-26-arm-system-images asks the same, https://developer.android.com/about/versions/oreo/android-8.0-migration mentions Intel x86 Atom System Image specifically.)
CC @jdm