2018-05-16 16:52 GMT+02:00 Andrew Halberstadt <ahalberst...@mozilla.com>:
> tl;dr - You can now set prefs and install extensions across multiple > harnesses by modifying the relevant profile under testing/profiles. > > This is GREAT! Thanks for doing it! > If you previously would have set a pref in: > testing/profiles/prefs_general.js, > > Use this instead: > testing/profiles/unittest/user.js > > > # Overview > > I'm currently in the process of consolidating prefs and extensions > across all our test harnesses into a single shared location > (testing/profiles > <https://searchfox.org/mozilla-central/source/testing/profiles>). If you > navigate there you'll find several different > "profile-like" directories. > > Each profile directory has a user.js file for setting prefs, and an > extensions dir for dropping in extensions. I call these directories > "profile-like" because they only currently support prefs and > extensions. Don't expect to be able to add other profile-related > files (though if there's a need, support for other kinds of profile > data can be implemented). > > You'll also find a 'profiles.json' file, and a 'profile' utility script. > The > JSON file is used to map test suites to a list of profile directories to > apply. For example, mochitest uses the 'common' and 'unittest' > profiles in that order. Prefs from the latter profiles will overwrite > prefs from the earlier ones. This means you can either set prefs for > a single harness (e.g by adding them to the latter profile), or set > prefs across all harnesses at the same time (e.g by adding them > to the 'common' profile). Same goes for extensions. > > Because prefs are split across multiple directories, and those > directories can overwrite one another, the 'profile' utility script can > help you view and compare the contents of a profile. For example: > > $ cd testing/profiles > $ ./profile show mochitest # dumps all prefs that mochitest will use > > You can also diff profiles or sort preference files alphabetically: > > $ ./profile diff mochitest talos > $ ./profile sort mochitest > > In the future, I may add a command to automatically set preferences > in a given list of suites. > > > # Motivations > > One great use case is testing the impact prefs and extensions have > on our performance (and unittests). Simply drop an extension into > testing/profiles/common/extensions and push to try. It will be > installed in all of our harnesses (that use this system), including Talos. > > Another reason for this change is that it provides more visibility into > which prefs are set in which harnesses. We can now diff the prefs set > in various suites to try and reason about whether those differences are > intentional or omissions. > > Lastly, this will make it easier to set prefs. No more hunting around > the tree looking for preference files. This will help prevent cases > where a pref was accidentally omitted from a test harness. > > > # Further Work > > I'm in the middle of migrating harnesses over to this new system. > Notably, reftest and xpcshell have not yet been converted, though > hopefully these will be done soon. There is a long tail of smaller > harnesses that I might not have time to get around to however. > > For current support, just look here: > https://searchfox.org/mozilla-central/source/testing/ > profiles/profiles.json > > Here's the relevant bug tree: > https://bugzilla.mozilla.org/showdependencytree.cgi?id= > 1451159&hide_resolved=0 > > Let me know if you have any questions or concerns, > Andrew > > _______________________________________________ > firefox-dev mailing list > firefox-...@mozilla.org > https://mail.mozilla.org/listinfo/firefox-dev > > _______________________________________________ dev-platform mailing list dev-platform@lists.mozilla.org https://lists.mozilla.org/listinfo/dev-platform