tests/badserverext.py
changeset 37498 aacfca6f9767
parent 36395 fb7897e53d49
child 39428 cbfab495dbcf
--- a/tests/badserverext.py	Fri Apr 06 22:39:58 2018 -0700
+++ b/tests/badserverext.py	Thu Jan 18 12:54:01 2018 +0100
@@ -48,10 +48,10 @@
     default=False,
 )
 configitem(b'badserver', b'closeafterrecvbytes',
-    default=0,
+    default='0',
 )
 configitem(b'badserver', b'closeaftersendbytes',
-    default=0,
+    default='0',
 )
 configitem(b'badserver', b'closebeforeaccept',
     default=False,
@@ -238,6 +238,13 @@
             self._ui = ui
             super(badserver, self).__init__(ui, *args, **kwargs)
 
+            recvbytes = self._ui.config('badserver', 'closeafterrecvbytes')
+            recvbytes = recvbytes.split(',')
+            self.closeafterrecvbytes = [int(v) for v in recvbytes if v]
+            sendbytes = self._ui.config('badserver', 'closeaftersendbytes')
+            sendbytes = sendbytes.split(',')
+            self.closeaftersendbytes = [int(v) for v in sendbytes if v]
+
             # Need to inherit object so super() works.
             class badrequesthandler(self.RequestHandlerClass, object):
                 def send_header(self, name, value):
@@ -275,10 +282,14 @@
         # is a hgweb.server._httprequesthandler.
         def process_request(self, socket, address):
             # Wrap socket in a proxy if we need to count bytes.
-            closeafterrecvbytes = self._ui.configint('badserver',
-                                                     'closeafterrecvbytes')
-            closeaftersendbytes = self._ui.configint('badserver',
-                                                     'closeaftersendbytes')
+            if self.closeafterrecvbytes:
+                closeafterrecvbytes = self.closeafterrecvbytes.pop(0)
+            else:
+                closeafterrecvbytes = 0
+            if self.closeaftersendbytes:
+                closeaftersendbytes = self.closeaftersendbytes.pop(0)
+            else:
+                closeaftersendbytes = 0
 
             if closeafterrecvbytes or closeaftersendbytes:
                 socket = socketproxy(socket, self.errorlog,