On Wed, Nov 16, 2016, at 03:27 AM, lgrat...@gmail.com wrote:
> Hello,
> 
> *I posted this on multiple mailing lists, I'm not sure which is the right
> place for these questions.

Hi Gratian,

Finding the right communication channel always feels like a problem at
Mozilla. :) dev-builds is a fine venue for this discussion.

> I'm a developer on the Microsoft Visual C++ compiler (code optimizer) and
> I'm looking into extending our test suite with popular open-source
> projects. This helps  us to find bugs earlier, ensuring that these
> projects are not broken by frontend or backend changes. It also helps the
> projects themselves, by making upgrades to the never compiler easier -
> ideally without any problems. 

This sounds great! We always struggle with updating to a new toolchain,
whether with compiler bugs or issues in our codebase surfaced by
correctness fixes in the compiler.  For example, here's the dependency
tree of bugs we fixed that are marked as blocking our "Support Visual
C++ 2015" bug:
https://bugzilla.mozilla.org/showdependencytree.cgi?id=1119082&hide_resolved=0

> I have several questions about building Firefox on Windows and especially
> about running the correctness tests:
> 
> 1. What is the latest version of Visual Studio that should be used? I
> tried first VS2015 Update 3 and there seems to be a C++ error about
> "constexpr". Next I tried Update 2 and that one finishes the build.

We are using VS2015u3 for our builds in automation currently, so it
should work:
https://dxr.mozilla.org/mozilla-central/rev/79feeed4293336089590320a9f30a813fade8e3c/browser/config/tooltool-manifests/win32/releng.manifest#32

Are you building from the mozilla-central repository (our development
repository) or something else?

> 2. What are the tests that should be run to test correctness? The idea
> here is to ensure that new optimizations don't introduce new bugs, which
> should be exposed by new test failures in Firefox. I looked over the QA
> Automated testing page and there seem to be a lot of different test
> suites - running all is probably not feasible. Is there a subset that is
> run when a checkin is done, for example?

We run a lot of tests on every Firefox checkin. Here are all the Windows
build and test jobs from an arbitrary recent mozilla-central revision:
https://treeherder.mozilla.org/#/jobs?repo=mozilla-central&revision=f8ba9c9b401f57b0047ddd6932cb830190865b38&filter-searchStr=Windows

The secret decoder key for all those letters is here (I'm not sure if
it's fully kept up-to-date):
https://treeherder.mozilla.org/userguide.html

We do have an elaborate system that tries not to run every single test
on every single checkin, but toolchain changes have a way of showing up
as test failures in very strange places, especially with things like our
PGO builds. (Ask me sometime about debugging an issue that showed up
when I turned on PGO in the Firefox 3 release cycle...) That being said,
if you were going to run any tests I would probably recommend some of
the Mochitest test suites, since they launch a browser and run a lot of
HTML+JS, which exercises a good amount of our code, and the JIT tests,
which exercise the JavaScript engine pretty heavily. The JS team tends
to write more complicated C++ than other groups within Mozilla, so they
also hit a lot of compiler issues.

> 3. What Windows OS do you use for testing? Window 10, Windows 8, etc? Any
> other configuration work needed, such as disabling the
> antivirus/firewall?

I will have to confirm specifics, but we currently run tests on Windows
7 (x86) and Windows 8 (x64), with just a small handful of tests running
on Windows 10 (x64). I'm fairly certain we do a lot of configuration on
our test machines, but I don't have the details handy. We generally
attempt to restrict network access from our test suites so that network
issues do not cause test failures, but we do run multiple servers on
localhost during testing, so at the very least that needs to be enabled.

Note also that we do our builds and tests on separate machines in
automation. Running the tests from a build on the same machine should
work fine, that's what developers do locally, it just doesn't scale well
in automation and we also want to do our builds on Server and run our
tests on a desktop OS.

> After the build completed, I tried to run a few of the tests and there
> seem to be many failures even with a debug build. I assume that the
> checked in tests are supposed to pass, so it's likely a Windows config
> problem or failure to access extra files from the Web. 
>
> For example, ./mach reftests had about 700 failures. ./mach gtest,
> jsapi-tests, jsbrowsertest had none. The tests were run under Windows 10
> Anniversary update with the AV disabled.

Many tests are extremely sensitive to the OS environment, unfortunately.
I don't think we have reftests running in Windows 10, so there's likely
to be issues there due to test expectations. You might have better luck
with them on a Windows 7 machine, which we do run in automation. Some
test suites are not as sensitive. In your case maybe you'd get the best
mileage out of running the JIT tests for now? I don't think there's a
standalone mach command to run them, sadly, but I think `./mach build
js/src/check-jit-test` will run them. You will probably need to add
`ac_add_options --enable-js-shell` to your mozconfig to make that work.

I'd love to get you sorted out, if only for the selfish reasons that you
can fix issues before new versions of VC get released. :)

Regards,
-Ted
_______________________________________________
dev-builds mailing list
dev-builds@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-builds

Reply via email to