Changeset 105650 in webkit
- Timestamp:
- Jan 23, 2012, 3:49:00 PM (15 years ago)
- Location:
- trunk/Tools
- Files:
-
- 4 edited
-
ChangeLog (modified) (1 diff)
-
Scripts/webkitpy/common/net/file_uploader.py (modified) (2 diffs)
-
Scripts/webkitpy/performance_tests/perftestsrunner.py (modified) (1 diff)
-
Scripts/webkitpy/performance_tests/perftestsrunner_unittest.py (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Tools/ChangeLog
r105644 r105650 1 2012-01-23 Ryosuke Niwa <rniwa@webkit.org> 2 3 run-perf-tests should report server-side errors 4 https://bugs.webkit.org/show_bug.cgi?id=76802 5 6 Reviewed by Tony Chang. 7 8 Report errors whenever server's response doesn't match "OK". 9 10 * Scripts/webkitpy/common/net/file_uploader.py: 11 (FileUploader.upload_single_text_file): 12 (FileUploader.upload_as_multipart_form_data): 13 (FileUploader._upload_data.callback): 14 (FileUploader): 15 (FileUploader._upload_data): 16 * Scripts/webkitpy/performance_tests/perftestsrunner.py: 17 (PerfTestsRunner._upload_json): 18 * Scripts/webkitpy/performance_tests/perftestsrunner_unittest.py: 19 (test_upload_json): 20 (test_upload_json.MockFileUploader.upload_single_text_file): 21 1 22 2012-01-22 Ryosuke Niwa <rniwa@webkit.org> 2 23 -
trunk/Tools/Scripts/webkitpy/common/net/file_uploader.py
r105543 r105650 90 90 91 91 def upload_single_text_file(self, filesystem, content_type, filename): 92 self._upload_data(content_type, filesystem.read_text_file(filename))92 return self._upload_data(content_type, filesystem.read_text_file(filename)) 93 93 94 94 def upload_as_multipart_form_data(self, filesystem, files, params, timeout_seconds): … … 100 100 # FIXME: We should use the same variable names for the formal and actual parameters. 101 101 content_type, data = _encode_multipart_form_data(attrs, file_objs) 102 self._upload_data(content_type, data)102 return self._upload_data(content_type, data) 103 103 104 104 def _upload_data(self, content_type, data): 105 105 def callback(): 106 106 request = urllib2.Request(self._url, data, {"Content-Type": content_type}) 107 urllib2.urlopen(request)107 return urllib2.urlopen(request) 108 108 109 109 orig_timeout = socket.getdefaulttimeout() 110 response = None 110 111 try: 111 112 # FIXME: We shouldn't mutate global static state. 112 113 socket.setdefaulttimeout(self._timeout_seconds) 113 NetworkTransaction(timeout_seconds=self._timeout_seconds).run(callback)114 response = NetworkTransaction(timeout_seconds=self._timeout_seconds).run(callback) 114 115 finally: 115 116 socket.setdefaulttimeout(orig_timeout) 117 return response -
trunk/Tools/Scripts/webkitpy/performance_tests/perftestsrunner.py
r105592 r105650 175 175 uploader = file_uploader("https://%s/api/test/report" % test_results_server, 120) 176 176 try: 177 uploader.upload_single_text_file(self._host.filesystem, 'application/json', json_path)177 response = uploader.upload_single_text_file(self._host.filesystem, 'application/json', json_path) 178 178 except Exception, error: 179 179 _log.error("Failed to upload JSON file in 120s: %s" % error) 180 return False 181 182 response_body = [line.strip('\n') for line in response] 183 if response_body != ['OK']: 184 _log.error("Uploaded JSON but got a bad response:") 185 for line in response_body: 186 _log.error(line) 180 187 return False 181 188 -
trunk/Tools/Scripts/webkitpy/performance_tests/perftestsrunner_unittest.py
r105543 r105650 30 30 """Unit tests for run_perf_tests.""" 31 31 32 import StringIO 32 33 import json 33 34 import unittest … … 36 37 from webkitpy.common.host_mock import MockHost 37 38 from webkitpy.common.system.filesystem_mock import MockFileSystem 39 from webkitpy.common.system.outputcapture import OutputCapture 38 40 from webkitpy.layout_tests.port.driver import DriverInput, DriverOutput 39 41 from webkitpy.layout_tests.port.test import TestPort … … 241 243 def test_upload_json(self): 242 244 regular_output = array_stream.ArrayStream() 243 runner = self.create_runner( buildbot_output=regular_output)245 runner = self.create_runner(regular_output=regular_output) 244 246 runner._host.filesystem.files['/mock-checkout/some.json'] = 'some content' 245 247 246 248 called = [] 247 249 upload_single_text_file_throws = False 250 upload_single_text_file_return_value = StringIO.StringIO('OK') 248 251 249 252 class MockFileUploader: … … 260 263 if upload_single_text_file_throws: 261 264 raise "Some exception" 265 return upload_single_text_file_return_value 262 266 263 267 runner._upload_json('some.host', 'some.json', MockFileUploader) 264 268 self.assertEqual(called, ['FileUploader', 'upload_single_text_file']) 269 270 output = OutputCapture() 271 output.capture_output() 272 upload_single_text_file_return_value = StringIO.StringIO('Some error') 273 runner._upload_json('some.host', 'some.json', MockFileUploader) 274 _, _, logs = output.restore_output() 275 self.assertEqual(logs, 'Uploaded JSON but got a bad response:\nSome error\n') 265 276 266 277 # Throwing an exception upload_single_text_file shouldn't blow up _upload_json
Note:
See TracChangeset
for help on using the changeset viewer.