def run(src_root, obj_root, logger=None, **kwargs): kwargs = ensure_kwargs(kwargs) if logger is None: from wptrunner import wptlogging logger = wptlogging.setup(kwargs, {"mach": sys.stdout}) src_wpt_dir = os.path.join(src_root, "testing", "web-platform") do_delayed_imports(src_wpt_dir) if not kwargs["config_path"]: config_path = generate_config( logger, src_root, src_wpt_dir, os.path.join(obj_root, "_tests", "web-platform"), kwargs["rewrite_config"]) else: config_path = kwargs["config_path"] if not os.path.exists(config_path): logger.critical("Config file %s does not exist" % config_path) return None logger.debug("Using config path %s" % config_path) test_paths = wptcommandline.get_test_paths( wptcommandline.config.read(config_path)) for paths in six.itervalues(test_paths): if "manifest_path" not in paths: paths["manifest_path"] = os.path.join(paths["metadata_path"], "MANIFEST.json") ensure_manifest_directories(logger, test_paths) local_config = read_local_config(src_wpt_dir) for section in ["manifest:upstream", "manifest:mozilla"]: url_base = local_config.get(section, "url_base") manifest_rel_path = os.path.join(local_config.get(section, "metadata"), "MANIFEST.json") test_paths[url_base]["manifest_rel_path"] = manifest_rel_path if not kwargs["rebuild"] and kwargs["download"] is not False: force_download = False if kwargs["download"] is None else True manifestdownload.download_from_taskcluster(logger, src_root, test_paths, force=force_download) else: logger.debug("Skipping manifest download") update = kwargs["update"] or kwargs["rebuild"] manifests = load_and_update(logger, src_wpt_dir, test_paths, update=update, rebuild=kwargs["rebuild"], cache_root=kwargs["cache_root"]) return manifests
def update(logger, wpt_dir, check_clean=True): localpaths = imp.load_source("localpaths", os.path.join(wpt_dir, "tests", "tools", "localpaths.py")) kwargs = {"config": os.path.join(wpt_dir, "wptrunner.ini"), "tests_root": None, "metadata_root": None} set_from_config(kwargs) config = kwargs["config"] test_paths = get_test_paths(config) if check_clean: old_manifests = {} for data in test_paths.itervalues(): path = os.path.join(data["metadata_path"], "MANIFEST.json") with open(path) as f: old_manifests[path] = f.readlines() try: ManifestLoader(test_paths, force_manifest_update=True).load() rv = 0 if check_clean: clean = diff_manifests(logger, old_manifests) if not clean: rv = 1 finally: if check_clean: for path, data in old_manifests.iteritems(): logger.info("Restoring manifest %s" % path) with open(path, "w") as f: f.writelines(data) return rv
def run(self, **kwargs): sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), "tests", "tools"))) from wptrunner import wptcommandline from manifest import testpaths import manifestupdate import logging logger = logging.getLogger("web-platform-tests") src_root = self.topsrcdir obj_root = self.topobjdir src_wpt_dir = os.path.join(src_root, "testing", "web-platform") config_path = manifestupdate.generate_config(logger, src_root, src_wpt_dir, os.path.join(obj_root, "_tests", "web-platform"), False) test_paths = wptcommandline.get_test_paths(wptcommandline.config.read(config_path)) results = {} for url_base, paths in iteritems(test_paths): if "manifest_path" not in paths: paths["manifest_path"] = os.path.join(paths["metadata_path"], "MANIFEST.json") results.update( testpaths.get_paths(path=paths["manifest_path"], src_root=src_root, tests_root=paths["tests_path"], update=kwargs["update"], rebuild=kwargs["rebuild"], url_base=url_base, cache_root=kwargs["cache_root"], test_ids=kwargs["test_ids"])) testpaths.write_output(results, kwargs["json"]) return True
def update(logger, wpt_dir, check_clean=True, rebuild=False): localpaths = imp.load_source("localpaths", os.path.join(wpt_dir, "tests", "tools", "localpaths.py")) kwargs = {"config": os.path.join(wpt_dir, "wptrunner.ini"), "tests_root": None, "metadata_root": None} set_from_config(kwargs) config = kwargs["config"] test_paths = get_test_paths(config) do_delayed_imports(wpt_dir) if check_clean: return _check_clean(logger, test_paths) return _update(logger, test_paths, rebuild)
def run(self, **kwargs): sys.path.insert( 0, os.path.abspath( os.path.join(os.path.dirname(__file__), "tests", "tools")), ) from serve import serve from wptrunner import wptcommandline import manifestupdate import logging logger = logging.getLogger("web-platform-tests") src_root = self.topsrcdir obj_root = self.topobjdir src_wpt_dir = os.path.join(src_root, "testing", "web-platform") config_path = manifestupdate.generate_config( logger, src_root, src_wpt_dir, os.path.join(obj_root, "_tests", "web-platform"), False, ) test_paths = wptcommandline.get_test_paths( wptcommandline.config.read(config_path)) def get_route_builder(*args, **kwargs): route_builder = serve.get_route_builder(*args, **kwargs) for url_base, paths in iteritems(test_paths): if url_base != "/": route_builder.add_mount_point(url_base, paths["tests_path"]) return route_builder return 0 if serve.run(route_builder=get_route_builder, **kwargs) else 1
def update(logger, wpt_dir, check_clean=True): localpaths = imp.load_source( "localpaths", os.path.join(wpt_dir, "tests", "tools", "localpaths.py")) kwargs = { "config": os.path.join(wpt_dir, "wptrunner.ini"), "tests_root": None, "metadata_root": None } set_from_config(kwargs) config = kwargs["config"] test_paths = get_test_paths(config) if check_clean: old_manifests = {} for data in test_paths.itervalues(): path = os.path.join(data["metadata_path"], "MANIFEST.json") with open(path) as f: old_manifests[path] = f.readlines() try: ManifestLoader(test_paths, force_manifest_update=True).load() rv = 0 if check_clean: clean = diff_manifests(logger, old_manifests) if not clean: rv = 1 finally: if check_clean: for path, data in old_manifests.iteritems(): logger.info("Restoring manifest %s" % path) with open(path, "w") as f: f.writelines(data) return rv