[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [21150] branches/soc-2009-jaguarandi/test: Added getrusage (so that it can use "user time" instead of "wall time")
André Pinto
andresusanopinto at gmail.com
Thu Jun 25 12:42:22 CEST 2009
Revision: 21150
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=21150
Author: jaguarandi
Date: 2009-06-25 12:42:22 +0200 (Thu, 25 Jun 2009)
Log Message:
-----------
Added getrusage (so that it can use "user time" instead of "wall time")
Modified Paths:
--------------
branches/soc-2009-jaguarandi/test/html.py
branches/soc-2009-jaguarandi/test/test.py
Modified: branches/soc-2009-jaguarandi/test/html.py
===================================================================
--- branches/soc-2009-jaguarandi/test/html.py 2009-06-25 10:14:51 UTC (rev 21149)
+++ branches/soc-2009-jaguarandi/test/html.py 2009-06-25 10:42:22 UTC (rev 21150)
@@ -110,7 +110,10 @@
else:
time = run["time"]*1000
- info = '<span class="block">'+"%02d:%02d.%03d"%(time/60000, (time/1000)%60, time%1000)+'</span>'
+ info = '<span class="block">'+"%02d:%02d.%03d clock time"%(time/60000, (time/1000)%60, time%1000)+'</span>'
+ if "getrusage" in run and "utime" in run["getrusage"]:
+ t = run["getrusage"]["utime"]*1000
+ info += '<span class="block">'+"%02d:%02d.%03d user time"%(t/60000, (t/1000)%60, t%1000)+'</span>'
# comparison result
Modified: branches/soc-2009-jaguarandi/test/test.py
===================================================================
--- branches/soc-2009-jaguarandi/test/test.py 2009-06-25 10:14:51 UTC (rev 21149)
+++ branches/soc-2009-jaguarandi/test/test.py 2009-06-25 10:42:22 UTC (rev 21150)
@@ -4,6 +4,7 @@
import time
import subprocess
import persistent
+import resource
class Case(dict):
def __init__(self, arg = {}):
@@ -13,21 +14,55 @@
print self["name"]+":","test not implemented",self["type"]
return TestRun.RESULT_NONE
+
+ #TODO improve this (measure memory .. etc.. )
def run_cmd(self, cmd, test):
+ return self.unix_run_cmd(cmd,test)
+# return self.non_unix_run_cmd(cmd,test)
+
+
+ def unix_run_cmd(self, cmd, test):
+ old_r = resource.getrusage(resource.RUSAGE_CHILDREN)
dt = time.time()
proc = subprocess.Popen(cmd,stdout=subprocess.PIPE, stderr=subprocess.PIPE)
out, err = proc.communicate()
dt = time.time()-dt
+ new_r = resource.getrusage(resource.RUSAGE_CHILDREN)
+ test["getrusage"] = {}
+ keys = { "utime": 0, "stime":1, "minflt":6, "maxflt":7, "nvcsw":14, "nivcsw":15 }
+ for field in keys:
+ test["getrusage"][field] = new_r[ keys[field] ] - old_r[ keys[field] ]
+
+ print test["getrusage"]
+
test["cmdline"] = cmd
test["time"] = dt
test["stderr"] = err
test["stdout"] = out
test["exit_status"] = proc.returncode
+ print test
return proc.returncode
+ def non_unix_run_cmd(self,cmd,test):
+ dt = time.time()
+
+ proc = subprocess.Popen(cmd,stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+ out, err = proc.communicate()
+ dt = time.time()-dt
+
+ test["cmdline"] = cmd
+ test["time"] = dt
+ test["stderr"] = err
+ test["stdout"] = out
+ test["exit_status"] = proc.returncode
+
+ return proc.returncode
+
+
+
class Render(Case):
__name__ = "render"
@@ -113,10 +148,9 @@
Render(self["case"]).run(self)
self.save_results()
- except:
- #TODO print exception
+ except Exception:
print "Failed to process test run:",self.result_path
- os._exit(-1)
+ raise
##########################################################################################
def get(machine,build,case):
More information about the Bf-blender-cvs
mailing list