Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Do not merge] Sync WPT with upstream (05-12-2019), from Linux #25122

Closed
Closed
Changes from all commits
Commits
File filter...
Filter file types
Jump to…
Jump to file
Failed to load files.

Always

Just for now

@@ -31,28 +31,28 @@ function latest_git_commit() {
function unsafe_pull_from_upstream() {
git checkout -b "${1}" || return 1

OLD_COMMIT=$(latest_git_commit)
# OLD_COMMIT=$(latest_git_commit)

# Fetch all changes from upstream WPT and automatically transpose them
# into a single servo commit.
./mach update-wpt --sync --no-upstream --patch || return 2
# # Fetch all changes from upstream WPT and automatically transpose them
# # into a single servo commit.
# ./mach update-wpt --sync --no-upstream --patch || return 2

# If there was no new commit created, there are no changes that need syncing.
# Skip the remaining steps.
if [[ "$(latest_git_commit)" == "${OLD_COMMIT}" ]]; then
return 255
fi
# # If there was no new commit created, there are no changes that need syncing.
# # Skip the remaining steps.
# if [[ "$(latest_git_commit)" == "${OLD_COMMIT}" ]]; then
# return 255
# fi

# Update the manifest to include the new changes.
./mach update-manifest || return 3
# Update the manifest again to reach a fixed state (https://github.com/servo/servo/issues/22275).
./mach update-manifest || return 4
# # Update the manifest to include the new changes.
# ./mach update-manifest || return 3
# # Update the manifest again to reach a fixed state (https://github.com/servo/servo/issues/22275).
# ./mach update-manifest || return 4

# Clean up any now-unused test results.
(python3 etc/unused_wpt_results.py | xargs rm -rfv) || return 5
# # Clean up any now-unused test results.
# (python3 etc/unused_wpt_results.py | xargs rm -rfv) || return 5

# Amend the existing commit with the new changes from updating the manifest.
git commit -a --amend --no-edit || return 6
# # Amend the existing commit with the new changes from updating the manifest.
# git commit -a --amend --no-edit || return 6
}

# Remove all local traces of this sync operation.
@@ -67,7 +67,7 @@ function cleanup() {
# Build Servo and run the full WPT testsuite, saving the results to a log file.
function unsafe_run_tests() {
# Run the full testsuite and record the new test results.
./mach test-wpt --release --processes 6 --log-raw "${1}" \
./mach test-wpt --release --processes 12 --log-raw "${1}" \
--always-succeed || return 1

# Run the bluetooth testsuite, which uses the webdriver test harness.
@@ -86,7 +86,7 @@ function unsafe_update_metadata() {
# Ensure any new directories or ini files are included in these changes.
git add tests/wpt/metadata tests/wpt/mozilla/meta || return 2
# Merge all changes with the existing commit.
git commit -a --amend --no-edit || return 3
git commit -a -m "Update WPT" || return 3
}

# Push the branch to a remote branch, then open a PR for the branch
@@ -122,7 +122,7 @@ function unsafe_open_pull_request() {
BODY+="r? @servo-wpt-sync\n"
cat <<EOF >prdata.json || return 4
{
"title": "Sync WPT with upstream (${CURRENT_DATE})",
"title": "[Do not merge] Sync WPT with upstream (${CURRENT_DATE}), from Linux",
"head": "${WPT_SYNC_USER}:${REMOTE_BRANCH_NAME}",
"base": "master",
"body": "${BODY}",
@@ -136,11 +136,11 @@ EOF
--data @prdata.json \
https://api.github.com/repos/servo/servo/pulls) || return 5

echo "${OPEN_PR_RESPONSE}" | \
jq '.review_comments_url' | \
sed 's/pulls/issues/' | \
xargs curl -H "Authorization: token ${WPT_SYNC_TOKEN}" \
--data "{\"body\":\"@bors-servo r+\"}" || return 6
# echo "${OPEN_PR_RESPONSE}" | \
# jq '.review_comments_url' | \
# sed 's/pulls/issues/' | \
# xargs curl -H "Authorization: token ${WPT_SYNC_TOKEN}" \
# --data "{\"body\":\"@bors-servo r+\"}" || return 6
}

function pull_from_upstream() {
@@ -105,14 +105,14 @@ def tasks(task_for):
# https://tools.taskcluster.net/hooks/project-servo/daily
elif task_for == "daily":
daily_tasks_setup()
with_rust_nightly()
linux_nightly()
android_nightly()
windows_nightly()
macos_nightly()
# with_rust_nightly()
# linux_nightly()
# android_nightly()
# windows_nightly()
# macos_nightly()
update_wpt()
magicleap_nightly()
uwp_nightly()
# magicleap_nightly()
# uwp_nightly()


# These are disabled in a "real" decision task,
@@ -579,28 +579,23 @@ def macos_nightly():


def update_wpt():
build_task = macos_release_build_with_debug_assertions()
update_task = (
macos_task("WPT update")
.with_python2()
.with_treeherder("macOS x64", "WPT update")
build_task = "bF0hlwveRhao8KhkwdG_uQ"#linux_release_build_with_debug_assertions(layout_2020=False)
return (
linux_task("WPT update")
.with_treeherder("Linux x64", "WPT update")
.with_dockerfile(dockerfile_path("run"))
.with_features("taskclusterProxy")
.with_scopes("secrets:get:project/servo/wpt-sync")
.with_index_and_artifacts_expire_in(log_artifacts_expire_in)
.with_max_run_time_minutes(8 * 60)
# Not using the bundle, pushing the new changes to the git remote requires a full repo.
.with_repo(alternate_object_dir="/var/cache/servo.git/objects")
)
return (
with_homebrew(update_task, [
"etc/taskcluster/macos/Brewfile-wpt-update",
"etc/taskcluster/macos/Brewfile",
])
.with_repo()
.with_curl_artifact_script(build_task, "target.tar.gz")
.with_script("""
export PKG_CONFIG_PATH="$(brew --prefix libffi)/lib/pkgconfig/"
apt-get install --no-install-recommends -y python3 jq
tar -xzf target.tar.gz
./etc/ci/update-wpt-checkout fetch-and-update-expectations
# Use `cat` to force wptrunner’s non-interactive mode
./etc/ci/update-wpt-checkout fetch-and-update-expectations | cat
./etc/ci/update-wpt-checkout open-pr
./etc/ci/update-wpt-checkout cleanup
""")
@@ -627,32 +622,7 @@ def macos_release_build_with_debug_assertions(priority=None):
)


def macos_wpt():
priority = "high" if CONFIG.git_ref == "refs/heads/auto" else None
build_task = macos_release_build_with_debug_assertions(priority=priority)
def macos_run_task(name):
task = macos_task(name).with_python2() \
.with_repo_bundle(alternate_object_dir="/var/cache/servo.git/objects")
return with_homebrew(task, ["etc/taskcluster/macos/Brewfile"])
wpt_chunks(
"macOS x64",
macos_run_task,
build_task,
repo_dir="repo",
total_chunks=30,
processes=4,
)


def linux_wpt():
linux_wpt_common(total_chunks=4, layout_2020=False)


def linux_wpt_layout_2020():
linux_wpt_common(total_chunks=1, layout_2020=True)


def linux_wpt_common(total_chunks, layout_2020):
def linux_release_build_with_debug_assertions(layout_2020):
if layout_2020:
name_prefix = "Layout 2020 "
build_args = "--with-layout-2020"
@@ -661,7 +631,7 @@ def linux_wpt_common(total_chunks, layout_2020):
name_prefix = ""
build_args = ""
index_key_suffix = ""
release_build_task = (
return (
linux_build_task(name_prefix + "Release build, with debug assertions")
.with_treeherder("Linux x64", "Release+A")
.with_script("""
@@ -681,6 +651,35 @@ def linux_wpt_common(total_chunks, layout_2020):
CONFIG.task_id(),
))
)


def macos_wpt():
priority = "high" if CONFIG.git_ref == "refs/heads/auto" else None
build_task = macos_release_build_with_debug_assertions(priority=priority)
def macos_run_task(name):
task = macos_task(name).with_python2() \
.with_repo_bundle(alternate_object_dir="/var/cache/servo.git/objects")
return with_homebrew(task, ["etc/taskcluster/macos/Brewfile"])
wpt_chunks(
"macOS x64",
macos_run_task,
build_task,
repo_dir="repo",
total_chunks=30,
processes=4,
)


def linux_wpt():
linux_wpt_common(total_chunks=4, layout_2020=False)


def linux_wpt_layout_2020():
linux_wpt_common(total_chunks=1, layout_2020=True)


def linux_wpt_common(total_chunks, layout_2020):
release_build_task = linux_release_build_with_debug_assertions(layout_2020)
def linux_run_task(name):
return linux_task(name).with_dockerfile(dockerfile_path("run")).with_repo_bundle()
wpt_chunks("Linux x64", linux_run_task, release_build_task, repo_dir="/repo",
@@ -795,27 +794,27 @@ def wpt_chunks(platform, make_chunk_task, build_task, total_chunks, processes,
def daily_tasks_setup():
# ':' is not accepted in an index namepspace:
# https://docs.taskcluster.net/docs/reference/core/taskcluster-index/references/api
now = SHARED.now.strftime("%Y-%m-%d_%H-%M-%S")
index_path = "%s.daily.%s" % (CONFIG.index_prefix, now)
# Index this task manually rather than with a route,
# so that it is indexed even if it fails.
SHARED.index_service.insertTask(index_path, {
"taskId": CONFIG.decision_task_id,
"rank": 0,
"data": {},
"expires": SHARED.from_now_json(log_artifacts_expire_in),
})
# now = SHARED.now.strftime("%Y-%m-%d_%H-%M-%S")
# index_path = "%s.daily.%s" % (CONFIG.index_prefix, now)
# # Index this task manually rather than with a route,
# # so that it is indexed even if it fails.
# SHARED.index_service.insertTask(index_path, {
# "taskId": CONFIG.decision_task_id,
# "rank": 0,
# "data": {},
# "expires": SHARED.from_now_json(log_artifacts_expire_in),
# })

# Unlike when reacting to a GitHub push event,
# the commit hash is not known until we clone the repository.
CONFIG.git_sha_is_current_head()

# On failure, notify a few people on IRC
# https://docs.taskcluster.net/docs/reference/core/taskcluster-notify/docs/usage
notify_route = "notify.irc-channel.#servo.on-failed"
CONFIG.routes_for_all_subtasks.append(notify_route)
CONFIG.scopes_for_all_subtasks.append("queue:route:" + notify_route)
CONFIG.task_name_template = "Servo daily: %s. On failure, ping: " + ping_on_daily_task_failure
# notify_route = "notify.irc-channel.#servo.on-failed"
# CONFIG.routes_for_all_subtasks.append(notify_route)
# CONFIG.scopes_for_all_subtasks.append("queue:route:" + notify_route)
# CONFIG.task_name_template = "Servo daily: %s. On failure, ping: " + ping_on_daily_task_failure


def dockerfile_path(name):
@@ -7,7 +7,7 @@
expected: FAIL

[Opening a blob URL in a new window immediately before revoking it works.]
expected: TIMEOUT
expected: FAIL

[Opening a blob URL in a noopener about:blank window immediately before revoking it works.]
expected: FAIL
@@ -10,3 +10,6 @@
[Revoke blob URL after creating Request, will fetch]
expected: FAIL

[Revoke blob URL after calling fetch, fetch should succeed]
expected: FAIL

This file was deleted.

@@ -0,0 +1,2 @@
[white-space-002.xht]
expected: FAIL
@@ -0,0 +1,2 @@
[white-space-003.xht]
expected: FAIL
@@ -0,0 +1,2 @@
[line-height-204.html]
expected: FAIL
@@ -0,0 +1,2 @@
[background-repeat-round-roundup.xht]
expected: FAIL

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

@@ -0,0 +1,2 @@
[word-break-break-all-007.html]
expected: FAIL
@@ -0,0 +1,2 @@
[word-break-keep-all-006.html]
expected: FAIL
@@ -1,5 +1,5 @@
[perspective-interpolation.html]
expected: TIMEOUT
expected: CRASH
[ perspective interpolation]
expected: FAIL

@@ -0,0 +1,7 @@
[offsetTopLeft-border-box.html]
[container: 1]
expected: FAIL

[container: 0]
expected: FAIL

This file was deleted.

This file was deleted.

This file was deleted.

@@ -318,9 +318,18 @@
[<iframe>: combined response Content-Type: text/html */*]
expected: FAIL

[<iframe>: combined response Content-Type: text/html */*;charset=gbk]
[<iframe>: combined response Content-Type: text/html;" \\" text/plain]
expected: FAIL

[<iframe>: combined response Content-Type: text/html;" \\" text/plain]
[<iframe>: combined response Content-Type: */* text/html]
expected: FAIL

[<iframe>: combined response Content-Type: text/html;charset=gbk text/plain text/html]
expected: FAIL

[<iframe>: separate response Content-Type: text/html */*;charset=gbk]
expected: FAIL

[<iframe>: separate response Content-Type: text/plain */*]
expected: FAIL

@@ -56,3 +56,6 @@
[separate text/javascript x/x]
expected: FAIL

[separate text/javascript error]
expected: FAIL

@@ -11,6 +11,6 @@
[X-Content-Type-Options%3A%20nosniff%0C]
expected: FAIL

[X-Content-Type-Options%3A%20%2Cnosniff]
[X-Content-Type-Options%3A%20%40%23%24%23%25%25%26%5E%26%5E*()()11!%2Cnosniff]
expected: FAIL

This file was deleted.

ProTip! Use n and p to navigate between commits in a pull request.
You can’t perform that action at this time.