[py-svn] r56695 - in py/branch/event/py/test2: . testing
hpk at codespeak.net
hpk at codespeak.net
Sun Jul 20 19:37:51 CEST 2008
Author: hpk
Date: Sun Jul 20 19:37:49 2008
New Revision: 56695
Modified:
py/branch/event/py/test2/runner.py
py/branch/event/py/test2/testing/test_runner.py
Log:
have a nice CRASH report in case a test process gets SIGKILLED
Modified: py/branch/event/py/test2/runner.py
==============================================================================
--- py/branch/event/py/test2/runner.py (original)
+++ py/branch/event/py/test2/runner.py Sun Jul 20 19:37:49 2008
@@ -67,12 +67,23 @@
if result.retval is not None:
testrep = repevent.ItemTestReport.fromdumps(result.retval)
- testrep.stdout = result.out
- testrep.stderr = result.err
+ #testrep.stdout = result.out
+ #testrep.stderr = result.err
else:
- testrep = repevent.ItemTestReport.fromitem(self.item, None, None)
- testrep.outcome = "failed"
- testrep.stdout = result.out
- testrep.stderr = result.err
- testrep.signal = result.err
+ # xxx look into reusing present/tbpresent-writer
+ tw = py.io.TerminalWriter()
+ tw.sep("_", "CRASHED with signal=%d: %s" %
+ (result.signal, present.getmodpath(item)))
+ code = py.code.Code(item.obj)
+ path, firstlineno = code.path, code.firstlineno
+ src = py.code.Source(item.obj)
+ tw.line()
+ tw.line(str(src.indent()))
+ tw.line("[%s:%d]" %(path, firstlineno))
+ repr_run = tw.stringio.getvalue()
+ repr_path = item.repr_path()
+ trail = item._get_collector_trail()
+ testrep = repevent.ItemTestReport(trail, "failed", repr_run, repr_path)
+ #testrep.stdout = result.out
+ #testrep.stderr = result.err
return testrep
Modified: py/branch/event/py/test2/testing/test_runner.py
==============================================================================
--- py/branch/event/py/test2/testing/test_runner.py (original)
+++ py/branch/event/py/test2/testing/test_runner.py Sun Jul 20 19:37:49 2008
@@ -188,13 +188,16 @@
return fork_runner
def test_suicide(self):
- py.test.skip("XXX")
testrep = self.runtestfunc("""
import os
def testfunc():
- os.kill(15, os.getpid())
+ os.kill(os.getpid(), 15)
+ #
""")
- assert testrep.signal == 15
assert not testrep.passed
assert testrep.failed
+ assert testrep.repr_run.find("CRASHED") != -1
+ assert testrep.repr_run.find("signal=15") != -1
+ print testrep.repr_run
+ # assert 0
More information about the pytest-commit
mailing list