Commit 9eb06ff1 authored by Julien Muchembled's avatar Julien Muchembled

qa: new --log runner option

parent 42fd89bc
...@@ -33,6 +33,7 @@ if filter(re.compile(r'--coverage$|-\w*c').match, sys.argv[1:]): ...@@ -33,6 +33,7 @@ if filter(re.compile(r'--coverage$|-\w*c').match, sys.argv[1:]):
coverage.neotestrunner = [] coverage.neotestrunner = []
coverage.start() coverage.start()
from neo.lib import logging
from neo.tests import getTempDirectory, NeoTestBase, Patch, \ from neo.tests import getTempDirectory, NeoTestBase, Patch, \
__dict__ as neo_tests__dict__ __dict__ as neo_tests__dict__
from neo.tests.benchmark import BenchmarkRunner from neo.tests.benchmark import BenchmarkRunner
...@@ -234,6 +235,9 @@ class TestRunner(BenchmarkRunner): ...@@ -234,6 +235,9 @@ class TestRunner(BenchmarkRunner):
parser.add_option('-C', '--cov-unit', action='store_true', parser.add_option('-C', '--cov-unit', action='store_true',
help='Same as -c but output 1 file per test,' help='Same as -c but output 1 file per test,'
' in the temporary test directory') ' in the temporary test directory')
parser.add_option('-L', '--log', action='store_true',
help='Force all logs to be emitted immediately and keep'
' packet body in logs of successful threaded tests')
parser.add_option('-l', '--loop', type='int', default=1, parser.add_option('-l', '--loop', type='int', default=1,
help='Repeat tests several times') help='Repeat tests several times')
parser.add_option('-f', '--functional', action='store_true', parser.add_option('-f', '--functional', action='store_true',
...@@ -278,6 +282,7 @@ Environment Variables: ...@@ -278,6 +282,7 @@ Environment Variables:
sys.exit('Nothing to run, please give one of -f, -u, -z') sys.exit('Nothing to run, please give one of -f, -u, -z')
options.unit = options.functional = options.zodb = True options.unit = options.functional = options.zodb = True
return dict( return dict(
log = options.log,
loop = options.loop, loop = options.loop,
unit = options.unit, unit = options.unit,
functional = options.functional, functional = options.functional,
...@@ -290,6 +295,8 @@ Environment Variables: ...@@ -290,6 +295,8 @@ Environment Variables:
def start(self): def start(self):
config = self._config config = self._config
logging.backlog(max_packet=1<<20,
**({'max_size': None} if config.log else {}))
only = config.only only = config.only
# run requested tests # run requested tests
runner = NeoTestRunner(config.title or 'Neo', config.verbosity) runner = NeoTestRunner(config.title or 'Neo', config.verbosity)
......
...@@ -74,7 +74,6 @@ SSL = os.path.dirname(__file__) + os.sep ...@@ -74,7 +74,6 @@ SSL = os.path.dirname(__file__) + os.sep
SSL = SSL + "ca.crt", SSL + "node.crt", SSL + "node.key" SSL = SSL + "ca.crt", SSL + "node.crt", SSL + "node.key"
logging.default_root_handler.handle = lambda record: None logging.default_root_handler.handle = lambda record: None
logging.backlog(None, 1<<20)
debug.register() debug.register()
# prevent "signal only works in main thread" errors in subprocesses # prevent "signal only works in main thread" errors in subprocesses
......
...@@ -9,9 +9,6 @@ from email.mime.text import MIMEText ...@@ -9,9 +9,6 @@ from email.mime.text import MIMEText
MAIL_SERVER = '127.0.0.1:25' MAIL_SERVER = '127.0.0.1:25'
from neo.lib import logging
logging.backlog()
class AttributeDict(dict): class AttributeDict(dict):
def __getattr__(self, item): def __getattr__(self, item):
......
...@@ -927,7 +927,7 @@ class NEOThreadedTest(NeoTestBase): ...@@ -927,7 +927,7 @@ class NEOThreadedTest(NeoTestBase):
def _tearDown(self, success): def _tearDown(self, success):
super(NEOThreadedTest, self)._tearDown(success) super(NEOThreadedTest, self)._tearDown(success)
ServerNode.resetPorts() ServerNode.resetPorts()
if success: if success and logging._max_size is not None:
with logging as db: with logging as db:
db.execute("UPDATE packet SET body=NULL") db.execute("UPDATE packet SET body=NULL")
db.execute("VACUUM") db.execute("VACUUM")
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment