| # Copyright 2017 The PDFium Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| """Presubmit script for PDFium testing corpus. |
| |
| See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts |
| for more details about the presubmit API built into depot_tools. |
| """ |
| |
| PRESUBMIT_VERSION = '2.0.0' |
| |
| USE_PYTHON3 = True |
| |
| def _CheckNoIn(input_api, output_api): |
| """Checks that corpus tests don't contain .in files. Corpus tests should be |
| .pdf files, having both can cause race conditions on the bots, which run the |
| tests in parallel. |
| """ |
| results = [] |
| for f in input_api.AffectedFiles(include_deletes=False): |
| if f.LocalPath().endswith('.in'): |
| results.append(output_api.PresubmitError( |
| f'Remove {f.LocalPath()} since corpus tests should not use .in files' |
| )) |
| return results |
| |
| def _CheckPngNames(input_api, output_api): |
| """Checks that .png files have the right file name format, which must be in |
| the form of |
| NAME_expected(_(skia|skiapaths))?(_(win|mac|linux))?.pdf.#.png. This format |
| must be the same as the one used in PDFium's PRESUBMIT.py's |
| _CheckPNGFormat(). |
| """ |
| png_regex = input_api.re.compile( |
| r'.+_expected(_(skia|skiapaths))?(_(win|mac|linux))?\.pdf\.\d+.png') |
| warnings = [] |
| for f in input_api.AffectedFiles(include_deletes=False): |
| local_path = f.LocalPath() |
| if local_path.endswith('.png'): |
| if not png_regex.match(local_path): |
| warnings.append(local_path) |
| |
| results = [] |
| if warnings: |
| results.append(output_api.PresubmitPromptOrNotify( |
| 'The following PNG files have the wrong file name format:\n', |
| warnings)) |
| return results |
| |
| def ChecksCommon(input_api, output_api): |
| results = [] |
| |
| results.extend( |
| input_api.canned_checks.PanProjectChecks( |
| input_api, output_api, project_name='PDFium')) |
| |
| return results |
| |
| def CheckChangeOnUpload(input_api, output_api): |
| results = [] |
| results += _CheckPngNames(input_api, output_api) |
| results += _CheckNoIn(input_api, output_api) |
| return results |