diff options
Diffstat (limited to 'ppapi/PRESUBMIT.py')
-rw-r--r-- | ppapi/PRESUBMIT.py | 48 |
1 files changed, 38 insertions, 10 deletions
diff --git a/ppapi/PRESUBMIT.py b/ppapi/PRESUBMIT.py index 90b809c..227cc41 100644 --- a/ppapi/PRESUBMIT.py +++ b/ppapi/PRESUBMIT.py @@ -6,9 +6,43 @@ import os import sys import subprocess +def RunCmdAndCheck(cmd, ppapi_dir, err_string, output_api): + results = [] + p = subprocess.Popen(cmd, cwd=os.path.join(ppapi_dir, 'generators'), + stdout=subprocess.PIPE, + stderr=subprocess.PIPE) + (p_stdout, p_stderr) = p.communicate() + if p.returncode: + results.append( + output_api.PresubmitError(err_string, + long_text=p_stderr)) + return results + + +def RunUnittests(input_api, output_api): + # Run some Generator unittests if the generator source was changed. + results = [] + files = input_api.LocalPaths() + generator_files = [] + for filename in files: + name_parts = filename.split(os.sep) + if name_parts[0:2] == ['ppapi', 'generators']: + generator_files.append(filename) + if generator_files != []: + cmd = [ sys.executable, 'idl_gen_pnacl.py', '--wnone', '--test'] + ppapi_dir = input_api.PresubmitLocalPath() + results.extend(RunCmdAndCheck(cmd, + ppapi_dir, + 'PPAPI IDL Pnacl unittest failed.', + output_api)) + return results + + def CheckChange(input_api, output_api): results = [] + results.extend(RunUnittests(input_api, output_api)) + # Verify all modified *.idl have a matching *.h files = input_api.LocalPaths() h_files = [] @@ -51,15 +85,10 @@ def CheckChange(input_api, output_api): # Only generate output for IDL files references (as *.h or *.idl) in this CL cmd.append('--out=' + ','.join([name + '.idl' for name in both])) - - p = subprocess.Popen(cmd, cwd=os.path.join(ppapi_dir, 'generators'), - stdout=subprocess.PIPE, - stderr=subprocess.PIPE) - (p_stdout, p_stderr) = p.communicate() - if p.returncode: - results.append( - output_api.PresubmitError('PPAPI IDL Diff detected: Run the generator.', - long_text=p_stderr)) + results.extend(RunCmdAndCheck(cmd, + ppapi_dir, + 'PPAPI IDL Diff detected: Run the generator.', + output_api)) return results def CheckChangeOnUpload(input_api, output_api): @@ -69,4 +98,3 @@ def CheckChangeOnUpload(input_api, output_api): def CheckChangeOnCommit(input_api, output_api): # return [] return CheckChange(input_api, output_api) - |