Bug 1279801 - Add wpt lint to mozlint, r=ahal draft
authorJames Graham <james@hoppipolla.co.uk>
Sat, 11 Jun 2016 09:27:10 +0100
changeset 377820 2962839ebcbd6b8c74090ba9f15ab37aefd9de6c
parent 377819 88cd3666b5909c21a1db66bbfbad9270ba70ba66
child 523412 321899b3e227768d34e6ccd5a867d357fe836457
push id20857
push userbmo:james@hoppipolla.co.uk
push dateSun, 12 Jun 2016 16:59:39 +0000
reviewersahal
bugs1279801
milestone50.0a1
Bug 1279801 - Add wpt lint to mozlint, r=ahal MozReview-Commit-ID: CcRBC5XzUQJ
tools/lint/wpt.lint
new file mode 100644
--- /dev/null
+++ b/tools/lint/wpt.lint
@@ -0,0 +1,55 @@
+# -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
+# vim: set filetype=python:
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+import json
+import os
+
+from mozprocess import ProcessHandler
+
+from mozlint import result
+
+top_src_dir = os.path.join(os.path.dirname(__file__), os.pardir, os.pardir)
+tests_dir = os.path.join(top_src_dir, "testing", "web-platform", "tests")
+
+results = []
+
+
+def process_line(line):
+    try:
+        data = json.loads(line)
+    except ValueError:
+        return
+    data["level"] = "error"
+    data["path"] = os.path.relpath(os.path.join(tests_dir, data["path"]), top_src_dir)
+    results.append(result.from_linter(LINTER, **data))
+
+
+def run_process():
+    path = os.path.join(tests_dir, "lint")
+    proc = ProcessHandler([path, "--json"], env=os.environ,
+                          processOutputLine=process_line)
+    proc.run()
+    try:
+        proc.wait()
+    except KeyboardInterrupt:
+        proc.kill()
+
+
+def lint(files, **kwargs):
+    run_process()
+    return results
+
+
+LINTER = {
+    'name': "wpt",
+    'description': "web-platform-tests lint",
+    'include': [
+        'testing/web-platform/tests',
+    ],
+    'exclude': [],
+    'type': 'external',
+    'payload': lint,
+}