diff options
Diffstat (limited to 'testing/web-platform/tests/tools/runner/update_manifest.py')
-rw-r--r-- | testing/web-platform/tests/tools/runner/update_manifest.py | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/testing/web-platform/tests/tools/runner/update_manifest.py b/testing/web-platform/tests/tools/runner/update_manifest.py new file mode 100644 index 0000000000..a7f72b35b3 --- /dev/null +++ b/testing/web-platform/tests/tools/runner/update_manifest.py @@ -0,0 +1,38 @@ +# mypy: ignore-errors + +import imp +import json +import os + +here = os.path.dirname(__file__) +localpaths = imp.load_source("localpaths", os.path.abspath(os.path.join(here, os.pardir, "localpaths.py"))) + +root = localpaths.repo_root + +from manifest import manifest + +def main(request, response): + path = os.path.join(root, "MANIFEST.json") + + # TODO make this download rather than rebuilding from scratch when possible + manifest_file = manifest.load_and_update(root, path, "/", parallel=False) + + supported_types = ["testharness", "reftest", "manual"] + data = {"items": {}, + "url_base": "/"} + for item_type in supported_types: + data["items"][item_type] = {} + for item_type, path, tests in manifest_file.itertypes(*supported_types): + tests_data = [] + for item in tests: + test_data = [item.url[1:]] + if item_type == "reftest": + test_data.append(item.references) + test_data.append({}) + if item_type != "manual": + test_data[-1]["timeout"] = item.timeout + tests_data.append(test_data) + assert path not in data["items"][item_type] + data["items"][item_type][path] = tests_data + + return [("Content-Type", "application/json")], json.dumps(data) |