diff --git a/tools/lint/lib/checks/harness.py b/tools/lint/lib/checks/harness.py new file mode 100644 index 0000000000000000000000000000000000000000..7876fadafd4607d150622f7953e9508daa1e940a --- /dev/null +++ b/tools/lint/lib/checks/harness.py @@ -0,0 +1,14 @@ +import yaml + +from ..check import Check + +class CheckHarness(Check): + '''Ensure tests don't misuse harness APIs.''' + ID = 'HARNESS' + + def run(self, name, meta, source): + print(source) + if 'verifyConfigurable(' in source and 'verifyProperty(' in source: + return 'verifyConfigurable & verifyProperty may not be used in the same file' + else: + return diff --git a/tools/lint/lint.py b/tools/lint/lint.py index 1161a8526acea1e329a57135e71bd24a6de06bd2..2c40c4a4c69f1ba5e247e68cd40ab0a1fdc903a5 100755 --- a/tools/lint/lint.py +++ b/tools/lint/lint.py @@ -30,6 +30,7 @@ from lib.checks.esid import CheckEsid from lib.checks.features import CheckFeatures from lib.checks.frontmatter import CheckFrontmatter from lib.checks.harnessfeatures import CheckHarnessFeatures +from lib.checks.harness import CheckHarness from lib.checks.license import CheckLicense from lib.checks.negative import CheckNegative from lib.checks.filename import CheckFileName @@ -51,6 +52,7 @@ checks = [ CheckFrontmatter(), CheckFeatures('features.txt'), CheckHarnessFeatures(), + CheckHarness(), CheckLicense(), CheckNegative() ] diff --git a/tools/lint/test/fixtures/harness_verifyconfigurableproperty_invalid.js b/tools/lint/test/fixtures/harness_verifyconfigurableproperty_invalid.js new file mode 100644 index 0000000000000000000000000000000000000000..925c5a6609568802e78caba86c653f0a13a00f2c --- /dev/null +++ b/tools/lint/test/fixtures/harness_verifyconfigurableproperty_invalid.js @@ -0,0 +1,12 @@ +HARNESS - verifyConfigurable & verifyProperty may not be used in the same file +^ expected errors | v input +// Copyright (C) 2017 Rick Waldron. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +esid: sec-whatever +description: Minimal test +includes: [verifyProperty.js] +---*/ + +verifyConfigurable(Object, ''); +verifyProperty(Object, {}); diff --git a/tools/lint/test/fixtures/harness_verifyconfigurableproperty_valid.js b/tools/lint/test/fixtures/harness_verifyconfigurableproperty_valid.js new file mode 100644 index 0000000000000000000000000000000000000000..f01afd16e9290e047cd7a5172edb950f8830c6f8 --- /dev/null +++ b/tools/lint/test/fixtures/harness_verifyconfigurableproperty_valid.js @@ -0,0 +1,10 @@ +^ expected errors | v input +// Copyright (C) 2017 Rick Waldron. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +esid: sec-whatever +description: Minimal test +includes: [verifyProperty.js] +---*/ + +verifyConfigurable(Object, '');