Add build script tests
You can run these tests with `npm run build-test`, while we also run
them as part of our PRESUBMIT if we make any changes to the build
folder.
R=yangguo@chromium.org
CC=tikuta@chromium.org
Bug: 1293772
Change-Id: Id3b02c83398d2346a4ec5a06f3b938d33070d4f7
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/3439987
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Tim Van der Lippe <tvanderlippe@chromium.org>
Auto-Submit: Tim Van der Lippe <tvanderlippe@chromium.org>
diff --git a/PRESUBMIT.py b/PRESUBMIT.py
index f3a1982..4f9eee4 100644
--- a/PRESUBMIT.py
+++ b/PRESUBMIT.py
@@ -227,6 +227,40 @@
return results
+def _CheckDevToolsRunBuildTests(input_api, output_api):
+ # Check for changes in the build/tests directory, and run the tests if so.
+ # We don't do this on every CL as most do not touch the rules, but if we do
+ # change them we need to make sure all the tests are passing.
+ original_sys_path = sys.path
+ try:
+ sys.path = sys.path + [
+ input_api.os_path.join(input_api.PresubmitLocalPath(), 'scripts')
+ ]
+ import devtools_paths
+ finally:
+ sys.path = original_sys_path
+ scripts_build_dir_path = input_api.os_path.join(
+ input_api.PresubmitLocalPath(), 'scripts', 'build')
+ scripts_build_affected_files = _getAffectedFiles(input_api,
+ [scripts_build_dir_path],
+ [], [])
+
+ if len(scripts_build_affected_files) == 0:
+ return []
+
+ mocha_path = devtools_paths.mocha_path()
+ build_tests_path = input_api.os_path.join(scripts_build_dir_path, 'tests',
+ '*_test.js')
+
+ results = [output_api.PresubmitNotifyResult('Build plugins unit tests')]
+ results.extend(
+ # The dot reporter is more concise which is useful to not get LOADS of
+ # output when just one test fails.
+ _checkWithNodeScript(input_api, output_api, mocha_path,
+ ['--reporter', 'dot', build_tests_path]))
+ return results
+
+
def _CheckDevToolsStyleJS(input_api, output_api):
results = [output_api.PresubmitNotifyResult('JS style check:')]
lint_path = input_api.os_path.join(input_api.PresubmitLocalPath(),
@@ -528,6 +562,7 @@
results.extend(_CheckDevToolsStyleJS(input_api, output_api))
results.extend(_CheckDevToolsStyleCSS(input_api, output_api))
results.extend(_CheckDevToolsRunESLintTests(input_api, output_api))
+ results.extend(_CheckDevToolsRunBuildTests(input_api, output_api))
results.extend(_CheckDevToolsNonJSFileLicenseHeaders(
input_api, output_api))