summaryrefslogtreecommitdiff
path: root/numpy/f2py/f2py_testing.py
diff options
context:
space:
mode:
authorTravis Oliphant <oliphant@enthought.com>2006-01-04 17:26:31 +0000
committerTravis Oliphant <oliphant@enthought.com>2006-01-04 17:26:31 +0000
commit8e2654541c6eae0f308908f501cccbc86b2f9101 (patch)
treebfcfe3b282c8fb659832bf86a841ce76852094ad /numpy/f2py/f2py_testing.py
parentddaed649c23bbd0ad36cdafdfe9cd92397ce69e3 (diff)
downloadnumpy-8e2654541c6eae0f308908f501cccbc86b2f9101.tar.gz
Moved scipy directory to numpy
Diffstat (limited to 'numpy/f2py/f2py_testing.py')
-rw-r--r--numpy/f2py/f2py_testing.py74
1 files changed, 74 insertions, 0 deletions
diff --git a/numpy/f2py/f2py_testing.py b/numpy/f2py/f2py_testing.py
new file mode 100644
index 000000000..1126c3085
--- /dev/null
+++ b/numpy/f2py/f2py_testing.py
@@ -0,0 +1,74 @@
+
+import os,sys,re,time
+
+def cmdline():
+ m=re.compile(r'\A\d+\Z')
+ args = []
+ repeat = 1
+ for a in sys.argv[1:]:
+ if m.match(a):
+ repeat = eval(a)
+ else:
+ args.append(a)
+ f2py_opts = ' '.join(args)
+ return repeat,f2py_opts
+
+if sys.platform[:5]=='linux':
+ def jiffies(_proc_pid_stat = '/proc/%s/stat'%(os.getpid()),
+ _load_time=time.time()):
+ """ Return number of jiffies (1/100ths of a second) that this
+ process has been scheduled in user mode. See man 5 proc. """
+ try:
+ f=open(_proc_pid_stat,'r')
+ l = f.readline().split(' ')
+ f.close()
+ return int(l[13])
+ except:
+ return int(100*(time.time()-_load_time))
+
+ def memusage(_proc_pid_stat = '/proc/%s/stat'%(os.getpid())):
+ """ Return virtual memory size in bytes of the running python.
+ """
+ try:
+ f=open(_proc_pid_stat,'r')
+ l = f.readline().split(' ')
+ f.close()
+ return int(l[22])
+ except:
+ return
+else:
+ def jiffies(_load_time=time.time()):
+ """ Return number of jiffies (1/100ths of a second) that this
+ process has been scheduled in user mode. [Emulation with time.time]. """
+ return int(100*(time.time()-_load_time))
+
+ def memusage():
+ pass
+
+def run(runtest,test_functions,repeat=1):
+ l = [(t,repr(t.__doc__.split('\n')[1].strip())) for t in test_functions]
+ #l = [(t,'') for t in test_functions]
+ start_memusage = memusage()
+ diff_memusage = None
+ start_jiffies = jiffies()
+ i = 0
+ while i<repeat:
+ i += 1
+ for t,fname in l:
+ runtest(t)
+ if start_memusage is None: continue
+ if diff_memusage is None:
+ diff_memusage = memusage() - start_memusage
+ else:
+ diff_memusage2 = memusage() - start_memusage
+ if diff_memusage2!=diff_memusage:
+ print 'memory usage change at step %i:' % i,\
+ diff_memusage2-diff_memusage,\
+ fname
+ diff_memusage = diff_memusage2
+ current_memusage = memusage()
+ print 'run',repeat*len(test_functions),'tests',\
+ 'in %.2f seconds' % ((jiffies()-start_jiffies)/100.0)
+ if start_memusage:
+ print 'initial virtual memory size:',start_memusage,'bytes'
+ print 'current virtual memory size:',current_memusage,'bytes'