Automatic update from web-platform-tests Update WAVE test runner -- wpt-commits: 11f369dfab7cc1fc3f38fc062d87cffd04dc317b wpt-pr: 46286
123 lines
3.6 KiB
Python
123 lines
3.6 KiB
Python
# mypy: allow-untyped-defs
|
|
# mypy: allow-untyped-calls
|
|
|
|
import sys
|
|
import os
|
|
import urllib
|
|
import zipfile
|
|
|
|
START = "start"
|
|
DOWNLOAD_REFERENCE_BROWSERS = "download-reference-results"
|
|
|
|
REFERENCE_BROWSERS = {
|
|
"chrome": {
|
|
"name": "Chromium 73.0.3640.0",
|
|
"url": "https://s3.us-east-2.amazonaws.com/wave-browser-snapshots\
|
|
/wave-reference-browser-results/WMAS+2018\
|
|
/Chromium73-a50c6db0-6a94-11e9-8d1b-e23fc4555885.zip",
|
|
},
|
|
"edge": {
|
|
"name": "Edge 44.17763",
|
|
"url": "https://s3.us-east-2.amazonaws.com/wave-browser-snapshots\
|
|
/wave-reference-browser-results/WMAS+2018\
|
|
/Edge44-b2924d20-6a93-11e9-98b4-a11fb92a6d1c.zip",
|
|
},
|
|
"firefox": {
|
|
"name": "Firefox 64.0",
|
|
"url": "https://s3.us-east-2.amazonaws.com/wave-browser-snapshots\
|
|
/wave-reference-browser-results/WMAS+2018\
|
|
/Firefox64-bb7aafa0-6a92-11e9-8ec2-04f58dad2e4f.zip",
|
|
},
|
|
"webkit": {
|
|
"name": "WebKit r239158",
|
|
"url": "https://s3.us-east-2.amazonaws.com/wave-browser-snapshots\
|
|
/wave-reference-browser-results/WMAS+2018\
|
|
/WebKitr239158-caf823e0-6a92-11e9-b732-3188d0065ebc.zip",
|
|
},
|
|
}
|
|
|
|
|
|
def main():
|
|
parameters = get_run_parameters()
|
|
# configuration_file_path = None
|
|
# if ("configuration_file_path" in parameters):
|
|
# configuration_file_path = parameters["configuration_file_path"]
|
|
|
|
if parameters["operation"] == DOWNLOAD_REFERENCE_BROWSERS:
|
|
download_reference_browsers()
|
|
|
|
|
|
def get_run_parameters():
|
|
arguments = sys.argv
|
|
parameters = {}
|
|
|
|
operation = arguments[1].lower()
|
|
|
|
if operation != START and operation != DOWNLOAD_REFERENCE_BROWSERS:
|
|
raise Exception(f"Unknown operation {operation}")
|
|
|
|
parameters["operation"] = operation
|
|
|
|
iterator = iter(arguments)
|
|
next(iterator)
|
|
next(iterator)
|
|
for argument in iterator:
|
|
if argument.lower() == "--config":
|
|
path = next(iterator)
|
|
if not path.startswith("/"):
|
|
path = os.path.join(os.getcwd(), path)
|
|
parameters["configuration_file_path"] = path
|
|
continue
|
|
|
|
raise Exception(f"Unknown option {argument}")
|
|
|
|
if "configuration_file_path" not in parameters:
|
|
configuration_file_path = os.path.join(os.getcwd(), "config.json")
|
|
parameters["configuration_file_path"] = configuration_file_path
|
|
|
|
return parameters
|
|
|
|
|
|
def download_file(url, file_path):
|
|
response = urllib.request.urlopen(url)
|
|
data = response.read()
|
|
file = open(file_path, "wb")
|
|
file.write(data)
|
|
file.close()
|
|
|
|
|
|
def printt(text):
|
|
sys.stdout.write(text)
|
|
sys.stdout.flush()
|
|
|
|
|
|
def download_reference_browsers():
|
|
result_directory = os.path.abspath("./results")
|
|
|
|
if not os.path.isdir(result_directory):
|
|
os.mkdir(result_directory)
|
|
|
|
for id in REFERENCE_BROWSERS:
|
|
browser = REFERENCE_BROWSERS[id]
|
|
browser["zip"] = browser["url"].split("/")[-1]
|
|
printt(f"Downloading {browser['name']} results ...")
|
|
dest_path = os.path.join(result_directory, browser["zip"])
|
|
download_file(browser["url"], dest_path)
|
|
print(" done.")
|
|
|
|
for id in REFERENCE_BROWSERS:
|
|
browser = REFERENCE_BROWSERS[id]
|
|
printt(f"Extracting {browser['name']} results ...")
|
|
dest_path = os.path.join(result_directory, browser["name"])
|
|
zip_file = zipfile.ZipFile(dest_path)
|
|
zip_file.extractall(result_directory)
|
|
print(" done.")
|
|
|
|
print("Cleaning ...")
|
|
for id in REFERENCE_BROWSERS:
|
|
browser = REFERENCE_BROWSERS[id]
|
|
os.remove(os.path.join(result_directory, browser["zip"]))
|
|
|
|
|
|
main()
|