Re: Code Coverage on Phabricator

2019-01-21 Thread mcastelluccio
Of course, sorry for the weird formatting... Here is the right version:

Hi everyone,
We have recently implemented a solution to integrate code coverage
results into Phabricator.

Coverage information is uploaded either automatically for revisions
after they are landed in mozilla-central (for example for release
managers when looking at uplift requests), or on-demand for in-progress
revisions.

For revisions under review, in order to upload coverage you just need to
trigger a try push containing code coverage builds and tests, e.g. by using:
$ mach try fuzzy --full
and selecting the relevant ccov builds and test suites. In the future,
we will also likely automatically trigger coverage try builds for
revisions we deem to be risky, alongside the on-demand option.

For example you can see my try
build at 
https://treeherder.mozilla.org/#/jobs?repo=try=38213b49dc00cd108dfa9a246045ed677c34de91
which produced the coverage information for my revision at 
https://phabricator.services.mozilla.com/D14758.

Once the try build and linked tests finish, the coverage artifacts get
parsed and uploaded to the Phabricator revisions corresponding to the
commits in the try push. The analysis works on *all* commits in the try
push that are linked to Phabricator revisions. Stacks of revisions are
supported as well.

The coverage information is shown on Phabricator both at a high-level
view, in the "Revision Contents" section, and at a detailed view in the
"Diff" section.

The "Revision Contents" section contains a list of the files modified by
the revision, showing both the coverage percentage of the whole file and
the coverage percentage of touched lines.

The "Diff" section instead shows the coverage line per line, coloring
the bar on the right-hand side. Orange corresponds to "uncovered lines",
light blue corresponds to "non-executable lines" (e.g. a comment, a
definition, and so on), dark blue corresponds to "covered lines".
When hovering the bar, the corresponding line is highlighted in the same color.

You can find an alternative version of this email with fancy screenshots
at https://marco-c.github.io/2019/01/21/code-coverage-phabricator.html
or 
https://release.mozilla.org/tooling/codecoverage/2019/01/20/code-coverage-on-phabricator.html.

Thanks,
Marco. 
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: Update on rustc/clang goodness

2018-05-30 Thread mcastelluccio
We've also been running Windows code coverage builds with clang on CI for a 
while (since December), with almost all tests.

- Marco.


On Friday, May 11, 2018 at 2:35:57 AM UTC+2, Anthony Jones wrote:
> You may already know that the Low-Level Tools team support important tools 
> and code infrastructure. Lately we’ve also been improving our rustc/clang 
> (LLVM) story and I’d like bring everyone up to date.
> 
> There are a lot of important and interesting things going on:
> 
> * Michael Woerister and Nathan Froyd recently (mid-March) enabled Rust 
> incremental compilation for Firefox developers
> * Michael is experimenting with cross language inlining[1] (rustc/clang) 
> using LTO
> * Preliminary results show compiling LLVM with clang and using LTO on 
> rustc improves stylo compilation time by around 15% [on-my-machine 
> measurements]
> * LTO requires more work to support Firefox
> * Nick Nethercote has started speeding up rustc[2] and has already had a 
> number of wins
> * David Major has got Windows clang builds working with green tests
> * LTO is still buggy (but works well enough to run benchmarks) and 
> PGO won’t run on Windows
> * Win32 - clang with LTO w/o PGO is marginally faster than MSVC with 
> LTO/PGO
> * Win64 - clang with LTO w/o PGO is ~5-10% slower than MSVC with 
> LTO/PGO
> * Windows users can build locally with clang[3]
> * Mike Hommey is tracking improvements and regressions in the Rust 
> compiler (performance regression[4], crash reporting[5] and more crash 
> reporting[6])
> * Tom Tromey is continuing to work on first class Rust support in GDB and 
> LLDB
> 
> Note: this a summary of things rustc/clang stuff that is happening only.
> 
> Ultimately, I’d like to see us standardise on clang on all platforms because 
> it makes Rust/C++ integration better as well as making things simpler for 
> developers and build system maintainers. We’ll get more done if we make our 
> own lives simpler.
> 
> I have some specific requests for you:
> 
> Let me know if you have specific Firefox related cases where Rust is 
> slowing you down (thanks Jeff [7])
> Cross language inlining is coming - avoid duplication between Rust and 
> C++ in the name of performance 
> Do developer builds with clang
> 
> Anthony
> 
> [1] https://github.com/rust-lang/rust/issues/49879
> [2] 
> https://blog.mozilla.org/nnethercote/2018/04/30/how-to-speed-up-the-rust-compiler-in-2018/
> [3] 
> https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Build_Instructions/Building_Firefox_on_Windows_with_clang-cl
> [4] https://github.com/rust-lang/rust/issues/49873
> [5] https://bugzilla.mozilla.org/show_bug.cgi?id=1456150
> [6] https://bugzilla.mozilla.org/show_bug.cgi?id=1448868
> [7] https://github.com/rust-lang/rust/issues/50584

___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: nsAutoConfig

2017-11-01 Thread mcastelluccio
Hey Mike,
according to our code coverage report, nsAutoConfig is never executed during 
tests.

As far as I can see, it is actually not tested, as the test you mentioned is 
not setting the autoadmin.global_config_url pref that would make nsReadConfig 
instantiate nsAutoConfig. Is that correct?

I'd like to understand whether this is a problem in our coverage collection 
tools that are not picking up this file for some reason or if it actually is 
not tested. I've opened https://bugzilla.mozilla.org/show_bug.cgi?id=1413600.

- Marco.

On Tuesday, October 31, 2017 at 4:22:06 PM UTC+1, mka...@mozilla.com wrote:
> On Tuesday, October 31, 2017 at 12:10:21 AM UTC-5, Nicholas Nethercote wrote:
> > Hi,
> > 
> > I was just looking at the extensions/pref/autoconfig/ directory and trying
> > to understand what it does.
> > 
> > As far as I can tell, the code is there to allow custom deployments with
> > particular prefs set, as described at
> > https://developer.mozilla.org/en-US/Firefox/Enterprise_deployment#Configuration
> > 
> > It's initialized by modules/libpref/Preferences.cpp if a
> > "general.config.filename" pref is found:
> > http://searchfox.org/mozilla-central/rev/1ebd2eff44617df3b82eea7d2f3ca1b60cc591a0/modules/libpref/Preferences.cpp#3907-3920
> > 
> > There is also some MozHarness code relating to it here:
> > http://searchfox.org/mozilla-central/source/testing/mozharness/mozharness/mozilla/firefox/autoconfig.py
> > 
> > Just to check: is this still supported functionality?
> > 
> > Thanks.
> > 
> > Nick
> 
> Yes, this is very much supported functionality. It is our primary means of 
> enterprise customization right now.
> 
> The reason there are very few tests is because when it was first developed, 
> it wasn't possible to write tests that involved putting down files before 
> startup. There are some tests now:
> 
> http://searchfox.org/mozilla-central/source/extensions/pref/autoconfig/test/unit
> 
> Mike Kaply

___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: Presto: Comparing Firefox performance with other browsers (and e10s with non-e10s)

2016-02-11 Thread mcastelluccio
It would be interesting to know the specifications of the system running the 
tests and to run them on systems with differing characteristics (e.g. different 
graphics card, different amount of RAM, etc.).

- Marco.
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform