Changeset View
Changeset View
Standalone View
Standalone View
test/functional/feature_logging.py
Show All 9 Lines | |||||
from test_framework.test_node import ErrorMatch | from test_framework.test_node import ErrorMatch | ||||
class LoggingTest(BitcoinTestFramework): | class LoggingTest(BitcoinTestFramework): | ||||
def set_test_params(self): | def set_test_params(self): | ||||
self.num_nodes = 1 | self.num_nodes = 1 | ||||
self.setup_clean_chain = True | self.setup_clean_chain = True | ||||
def relative_log_path(self, name): | |||||
return os.path.join(self.nodes[0].datadir, "regtest", name) | |||||
def run_test(self): | def run_test(self): | ||||
# test default log file name | # test default log file name | ||||
assert os.path.isfile(os.path.join( | default_log_path = self.relative_log_path("debug.log") | ||||
self.nodes[0].datadir, "regtest", "debug.log")) | assert os.path.isfile(default_log_path) | ||||
# test alternative log file name in datadir | # test alternative log file name in datadir | ||||
self.restart_node(0, ["-debuglogfile=foo.log"]) | self.restart_node(0, ["-debuglogfile=foo.log"]) | ||||
assert os.path.isfile(os.path.join( | assert os.path.isfile(self.relative_log_path("foo.log")) | ||||
self.nodes[0].datadir, "regtest", "foo.log")) | |||||
# test alternative log file name outside datadir | # test alternative log file name outside datadir | ||||
tempname = os.path.join(self.options.tmpdir, "foo.log") | tempname = os.path.join(self.options.tmpdir, "foo.log") | ||||
self.restart_node(0, ["-debuglogfile={}".format(tempname)]) | self.restart_node(0, ["-debuglogfile={}".format(tempname)]) | ||||
assert os.path.isfile(tempname) | assert os.path.isfile(tempname) | ||||
# check that invalid log (relative) will cause error | # check that invalid log (relative) will cause error | ||||
invdir = os.path.join(self.nodes[0].datadir, "regtest", "foo") | invdir = self.relative_log_path("foo") | ||||
invalidname = os.path.join("foo", "foo.log") | invalidname = os.path.join("foo", "foo.log") | ||||
self.stop_node(0) | self.stop_node(0) | ||||
exp_stderr = r"Error: Could not open debug log file \S+$" | exp_stderr = r"Error: Could not open debug log file \S+$" | ||||
self.nodes[0].assert_start_raises_init_error( | self.nodes[0].assert_start_raises_init_error( | ||||
["-debuglogfile={}".format(invalidname)], exp_stderr, match=ErrorMatch.FULL_REGEX) | ["-debuglogfile={}".format(invalidname)], exp_stderr, match=ErrorMatch.FULL_REGEX) | ||||
assert not os.path.isfile(os.path.join(invdir, "foo.log")) | assert not os.path.isfile(os.path.join(invdir, "foo.log")) | ||||
# check that invalid log (relative) works after path exists | # check that invalid log (relative) works after path exists | ||||
Show All 11 Lines | def run_test(self): | ||||
assert not os.path.isfile(os.path.join(invdir, "foo.log")) | assert not os.path.isfile(os.path.join(invdir, "foo.log")) | ||||
# check that invalid log (absolute) works after path exists | # check that invalid log (absolute) works after path exists | ||||
self.stop_node(0) | self.stop_node(0) | ||||
os.mkdir(invdir) | os.mkdir(invdir) | ||||
self.start_node(0, ["-debuglogfile={}".format(invalidname)]) | self.start_node(0, ["-debuglogfile={}".format(invalidname)]) | ||||
assert os.path.isfile(os.path.join(invdir, "foo.log")) | assert os.path.isfile(os.path.join(invdir, "foo.log")) | ||||
# check that -nodebuglogfile disables logging | |||||
self.stop_node(0) | |||||
os.unlink(default_log_path) | |||||
assert not os.path.isfile(default_log_path) | |||||
self.start_node(0, ["-nodebuglogfile"]) | |||||
assert not os.path.isfile(default_log_path) | |||||
# just sanity check no crash here | |||||
self.stop_node(0) | |||||
self.start_node(0, ["-debuglogfile={}".format(os.devnull)]) | |||||
if __name__ == '__main__': | if __name__ == '__main__': | ||||
LoggingTest().main() | LoggingTest().main() |