Title: [220754] trunk/LayoutTests/imported/w3c
- Revision
- 220754
- Author
- [email protected]
- Date
- 2017-08-15 13:21:26 -0700 (Tue, 15 Aug 2017)
Log Message
WPT harness errors on leaks bot
https://bugs.webkit.org/show_bug.cgi?id=175269
Patch by Youenn Fablet <[email protected]> on 2017-08-15
Reviewed by Alexey Proskuryakov.
To try debugging these errors, let's check whether the WPT server is
sending back resources of the expected size.
* web-platform-tests/tools/wptserve/wptserve/response.py:
(Response.write_content):
(ResponseWriter.write_content):
(ResponseWriter.write):
(ResponseWriter.write_content_file):
Modified Paths
Diff
Modified: trunk/LayoutTests/imported/w3c/ChangeLog (220753 => 220754)
--- trunk/LayoutTests/imported/w3c/ChangeLog 2017-08-15 20:13:54 UTC (rev 220753)
+++ trunk/LayoutTests/imported/w3c/ChangeLog 2017-08-15 20:21:26 UTC (rev 220754)
@@ -1,3 +1,19 @@
+2017-08-15 Youenn Fablet <[email protected]>
+
+ WPT harness errors on leaks bot
+ https://bugs.webkit.org/show_bug.cgi?id=175269
+
+ Reviewed by Alexey Proskuryakov.
+
+ To try debugging these errors, let's check whether the WPT server is
+ sending back resources of the expected size.
+
+ * web-platform-tests/tools/wptserve/wptserve/response.py:
+ (Response.write_content):
+ (ResponseWriter.write_content):
+ (ResponseWriter.write):
+ (ResponseWriter.write_content_file):
+
2017-08-15 Chris Dumez <[email protected]>
Implement quota limitation for keepalive Fetch requests
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptserve/wptserve/response.py (220753 => 220754)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptserve/wptserve/response.py 2017-08-15 20:13:54 UTC (rev 220753)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptserve/wptserve/response.py 2017-08-15 20:21:26 UTC (rev 220754)
@@ -2,6 +2,7 @@
from datetime import datetime, timedelta
import Cookie
import json
+import traceback
import types
import uuid
import socket
@@ -205,9 +206,11 @@
def write_content(self):
"""Write out the response content"""
+ response_size = 0
if self.request.method != "HEAD" or self.send_body_for_head_request:
for item in self.iter_content():
- self.writer.write_content(item)
+ response_size += self.writer.write_content(item)
+ self.logger.debug("Wrote content of size %d for %s" % (response_size, self.request.request_path))
def write(self):
"""Write the whole response"""
@@ -368,6 +371,7 @@
self.content_written = False
self.request = response.request
self.file_chunk_size = 32 * 1024
+ self.logger = get_logger()
def write_status(self, code, message=None):
"""Write out the status line of a response.
@@ -424,12 +428,14 @@
def write_content(self, data):
"""Write the body of the response."""
+ response_size = 0
if isinstance(data, types.StringTypes):
- self.write(data)
+ response_size = self.write(data)
else:
- self.write_content_file(data)
+ response_size = self.write_content_file(data)
if not self._response.explicit_flush:
self.flush()
+ return response_size
def write(self, data):
"""Write directly to the response, converting unicode to bytes
@@ -436,9 +442,12 @@
according to response.encoding. Does not flush."""
self.content_written = True
try:
- self._wfile.write(self.encode(data))
+ buffer = self.encode(data)
+ self._wfile.write(buffer)
+ return len(buffer)
except socket.error:
# This can happen if the socket got closed by the remote end
+ self.logger.debug("Got exception when writing response " + traceback.format_exc())
pass
def write_content_file(self, data):
@@ -445,15 +454,19 @@
"""Write a file-like object directly to the response in chunks.
Does not flush."""
self.content_written = True
+ written_size = 0
while True:
buf = data.read(self.file_chunk_size)
+ written_size += len(buf)
if not buf:
break
try:
self._wfile.write(buf)
except socket.error:
+ self.logger.debug("Got exception when writing response " + traceback.format_exc())
break
data.close()
+ return written_size
def encode(self, data):
"""Convert unicode to bytes according to response.encoding."""
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes