Граф коммитов

244 Коммитов

Автор SHA1 Сообщение Дата
Andreas Tolfsen 719b4c5e30 Bug 1482829 - Track Marionette logger verbosity with Log#manageLevelFromPref. r=whimboo
This patch adopts Logger#managerLevelFromPref from Log.jsm to set
and keep track of the Marionette logger's verbosity.

This has the advantage that we do not have to roll separate
implementations of Log for the child- and parent processes.  It also
has the upside that the log level will be reflected when changed
at runtime through the use of an observer.
2018-08-17 12:55:33 +01:00
Chris AtLee 182e3f8445 Bug 733530: Use .tar.gz for test archives r=gps
Differential Revision: https://phabricator.services.mozilla.com/D1743

--HG--
extra : moz-landing-system : lando
2018-08-01 16:00:03 +00:00
Bogdan Tara 6eafe1c00b Backed out changeset 9c75cab2e322 (bug 733530) for breaking artifact builds 2018-07-04 14:50:22 +03:00
Chris AtLee 8745339529 Bug 733530: Use .tar.gz for test archives r=gps
Differential Revision: https://phabricator.services.mozilla.com/D1743

--HG--
extra : moz-landing-system : lando
2018-07-03 18:33:02 +00:00
Joel Maher 894c3e47af Bug 1468771 - fix reftest manifest parsing to support test cases with ? in the name. r=ahal
Reftest manifest parsing fails to recognize individual tests with ? in the name.  We missed this as in aou

Tes Plan:

Differential Revision: https://phabricator.services.mozilla.com/D1667
2018-06-18 13:46:27 +00:00
Joel Maher 5b3afd93d3 backout 3 patches (1ee5b2531836, cac593a84f72, 95ccdb87f63f) from bug 1392106 for not fixing font rendering problems.
--HG--
extra : rebase_source : 30b2aa771eeaa978a8e3af18009f22562d764831
2018-05-18 06:40:00 +03:00
Andrew Halberstadt 57cafcba8c Bug 1460912 - [reftest] Use base profiles in reftest r=gbrown
This moves reftest-preferences.js to:
testing/profiles/reftest/user.js

Developers can also now add extensions to:
testing/profiles/reftest/extensions

MozReview-Commit-ID: IVLsT5MWtcJ

--HG--
rename : layout/tools/reftest/reftest-preferences.js => testing/profiles/reftest/user.js
extra : rebase_source : 1725627d439998d92545e0d4693fbb76a266945f
2018-05-07 16:10:29 -04:00
Joel Maher 04ca7ca5ef Bug 1392106 - add a --run-slow mode to reftest to add extra time for win7 font rendering. r=ahal 2018-04-12 13:30:17 -04:00
Andrew Halberstadt 2ce99e8054 Backout hunk from a9c5a53970bf (bug 1451384) which accidentally turned off reftest run-by-manifest, r=me 2018-04-06 11:30:07 -04:00
Matt Woodrow bbc9200a88 Bug 1451384 - Check IsChanged on the old item during merging, since that's the one that might have a deleted frame. r=mstange
This happens when an nsIFrame* that builds an nsDisplayWrapList is deleted, but then the memory is immediately reused for another frame that builds the same type display item, within the same display list.

PreProcessDisplayLists chooses not to descend into the nsDisplayWrapList for the deleted frame, and so mOldItems remains uninitialized for the old sublist.
When adding the new instance, IsChanged returns false, since the pointers are the same, and we're checking HasDeletedFrame on the new instance (where it's never true), instead of the old. We then recurse into MergeDisplayLists, with an uninitialized mOldItems array, and crash.

I haven't added a test because I haven't yet figured out how to create a minimal testcase, and the test would rely on implementation details of the frame allocator to remain unchanged to be useful.

MozReview-Commit-ID: pHimEvfAND

--HG--
extra : rebase_source : 10baa8cabf1eca8d592f2be0eb7bc7c9461f9785
2018-04-05 12:20:32 +12:00
Geoff Brown a3f200f8ab Bug 1442727 - Use symbols path correctly for Android reftests; r=jmaher 2018-03-05 08:33:51 -07:00
Andrew Halberstadt 608b69a9a4 Bug 1353461 - [reftest] Implement run-by-manifest for reftest, r=jmaher
Run-by-manifest is a mode where we restart Firefox between every manifest of
tests. It sacrifices a little bit of runtime for better test isolation and
improved stability.

This turns run-by-manifest on for all platforms except Android. It also skips
jsreftests and crashtests for now (mostly to limit the scope of what was
landing all at once). Follow-ups will be filed to get it turned on in those
places.

MozReview-Commit-ID: DmvozAIPE5Q

--HG--
extra : rebase_source : 67470894a7aa0b3189380a4874495395401909bb
2018-02-08 16:16:34 -05:00
Andrew Halberstadt 463bd10a62 Bug 1353461 - [reftest] remove the start-after-crash feature, r=jmaher
The point of start-after-crash was to resume running tests after a crash so we
don't miss out on test coverage when a crash happens. Now that we're close to
landing run-by-manifest, this feature is as necessary since only tests that
appear later in the same manifest as the crashing test will be skipped.

Another reason to remove it, is that it's current implementation is buggy. It
assumes tests have a unique ID (they don't), which means we could accidentally
get into an infinite loop if the wrong test happens to crash at the wrong time.

A third reason to remove it is that it adds a lot of complexity to the harness.
Especially now with run-by-manifest, supporting both would require handling a
lot of different edge cases and make things much more complicated than the
already are.

All that being said, it would still provide value. Not only would it allow us
to resume tests in the same manifest, but run-by-manifest isn't yet enabled on
Android, jsreftest or crashtest (though we hope to get it enabled in those
places in the future). So it may be worth re-implementing start-after-crash
again based on the new manifest parsing mechanism that run-by-manifest uses. It
should be possible to implement it a lot more cleanly now. This work will have
to be left to a follow-up.

MozReview-Commit-ID: P2hh5VecKW

--HG--
extra : rebase_source : 809d5103b8d513c709aa950b102d3efee28fb205
2018-02-05 14:24:49 -05:00
Andrew Halberstadt adbe589f59 Bug 1353461 - [manifestparser] Implement a chunk_by_manifest algorithm, r=jmaher
This implements a chunk_by_manifest algorithm. It is similar to chunk_by_slice
in that it tries to make an even number of tests run in each chunk. However,
unlike chunk_by_slice it will guarantee that tests in the same manifest will
all run in the same chunk. This makes it suitable to use with run-by-manifest.

This means the chunks won't be perfect (as manifests are differnet sizes). It
is also prone to more randomization, similar to chunk-by-runtime.

In fact, this algorithm is nearly identical to the chunk-by-runtime one, so it
was refactored out to a base class.

MozReview-Commit-ID: HI2ByxW0i8V

--HG--
extra : rebase_source : e066c034b85222d26bafe6873a80366d5bd9df9e
2018-02-13 15:16:37 -05:00
Andrew Halberstadt 36e355c6d8 Bug 1392391 - [reftest] Perform chunking with manifestparser, r=jmaher
This replaces reftest's homebrewed chunking algorithm with the one that
all the other test harnesses use in manifestparser.

For now Android will continue to use the reftest based algorithm.

MozReview-Commit-ID: AfUBmQpx3Zz

--HG--
extra : rebase_source : ddc93e7f04e133668a98f050259559a58ff9923c
2018-01-25 17:46:46 -05:00
Andrew Halberstadt 2faf25828e Bug 1392391 - [reftest] Pre-parse the manifests in a separate Firefox instance, r=jmaher
Instead of parsing the manifests and running the tests all in one go, this will
spawn an extra Firefox instance at the beginning that does nothing but parse the
manifest and dump them to a file.

This will allow the python harness to load and manipulate the test objects, before
sending them back to the JS harness as a list of tests to run. The main motivation
for this change is to implement run-by-manifest, a mode where we restart the
browser in between every test manifest. But there are other benefits as well, like
sharing the chunking logic used by other harnesses and the ability for the python
harness to stuff arbitrary metadata into the test objects.

For now, Android will continue to parse the manifests and run the tests all in one
go. Converting Android to this new mechanism will be left to a follow-up bug.


MozReview-Commit-ID: AfUBmQpx3Zz

--HG--
extra : rebase_source : 82e611e8795150daf01d791ea16517ec1ffb2896
2018-02-01 14:18:00 -05:00
Gurzau Raul 9c39f70c0f Backed out 5 changesets (bug 1392391) for frequently failing jsreftests on Android. a=backout
Backed out changeset 50df56a0cebf (bug 1392391)
Backed out changeset 406806a088d5 (bug 1392391)
Backed out changeset 6bd3abc55ea8 (bug 1392391)
Backed out changeset 846d50ea8403 (bug 1392391)
Backed out changeset b9e9374af9a1 (bug 1392391)
2018-02-07 02:20:38 +02:00
Andrew Halberstadt c7970b0b86 Bug 1392391 - [reftest] Perform chunking with manifestparser, r=jmaher
This replaces reftest's homebrewed chunking algorithm with the one that
all the other test harnesses use in manifestparser.

For now Android will continue to use the reftest based algorithm.

MozReview-Commit-ID: AfUBmQpx3Zz

--HG--
extra : rebase_source : cb513d1b3a54ddeb95ce5861d858aad4492de2a6
2018-01-25 17:46:46 -05:00
Andrew Halberstadt 00015fe0a8 Bug 1392391 - [reftest] Pre-parse the manifests in a separate Firefox instance, r=jmaher
Instead of parsing the manifests and running the tests all in one go, this will
spawn an extra Firefox instance at the beginning that does nothing but parse the
manifest and dump them to a file.

This will allow the python harness to load and manipulate the test objects, before
sending them back to the JS harness as a list of tests to run. The main motivation
for this change is to implement run-by-manifest, a mode where we restart the
browser in between every test manifest. But there are other benefits as well, like
sharing the chunking logic used by other harnesses and the ability for the python
harness to stuff arbitrary metadata into the test objects.

For now, Android will continue to parse the manifests and run the tests all in one
go. Converting Android to this new mechanism will be left to a follow-up bug.


MozReview-Commit-ID: AfUBmQpx3Zz

--HG--
extra : rebase_source : 955966c07bb650946c7c0e5706856f028335e850
2018-02-01 14:18:00 -05:00
Andrew Halberstadt f354075c7a Bug 1434430 - [flake8] Fix blank 'except' statements r=rwood
This is a new issue that gets linted with flake8 3.5.0. Basically you should
never use a blank except: statement.

This will catch all exceptions, including KeyboardInterrupt and SystemExit
(which is likely not intended). If a catch all is needed, use
`except: Exception`.  If you *really* mean to also catch KeyboardInterrupt et
al, use `except: BaseException`.

Of course, being specific is often better than a catch all.

MozReview-Commit-ID: FKx80MLO4RN

--HG--
extra : rebase_source : 7c74a7d0d81f2c984b47aff3a0ee3448b791177b
2018-01-31 14:32:08 -05:00
Geoff Brown b3a5f2f49c Bug 1434123 - Enable marionette trace log for reftests; r=whimboo
This should only add a little more logging on application startup. I am
hoping it will aid diagnosis of reftest startup hangs.
2018-01-30 17:45:59 -07:00
Andreas Tolfsen 7bcc9c5128 Bug 1434219 - Use current Marionette prefs in reftest harness. r=gbrown
The marionette.defaultPrefs.port and marionette.logging preferences
have been deprecated for some time.  We want to move the reftest
harness to use marionette.port and marionette.log.level.

All officially recognised preferences are listed in
testing/marionette/prefs/marionette.js.

MozReview-Commit-ID: H1MHO7Iik4X

--HG--
extra : rebase_source : 883ee2eed272f1a64015cbaaebcfa5dbb45d91bf
2018-01-30 14:01:58 +00:00
Cosmin Sabou 81a8319b46 Merge mozilla-central to autoland. r=merge a=merge on a CLOSED TREE
--HG--
rename : dom/xul/templates/nsXULSortService.cpp => dom/xul/nsXULSortService.cpp
2018-01-03 23:59:59 +02:00
Geoff Brown 8e192994f8 Bug 1423771 - Suppress error when no reftests verified; r=jmaher
There are some edge cases in test verification where mozharness requests
reftest verification of a non-reftest. In this case, it is best for the
reftest harness to figure out that the requested file is not a test,
do no work and exit cleanly without complaint.
2018-01-03 09:29:32 -07:00
Andrew Halberstadt 5b6ee32372 Bug 1421799 - [reftest] Log 'GECKO(<pid>)' instead of 'ProcessReader' for process_output log actions r=gbrown
MozReview-Commit-ID: FsKg5Gtwx9Z

--HG--
extra : rebase_source : 9b29b44fcec93ade12bc7147a04226a234f1d730
2017-12-06 14:11:55 -05:00
Sebastian Hengst e6dbbae0aa Backed out 5 changesets (bug 1421799) for failing firefox ui functional tests. r=backout on a CLOSED TREE
Backed out changeset f9f32474fdaf (bug 1421799)
Backed out changeset 18b4fa241936 (bug 1421799)
Backed out changeset 88dca5c8cfac (bug 1421799)
Backed out changeset 8c1f1ab754a5 (bug 1421799)
Backed out changeset e028f677bc80 (bug 1421799)
2018-01-03 20:21:28 +02:00
Andrew Halberstadt 0b44c941df Bug 1421799 - [reftest] Log 'GECKO(<pid>)' instead of 'ProcessReader' for process_output log actions r=gbrown
MozReview-Commit-ID: FsKg5Gtwx9Z

--HG--
extra : rebase_source : 0b012271e1673b641c4514714f0ab68b42d2bd0d
2017-12-06 14:11:55 -05:00
Dorel Luca 61983e9ada Backed out 5 changesets (bug 1421799) for failing browser-chrome on Linux and OSX and for failing autophone-mochitest on Android r=backout on a CLOSED TREE
Backed out changeset 7fb20bced076 (bug 1421799)
Backed out changeset 629e467a07be (bug 1421799)
Backed out changeset 2de335c0287a (bug 1421799)
Backed out changeset afe14ec646ab (bug 1421799)
Backed out changeset bbe4d2292f86 (bug 1421799)
2017-12-14 15:41:22 +02:00
Andrew Halberstadt b59244590b Bug 1421799 - [reftest] Log 'GECKO(<pid>)' instead of 'ProcessReader' for process_output log actions r=gbrown
MozReview-Commit-ID: FsKg5Gtwx9Z

--HG--
extra : rebase_source : 3bb118c510be08bb8716d553beeae09c7d60d82b
2017-12-06 14:11:55 -05:00
Andrew Halberstadt 3e46924759 Bug 1209463 - [test] Use a common logger across suites from |mach test| and other test commands, r=gbrown
In order for |mach test| and |mach mochitest| to log an overall summary,
every test harness invocation they make needs to use the same structured
logger (otherwise the affected suite will be missing from the summary).

MozReview-Commit-ID: 8LJw7r8SItk

--HG--
extra : rebase_source : 1417dce3817bae94ad61a5250065c6cbc35857e4
2017-11-23 13:04:19 -05:00
Andrew Halberstadt 7f664cfdaf Bug 1209463 - [test] Log suite names in test harnesses, r=gbrown
Suite names are currently only used by formatters to print out
an overall summary from |mach test| and |mach mochitest|. So
this doesn't need to be exact and can be tweaked further at a
later date.

If multiple test invocations have the same suite name, their
results will be merged in the overall summary. If a suite name
is missing, the summary will contain a placeholder name.

MozReview-Commit-ID: K1xpb9hUQRX

--HG--
extra : rebase_source : cc8cc8b36255d939dd5dffd3c5444c34951ac8e2
2017-11-27 17:20:06 -05:00
Geoff Brown 5b5cebded9 Bug 1414063 - Follow-up for lint errors 2017-11-03 12:16:09 -06:00
Geoff Brown 8538ff6458 Bug 1414063 - Increase mochitest/reftest default output timeout to 370 seconds; r=jmaher 2017-11-03 12:08:29 -06:00
Henrik Skupin e3c38148be Bug 1411913 - Enable Marionette trace log for mochitest/reftest by default. r=jmaher
MozReview-Commit-ID: 1cGy3YlJml1

--HG--
extra : rebase_source : 23106578640a64848c164121a96cdddebd13cad8
2017-10-26 13:05:17 +02:00
Blake Kaplan 816bc3bdf2 Bug 1406212 - Fix the reftest harness's logic for enabling or disabling e10s. r=jmaher
Right now, e10s defaults to "on" in Nightly via the default pref
browser.tabs.remote.autostart.2=true. The reftest harness ignores that pref
and attempts to enable it by setting browser.tabs.remote.autostart to true (as
well as disabling the checks for non-mpc-compatible extensions). There's a
bug, however, and we overwrite the value for .autostart by reading
reftest-prefernces.js (which unconditionally sets .autostart to false).

Therefore, the existing code works because it ignores the .autostart.2 pref
and whether we enable e10s is entirely controlled by setting
extensions.e10sBlocksEnabling (the reftest extension is not mpc-compatible).
With this change, we unconditionally set .remote to the value that we want
(and we trust that the only non-mpc-compatible extensions are specially vetted
and part of our build system) so that things work as advertised on the box.

MozReview-Commit-ID: Li5N4NP4PwD

--HG--
extra : rebase_source : 50f842bcf6a13e8daeae8c0c76696c2edeb8f96b
2017-10-16 14:01:01 -07:00
Alex Gaynor 3e55a9622e Bug 1407292 - don't whitelist the script directory, it is duplicative of the srcdir; r=ahal
MozReview-Commit-ID: 2HpJZkHCyhk

--HG--
extra : rebase_source : 8613e3629a7658f9df7296e2e58da82a67cc12da
2017-10-10 15:06:33 -04:00
Andrew Halberstadt e03d78fada Bug 1324961 - [reftest] Process stdout/stderr separately on Windows, r=gbrown
On Windows log lines are buffered in 4kb chunks instead of line buffered. This
means when a log on stdout exceeds this limit, a log from stderr can be
interleaved in the middle. This was causing frequent intermittent failures on
Windows when logging the suite_start message (which is much larger than 4kb).

This patch ensures that instead of redirecting stderr to stdout, we process
that stream independtly (though still using the same output handler). This
means we are guaranteed not to have any log interleaving, but it comes at the
cost of potentially losing the true log ordering. For that reason, this
behaviour is only enabled on Windows. Only the ordering between streams can be
different, and in practice this difference should be really small.

There is currently no good solution for both separating stdout/stderr and
preserving exact log ordering. See bug 798300 for more details.

MozReview-Commit-ID: 5W8I4u15uyM

--HG--
extra : rebase_source : ff6ce214b738dd09081b4b359a49ea7c3b0e4f65
2017-10-05 15:58:31 -04:00
Andrew Halberstadt 35b752c904 Bug 1403325 - Use a single --sandbox-read-whitelist argument in mochitest and reftest, r=Alex_Gaynor
The main bug this fixes is that on reftest, the objdir needs to be added to the
whitelist on Windows. However, this only happens when running on Linux for some
reason.

Changing the --work-path and --obj-path arguments to --sandbox-read-whitelist
was more of a drive-by cleanup than anything necessary.

MozReview-Commit-ID: Dq8ZLETMzeM

--HG--
extra : rebase_source : 3d2cdda125205e76f86235eb373074899fe0789a
2017-09-26 16:36:43 -04:00
Henrik Skupin abd06348eb Bug 1403616 - Defer logging of Marionette IOError to after post-test checks. r=gbrown
If Firefox crashes while mochitests or reftests are running, Marionette
will trigger an IOError exception which currently gets logged immediately,
and causes no post-test checks to be performed. This results in missing
crash and leak checks, and an unclear failure message on Treeherder.

With this change only the IOError from Marionette gets deferred until
all post-test checks are done. This fixes the failure messages, and will
put PROCESS_CRASH or leak log output first.

MozReview-Commit-ID: JCYP5LlPE1m

--HG--
extra : rebase_source : a4a9455402b01db8ef1dbafccc7a726d2927ec03
2017-09-27 21:07:44 +02:00
Geoff Brown 1e26b50be4 Bug 1390884 - Enable limited test chaos mode in test-verify; r=jmaher
This adds new test verification steps for mochitest/reftest/xpcshell tests
with MOZ_CHAOSMODE=3 (thread scheduling and network thread scheduling).
Enabling all chaos mode features seems to destabilize test verification
so I am only enabling these features for now.
2017-09-26 13:20:28 -06:00
Henrik Skupin 03d4b0f51c Bug 1399592 - Increase Marionette startup timeout for mochitest/reftest. r=gbrown
Currently the mochitest and reftest runners are forcing a timeout of 60s
(or 900s for valgrind or debug builds) when calling `start_session` of
Marionette. While this method still offers a timeout parameter, the
timeout should be set via the `startup_timeout` argument for Marionette.

Reason is that Marionette doesn't control the browser instance and
is getting called right after the application gets launched. As such
slow running builds can cause timeouts once it takes longer than 60s
for the Marionette server to get started.

By using `startup_timeout` the timeout will even be configurable via
the command line and mozharness config files.

MozReview-Commit-ID: EV7GklBcJjU

--HG--
extra : rebase_source : 9d3c623c49deb92d68c40ba4410c812c864e06bd
2017-09-14 16:18:58 +02:00
Andrew Halberstadt c3c1749786 Bug 1392390 - Create a reftest selftest harness, r=jmaher
This just adds two basic tests, one for a passing test and another for a
failing one. In mochitest, we use privileged APIs to also tests crashes,
assertions, asan and leaks. But these APIs aren't available to reftests
so I'm not sure how we can test these things.

I figure it's not worth holding the framework up on this though, I'll file
a follow-up to figure out something to do for that.

MozReview-Commit-ID: 59TSbsugT5T

--HG--
extra : rebase_source : 72ecd817017c8b7d55eab879db4f6ad5fecc54c0
2017-09-11 16:08:01 -04:00
Geoff Brown 44df02b473 Bug 1390889 - Support --verify option in reftest harness; r=jmaher 2017-09-05 16:55:34 -06:00
Gian-Carlo Pascutto e5c1135a58 Bug 1392640 - Only use preference based whitelisting for Linux. r=haik
MozReview-Commit-ID: IWNnRcLMreI

--HG--
extra : rebase_source : 9802f3e8c251aab58ef6f181d6066b5e020909a3
2017-08-30 13:40:10 +02:00
Geoff Brown 0c1b12715e Bug 1386816 - Kill any xpcshell or ssltunnel already running at start of tests; r=jmaher
This renames killNamedOrphans to killNamedProc and removes the check for
parent proc id, so that any xpcshell or ssltunnel process is killed before
starting a mochitest or reftest run. For reftests, this is moved out of
the desktop harness and into the remote/android harness, since desktop
reftests do not use xpcshell or ssltunnel.
2017-08-29 15:44:18 -06:00
Gian-Carlo Pascutto f4a0bc4497 Bug 1386826 - Whitelist the objdir, so _tests gets covered. r=jmaher
MozReview-Commit-ID: 8SHk1Pfy37I

--HG--
extra : rebase_source : 3944e20e310dda395e67ba9b1e33747413dea84e
2017-08-16 19:03:09 +02:00
Bob Owen 00eaf28579 Bug 1386502 - Whitelist paths added via pref for files opened in the content process during some tests. r=jimm
--HG--
extra : rebase_source : a34c7e1d445154843e8efd0146824dff0bdfda9b
2017-08-07 17:42:00 +01:00
Jonathan Kew 4192f89a3a Bug 1335429 - Ensure hyphenation dictionaries are included in the reftest artifact for packaged tests. r=gbrown 2017-07-19 10:10:31 +01:00
Kartikaya Gupta 6e17af04db Bug 1381091 - Don't restart the reftest suite if it finishes running all the tests. r=ahal
This also guards against passing a non-test parameter to reftest.startAfter.

MozReview-Commit-ID: FoqqN4D7sv7

--HG--
extra : rebase_source : 0e5d879467c04803e3ac565b979aceaad3176597
2017-07-18 13:10:29 -04:00
Haik Aftandilian ce8f59e85d Bug 1380132 - Part 2 - Set MOZ_DEVELOPER_OBJ_DIR before launching Firefox. r=gps
MozReview-Commit-ID: CvSUt2KueHr

--HG--
extra : rebase_source : 7d621a1dc7ced33a2c00e906970401e152a70189
2017-07-12 17:01:56 -07:00