Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(396)

Side by Side Diff: Tools/Scripts/webkitpy/bindings/main.py

Issue 24053003: Support partial interface for test support idls (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Use one InterfaceDependencies.txt file Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 # Copyright (C) 2011 Google Inc. All rights reserved. 1 # Copyright (C) 2011 Google Inc. All rights reserved.
2 # 2 #
3 # Redistribution and use in source and binary forms, with or without 3 # Redistribution and use in source and binary forms, with or without
4 # modification, are permitted provided that the following conditions 4 # modification, are permitted provided that the following conditions
5 # are met: 5 # are met:
6 # 1. Redistributions of source code must retain the above copyright 6 # 1. Redistributions of source code must retain the above copyright
7 # notice, this list of conditions and the following disclaimer. 7 # notice, this list of conditions and the following disclaimer.
8 # 2. Redistributions in binary form must reproduce the above copyright 8 # 2. Redistributions in binary form must reproduce the above copyright
9 # notice, this list of conditions and the following disclaimer in the 9 # notice, this list of conditions and the following disclaimer in the
10 # documentation and/or other materials provided with the distribution. 10 # documentation and/or other materials provided with the distribution.
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
46 'TestNode.idl', 46 'TestNode.idl',
47 'TestObject.idl', 47 'TestObject.idl',
48 'TestOverloadedConstructors.idl', 48 'TestOverloadedConstructors.idl',
49 'TestPartialInterface.idl', 49 'TestPartialInterface.idl',
50 'TestSerializedScriptValueInterface.idl', 50 'TestSerializedScriptValueInterface.idl',
51 'TestTypedArray.idl', 51 'TestTypedArray.idl',
52 'TestTypedefs.idl', 52 'TestTypedefs.idl',
53 ]) 53 ])
54 54
55 input_directory = os.path.join('bindings', 'tests', 'idls') 55 input_directory = os.path.join('bindings', 'tests', 'idls')
56 testing_input_directory = os.path.join('bindings', 'tests', 'idls', 'testing')
56 reference_directory = os.path.join('bindings', 'tests', 'results') 57 reference_directory = os.path.join('bindings', 'tests', 'results')
57 reference_event_names_filename = os.path.join(reference_directory, 'EventInterfa ces.in') 58 reference_event_names_filename = os.path.join(reference_directory, 'EventInterfa ces.in')
58 59
59 60
60 class ScopedTempFileProvider(object): 61 class ScopedTempFileProvider(object):
61 def __init__(self): 62 def __init__(self):
62 self.files = [] 63 self.files = []
63 self.directories = [] 64 self.directories = []
64 65
65 def __del__(self): 66 def __del__(self):
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
133 print output 134 print output
134 return 0 135 return 0
135 136
136 def generate_interface_dependencies(self): 137 def generate_interface_dependencies(self):
137 idl_files_list_file, idl_files_list_filename = provider.newtempfile() 138 idl_files_list_file, idl_files_list_filename = provider.newtempfile()
138 idl_paths = [os.path.join(input_directory, input_file) 139 idl_paths = [os.path.join(input_directory, input_file)
139 for input_file in os.listdir(input_directory) 140 for input_file in os.listdir(input_directory)
140 if input_file.endswith('.idl')] 141 if input_file.endswith('.idl')]
141 idl_files_list_contents = ''.join(idl_path + '\n' 142 idl_files_list_contents = ''.join(idl_path + '\n'
142 for idl_path in idl_paths) 143 for idl_path in idl_paths)
144 testing_idl_paths = [os.path.join(testing_input_directory, input_file)
145 for input_file in os.listdir(testing_input_directory)
146 if input_file.endswith('.idl')]
147 idl_files_list_contents = idl_files_list_contents.join(idl_path + '\n'
148 for idl_path in testing_idl_paths)
143 os.write(idl_files_list_file, idl_files_list_contents) 149 os.write(idl_files_list_file, idl_files_list_contents)
144 150
145 # Dummy files, required by compute_dependencies but not checked 151 # Dummy files, required by compute_dependencies but not checked
146 _, window_constructors_file = provider.newtempfile() 152 _, window_constructors_file = provider.newtempfile()
147 _, workerglobalscope_constructors_file = provider.newtempfile() 153 _, workerglobalscope_constructors_file = provider.newtempfile()
148 _, sharedworkerglobalscope_constructors_file = provider.newtempfile() 154 _, sharedworkerglobalscope_constructors_file = provider.newtempfile()
149 _, dedicatedworkerglobalscope_constructors_file = provider.newtempfile() 155 _, dedicatedworkerglobalscope_constructors_file = provider.newtempfile()
150 cmd = ['python', 156 cmd = ['python',
151 'bindings/scripts/compute_dependencies.py', 157 'bindings/scripts/compute_dependencies.py',
152 '--idl-files-list', idl_files_list_filename, 158 '--idl-files-list', idl_files_list_filename,
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
192 def identical_output_directory(self, work_directory): 198 def identical_output_directory(self, work_directory):
193 file_pairs = [(os.path.join(reference_directory, output_file), 199 file_pairs = [(os.path.join(reference_directory, output_file),
194 os.path.join(work_directory, output_file)) 200 os.path.join(work_directory, output_file))
195 for output_file in os.listdir(work_directory) 201 for output_file in os.listdir(work_directory)
196 # FIXME: add option to compiler to not generate tables 202 # FIXME: add option to compiler to not generate tables
197 if output_file != 'parsetab.py'] 203 if output_file != 'parsetab.py']
198 return all([self.identical_file(reference_filename, work_filename) 204 return all([self.identical_file(reference_filename, work_filename)
199 for (reference_filename, work_filename) in file_pairs]) 205 for (reference_filename, work_filename) in file_pairs])
200 206
201 def run_tests(self): 207 def run_tests(self):
202 def generate_and_check_output_pl(idl_filename): 208 def generate_and_check_output_pl(idl_filename, input_directory):
203 # Generate output into the reference directory if resetting 209 # Generate output into the reference directory if resetting
204 # results, or a temp directory if not. 210 # results, or a temp directory if not.
205 if self.reset_results: 211 if self.reset_results:
206 work_directory = reference_directory 212 work_directory = reference_directory
207 else: 213 else:
208 work_directory = provider.newtempdir() 214 work_directory = provider.newtempdir()
209 idl_path = os.path.join(input_directory, idl_filename) 215 idl_path = os.path.join(input_directory, idl_filename)
210 if self.generate_from_idl_pl(idl_path, work_directory): 216 if self.generate_from_idl_pl(idl_path, work_directory):
211 return False 217 return False
212 if self.reset_results: 218 if self.reset_results:
(...skipping 10 matching lines...) Expand all
223 if self.generate_from_idl_py(idl_path, work_directory): 229 if self.generate_from_idl_py(idl_path, work_directory):
224 return False 230 return False
225 # Detect changes 231 # Detect changes
226 return self.identical_output_directory(work_directory) 232 return self.identical_output_directory(work_directory)
227 233
228 if self.reset_results: 234 if self.reset_results:
229 passed = True 235 passed = True
230 else: 236 else:
231 passed = self.identical_file(reference_event_names_filename, 237 passed = self.identical_file(reference_event_names_filename,
232 self.event_names_filename) 238 self.event_names_filename)
233 passed &= all([generate_and_check_output_pl(input_file) 239 passed &= all([generate_and_check_output_pl(input_file, input_directory)
234 for input_file in os.listdir(input_directory) 240 for input_file in os.listdir(input_directory)
235 if input_file.endswith('.idl')]) 241 if input_file.endswith('.idl')])
242 passed &= all([generate_and_check_output_pl(input_file, testing_input_di rectory)
243 for input_file in os.listdir(testing_input_directory)
244 if input_file.endswith('.idl')])
236 print 245 print
237 print 'Python:' 246 print 'Python:'
238 passed &= all([generate_and_check_output_py(input_file) 247 passed &= all([generate_and_check_output_py(input_file)
239 for input_file in os.listdir(input_directory) 248 for input_file in os.listdir(input_directory)
240 if input_file.endswith('.idl')]) 249 if input_file.endswith('.idl')])
241 return passed 250 return passed
242 251
243 def main(self): 252 def main(self):
244 current_scm = detect_scm_system(os.curdir) 253 current_scm = detect_scm_system(os.curdir)
245 os.chdir(os.path.join(current_scm.checkout_root, 'Source')) 254 os.chdir(os.path.join(current_scm.checkout_root, 'Source'))
246 255
247 if self.generate_interface_dependencies(): 256 if self.generate_interface_dependencies():
248 print 'Failed to generate interface dependencies file.' 257 print 'Failed to generate interface dependencies file.'
249 return -1 258 return -1
250 259
251 all_tests_passed = self.run_tests() 260 all_tests_passed = self.run_tests()
252 print 261 print
253 if all_tests_passed: 262 if all_tests_passed:
254 print 'All tests PASS!' 263 print 'All tests PASS!'
255 return 0 264 return 0
256 print 'Some tests FAIL! (To update the reference files, execute "run-bin dings-tests --reset-results")' 265 print 'Some tests FAIL! (To update the reference files, execute "run-bin dings-tests --reset-results")'
257 return -1 266 return -1
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698