mirror of
https://github.com/RGBCube/serenity
synced 2025-05-31 13:18:13 +00:00

Adds `--update-expectations-metadata` that allows to automatically rebuild metadata.txt file with test expectations.
50 lines
1.8 KiB
Bash
Executable file
50 lines
1.8 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
|
|
set -eo pipefail
|
|
|
|
if [ -z "$SERENITY_SOURCE_DIR" ]
|
|
then
|
|
echo "SERENITY_SOURCE_DIR is not set. Exiting."
|
|
fi
|
|
|
|
if [[ "$1" == "--update-expectations-metadata" ]]; then
|
|
update_expectations_metadata=true
|
|
else
|
|
update_expectations_metadata=false
|
|
fi
|
|
|
|
# NOTE: WPT runner assumes Ladybird, WebContent and WebDriver are available in $PATH.
|
|
export PATH="${SERENITY_SOURCE_DIR}/Build/lagom/bin:${SERENITY_SOURCE_DIR}/Meta/Lagom/Build/bin:${PATH}"
|
|
|
|
# Install dependencies.
|
|
sudo apt-get install -y git python3 python3-pip python3-venv libssl-dev
|
|
|
|
# Ensure a `python` binary exists
|
|
sudo apt-get install -y python-is-python3
|
|
|
|
# Clone patched web-platform-tests repository
|
|
git clone --depth 10000 https://github.com/web-platform-tests/wpt.git
|
|
|
|
# Switch to the commit that was used to generate tests expectations. Requires periodic updates.
|
|
(cd wpt; git checkout 4c27189ed2db4ddad8e727d4ea9ae8329c3e1672)
|
|
|
|
# Apply WPT patch with Ladybird runner
|
|
(cd wpt; git apply ../ladybird_runner.patch)
|
|
|
|
# Update hosts file
|
|
./wpt/wpt make-hosts-file | sudo tee -a /etc/hosts
|
|
|
|
# Extract metadata.txt into directory with expectation files expected by WPT runner
|
|
./concat-extract-metadata.py --extract metadata.txt metadata
|
|
|
|
# Generate name for file with wpt run log
|
|
wpt_run_log_filename="$(mktemp).txt"
|
|
|
|
# Run tests.
|
|
./wpt/wpt run ladybird --no-fail-on-unexpected --no-fail-on-unexpected-pass --skip-timeout --include-manifest include.ini --metadata ./metadata --manifest ./MANIFEST.json --log-raw "${wpt_run_log_filename}"
|
|
|
|
# Update expectations metadata files if requested
|
|
if [[ $update_expectations_metadata == true ]]; then
|
|
./wpt/wpt update-expectations --product ladybird --metadata ./metadata --manifest ./MANIFEST.json "${wpt_run_log_filename}"
|
|
./concat-extract-metadata.py --concat ./metadata > metadata.txt
|
|
fi
|