Print out the final 1000 lines of test_framework.log if test fails

This commit is contained in:
John Newbery 2017-02-16 14:01:45 -05:00
parent 6d780b1b0c
commit 8c7288c06b

View File

@ -4,6 +4,7 @@
# file COPYING or http://www.opensource.org/licenses/mit-license.php. # file COPYING or http://www.opensource.org/licenses/mit-license.php.
"""Base class for RPC testing.""" """Base class for RPC testing."""
from collections import deque
import logging import logging
import optparse import optparse
import os import os
@ -177,12 +178,17 @@ class BitcoinTestFramework(object):
# Dump the end of the debug logs, to aid in debugging rare # Dump the end of the debug logs, to aid in debugging rare
# travis failures. # travis failures.
import glob import glob
filenames = glob.glob(self.options.tmpdir + "/node*/regtest/debug.log") filenames = [self.options.tmpdir + "/test_framework.log"]
filenames += glob.glob(self.options.tmpdir + "/node*/regtest/debug.log")
MAX_LINES_TO_PRINT = 1000 MAX_LINES_TO_PRINT = 1000
for f in filenames: for fn in filenames:
print("From" , f, ":") try:
from collections import deque with open(fn, 'r') as f:
print("".join(deque(open(f), MAX_LINES_TO_PRINT))) print("From" , fn, ":")
print("".join(deque(f, MAX_LINES_TO_PRINT)))
except OSError:
print("Opening file %s failed." % fn)
traceback.print_exc()
if success: if success:
self.log.info("Tests successful") self.log.info("Tests successful")
sys.exit(self.TEST_EXIT_PASSED) sys.exit(self.TEST_EXIT_PASSED)