[CalendarServer-changes] [1653] CalDAVTester/trunk/src
source_changes at macosforge.org
source_changes at macosforge.org
Mon Jul 9 11:41:59 PDT 2007
Revision: 1653
http://trac.macosforge.org/projects/calendarserver/changeset/1653
Author: cdaboo at apple.com
Date: 2007-07-09 11:41:59 -0700 (Mon, 09 Jul 2007)
Log Message:
-----------
New option to generate before/after memory usage stats for each test suite.
Modified Paths:
--------------
CalDAVTester/trunk/src/caldavtest.py
CalDAVTester/trunk/src/manager.py
Modified: CalDAVTester/trunk/src/caldavtest.py
===================================================================
--- CalDAVTester/trunk/src/caldavtest.py 2007-07-09 18:40:50 UTC (rev 1652)
+++ CalDAVTester/trunk/src/caldavtest.py 2007-07-09 18:41:59 UTC (rev 1653)
@@ -97,6 +97,8 @@
ignored = len(suite.tests)
else:
self.manager.log(manager.LOG_HIGH, "")
+ if self.manager.memUsage:
+ start_usage = self.manager.getMemusage()
for test in suite.tests:
result = self.run_test( test )
if result == "t":
@@ -105,6 +107,10 @@
failed += 1
else:
ignored += 1
+ if self.manager.memUsage:
+ end_usage = self.manager.getMemusage()
+ print start_usage, end_usage
+ self.manager.log(manager.LOG_HIGH, "Mem. Usage: RSS=%s%% VSZ=%s%%" % (str(((end_usage[1] - start_usage[1]) * 100)/start_usage[1]), str(((end_usage[0] - start_usage[0]) * 100)/start_usage[0])))
self.manager.log(manager.LOG_HIGH, "Suite Results: %d PASSED, %d FAILED, %d IGNORED" % (ok, failed, ignored), before=1, indent=4)
return (ok, failed, ignored)
Modified: CalDAVTester/trunk/src/manager.py
===================================================================
--- CalDAVTester/trunk/src/manager.py 2007-07-09 18:40:50 UTC (rev 1652)
+++ CalDAVTester/trunk/src/manager.py 2007-07-09 18:41:59 UTC (rev 1653)
@@ -40,7 +40,7 @@
"""
Main class that runs test suites defined in an XML config file.
"""
- __slots__ = ['server_info', 'populator', 'depopulate', 'tests', 'textMode', 'logLevel']
+ __slots__ = ['server_info', 'populator', 'depopulate', 'tests', 'textMode', 'pid', 'memUsage', 'logLevel']
LOG_NONE = 0
LOG_LOW = 1
@@ -53,6 +53,8 @@
self.depopulate = False
self.tests = []
self.textMode = text
+ self.pid = 0
+ self.memUsage = None
self.logLevel = level
def log(self, level, str, indent = 0, indentStr = " ", after = 1, before = 0):
@@ -131,7 +133,8 @@
fnames = []
docroot = None
all = False
- options, args = getopt.getopt(sys.argv[1:], "s:p:dx:r:", ["all"])
+ pidfile = "../CalendarServer/logs/caldavd.pid"
+ options, args = getopt.getopt(sys.argv[1:], "s:p:dmx:r:", ["all", "pid=",])
# Process single options
for option, value in options:
@@ -147,6 +150,10 @@
docroot = value
elif option == "--all":
all = True
+ elif option == "-m":
+ self.memUsage = True
+ elif option == "--pid":
+ pidfile = value
if all:
files = os.listdir(dname)
@@ -164,10 +171,17 @@
self.readXML(sname, pname, fnames, all)
if docroot:
self.server_info.serverfilepath = docroot
+
+ if self.memUsage:
+ fd = open(pidfile, "r")
+ s = fd.read()
+ self.pid = int(s)
- def runWithOptions(self, sname, pname, fnames, moresubs, all = False, depopulate = False):
+ def runWithOptions(self, sname, pname, fnames, moresubs, pid=0, memUsage=False, all = False, depopulate = False):
self.depopulate = depopulate
self.readXML(sname, pname, fnames, all, moresubs)
+ self.pid = pid
+ self.memUsage = memUsage
return self.runAll()
def runAll(self):
@@ -222,3 +236,17 @@
return response.status, respdata
+ def getMemusage(self):
+ """
+
+ @param pid: numeric pid of process to get memory usage for
+ @type pid: int
+ @retrun: tuple of (RSS, VSZ) values for the process
+ """
+
+ fd = os.popen("ps -l -p %d" % (self.pid,))
+ data = fd.read()
+ lines = data.split("\n")
+ procdata = lines[1].split()
+ return int(procdata[6]), int(procdata[7])
+
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20070709/83c31c60/attachment.html
More information about the calendarserver-changes
mailing list