[pypy-commit] pypy refine-testrunner: start to split up the execute_test function
RonnyPfannschmidt
noreply at buildbot.pypy.org
Sun Jul 1 16:03:27 CEST 2012
Author: Ronny Pfannschmidt <Ronny.Pfannschmidt at gmx.de>
Branch: refine-testrunner
Changeset: r55882:64db80b9c934
Date: 2012-07-01 16:02 +0200
http://bitbucket.org/pypy/pypy/changeset/64db80b9c934/
Log: start to split up the execute_test function
diff --git a/testrunner/runner.py b/testrunner/runner.py
--- a/testrunner/runner.py
+++ b/testrunner/runner.py
@@ -9,11 +9,7 @@
WRITE_MODE = 'wb'
-
-
-def execute_test(cwd, test, out, logfname, interp, test_driver,
- do_dry_run=False, timeout=None,
- _win32=(sys.platform=='win32')):
+def execute_args(test, logfname, interp, test_driver):
args = interp + test_driver
args += ['-p', 'resultlog',
'--resultlog=%s' % logfname,
@@ -21,15 +17,20 @@
test]
args = map(str, args)
+ return args
+
+
+
+def execute_test(cwd, test, out, logfname, interp, test_driver,
+ runfunc, timeout=None,
+ _win32=(sys.platform=='win32')):
+ args = execute_args(test, logfname, interp, test_driver)
+
interp0 = args[0]
if (_win32 and not os.path.isabs(interp0) and
('\\' in interp0 or '/' in interp0)):
args[0] = os.path.join(str(cwd), interp0)
- if do_dry_run:
- runfunc = util.dry_run
- else:
- runfunc = util.run
exitcode = runfunc(args, cwd, out, timeout=timeout)
@@ -57,10 +58,14 @@
one_output = sessdir.join("%d-%s-output" % (num, basename))
num += n
+ if dry_run:
+ runfunc = util.dry_run
+ else:
+ runfunc = util.run
try:
test_driver = get_test_driver(test)
exitcode = execute_test(root, test, one_output, logfname,
- interp, test_driver, do_dry_run=dry_run,
+ interp, test_driver, runfunc=runfunc,
timeout=timeout)
cleanup(test)
diff --git a/testrunner/test/test_runner.py b/testrunner/test/test_runner.py
--- a/testrunner/test/test_runner.py
+++ b/testrunner/test/test_runner.py
@@ -8,21 +8,24 @@
+class FakeRun(object):
+ exitcode = 0
+ def __call__(self, args, cwd, out, timeout):
+ self.called = (args, cwd, out, timeout)
+ return self.exitcode
+
+
+
class TestExecuteTest(object):
- def pytest_funcarg__info(self, request):
- monkeypatch = request.getfuncargvalue('monkeypatch')
- info = {'exitcode' : 0}
- def fake_run(args, cwd, out, timeout):
- info['called'] = (args, cwd, out, timeout)
- return info['exitcode']
- monkeypatch.setattr(util, 'run', fake_run)
- return info
+ def pytest_funcarg__fakerun(self, request):
+ return FakeRun()
- def test_explicit(self, info):
+ def test_explicit(self, fakerun):
res = runner.execute_test('/wd', 'test_one', 'out', 'LOGFILE',
+ runfunc=fakerun,
interp=['INTERP', 'IARG'],
test_driver=['driver', 'darg'],
timeout='secs')
@@ -35,11 +38,12 @@
'test_one']
- assert info['called'] == (expected, '/wd', 'out', 'secs')
+ assert fakerun.called == (expected, '/wd', 'out', 'secs')
assert res == 0
- def test_explicit_win32(self, info):
+ def test_explicit_win32(self, fakerun):
res = runner.execute_test('/wd', 'test_one', 'out', 'LOGFILE',
+ runfunc=fakerun,
interp=['./INTERP', 'IARG'],
test_driver=['driver', 'darg'],
timeout='secs',
@@ -52,20 +56,22 @@
'--resultlog=LOGFILE',
'--junitxml=LOGFILE.junit',
'test_one']
- assert info['called'][0] == expected
- assert info['called'] == (expected, '/wd', 'out', 'secs')
+ assert fakerun.called[0] == expected
+ assert fakerun.called == (expected, '/wd', 'out', 'secs')
assert res == 0
- def test_error(self, info):
- info['exitcode'] = 1
+ def test_error(self, fakerun):
+ fakerun.exitcode = 1
res = runner.execute_test('/wd', 'test_one', 'out', 'LOGFILE',
+ runfunc=fakerun,
interp=['INTERP', 'IARG'],
test_driver=['driver', 'darg'])
assert res == 1
- info['exitcode'] = -signal.SIGSEGV
+ fakerun.exitcode = -signal.SIGSEGV
res = runner.execute_test('/wd', 'test_one', 'out', 'LOGFILE',
+ runfunc=fakerun,
interp=['INTERP', 'IARG'],
test_driver=['driver', 'darg'])
assert res == -signal.SIGSEGV
More information about the pypy-commit
mailing list