← Back to team overview

canonical-ci-engineering team mailing list archive

Re: Scaling out the emulator

 

Heya,

On 16 December 2013 17:51, Evan Dandrea <evan.dandrea@xxxxxxxxxxxxx> wrote:
> I had a quick chat with Dmitri today. Running the emulator on
> openstack isn't going to be feasible - it requires hardware access to
> OpenGL. We'd need to pay someone to implement an llvmpipe bridge in
> QEMU.
>
> So the ideal solution would now be building some machines to host
> multiple copies of the emulator. He's going to have a look at spinning
> up multiple copies on the same graphics card and see if any contention
> issues emerge.

So I had a go at this. In essence I did this:

$ cd `mktemp -d`
$ apt-get download android-emulator
$ dpkg-deb -R *.deb .
$ cd usr/share/android/emulator/
$ ./build-emulator-sdcard.sh
$ ./run-emulator.sh

Naturally this can be scaled / optimized better (e.g. run-emulator
supports snapshoting the base image and reverting back to back image,
use headless mode et. al.)
When the images eventually boots they are identifiable by their unique
telnel port:

$ adb devices
List of devices attached
emulator-5554 device
emulator-5556 device

Which can be used as a serial, e.g. "emulator-5554", for "adb" and
"phablet-test-run" and the rest utils.

And clearly i had some stale 5555 as well somewhere.

To actually run the autopilot tests I need to land two ~ one-liners
cherrypicks in the archive first: one in android package and one in
autopilot. I'll work on getting that in today.

I'm now actually pondering if it it will be possible to launch these
in virtual machine, e.g. if we are lucky and what llvmpipe provides
are sufficient gl primitives for the gl translator (it might not be,
given that e.g. even parts of compiz don't can't run on top of
llvmpipe)

-- 
Regards,

Dimitri.


Follow ups

References