TestEngineering/Performance/Talos/Development

Environment

 Warning: Talos currently requires Python 2.7

Prerequisites: Local clone of mozilla-central and a successful mozilla-central Firefox build completed.

On Linux, setuptools installed:

 apt-get install python-setuptools

Not required on Windows. For other operating systems see setuptools.

On Linux, virtualenv installed:

 pip install virtualenv

Not required on Windows. For other operating systems see virtualenv.

Setup Talos (linux):

 cd mozilla-central/testing/talos
 virtualenv .
 . bin/activate
 python setup.py develop

Setup talos (Windows with mozilla-build):

 cd mozilla-central/testing/talos
 python INSTALL.py  # only required once or after updating mozilla-build
 source Scripts/activate  # you can also use '.' (dot) instead of 'source'

Testing your patch locally

Testing locally involves running some subset of the Talos tests on desktop and possibly mobile. Obviously not all permutations of tests and the ways of running them can be tried, so common sense should be used as to what is run. You may also want to run the Talos unittests.

You should tailor your choice of tests to pick those that cover what you've changed programmatically, but in general you should probably run at least one startup test and one pageloader test. A good baseline might be the 'tresize' and 'tsvgx' test suites.

Run the tests from mozilla-central/testing/talos (with the venv activated, as noted above):

 talos --develop --executablePath pathtofirefox --activeTests tart

The --develop option indicates to run in develop mode and store the results in local.json + local.out.

The --executablePath option tells Talos where the firefox installation we want to run is located (i.e. '~/mozilla/objdir/dist/bin/firefox' or whatever the full path is to your firefox executable that will be running the tests).

The --activeTests argument provides a list of tests we want to run (if running multiple tests, separate each test name with ':').

For a list of complete options:

 talos --help

Testing your patch on try

Just push your Talos patch to the try server. See TestEngineering/Performance/Talos/Running#Try_server.