66 lines
2.7 KiB
Markdown
66 lines
2.7 KiB
Markdown
|
|
# Testing ART on a model (QEMU or Arm FVP)
|
||
|
|
|
||
|
|
This document describes how to test ART on a model - QEMU or the ARM Fixed Virtual Platform.
|
||
|
|
|
||
|
|
It covers steps on how to build and run an Android system image targeting a model
|
||
|
|
and to use it as a target platform for running ART tests via ADB in chroot mode. The guide
|
||
|
|
covers both QEMU and the ARM Fixed Virtual Platform; the setup is very similar.
|
||
|
|
|
||
|
|
More information on QEMU and Arm FVP could be found in
|
||
|
|
{AOSP}/device/generic/goldfish/fvpbase/README.md.
|
||
|
|
|
||
|
|
One would need two AOSP trees for this setup:
|
||
|
|
- a full stable (tagged) tree - to be used to build AOSP image for the model.
|
||
|
|
- android-13.0.0_r12 was tested successfully to run QEMU:
|
||
|
|
```repo init -u https://android.googlesource.com/platform/manifest -b android-13.0.0_r12```
|
||
|
|
- a full or minimal tree - the one to be tested as part of ART test run.
|
||
|
|
|
||
|
|
## Setting up the QEMU/Arm FVP
|
||
|
|
|
||
|
|
Once a full AOSP tree is downloaded, please follow the instructions in
|
||
|
|
${AOSP}/device/generic/goldfish/fvpbase/README.md; they should cover:
|
||
|
|
- fetching, configuring and building the model.
|
||
|
|
- building AOSP image for it.
|
||
|
|
- launching the model.
|
||
|
|
|
||
|
|
Once the model is started and reachable via adb, ART tests could be run.
|
||
|
|
|
||
|
|
Notes:
|
||
|
|
- fvp_mini lunch target should be used as we don't need graphics to run ART tests.
|
||
|
|
- 'Running the image in QEMU' mentions that a special commit should be checked out for QEMU
|
||
|
|
for GUI runs. Actually it is recommended to use it even for non-GUI runs (fvp_mini).
|
||
|
|
|
||
|
|
### Running the Arm FVP with SVE enabled
|
||
|
|
|
||
|
|
To test SVE on Arm FVP, one extra step is needed when following the instructions above;
|
||
|
|
for QEMU run this is not needed. When launching the model some extra cmdline options should
|
||
|
|
be provided for 'run_model':
|
||
|
|
|
||
|
|
```
|
||
|
|
export SVE_PLUGIN=${MODEL_PATH}/plugins/<os_and_toolchain>/ScalableVectorExtension.so
|
||
|
|
$ ./device/generic/goldfish/fvpbase/run_model --plugin ${SVE_PLUGIN} -C SVE.ScalableVectorExtension.veclen=2
|
||
|
|
```
|
||
|
|
|
||
|
|
Note: SVE vector length is passed in units of 64-bit blocks. So "2" would stand
|
||
|
|
for 128-bit vector length.
|
||
|
|
|
||
|
|
## Running ART test
|
||
|
|
|
||
|
|
QEMU/FVP behaves as a regular adb device so running ART tests is possible using
|
||
|
|
the standard chroot method described in test/README.chroot.md with an additional step,
|
||
|
|
described below. A separate AOSP tree (not the one used for the model itself), should
|
||
|
|
be used - full or minimal.
|
||
|
|
|
||
|
|
Then the regular ART testing routine should be performed; the regular "lunch"
|
||
|
|
target ("armv8" and other targets, not "fvp-eng").
|
||
|
|
|
||
|
|
```
|
||
|
|
# Config the test run for QEMU/FVP.
|
||
|
|
export ART_TEST_RUN_ON_ARM_FVP=true
|
||
|
|
|
||
|
|
# Build, sync ART tests to the model and run, see test/README.chroot.md.
|
||
|
|
```
|
||
|
|
|
||
|
|
Note: ART scripts only support one adb device at a time. If you have other adb devices
|
||
|
|
connected, use `export ANDROID_SERIAL=localhost:5555` to run scripts on QEMU/FVP."
|