[CalendarServer-changes] [11687] CalendarServer/trunk/twext/web2/test/test_metafd.py
source_changes at macosforge.org
source_changes at macosforge.org
Thu Sep 12 18:17:48 PDT 2013
Revision: 11687
http://trac.calendarserver.org//changeset/11687
Author: glyph at apple.com
Date: 2013-09-12 18:17:48 -0700 (Thu, 12 Sep 2013)
Log Message:
-----------
Refactor test implementation to make testing of MaxRequests enforcement easier.
Modified Paths:
--------------
CalendarServer/trunk/twext/web2/test/test_metafd.py
Modified: CalendarServer/trunk/twext/web2/test/test_metafd.py
===================================================================
--- CalendarServer/trunk/twext/web2/test/test_metafd.py 2013-09-13 01:17:42 UTC (rev 11686)
+++ CalendarServer/trunk/twext/web2/test/test_metafd.py 2013-09-13 01:17:48 UTC (rev 11687)
@@ -169,6 +169,7 @@
builder = LimiterBuilder(self)
builder.fillUp()
self.assertEquals(builder.port.reading, False) # sanity check
+ self.assertEquals(builder.highestLoad(), builder.requestsPerSocket)
builder.loadDown()
self.assertEquals(builder.port.reading, True)
@@ -182,6 +183,7 @@
builder = LimiterBuilder(self)
builder.fillUp()
self.assertEquals(builder.port.reading, False)
+ self.assertEquals(builder.highestLoad(), builder.requestsPerSocket)
builder.processRestart()
self.assertEquals(builder.port.reading, True)
@@ -193,6 +195,7 @@
"""
builder = LimiterBuilder(self)
builder.fillUp(acknowledged=False)
+ self.assertEquals(builder.highestLoad(), builder.requestsPerSocket)
self.assertEquals(builder.port.reading, False)
builder.processRestart()
self.assertEquals(builder.port.reading, True)
@@ -215,19 +218,33 @@
for a given unit test.
"""
- def __init__(self, test, maxReq=3):
- self.limiter = ConnectionLimiter(2, maxRequests=maxReq)
+ def __init__(self, test, requestsPerSocket=3, socketCount=2):
+ # Similar to MaxRequests in the configuration.
+ self.requestsPerSocket = requestsPerSocket
+ # Similar to ProcessCount in the configuration.
+ self.socketCount = socketCount
+ self.limiter = ConnectionLimiter(
+ 2, maxRequests=requestsPerSocket * socketCount
+ )
self.dispatcher = self.limiter.dispatcher
self.dispatcher.reactor = ReaderAdder()
self.service = Service()
self.limiter.addPortService("TCP", 4321, "127.0.0.1", 5,
self.serverServiceMakerMaker(self.service))
- self.dispatcher.addSocket()
+ for ignored in xrange(socketCount):
+ self.dispatcher.addSocket()
# Has to be running in order to add stuff.
self.limiter.startService()
self.port = self.service.myPort
+ def highestLoad(self):
+ return max(
+ skt.status.effective()
+ for skt in self.limiter.dispatcher._subprocessSockets
+ )
+
+
def serverServiceMakerMaker(self, s):
"""
Make a serverServiceMaker for use with
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20130912/ce1d236a/attachment.html>
More information about the calendarserver-changes
mailing list