Skip to content

Commit

Permalink
Let WPT commands take the --legacy-layout argument (#30239)
Browse files Browse the repository at this point in the history
This also prints a better message when starting tests.
  • Loading branch information
mrobinson committed Aug 30, 2023
1 parent 17dec24 commit 30dbc46
Show file tree
Hide file tree
Showing 7 changed files with 34 additions and 29 deletions.
5 changes: 3 additions & 2 deletions .github/workflows/linux-wpt.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ on:
env:
RUST_BACKTRACE: 1
SHELL: /bin/bash
WPT_COMMAND_LINE_ARG: "${{ inputs.layout == 'layout-2013' && '--legacy-layout' || '' }}"

jobs:
linux-wpt:
Expand Down Expand Up @@ -65,7 +66,7 @@ jobs:
- name: Run tests
if: ${{ inputs.wpt != 'sync' }}
run: |
python3 ./mach test-wpt --with-${{ inputs.layout }} \
python3 ./mach test-wpt $WPT_COMMAND_LINE_ARG \
--release --processes $(nproc) --timeout-multiplier 2 \
--total-chunks ${{ env.max_chunk_id }} --this-chunk ${{ matrix.chunk_id }} \
--log-raw test-wpt.${{ matrix.chunk_id }}.log \
Expand All @@ -77,7 +78,7 @@ jobs:
- name: Run tests (sync)
if: ${{ inputs.wpt == 'sync' }}
run: |
python3 ./mach test-wpt --with-${{ inputs.layout }} \
python3 ./mach test-wpt $WPT_COMMAND_LINE_ARG \
--release --processes $(nproc) --timeout-multiplier 2 \
--total-chunks ${{ env.max_chunk_id }} --this-chunk ${{ matrix.chunk_id }} \
--log-raw test-wpt.${{ matrix.chunk_id }}.log \
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/mac-wpt.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ on:
env:
RUST_BACKTRACE: 1
SHELL: /bin/bash
WPT_COMMAND_LINE_ARG: "${{ inputs.layout == 'layout-2013' && '--legacy-layout' || '' }}"

jobs:
mac-wpt:
Expand Down Expand Up @@ -45,7 +46,7 @@ jobs:
run: python3 ./mach smoketest --release
- name: Run tests
run: |
python3 ./mach test-wpt --with-${{ inputs.layout }} \
python3 ./mach test-wpt $WPT_COMMAND_LINE_ARG \
--release --processes $(sysctl -n hw.logicalcpu) --timeout-multiplier 8 \
--total-chunks ${{ env.max_chunk_id }} --this-chunk ${{ matrix.chunk_id }} \
--log-raw test-wpt.${{ matrix.chunk_id }}.log \
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/scheduled-wpt-import.yml
Original file line number Diff line number Diff line change
Expand Up @@ -52,8 +52,8 @@ jobs:
export CURRENT_DATE=$(date +"%d-%m-%Y")
echo $CURRENT_DATE
echo "CURRENT_DATE=$CURRENT_DATE" >> $GITHUB_ENV
./mach update-wpt --layout-2013 wpt-logs-linux-layout-2013/test-wpt.*.log
./mach update-wpt --layout-2020 wpt-logs-linux-layout-2020/test-wpt.*.log
./mach update-wpt --legacy-layout wpt-logs-linux-layout-2013/test-wpt.*.log
./mach update-wpt wpt-logs-linux-layout-2020/test-wpt.*.log
git add tests/wpt/meta tests/wpt/meta-legacy-layout
git commit -a --amend --no-edit
- name: Push changes
Expand Down
1 change: 0 additions & 1 deletion python/servo/command_base.py
Original file line number Diff line number Diff line change
Expand Up @@ -257,7 +257,6 @@ def resolverelative(category, key):
self.config["build"].setdefault("mode", "")
self.config["build"].setdefault("debug-assertions", False)
self.config["build"].setdefault("debug-mozjs", False)
self.config["build"].setdefault("layout-2020", True)
self.config["build"].setdefault("media-stack", "auto")
self.config["build"].setdefault("ccache", "")
self.config["build"].setdefault("rustflags", "")
Expand Down
25 changes: 11 additions & 14 deletions python/wpt/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,10 +31,8 @@ def create_parser():
help="Run under chaos mode in rr until a failure is captured")
parser.add_argument('--pref', default=[], action="append", dest="prefs",
help="Pass preferences to servo")
parser.add_argument('--layout-2020', '--with-layout-2020', default=True,
action="store_true", help="Use expected results for the 2020 layout engine")
parser.add_argument('--layout-2013', '--with-layout-2013', default=False,
action="store_true", help="Use expected results for the 2013 layout engine")
parser.add_argument('--legacy-layout', '--layout-2013', '--with-layout-2013', default=False,
action="store_true", help="Use expected results for the legacy layout engine")
parser.add_argument('--log-servojson', action="append", type=mozlog.commandline.log_file,
help="Servo's JSON logger of unexpected results")
parser.add_argument('--always-succeed', default=False, action="store_true",
Expand All @@ -51,16 +49,15 @@ def create_parser():


def update_args_for_legacy_layout(kwargs: dict):
if kwargs.pop("layout_2013"):
kwargs["test_paths"]["/"]["metadata_path"] = os.path.join(
WPT_PATH, "meta-legacy-layout"
)
kwargs["test_paths"]["/_mozilla/"]["metadata_path"] = os.path.join(
WPT_PATH, "mozilla", "meta-legacy-layout"
)
kwargs["test_paths"]["/_webgl/"]["metadata_path"] = os.path.join(
WPT_PATH, "webgl", "meta-legacy-layout"
)
kwargs["test_paths"]["/"]["metadata_path"] = os.path.join(
WPT_PATH, "meta-legacy-layout"
)
kwargs["test_paths"]["/_mozilla/"]["metadata_path"] = os.path.join(
WPT_PATH, "mozilla", "meta-legacy-layout"
)
kwargs["test_paths"]["/_webgl/"]["metadata_path"] = os.path.join(
WPT_PATH, "webgl", "meta-legacy-layout"
)


def run_tests():
Expand Down
14 changes: 10 additions & 4 deletions python/wpt/run.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,12 @@ def set_if_none(args: dict, key: str, value):


def run_tests(default_binary_path: str, **kwargs):
print(default_binary_path)
legacy_layout = kwargs.pop("legacy_layout")
message = f"Running WPT tests with {default_binary_path}"
if legacy_layout:
message += " (legacy layout)"
print(message)

# By default, Rayon selects the number of worker threads based on the
# available CPU count. This doesn't work very well when running tests on CI,
# since we run so many Servo processes in parallel. The result is a lot of
Expand Down Expand Up @@ -81,8 +86,8 @@ def run_tests(default_binary_path: str, **kwargs):
kwargs.setdefault("binary_args", [])
if prefs:
kwargs["binary_args"] += ["--pref=" + pref for pref in prefs]
if kwargs.get("layout_2013"):
kwargs["binary_args"] += ["--legacy-layout"]
if legacy_layout:
kwargs["binary_args"].append("--legacy-layout")

if not kwargs.get("no_default_test_types"):
test_types = {
Expand All @@ -98,7 +103,8 @@ def run_tests(default_binary_path: str, **kwargs):

wptcommandline.check_args(kwargs)

update_args_for_legacy_layout(kwargs)
if legacy_layout:
update_args_for_legacy_layout(kwargs)

mozlog.commandline.log_formatters["servo"] = (
ServoFormatter,
Expand Down
11 changes: 6 additions & 5 deletions python/wpt/update.py
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,9 @@ def set_if_none(args: dict, key: str, value):
wptcommandline.set_from_config(kwargs)
if hasattr(wptcommandline, 'check_paths'):
wptcommandline.check_paths(kwargs)
update_args_for_legacy_layout(kwargs)

if kwargs.pop("legacy_layout"):
update_args_for_legacy_layout(kwargs)

if kwargs.get('sync', False):
return do_sync(**kwargs)
Expand All @@ -126,8 +128,7 @@ def run_update(**kwargs) -> bool:

def create_parser(**_kwargs):
parser = wptcommandline.create_parser_update()
parser.add_argument("--layout-2020", "--with-layout-2020", default=True, action="store_true",
help="Use expected results for the 2020 layout engine")
parser.add_argument("--layout-2013", "--with-layout-2013", default=False, action="store_true",
help="Use expected results for the 2013 layout engine")
parser.add_argument("--legacy-layout", "--layout-2013", "--with-layout-2013",
default=False, action="store_true",
help="Use expected results for the legacy layout engine")
return parser

0 comments on commit 30dbc46

Please sign in to comment.