You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[android] run a subset of lldb tests on arm64 (#157)
## Purpose
Enable a small subset of lldb tests to run on Android `arm64-v8a`
emulator for better test coverage.
Resolves#161
## Overview
* Rework the test matrix in the `test-android` job to include a single
`arm64-v8a` instance that runs tests from a subset of lldb test
directories (android, api, linux, and sanity).
* Add `emulator-build` field to test matrix so that the `arm64-v8a`
variant can select version 35.1.21.0 (build_id 12325540), which supports
arm images. Leave this field unspecified in the `x86_64` jobs because
they don't need it.
* Add `emulator-options` field to test matrix inputs and specify `-qemu
-machine virt -cpu max` options. Leave this field unspecified in the
`x86_64` jobs because they don't need it.
* Rename `api-level` matrix field to `android-api-level` for clarity.
* Pass `-gpu swiftshader_indirect` argument to all emulator instances
(arm and x86). This shouldn't really matter since we're running headless
tests anyway.
* Split the `processor` matrix field and into two fields: `arch` and
`llvm-arch`. For `x86_64`, these fields are set to the same value. For
`arm64-v8a`, the `llvm-arch` field is set to `aarch64` which is the
value expected by the lldb test suite.
* Add an upstream test exclusion list for the test cases that fail
running lldb-server on arm64 Android.
* Add a ds2 test exclusion list for the test cases that fail running ds2
on arm64 Android (that don't fail with lldb-server).
## Background
By using a slightly outdated version of the Android emulator (see
https://issuetracker.google.com/u/1/issues/373790939) and passing some
extra flags to qemu (-machine virt, -cpu max), it is possible to run an
Android arm64-v8a guest on an x86_64 host on an GitHub runner.
Because a qemu arm guest running on an x86_64 host uses software
emulation instead of virtualization, we'll limit the number of tests
that run to keep the job run time down.
Passing the `-machine virt` argument to qemu selects the generic virtual
hardware platform described
[here](https://www.qemu.org/docs/master/system/arm/virt.html).
Passing the `-cpu max` argument to qemu selects the best emulated cpu
option available.
## Validation
Verified the job runs and passes on this PR. Job run time is ~5 min,
which is briefer than the longest x86_64 test job which takes ~8 min.
0 commit comments