[pypy-svn] r57988 - in pypy/branch/cross-compilation/pypy/translator/benchmark: . test
fijal at codespeak.net
fijal at codespeak.net
Mon Sep 8 20:55:58 CEST 2008
Author: fijal
Date: Mon Sep 8 20:55:56 2008
New Revision: 57988
Modified:
pypy/branch/cross-compilation/pypy/translator/benchmark/bench_mem.py
pypy/branch/cross-compilation/pypy/translator/benchmark/test/test_bench_mem.py
Log:
A helper to run couple of functions in one block
Modified: pypy/branch/cross-compilation/pypy/translator/benchmark/bench_mem.py
==============================================================================
--- pypy/branch/cross-compilation/pypy/translator/benchmark/bench_mem.py (original)
+++ pypy/branch/cross-compilation/pypy/translator/benchmark/bench_mem.py Mon Sep 8 20:55:56 2008
@@ -111,6 +111,22 @@
lambda x: os.write(parentwrite, x),
pid)
+def measure(measure_func, funcs_to_run):
+ results = []
+ for func in funcs_to_run:
+ read, write, pid = run_cooperative(func)
+ elem = []
+ while 1:
+ res = read()
+ if res == 'e':
+ os.waitpid(pid, 0)
+ break
+ else:
+ elem.append(measure_func(pid))
+ write('x')
+ results.append(elem)
+ return results
+
def run_child(name, args):
pid = os.fork()
if not pid:
Modified: pypy/branch/cross-compilation/pypy/translator/benchmark/test/test_bench_mem.py
==============================================================================
--- pypy/branch/cross-compilation/pypy/translator/benchmark/test/test_bench_mem.py (original)
+++ pypy/branch/cross-compilation/pypy/translator/benchmark/test/test_bench_mem.py Mon Sep 8 20:55:56 2008
@@ -26,13 +26,27 @@
def test_run_cooperative():
def f(read, write):
x = read()
- assert x == '3'
- write('4')
+ assert x == 'y'
+ write('x')
read, write, pid = bench_mem.run_cooperative(f)
assert pid
- write('3')
- assert read() == '4'
+ write('y')
+ assert read() == 'x'
+
+def test_measure_cooperative():
+ def f1(read, write):
+ write('g')
+ read()
+ write('g')
+ read()
+ write('e')
+
+ def measure(arg):
+ return 42
+
+ measurments = bench_mem.measure(measure, [f1, f1])
+ assert measurments == [[42, 42], [42, 42]]
example_data = '''
08048000-0813f000 r-xp 00000000 fd:00 75457 /usr/bin/python2.5
More information about the Pypy-commit
mailing list