The Android test environments used for continuous integration have been
through many changes over the last year or two; here's a review of what we
have today. [1]

Most of our Android tests run on emulators. Some run on hardware: real
phones.

Our Android hardware tests run on physical devices -- Motorola G5 and Pixel
2 phones currently -- and those phones are physically managed by bitbar, a
device farm provider. These test platforms appear on treeherder as "Android
7.0 MotoG5" and "Android 8.0 Pixel2".  Running tests on hardware is
relatively expensive so we make deliberate choices about which tests run on
hardware. All of our performance (raptor) tests, architecture-sensitive
tests like jittest and jsreftest, and select tests requiring special
capabilities run on hardware.

All other tests -- web-platform tests, most mochitests, reftests, xpcshell
tests, etc -- run on emulators. The emulator test platform appears on
treeherder as "Android 7.0 x86-64". These tests run in the Android x86_64
emulator on a Linux host. Unlike previous generations of our emulator test
environment, today's emulator tests are fast: Thanks to hardware
acceleration, tests run at about the same rate as they do on our desktop
platforms.

The Android tests running on trunk today are testing geckoview apps (Fennec
tests continue to run on the esr68 branch). Most raptor tests run in the
geckoview_example app; additional raptor tests run in Fenix and the
Reference Browser; most other tests run in the geckoview test app.

Both emulator and hardware tests have a fixed pool of instances: Regardless
of load, we can only run N emulator tasks, or M hardware tasks at a time.
Release Engineering Operations monitors backlog for both pools, but
temporary backlogs are expected and tolerated.

Since our hardware testing capacity is particularly limited, to run Android
hardware tests on try, you must use the --full option with 'mach try fuzzy'
[2]. For instance, you can see the available tests with 'mach try fuzzy
--no-push --full --query "android-hw"' and you could run android-hw
mochitest-media tests with 'mach try fuzzy --full --query "android-hw
mochitest-media"'.

There are no similar restrictions on try runs for emulator tests -- but
please use responsibly!


[1]
https://treeherder.mozilla.org/#/jobs?repo=mozilla-central&searchStr=android%2Ctest
[2] https://firefox-source-docs.mozilla.org/tools/try/selectors/fuzzy.html
_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform

Reply via email to