{"action":"closed","issue":{"url":"https://api.github.com/repos/servo/servo/issues/21116","repository_url":"https://api.github.com/repos/servo/servo","labels_url":"https://api.github.com/repos/servo/servo/issues/21116/labels{/name}","comments_url":"https://api.github.com/repos/servo/servo/issues/21116/comments","events_url":"https://api.github.com/repos/servo/servo/issues/21116/events","html_url":"https://github.com/servo/servo/issues/21116","id":337594120,"node_id":"MDU6SXNzdWUzMzc1OTQxMjA=","number":21116,"title":"Gate PRs on some tests running in an Android emulator on CI","user":{"login":"SimonSapin","id":291359,"node_id":"MDQ6VXNlcjI5MTM1OQ==","avatar_url":"https://avatars0.githubusercontent.com/u/291359?v=4","gravatar_id":"","url":"https://api.github.com/users/SimonSapin","html_url":"https://github.com/SimonSapin","followers_url":"https://api.github.com/users/SimonSapin/followers","following_url":"https://api.github.com/users/SimonSapin/following{/other_user}","gists_url":"https://api.github.com/users/SimonSapin/gists{/gist_id}","starred_url":"https://api.github.com/users/SimonSapin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SimonSapin/subscriptions","organizations_url":"https://api.github.com/users/SimonSapin/orgs","repos_url":"https://api.github.com/users/SimonSapin/repos","events_url":"https://api.github.com/users/SimonSapin/events{/privacy}","received_events_url":"https://api.github.com/users/SimonSapin/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":6,"created_at":"2018-07-02T16:58:33Z","updated_at":"2018-07-11T20:03:29Z","closed_at":"2018-07-11T20:03:29Z","author_association":"MEMBER","body":"https://github.com/servo/servo/pull/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 in `etc/ci/buildbot_steps.yml` so that PRs need to make it pass before landing.\r\n\r\nHowever, the current configuration of `./mach test-android-startup` runs an emulator for Android x86. On CI machines, this fails to start with:\r\n\r\n```\r\nemulator: ERROR: x86 emulation currently requires hardware acceleration!\r\nPlease ensure KVM is properly installed and usable.\r\nCPU acceleration status: KVM requires a CPU that supports vmx or svm\r\n```\r\n\r\nvmx 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.\r\n\r\nOn 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.\r\n\r\nAn alternative would be to run those tests on macOS machines from Macstadium, since those run directly of “real” hardware.\r\n\r\nAnother 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.\r\n\r\nhttps://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.)\r\n\r\nCC @jdm"}}
{"actor":{"display_login":"SimonSapin"}}