summaryrefslogtreecommitdiff
path: root/PRESUBMIT.py
diff options
context:
space:
mode:
authorNicolas Pena <npm@chromium.org>2017-05-19 15:59:49 -0400
committerChromium commit bot <commit-bot@chromium.org>2017-05-19 20:47:17 +0000
commitd824a90b6fc908020d8f264447fd348c7ffe72c5 (patch)
tree5173b1ee2befb43154e6ba25a66561090bfc4ff7 /PRESUBMIT.py
parent76020fc9751e55661d1c01b6cd92dfcb1fd56e6a (diff)
downloadpdfium-d824a90b6fc908020d8f264447fd348c7ffe72c5.tar.xz
Add test duplicate check in presubmit
This CL adds a presubmit check to avoid adding both .in and .pdf file to javascript and pixel tests. Change-Id: If2f252d20c3bfd3f9cd5963bb3428b57f6bee1b5 Reviewed-on: https://pdfium-review.googlesource.com/5710 Reviewed-by: Lei Zhang <thestig@chromium.org> Commit-Queue: Nicolás Peña <npm@chromium.org>
Diffstat (limited to 'PRESUBMIT.py')
-rw-r--r--PRESUBMIT.py28
1 files changed, 28 insertions, 0 deletions
diff --git a/PRESUBMIT.py b/PRESUBMIT.py
index db1bf00eb3..26d559a33f 100644
--- a/PRESUBMIT.py
+++ b/PRESUBMIT.py
@@ -249,6 +249,33 @@ def _CheckIncludeOrder(input_api, output_api):
warnings))
return results
+def _CheckTestDuplicates(input_api, output_api):
+ """Checks that pixel and javascript tests don't contain duplicates.
+ We use .in and .pdf files, having both can cause race conditions on the bots,
+ which run the tests in parallel.
+ """
+ tests_added = []
+ results = []
+ for f in input_api.AffectedFiles():
+ if not f.LocalPath().startswith(('testing/resources/pixel/',
+ 'testing/resources/javascript/')):
+ continue
+ end_len = 0
+ if f.LocalPath().endswith('.in'):
+ end_len = 3
+ elif f.LocalPath().endswith('.pdf'):
+ end_len = 4
+ else:
+ continue
+ path = f.LocalPath()[:-end_len];
+ if path in tests_added:
+ results.append(output_api.PresubmitError(
+ 'Remove %s to prevent shadowing %s' % (path + '.pdf',
+ path + '.in')))
+ else:
+ tests_added.append(path)
+ return results
+
def CheckChangeOnUpload(input_api, output_api):
results = []
@@ -257,5 +284,6 @@ def CheckChangeOnUpload(input_api, output_api):
results += input_api.canned_checks.CheckChangeLintsClean(
input_api, output_api, None, LINT_FILTERS)
results += _CheckIncludeOrder(input_api, output_api)
+ results += _CheckTestDuplicates(input_api, output_api)
return results