OLD | NEW |
1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
2 # Copyright (c) 2006-2009 The Chromium Authors. All rights reserved. | 2 # Copyright (c) 2006-2009 The Chromium Authors. All rights reserved. |
3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
5 | 5 |
6 """Generic presubmit checks that can be reused by other presubmit checks.""" | 6 """Generic presubmit checks that can be reused by other presubmit checks.""" |
7 | 7 |
8 | 8 |
9 ### Description checks | 9 ### Description checks |
10 | 10 |
(...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
191 """Checks that the source files have svn:eol-style=LF.""" | 191 """Checks that the source files have svn:eol-style=LF.""" |
192 return CheckSvnProperty(input_api, output_api, | 192 return CheckSvnProperty(input_api, output_api, |
193 'svn:eol-style', 'LF', | 193 'svn:eol-style', 'LF', |
194 input_api.AffectedSourceFiles(source_file_filter)) | 194 input_api.AffectedSourceFiles(source_file_filter)) |
195 | 195 |
196 | 196 |
197 def CheckSvnForCommonMimeTypes(input_api, output_api): | 197 def CheckSvnForCommonMimeTypes(input_api, output_api): |
198 """Checks that common binary file types have the correct svn:mime-type.""" | 198 """Checks that common binary file types have the correct svn:mime-type.""" |
199 output = [] | 199 output = [] |
200 files = input_api.AffectedFiles(include_deletes=False) | 200 files = input_api.AffectedFiles(include_deletes=False) |
| 201 def IsExts(x, exts): |
| 202 path = x.LocalPath() |
| 203 for extension in exts: |
| 204 if path.endswith(extension): |
| 205 return True |
| 206 return False |
201 def FilterFiles(extension): | 207 def FilterFiles(extension): |
202 return filter(lambda x: x.endswith(extension), files) | 208 return filter(lambda x: IsExts(x, extension), files) |
203 def JpegFiles(): | |
204 return filter(lambda x: (x.endswith('.jpg') or x.endswith('.jpeg') or | |
205 x.endswith('.jpe')), | |
206 files) | |
207 def RunCheck(mime_type, files): | 209 def RunCheck(mime_type, files): |
208 output.extend(CheckSvnProperty(input_api, output_api, 'svn:mime-type', | 210 output.extend(CheckSvnProperty(input_api, output_api, 'svn:mime-type', |
209 mime_type, files)) | 211 mime_type, files)) |
210 RunCheck('application/pdf', FilterFiles('.pdf')) | 212 RunCheck('application/pdf', FilterFiles(['.pdf'])) |
211 RunCheck('image/bmp', FilterFiles('.bmp')) | 213 RunCheck('image/bmp', FilterFiles(['.bmp'])) |
212 RunCheck('image/gif', FilterFiles('.gif')) | 214 RunCheck('image/gif', FilterFiles(['.gif'])) |
213 RunCheck('image/png', FilterFiles('.png')) | 215 RunCheck('image/png', FilterFiles(['.png'])) |
214 RunCheck('image/jpeg', JpegFiles()) | 216 RunCheck('image/jpeg', FilterFiles(['.jpg', '.jpeg', '.jpe'])) |
215 RunCheck('image/vnd.microsoft.icon', FilterFiles('.ico')) | 217 RunCheck('image/vnd.microsoft.icon', FilterFiles(['.ico'])) |
216 return output | 218 return output |
217 | 219 |
218 | 220 |
219 def CheckSvnProperty(input_api, output_api, prop, expected, affected_files): | 221 def CheckSvnProperty(input_api, output_api, prop, expected, affected_files): |
220 """Checks that affected_files files have prop=expected.""" | 222 """Checks that affected_files files have prop=expected.""" |
221 bad = filter(lambda f: f.scm == 'svn' and f.Property(prop) != expected, | 223 bad = filter(lambda f: f.scm == 'svn' and f.Property(prop) != expected, |
222 affected_files) | 224 affected_files) |
223 if bad: | 225 if bad: |
224 if input_api.is_committing: | 226 if input_api.is_committing: |
225 type = output_api.PresubmitError | 227 type = output_api.PresubmitError |
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
299 stderr=input_api.subprocess.PIPE) | 301 stderr=input_api.subprocess.PIPE) |
300 stdoutdata, stderrdata = subproc.communicate() | 302 stdoutdata, stderrdata = subproc.communicate() |
301 # Discard the output if returncode == 0 | 303 # Discard the output if returncode == 0 |
302 if subproc.returncode: | 304 if subproc.returncode: |
303 outputs.append("Test '%s' failed with code %d\n%s\n%s\n" % ( | 305 outputs.append("Test '%s' failed with code %d\n%s\n%s\n" % ( |
304 unit_test_name, subproc.returncode, stdoutdata, stderrdata)) | 306 unit_test_name, subproc.returncode, stdoutdata, stderrdata)) |
305 if outputs: | 307 if outputs: |
306 return [message_type("%d unit tests failed." % len(outputs), | 308 return [message_type("%d unit tests failed." % len(outputs), |
307 long_text='\n'.join(outputs))] | 309 long_text='\n'.join(outputs))] |
308 return [] | 310 return [] |
OLD | NEW |