Commit graph

29 commits

Author SHA1 Message Date
Martin Robinson
e2cf3e8d1a Reorganize Servo's WPT Python scripts
This change moves all of Servo's WPT Python support scripts into one
directory as they were previously scattered throughout the directory
structure. This should allow more code reuse and make it easier to
understand how everything fits together.

The changes:

- `tests/wpt/update` → `python/wpt/importer`
- `etc/ci/upstream-wpt-changes/wptupstreamer` → `python/wpt/exporter`
- `etc/ci/upstream-wpt-changes/test.py` → `python/wpt/test.py`
- `etc/ci/upstream-wpt-changes/tests` → `python/wpt/tests`
- `tests/wpt/servowpt.py` →
    - `python/wpt/update.py`
    - `python/wpt/run.py`
- `tests/wpt/manifestupdate.py` → `python/wpt/manifestupdate.py`

This change also removes
 - The ability to run the `update-wpt` and `test-wpt` commands without
   using `mach`. These didn't work very well, because it was difficult
   to get all of the wptrunner and mach dependencies installed outside
   of the Python virtualenv. It's simpler if they are always run through
   `mach`.
- The old WPT change upstreaming script that was no longer used.
2023-04-20 12:24:55 +02:00
Martin Robinson
5e30ce8532 Filter unknown flaky tests when filtering known intermittents
There are two kinds of flaky/intermittent tests in Servo. The
traditional kind is the test that fails on the CI, but has an associated
bug indicating that the test is an intermittent failure. Many of these
tests have completely unstable results, for instance those where an
unpredictable set of subtests fail. It's impossible to generate stable
results for these, so we have traditionally simply discard these
unexpected results.

Another kind of intermittent test is one that will produce an expected
result when rerun (ie will flake). Some of these are also labeled with
bugs, while some are not. In some cases, there is flakiness in some core
Servo functionality that can lead to *any* test flaking, such as a race
condition that can lead to an early screenshot for reftests. When these
kinds of tests do not have associated bugs, they cause the CI to fail.
In this case, it is impossible to label these tests as intermittent
because it can literally be any test.

This change, reruns failed tests in order to detect unlabeled tests in
the second category. Instead of blocking the CI when the second run
leads to expected results, the CI will now pass, but the flake will be
reported to the new flakiness dashboard. This prevents unrelated flakes
from slowing down the merge queue.
2023-02-21 12:10:02 +01:00
Martin Robinson
f935296637 Add intermittent results for transitions related tests
These tests test the behavior of many properties and due to issues in
Servo, the results are incredibly unstable. Since the tests use large
property lists this leads to hundreds of failed subtests every run. We
let these tests either pass or fail so that results in the CI are
stable. The ultimate goal here is to fix the instability in Servo so
that these tests pass or fail consistently.

This change also adds support for intermittent expectations to the
ServoHandler. Before these kind of test results were interpreted as
unexpected results.
2023-02-16 14:31:25 +01:00
Martin Robinson
2784c0e69d Add support for the intermittent dashboard
Use the new intermittent dashboard to report intermittents and get
information about open bugs. This is now used to filter out
known-intermittents from results. In addition, this also allows the
scripts to report bug information to the GitHub. Display that in all
output.
2023-02-15 12:59:33 +01:00
Martin Robinson
3543fd27f0 wpt: Make WPT result formatting logic independent of ServoHandler
This will allow results to be formatted by other parts of the code (such
as the intermittent filtering) code. Previously, formatting was handled
in ServoHandler, which was a bit strange as it's really only necessary
for GroupingFormatter and the intermittent filtering code. This also
allows the results to be properly typed by the Python typing system.
2023-02-04 15:03:44 +01:00
Delan Azabani
beab561eea retain raw test_end events for failing tests without subtests 2023-02-01 19:23:19 +08:00
Delan Azabani
0a5ae8e938 wpt: structured subtest results 2023-02-01 16:50:52 +08:00
Martin Robinson
d294a71397 Integrate filter-intermittents into test-wpt
This change integrates the filter-intermittents command into test-wpt.
This is in preparation for future work on tracking intermittent
failures. This change also:
- Removes the SrvoJson logger and replaces it with a generic WPT log
  handler which tracks unexpected results.
- The intermittent filter is now controlled via environment variables
  and the GitHub version requires a token instead of credentials.
- Output is saved to a single file and is always text.
2023-01-24 15:10:09 +01:00
Vincent Ricard
bdfcca36bb Add PRECONDITION_FAILED to grouping_formatter.py 2021-03-08 21:02:01 +01:00
Kagami Sascha Rosylight
d01648d637 Fix remaining flake8 warnings 2020-06-21 03:34:32 +02:00
Simon Sapin
f0b970d90d Add a test counter in WPT’s non-interactive output 2019-12-03 17:03:53 +01:00
Simon Sapin
40ce8c7105 Improve formatting of multi-line "message" in Servo’s WPT log formatter 2019-12-03 16:49:23 +01:00
Simon Sapin
0ac021c1a5 Include test output in filtered WPT logs 2019-12-03 16:49:23 +01:00
marmeladema
7fdd0b94cf tests/wpt: use iterkeys, itervalues and iteritems from six package 2019-10-22 10:16:01 +01:00
Jan Andre Ikenmeyer
f1f409ffb6
Update MPL license to https (part 5) 2018-11-27 19:09:17 +01:00
Martin Robinson
4e9dfe3ec2 Fix the test count in grouping formatter
Now that the WPT update has settled a bit, it seems safe to make sure
that the grouping_formatter properly consumes the data structure
provided.
2017-10-23 13:05:45 +02:00
Martin Robinson
618fd27a3d Fix the test count in the WPT grouping_formatter
The internal WPT API seems to have changed again, so we must revert the
previous change here to get the correct test count.
2017-10-03 10:03:53 +02:00
Martin Robinson
5876ac83f9 Fix the test count in the WPT formatter
This was broken by a change in the test harness.
2017-09-14 16:21:54 +02:00
Austin Hicks
f78dc9f613 Minimal changes to get WPT tests running on Windows. 2017-06-20 10:09:29 -04:00
Michael Howell
4170f20828 Truncate long test names in WPT.
Makes the output readable on 100-character terminals.
2016-02-27 18:52:53 -07:00
Ori Avtalion
dfac35c77d Improve line counting operation in WPT UI output 2015-12-06 21:24:14 +02:00
Ori Avtalion
359d812ed7 Fix redraw of WPT UI output 2015-12-06 21:05:44 +02:00
Martin Robinson
7225e36d81 Use blessings when possible for WPT UI
Use blessings when it is possible for the WPT UI and fall back to using
raw control characters. This also fixes a bug where the UI didn't work
correctly in iTerm.app. Remove the one line version of the UI, since it
is no longer used as the iTerm fallback.
2015-11-17 08:39:24 -08:00
Martin Robinson
20701e564a Re-print test failures in non-interactive WPT UI
This will make it easier to spot the failures at the bottom of the test
output on the bots.

Fixes #8467.
2015-11-13 08:32:07 -08:00
Martin Robinson
75f8963d63 Fix some issues with the WPT UI output
When running in non-interactive mode, print test names as they are run.
This prevent timeouts on the bots, which are detected by watching for
output from the test runner.

When running in iTerm.app don't use the multi-line status line, as the
carriage return is not processed properly. Instead use a single-line
output with the last test run and then backspace characters to keep it
up to date.

Fixes #8368.
Fixes #8395.
2015-11-10 08:24:50 -08:00
bors-servo
37201e3807 Auto merge of #8323 - mrobinson:wpt-ui-timeout, r=jgraham
Print process output for TIMEOUT status in WPT UI

Tests can time out due to script or runtime errors, which are typically
reported via the Servo process output. Including process output for tests
timing out makes it easier to understand these problems.

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/8323)
<!-- Reviewable:end -->
2015-11-04 20:56:15 +05:30
Martin Robinson
4a23f6f2d0 Print process output for TIMEOUT status in WPT UI
Tests can time out due to script or runtime errors, which are typically
reported via the Servo process output. Including process output for tests
timing out makes it easier to understand these problems.
2015-11-03 15:31:15 -08:00
Corey Farwell
d1824aea48 Expand tidy to lint parts of /tests/wpt 2015-11-03 17:11:44 -05:00
Martin Robinson
248cd768e6 Add a friendly and easy-to-read UI for WPT tests
The idea is that this UI will be installed adhoc by the Servo scripts
for now. Later, after baking for a while in the Servo source tree it
will be upstreamed to the mozlog project itself.
2015-11-03 09:26:20 -08:00