+2011-12-06 Kentaro Hara <haraken@chromium.org>
+
+ [Refactoring] In webkitpy/bindings/main.py, replace subprocess.Popen() with Executive
+ https://bugs.webkit.org/show_bug.cgi?id=73637
+
+ Reviewed by Adam Barth.
+
+ This patch replaces subprocess.Popen() with Executive, similar to other
+ Python scripts in webkitpy/. I manually confirmed that run-bindings-tests
+ works well for cases where no exception is raised, no exception is raised
+ but diff is found, and ScriptError is raised.
+
+ * Scripts/run-bindings-tests:
+ (main):
+ * Scripts/webkitpy/bindings/main.py: Replaces subprocess.Popen() with Executive.
+ (BindingsTests.__init__):
+ (BindingsTests.generate_from_idl):
+ (BindingsTests.generate_supplemental_dependency):
+ (BindingsTests.detect_changes):
+
2011-12-05 Alexander Færøy <alexander.faeroy@nokia.com>
[Qt] MiniBrowser should default to touch behavior
import sys
import tempfile
from webkitpy.common.checkout.scm.detection import detect_scm_system
+from webkitpy.common.system.executive import ScriptError
class BindingsTests:
- def __init__(self, reset_results, generators):
+ def __init__(self, reset_results, generators, executive):
self.reset_results = reset_results
self.generators = generators
+ self.executive = executive
def generate_from_idl(self, generator, idl_file, output_directory, supplemental_dependency_file):
cmd = ['perl', '-w',
'--supplementalDependencyFile', supplemental_dependency_file,
idl_file]
- process = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
- exit_code = process.wait()
- output = process.communicate()[0]
- if output:
- print output
+ exit_code = 0
+ try:
+ output = self.executive.run_command(cmd)
+ if output:
+ print output
+ except ScriptError, e:
+ print e.message_with_output()
+ exit_code = e.exit_code
return exit_code
def generate_supplemental_dependency(self, input_directory, supplemental_dependency_file):
'--idlFilesList', idl_files_list[1],
'--defines', '',
'--supplementalDependencyFile', supplemental_dependency_file]
- process = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
- exit_code = process.wait()
- output = process.communicate()[0]
- if output:
- print output
+ exit_code = 0
+ try:
+ output = self.executive.run_command(cmd)
+ if output:
+ print output
+ except ScriptError, e:
+ print e.message_with_output()
+ exit_code = e.exit_code
os.remove(idl_files_list[1])
return exit_code
os.path.join(reference_directory, output_file),
os.path.join(work_directory, output_file)]
- process = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
- process.wait()
- output = process.communicate()[0]
- if output:
+ exit_code = 0
+ try:
+ output = self.executive.run_command(cmd)
+ except ScriptError, e:
+ output = e.message_with_output()
+ exit_code = e.exit_code
+
+ if exit_code or output:
print 'FAIL: (%s) %s' % (generator, output_file)
print output
changes_found = True
else:
print 'PASS: (%s) %s' % (generator, output_file)
-
return changes_found
def run_tests(self, generator, input_directory, reference_directory, supplemental_dependency_file):